<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.29 (Ruby 3.0.2) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-teep-usecase-for-cc-in-network-03" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.1 -->
  <front>
    <title abbrev="teep usecase for CC in network">TEEP Usecase for Confidential Computing in Network</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-teep-usecase-for-cc-in-network-03"/>
    <author initials="P." surname="Yang" fullname="Penglin Yang">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street>No.32 Xuanwumen West Street</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>yangpenglin@chinamobile.com</email>
      </address>
    </author>
    <author initials="M." surname="Chen" fullname="Meiling Chen">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street>No.32 Xuanwumen West Street</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>chenmeiling@chinamobile.com</email>
      </address>
    </author>
    <author initials="L." surname="Su" fullname="Li Su">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street>No.32 Xuanwumen West Street</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>suli@chinamobile.com</email>
      </address>
    </author>
    <author initials="T." surname="Pang" fullname="Ting Pang">
      <organization>Huawei Technology Co.,Ltd.</organization>
      <address>
        <postal>
          <street>127 Jinye Road, Yanta District</street>
          <city>Xi'an</city>
          <country>China</country>
        </postal>
        <email>pangting@huawei.com</email>
      </address>
    </author>
    <date year="2023" month="April" day="17"/>
    <area>Security</area>
    <workgroup>TEEP</workgroup>
    <keyword>confidential computing</keyword>
    <abstract>
      <t>Confidential computing is the protection of data in use by performing computation in a hardware-based Trusted Execution Environment. Confidential computing could provide integrity and confidentiality for users who want to run applications and process data in that environment. When confidential computing is used in scenarios which need network to provision user data and applications in the TEE environment, TEEP architecture<xref target="I-D.ietf-teep-architecture"/> and protocol <xref target="I-D.ietf-teep-protocol"/> could be used. This document focuses on using TEEP to provision Network User data and applications in confidential computing. This document is a use case and extension of TEEP and could provide guidance for cloud computing, <xref target="MEC"/> and other scenarios to use confidential computing in network.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="Intro">
      <name>Introduction</name>
      <t>The Confidential Computing Consortium defined the concept of confidential computing as the protection of data in use by performing computation in a hardware-based Trusted Execution Environment <xref target="CCC-White-Paper"/>. In detail, computing unit with confidential computing feature could generate an isolated hardware-protected area, in which data and applications will be protected from illegal access or tampering. When using network to provision confidential computing environment, users need to attest and deploy their data and applications in the TEE environment inside confidential computing device by network. This network could be a cloud, MEC or other network that provide confidential computing resource to users.
The TEEP WG defined the standardization of an architecture and protocol for managing the lifecycle of trusted applications running inside a TEE. In confidential computing, the TEE can also be provisioned and managed by TEEP architecture and protocol.
This document illustrates how a network user uses the TEEP protocol to provision its private data and applications in confidential computing device. The intended audiences for this use case are network users and operators who are interested in using confidential computing in network.</t>
    </section>
    <section anchor="term">
      <name>Terminology</name>
      <t>## Terms</t>
      <ul spacing="normal">
        <li>Network Management/Orchestration Center(Network M/OC): MO/C exists in the management and orchestration layer of network. Network User uses the M/OC to request for computing resource. The TAM is inside the M/OC to provide management function to TEEP Agent via TEEP broker.</li>
        <li>Network User: Network User possesses personalization data and applications that need to be deployed on confidential computing device. For example in MEC, the autonomous vehicles could deploy private applications and data on confidential computing device to calculate on-vehicle and destination road information without knowing by MEC platform.</li>
        <li>Confidential Computing Device: Confidential Computing Device is connected by the network and can provide confidential computing service to Network User.</li>
        <li>Package: Package is a unit that is owned by Network User and could be deployed on TEE/REE or treated as application data. TA (Trusted Application) in confidential computing could be an application, or packaged with other components like library, TEE shim or even Guest OS. The specific package of confidential computing could refers to the white paper of <xref target="CCC_Common_Terminology"/> by CCC.</li>
        <li>Personalization Data(PD): Data that holds by Network User and needs to be protected by TEE during processing.
Other terms like TAM, TEE, REE, TA will reuse the term definition defined in <xref target="I-D.ietf-teep-architecture"/>.</li>
      </ul>
      <section anchor="requirement-language">
        <name>Requirement Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119"/>.</t>
      </section>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t>Figure 1 is the architecture of confidential computing in network. Two new components Network User and Network M/OC are introduced in this document. The connection between Network User and M/OC depends on the implementation of specific network. The connection between network user and UA (Untrusted Application) or TA depends on the implementation of application. The connection between TAM, TEEP Broker and TEEP Agent refers to the TEEP protocol. Interactions of all components in this scenario are described in the Usecase section.</t>
      <figure anchor="arch">
        <name>Notional Architecture of Confidential Computing in Network</name>
        <artwork><![CDATA[
+--------------------------------------+
| Confidential Computing Device        |
|                       +--------+     |   +------------+
|  +-------------+      |        |     |   |Network M/OC|
|  | TEE         |      | TEEP   |     |   | +-------+  |
|  | +--------+  |  +---> Broker <----------->       |  |
|  | | TEEP   |  |  |   |        |     |   | |  TAM  |  |
|  | | Agent  |<----+   |        |     |   | |       |  |
|  | +--------+  |      |        <--+  |   | +---^---+  |
|  |             |      +--------+  |  |   +-----|------+
|  | +--------+  |                  |  |         |
|  | |   TA   |  |      +-------+   |  |         |
|  | |        |<-------->       |<--+  |         |
|  | +--------+  |      |  UA   |      |   +-----V------+
|  +-------------+      |       |<--------->Network User|
|                       +-------+      |   | (Package)  |
+--------------------------------------+   +------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <t>The basic process of how a Network User utilizes confidential computing is shown below. In confidential computing, the bundle of an UA, TA, and PD refers to case 1,2,3,4 of TEEP architecture section 4.4. Case 5 and 6 are new cases that possible in implementation. At present, the main instances types exist in industry of confidential computing are confidential process, confidential container and confidential VM.</t>
      <section anchor="ua-ta-and-pd-are-bundled-as-a-package">
        <name>UA, TA and PD are bundled as a package</name>
        <t>This use case refers to the case 1 of TEEP architecture. If the Network User provides this package, the process of TEEP is as follow.
  1. Network User requests for confidential computing resource to the network M/OC.
  2. M/OC orchestrates confidential computing device to undertake the request.
  3. TAM requests remote attestation to the TEEP Agent, TEEP Agent then sends the evidence to TAM. The TAM works as Verifier in <xref target="RFC9334"/>.
  4. After verification, Network User works as Relying Party to receive the attestation result. If positive, Network User establishes secure channel <xref target="NIST-Special-Publication-800-133-V2"/> with TEEP Agent, and transfers this package to TEEP Agent.
  5. TEEP Agent deploys TA and personalization data in TEE, then deploy UA in REE.
As for informing Network Users to develop their applications and data, the mapping of UA, TA and implementations are shown in figure 2. This document gathers the main hardware architectures that support confidential computing, which include <xref target="TrustZone"/>, <xref target="SGX"/>, <xref target="SEV-SNP"/>, <xref target="CCA"/> and <xref target="TDX"/>. The brace means the operation steps to deploy packages. The arrow means deploy package to a destination. The "att" means attestation challenge for the target.</t>
        <figure anchor="case1">
          <name>TEEP Implementation of Case 1</name>
          <artwork><![CDATA[
+-------------+--------------------------------------------------+
|Package Mode |                Case 1 (UA, TA, PD)               |
+-------------+----------------+----------------+----------------+
|  Instance   |   Process in   |  Container in  |                |
|    Type     |   Physical or  |  Physical or   |       VM       |
|             | Virtual Machine| Virtual Machine|                |
+-------------+----------------+----------------+----------------+
|  Hardware   |                |    TrustZone,  |                |
| Architecture|    TrustZone   |  SEV-SNP, CCA, | SEV-SNP,CCA,TDX| 
|             |                |      TDX       |                |
+-------------+----------------+----------------+----------------+
|             |{att TEEP Agent,|{att TEEP Agent,|{att TEEP Agent,|
|    Load     |    TA->TEE,    |  TA->Trsuted   | TA->Trsuted VM |
|  Sequence   |    PD->TA,     |   Container,   |     PD->TA,    |
|             |    UA->REE}    |    PD->TA,     | UA->Untrusted  |
|             |                |    UA->REE}    |       VM}      |
+-------------+----------------+----------------+----------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="pd-is-a-separate-package-ta-and-ua-are-separate-or-integrated">
        <name>PD is a separate package, TA and UA are separate or integrated</name>
        <t>This usecase refers to the case 2 and case 3 of TEEP architecture. The PD is a separate package, the UA and TA could be separated or integrated as a package. If the Network User provides packages like this, the process of TEEP is as follow.
  1. Network User requests for confidential computing resource to the network M/OC.
  2. M/OC orchestrates confidential computing device to undertake the request.
  3. Network User transfers UA and TA to confidential computing device via TAM.  TAM then deploys these two applications in REE and TEE respectively.  (In SGX, UA must be deployed first, then let the UA to load TA in SGX.)
  4. TAM requests remote attestation to the TEEP Agent, TEEP Agent then sends the evidence to TAM. The TAM works as Verifier in RATs architecture.
  5. After verification, Network User works as Relying Party to receive the attestation result. If positive, Network User establishes secure channel with TA, and deploys personalization data to the TA.
The mapping of UA, TA and implementations are shown in figure 3.</t>
        <figure anchor="case23">
          <name>TEEP Implementation of Case 2/3</name>
          <artwork><![CDATA[
+-------------+--------------------------------------------------+
|Package Mode |   Case 2 (UA, TA) (PD), Case 3 (UA) (TA) (PD)    |
+-------------+----------------+----------------+----------------+
|  Instance   |   Process in   |  Container in  |                |
|    Type     |   Physical or  |  Physical or   |       VM       |
|             | Virtual Machine| Virtual Machine|                |
+-------------+----------------+----------------+----------------+
|  Hardware   |    TrustZone,  | TrustZone, SGX,|                |
| Architecture|      SGX       |  SEV-SNP, CCA, |   SEV,CCA,TDX  |
|             |                |      TDX       |                |
+-------------+----------------+----------------+----------------+
|             |   {TA->TEE,    |    {UA->REE,   |{UA->untrusted  |
|             | att TEEP Agent,|  TA->trusted   |      VM,       |
|    Load     |     PD->TA,    |   Container,   | TA->trusted VM,|
|  Sequence   |    UA->REE}    | att TEEP Agent,| att TEEP Agent,|
|             |                |    PD->TA}     |     PD->TA}    |
+-------------+----------------+----------------+----------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="ta-and-pd-are-bundled-as-a-package-and-ua-is-a-separate-package">
        <name>TA and PD are bundled as a package, and UA is a separate package</name>
        <t>In this case, the process of TEEP is as follow.
  1. Network User requests for confidential computing resource to the network M/OC.
  2. TAM in M/OC orchestrates confidential computing device to undertake the request.
  3. Network User deploys UA in REE.
  4. TAM requests remote attestation to the TEEP Agent, TEEP Agent then sends the evidence to TAM. The TAM works as Verifier in RATs architecture.
  5. After verification, Network User works as Relying Party to receive the attestation result. If positive, the Network User establishes secure channel with TEEP Agent and transfers the TA and PD package to TEEP Agent.
  6. TEEP Agent deploys TA and PD.</t>
        <figure anchor="case4">
          <name>TEEP Implementation of Case 4</name>
          <artwork><![CDATA[
+-------------+--------------------------------------------------+
|Package Mode |               Case 4 (TA, PD) (UA)               |
+-------------+----------------+----------------+----------------+
|  Instance   |   Process in   |  Container in  |                |
|    Type     |   Physical or  |  Physical or   |       VM       |
|             | Virtual Machine| Virtual Machine|                |
+-------------+----------------+----------------+----------------+
|  Hardware   |    TrustZone,  | TrustZone, SGX,|                |
| Architecture|      SGX       |  SEV-SNP, CCA, |   SEV,CCA,TDX  |
|             |                |      TDX       |                |
+-------------+----------------+----------------+----------------+
|             |   {UA->REE,    |    {UA->REE,   | {UA->untrusted |
|    Load     | att TEEP Agent,| att TEEP Agent,|      VM,       |
|  Sequence   |   TA&PD->TEE}  | TA&PD->trusted | att TEEP Agent,|
|             |                |   Container}   | TA->trusted VM}|
+-------------+----------------+----------------+----------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="ta-and-pd-as-a-package-no-ua">
        <name>TA and PD as a package, no UA</name>
        <t>In this case, Network User provides TA and PD as a package with no UA attached. The process of TEEP in this case is as follow.
  1. Network User requests for confidential computing resource to the network M/OC.
  2. TAM in M/OC orchestrates confidential computing device to undertake the request.
  3. TAM requests remote attestation to the TEEP Agent, TEEP Agent then sends the evidence to TAM. The TAM works as Verifier in RATs architecture.
  4. After verification,Network User works as Relying Party to receive the attestation result. If positive, the Network User establishes secure channel with TEEP Agent and transfers TA and PD to TEEP Agent.
  5. TEEP Agent deploys TA and PD.</t>
        <figure anchor="case5">
          <name>TEEP Implementation of Case 5</name>
          <artwork><![CDATA[
+-------------+--------------------------------------------------+
|Package Mode |                 Case 5 (TA, PD)                  |
+-------------+----------------+----------------+----------------+
|  Instance   |   Process in   |  Container in  |                |
|    Type     |   Physical or  |  Physical or   |       VM       |
|             | Virtual Machine| Virtual Machine|                |
+-------------+----------------+----------------+----------------+
|  Hardware   |    TrustZone,  | TrustZone, SGX,|   SEV,CCA,TDX  |
| Architecture|      SGX       |  SEV, CCA, TDX |                |
+-------------+----------------+----------------+----------------+
|    Load     |{att TEEP Agent,|{att TEEP Agent,|{att TEEP Agent,|
|  Sequence   |   TA&PD->TEE}  | TA&PD->trusted | TA->trusted VM}|
|             |                |   Container}   |                |
+-------------+----------------+----------------+----------------+
]]></artwork>
        </figure>
        <t>## TA and PD are separate packages, no UA
In this case, Network User provides TA and PD as separate packages with no UA attached. The process of TEEP in this case is as follow.
  1. Network User requests for confidential computing resource to the network M/OC.
  2. TAM in M/OC orchestrates confidential computing device to undertake the request.
  3. Network User transfers TA to TAM, then TAM transfers TA to TEEP Agent.
  4. TAM requests remote attestation to the TEEP Agent, TEEP Agent then sends the evidence to TAM. The TAM works as Verifier in RATs architecture.
  5. After verification, Network User works as Relying Party to receive the attestation result. If positive, the Network User establishes secure channel with TA and transfers PD to it.</t>
        <figure anchor="case6">
          <name>TEEP Implementation of Case 6</name>
          <artwork><![CDATA[
+-------------+--------------------------------------------------+
|Package Mode |                 Case 6 (TA), (PD)                |
+-------------+----------------+----------------+----------------+
|  Instance   |   Process in   |  Container in  |                |
|    Type     |   Physical or  |  Physical or   |       VM       |
|             | Virtual Machine| Virtual Machine|                |
+-------------+----------------+----------------+----------------+
|  Hardware   |    TrustZone,  | TrustZone, SGX,|   SEV,CCA,TDX  |
| Architecture|      SGX       |  SEV, CCA, TDX |                |
+-------------+----------------+----------------+----------------+
|    Load     |    {TA->TEE,   | {TA->trusted   |{TA->trusted VM,|
|  Sequence   | att TEEP Agent,|   Container,   | att TEEP Agent,|
|             |     PD->TA}    | att TEEP Agent,|     PD->TA}    |
|             |                |    PD->TA}     |                |
+-------------+----------------+----------------+----------------+
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not require actions by IANA.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Besides the security considerations in TEEP architecture, there is no more security and privacy issues in this document.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author fullname="D. Thaler" initials="D." surname="Thaler">
              <organization/>
            </author>
            <author fullname="M. Richardson" initials="M." surname="Richardson">
              <organization/>
            </author>
            <author fullname="N. Smith" initials="N." surname="Smith">
              <organization/>
            </author>
            <author fullname="W. Pan" initials="W." surname="Pan">
              <organization/>
            </author>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims.  It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="I-D.ietf-teep-architecture">
          <front>
            <title>Trusted Execution Environment Provisioning (TEEP) Architecture</title>
            <author fullname="Mingliang Pei" initials="M." surname="Pei">
              <organization>Broadcom</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Dave Wheeler" initials="D. M." surname="Wheeler">
              <organization>Amazon</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   A Trusted Execution Environment (TEE) is an environment that enforces
   that any code within that environment cannot be tampered with, and
   that any data used by such code cannot be read or tampered with by
   any code outside that environment.  This architecture document
   motivates the design and standardization of a protocol for managing
   the lifecycle of trusted applications running inside such a TEE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teep-architecture-19"/>
        </reference>
        <reference anchor="I-D.ietf-teep-protocol">
          <front>
            <title>Trusted Execution Environment Provisioning (TEEP) Protocol</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Mingliang Pei" initials="M." surname="Pei">
              <organization>Broadcom</organization>
            </author>
            <author fullname="Dave Wheeler" initials="D. M." surname="Wheeler">
              <organization>Amazon</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Akira Tsukamoto" initials="A." surname="Tsukamoto">
         </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>   This document specifies a protocol that installs, updates, and
   deletes Trusted Components in a device with a Trusted Execution
   Environment (TEE).  This specification defines an interoperable
   protocol for managing the lifecycle of Trusted Components.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teep-protocol-12"/>
        </reference>
        <reference anchor="NIST-Special-Publication-800-133-V2" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r2.pdf">
          <front>
            <title>Recommendation for Cryptographic Key Generation</title>
            <author initials="E. B. A. R. R." surname="Davis" fullname="Elaine Barker, Allen Roginsky, Richard Davis">
              <organization/>
            </author>
            <date year="2020" month="June"/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="MEC" target="https://www.etsi.org/deliver/etsi_gs/MEC/001_099/003/03.01.01_60/gs_MEC003v030101p.pdf">
          <front>
            <title>Multi-access Edge Computing (MEC);Framework and Reference Architecture</title>
            <author initials="" surname="ETSI" fullname="ETSI">
              <organization/>
            </author>
            <date year="2022" month="March"/>
          </front>
        </reference>
        <reference anchor="CCC-White-Paper" target="https://confidentialcomputing.io/white-papers-reports/">
          <front>
            <title>Confidential Computing Hardware-Based Trusted Execution for Applications and Data</title>
            <author initials="C. C." surname="Consortium" fullname="Confidential Computing Consortium">
              <organization/>
            </author>
            <date year="2021" month="January"/>
          </front>
        </reference>
        <reference anchor="CCC_Common_Terminology" target="https://github.com/confidentialcomputing/governance/blob/main/terminology/commonterminology.md">
          <front>
            <title>Common Terminology for Confidential Computing</title>
            <author initials="C. C." surname="Consortium" fullname="Confidential Computing Consortium">
              <organization/>
            </author>
            <date year="2022" month="October"/>
          </front>
        </reference>
        <reference anchor="TrustZone" target="https://www.hikunpeng.com/document/detail/en/kunpengcctrustzone/overview/kunpengcctrustzone.html">
          <front>
            <title>Kunpeng BoostKit for Confidential Computing TrustZone Kit</title>
            <author initials="H." surname="Technologies" fullname="HUAWEI Technologies">
              <organization/>
            </author>
            <date year="2022" month="January"/>
          </front>
        </reference>
        <reference anchor="SGX" target="https://www.intel.com/content/www/us/en/developer/tools/software-guard-extensions/overview.html">
          <front>
            <title>Overview of Intel Software Guard Extension</title>
            <author initials="" surname="Intel" fullname="Intel">
              <organization/>
            </author>
            <date year="2016" month="June"/>
          </front>
        </reference>
        <reference anchor="SEV-SNP" target="https://www.amd.com/system/files/TechDocs/SEV-SNP-strengthening-vm-isolation-with-integrity-protection-and-more.pdf">
          <front>
            <title>AMD SEV-SNP Strengthening VM-isolation-with-integrity-protection-and-more</title>
            <author initials="A. M." surname="Devices" fullname="Advanced Micro Devices">
              <organization/>
            </author>
            <date year="2020" month="January"/>
          </front>
        </reference>
        <reference anchor="CCA" target="https://www.arm.com/architecture/security-features/arm-confidential-compute-architecture">
          <front>
            <title>ARM Confidential Computing Architecture</title>
            <author initials="" surname="ARM" fullname="ARM">
              <organization/>
            </author>
            <date year="2022" month="March"/>
          </front>
        </reference>
        <reference anchor="TDX" target="https://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html">
          <front>
            <title>Intel Trust Domain Extensions</title>
            <author initials="" surname="Intel" fullname="Intel">
              <organization/>
            </author>
            <date year="2021" month="August"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="appendix1">
      <name>Appendix 1 Submodules in TEEP Agent</name>
      <t>The original design of TEEP only includes TEEP Agent and TA inside TEE. While in confidential computing implementation, other submodules may also be involved in the TEE. In TEEP, these submodules could be covered by TEEP Agent.
In SGX based confidential computing, submodule could provide convenient environment or API in which TA does not have to modify its source code to fit into SGX instructions. Submodules like Gramine and Occlum .etc are examples that could be included in TEEP Agent. If there is no submodule in TEEP Agent, the TA and UA need to be customized applications which fit into the SGX architecture.
In SEV and other architectures that support whole guest VM as a TEE, TEEP Agent doesn't have to use extra submodule to work as a middleware or API. However with some submodules like Enarx which works as a runtime JIT compiler, TA could be deployed in a hardware independent way. In this scenario, TA could be deployed in different hardware architecture without re-compiling.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1cbXPbOJL+7ir/B1RStZdcREm2M7mNdy61iu1JvBPFPltx
svfhUhQJSThThI4vUjS277dfvwAkSJG2k0omc7txzTgSiJfuRnc/3U3Anudt
b2Uqi+S+GB0dnYp3qQz8VIqJTsSBjicqlHGm/Ai+zBd5puKpULF4K7OVTi63
t/zxOJHLfZFJuRC5O/YA+8XcT4jtrVAHsT+HZcLEn2SektnEw1GeGeXBKC8I
PBV7ZpTX39veCvxMTnWy3ofpJnp7a3tLLRJYL8nTbLfff97fBSIS6e+Lcxnk
icrW21s4eJrofME8bW9dyjW0hfsicDkKLEc4a5r5cfjRj3QMJK5lur21UPvb
W0Ikk0CGabaObLsQmQ7czyrGGYuWVCdZIidp2bCeV79niQrK/kDGHMaXz1Uc
qdhZTX7KvEilmQcTjXUEHT39r0/wEch07i8WwILpDbLIs5lOkHIPe+BsMOC0
K/7uI6PYwttwKuMprOO062Tqx+o3P1M63hcHMxX7YqjHKpL8HOiWEuh+q7t7
u+JD7serHCgX72WaiXN6yB0D2IV98VKq/1Z27kDncYa7SNNym5z7KgLCgYAF
E/PXAJ/Oac0uyKXGxbALw2XscjGUKkKdLNu/ExcBEDBnYu7g4k1XnOcuD29U
0fCdiE/zSN1B9agrTmsaNELBn7aoz+vcX0klRjKYxTrS0zU4kG7nTRZ2q5zs
7P6b+JuK11KcaT/soDpmvjhUbCQuMx/Uv/jxnawsgB606b/OiADmZHsr1skc
KFtKsumzXw52d3ae28/P9/ae0udj77BbOiY/AZFkMsjyRDY8XiQajF9H9Ojt
8fnIO1/IAByLd5qPIxWQILw/9/vezt6ed7G7z3RmfjJFxmdZtkj3e714GS3y
cdqNgeXuVC97+AFbemY6Z7a0h+t0z0+7Ztpkt7sIJ2Zi9uJnkh1KSCPYFyfr
Raanib+YqUD8KtfilYxlQh14bOk1RLm/R5EPfki89JNLmXTEIIpA0870FPTh
ct0RZyqY+UkoDv2lSnkkrAnjdvu7fe8Zt4C7Brftyn54dNAiidVq1ZVZqrqg
Sb1QRjAi6WHDx2nag2G9fn/nY//5c/h3r9ff6/Z34L+Pz/q9afoRHkPrsr/X
3+nvLDaEMsyjTHl+EMg0FUfhVDpw9gjGPv7LLwnwTFgFOABCnMhExoEUA0cJ
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
+z+FiuhEVlIAAA==

-->

</rfc>
