<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
		 
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY I-D.ietf-teep-architecture SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teep-architecture.xml">
<!ENTITY I-D.ietf-teep-protocol SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teep-protocol.xml">
<!ENTITY RFC9334 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9334.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>                           

<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="info" docName="draft-ietf-teep-usecase-for-cc-in-network-06" ipr="trust200902">

  <front>
    <title abbrev="teep usecase for CC in network">TEEP Usecase for Confidential Computing in Network</title>

    <author fullname="Penglin Yang" initials="P." surname="Yang">
      <organization>Dawning Information Industry Co., Ltd.</organization>
      <address>
        <postal>
          <street>No. 36, Zhongguancun Software Park, No.8, West Dongbeiwang Road, Haidian District</street>
          <!-- Reorder these if your country does things differently -->
          <city>Beijing</city>
          <region></region>
          <code>100193</code>
          <country>China</country>
        </postal>
        <phone></phone>
        <email>ypl_ietf@163.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
		<author fullname="Meiling Chen" initials="M." surname="Chen">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street>32 Xuanwumen West Street, Xicheng District</street>
          <!-- Reorder these if your country does things differently -->
          <city>Beijing</city>
          <region></region>
          <code>100053</code>
          <country>China</country>
        </postal>
        <phone></phone>
        <email>chenmeiling@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    <author fullname="Li Su" initials="L." surname="Su">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street>32 Xuanwumen West Street, Xicheng District</street>
          <!-- Reorder these if your country does things differently -->
          <city>Beijing</city>
          <region></region>
          <code>100053</code>
          <country>China</country>
        </postal>
        <phone></phone>
        <email>suli@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    <author fullname="Ting Pang" initials="T." surname="Pang">
      <organization>Huawei Technology Co.,Ltd.</organization>
      <address>
        <postal>
          <street>127 Jinye Road, Yanta District</street>
          <!-- Reorder these if your country does things differently -->
          <city>Xi&apos;an</city>
          <region></region>
          <code>710077</code>
          <country>China</country>
        </postal>
        <phone></phone>
        <email>pangting@huawei.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>		
    <date day="20" month="February" year="2024" />

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>TEEP Working Group</workgroup>

    <keyword>Internet Draft</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, TEEP architecture and protocol could be used. This usecase illustrates the steps of how to deploy applications, containers, VMs and data in different confidential computing hardware in network. This document is a use case and extension of TEEP architecture and could provide guidance for cloud computing, MEC and other scenarios to use confidential computing in network.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <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 could be protected from illegal access or tampering. When using network to provision confidential computing, users need to choose appropriate steps to deploy their data and applications. This network could be in a cloud, MEC <xref target="MEC"/> or other network that provide confidential computing resource to users. For example in MEC, the autonomous vehicles could deploy private applications and data in confidential computing device to calculate on-vehicle and destination road information without knowing by MEC platform.</t>
      <t>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 <xref target="I-D.ietf-teep-architecture"/> and protocol <xref target="I-D.ietf-teep-protocol"/>. By referring TEEP architecture and protocol, applications and data could be provisioned in confidential process, confidential container and confidential VM in different hardware architecture. 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" title="Terminology">
		<section title="Terms">
			<t>The following terms are used in this document.</t>
			<ul spacing="normal">
				<li>Network Management/Orchestration Center(Network M/OC): M/OC 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/or applications that need to be deployed on confidential computing device.</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 or TAM, and could be deployed on TEE/REE or treated as application data. If the TAM owns the Package, there must have no Personalization Data inside this Package. 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>
		<section title="Requirements Language">
        <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">RFC 2119</xref>.</t>
      </section>
	</section>
	
	<section anchor="architecture" title="Notional Architecture of using confidential computing in network">
		<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 Network 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 align="center" anchor="arch" title="notional architecture of confidential computing in network">
			<artwork align="center"><![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" title="Use Cases">
		<t>The basic process of how a Network User utilizes confidential computing is shown below. At present, the main confidential instances types exist in industry are confidential process, confidential container and confidential VM. The definition of these instances could be found at <xref target="CCC-White-Paper"/>. Since confidential computing is a hardware-based technology, different hardware could support different confidential instances. 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 following use cases are possible packaging models and how to deploy them in different hardware architecture. In the following tables, 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. All these actions in the following use cases could be expressed by TEEP protocol.</t>
		<section anchor="ua-ta-and-pd-are-bundled-as-a-package">
			<name>Case 1: UA, TA and PD are bundled as a package</name>
			<t>In this case, UA, TA and PD are bundled as a package. This package is bundled by Network User and sends to TAM by specific netwwork. When TAM tries to deploy this package in confidential computing device, the process of TEEP is as follow.</t>
			<t><list style="numbers">
				<t>Network User requests for confidential computing resource to Network M/OC.</t>
				<t>M/OC orchestrates confidential computing device to undertake the request.</t>
				<t>TAM requests remote attestation to TEEP Agent, TEEP Agent then sends the evidence to TAM. TAM works as Verifier in <xref target="RFC9334"/>.</t>
				<t>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.</t>
				<t>TEEP Agent deploys TA and personalization data in TEE, then deploy UA in REE.</t>
			</list></t>
			<t>As for informing Network Users to develop their applications and data, the mapping of UA, TA and implementations are shown in figure 2. </t>
			<figure anchor="case1">
				<name>TEEP Implementation of Case 1</name>
				<artwork><![CDATA[
+-------------+--------------------------------------------------+
|Package Model|                Case 1 (UA, TA, PD)               |
+-------------+----------------+----------------+----------------+
|             |  Confidential  |  Confidential  |                |
|  Instance   |   Process in   |  Container in  |  Confidential  |
|    Type     |   Physical or  |  Physical or   |       VM       |
|             | Virtual Machine| Virtual Machine|                |
+-------------+----------------+----------------+----------------+
|  Hardware   |   TrustZone,   |  TrustZone,SGX,|                |
| Architecture|      SGX       |  SEV-SNP, CCA, | SEV-SNP,CCA,TDX| 
|             |                |      TDX       |                |
+-------------+----------------+----------------+----------------+
|             |{att TEEP Agent,|{att TEEP Agent,|{att TEEP Agent,|
|    Load     |  (UA,TA,PD)->  |  (UA,TA,PD)->  |  (UA,TA,PD)->  |
|  Sequence   |  Confidential  |  Confidential  |  Confidential  |
|             |    Process,    |   Container,   |       VM,      |
|             |    UA->REE}    |    UA->REE}    |    UA->REE}    |
+-------------+----------------+----------------+----------------+
]]></artwork>
        </figure>
	  </section>
		<section anchor="pd-is-a-separate-package-ta-and-ua-are-integrated">
			<name>Case 2: PD is a separate package, TA and UA are integrated</name>
			<t>In this use case, PD is a separate package, the UA and TA are integrated as a package. If Network User provides packages like this, the process of TEEP is as follow.</t>
			<t><list style="numbers">
				<t>Network User requests for confidential computing resource to Network M/OC.</t>
				<t>M/OC orchestrates confidential computing device to undertake the request.</t>
				<t>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 UA to load TA in SGX.)</t>
				<t>TAM requests remote attestation to TEEP Agent, TEEP Agent then sends the evidence to TAM. TAM works as Verifier in RATs architecture.</t>
				<t>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 TA.</t>
			</list></t>
			<t>The mapping of UA, TA and implementations are shown in figure 3.</t>
			<figure anchor="case2">
			<name>TEEP Implementation of Case 2</name>
				<artwork><![CDATA[
+-------------+--------------------------------------------------+
|Package Mode |               Case 2 (UA, TA) (PD)               |
+-------------+----------------+----------------+----------------+
|             |  Confidential  |  Confidential  |                |
|  Instance   |   Process in   |  Container in  |  Confidential  |
|    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->REE,    |
|             |TA->Confidential|TA->Confidential|TA->Confidential|
|    Load     |    Process,    |   Container,   |       VM,      |
|  Sequence   | att TEEP Agent,| att TEEP Agent,| att TEEP Agent,|
|             |    PD->TA}     |    PD->TA}     |     PD->TA}    |
+-------------+----------------+----------------+----------------+
]]></artwork>
        </figure>
      </section>
	  <section anchor="ta-and-pd-seperate-with-or-without-ua">
			<name>Case 3: TA and PD are separate packages, with or without UA</name>
			<t>In this case, Network User provides TA and PD as separate packages with or without UA. The process of TEEP in this case is as follow.</t>
			<t><list style="numbers">
				<t>Network User requests for confidential computing resource to Network M/OC.</t>
				<t>TAM in M/OC orchestrates confidential computing device to undertake the request.</t>
				<t>Network User transfers UA to TAM, then TAM deploys UA in REE.</t>
				<t>Network User transfers TA to TAM, then TAM transfers TA to TEEP Agent.</t>
				<t>TAM requests remote attestation to TEEP Agent, TEEP Agent then sends the evidence to TAM. TAM works as Verifier in RATs architecture.</t>
				<t>After verification, Network User works as Relying Party to receive the attestation result. If positive, Network User establishes secure channel with TA and transfers PD to it.</t>
			</list></t>
			<figure anchor="case3">
				<name>TEEP Implementation of Case 3</name>
				<artwork><![CDATA[
+-------------+--------------------------------------------------+
|Package Mode |        Case 3 (TA),(PD) or (TA),(PD),(UA)        |
+-------------+----------------+----------------+----------------+
|             |  Confidential  |  Confidential  |                |
|  Instance   |   Process in   |  Container in  |  Confidential  |
|    Type     |   Physical or  |  Physical or   |       VM       |
|             | Virtual Machine| Virtual Machine|                |
+-------------+----------------+----------------+----------------+
|  Hardware   |    TrustZone,  | TrustZone, SGX,|   SEV,CCA,TDX  |
| Architecture|      SGX       |  SEV, CCA, TDX |                |
+-------------+----------------+----------------+----------------+
|    Load     |    {UA->REE,   |    {UA->REE,   |   {UA->REE,    |
|  Sequence   |TA->Confidential|TA->Confidential|TA->Confidential|
|             |    Process,    |    Container   |       VM,      |
|             | att TEEP Agent,| att TEEP Agent,| att TEEP Agent,|
|             |    PD->TA}     |    PD->TA}     |    PD->TA}     |
+-------------+----------------+----------------+----------------+
]]></artwork>
        </figure>
      </section>
	  <section anchor="ta-and-pd-are-bundled-as-a-package-with-or-without-ua">
			<name>Case 4: TA and PD are bundled as a package, with or without UA</name>
			<t>In this case, the process of TEEP is as follow.</t>
			<t><list style="numbers">
				<t>Network User requests for confidential computing resource to Network M/OC.</t>
				<t>TAM in M/OC orchestrates confidential computing device to undertake the request.</t>
				<t>If there has UA, Network User deploys UA in REE.</t>
				<t>TAM requests remote attestation to TEEP Agent, TEEP Agent then sends the evidence to TAM. The TAM works as Verifier in RATs architecture.</t>
				<t>After verification, Network User works as Relying Party to receive the attestation result. If positive, Network User establishes secure channel with TEEP Agent and transfers TA and PD package to TEEP Agent.</t>
			</list></t>
			<figure anchor="case4">
			<name>TEEP Implementation of Case 4</name>
				<artwork><![CDATA[
+-------------+--------------------------------------------------+
|Package Mode |      Case 4 (TA, PD) (UA) or (TA, PD)            |
+-------------+----------------+----------------+----------------+
|             |  Confidential  |  Confidential  |                |
|  Instance   |   Process in   |  Container in  |  Confidential  |
|    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->REE,   |
|    Load     | att TEEP Agent,| att TEEP Agent,| att TEEP Agent,|
|  Sequence   |   (TA,PD)->    |   (TA,PD)->    |    (TA,PD)->   |
|             |  Confidential  |  Confidential  |  Confidential  |
|             |   Process}     |   Container}   |       VM}      | 
+-------------+----------------+----------------+----------------+
]]></artwork>
        </figure>
      </section>
	  <section anchor="pd-and-ua-are-bundled-as-a-package">
	  	<name>Case 5: PD and UA are bundled as a package, TA is a separate package</name>
	  	<t>In this case, the process of TEEP is as follow.</t>
		<t><list style="numbers">
			<t>Network User requests for confidential computing resource to Network M/OC.</t>
			<t>TAM in M/OC orchestrates confidential computing device to undertake the request.</t>
			<t>TAM requests remote attestation to TEEP Agent, TEEP Agent then sends the evidence to TAM. The TAM works as Verifier in RATs architecture.</t>
			<t>After verification, Network User works as Relying Party to receive the attestation result. If positive, TAM deploys TA in TEE.</t>
			<t>TA decrypts the PD and UA package inside TEE.</t>
		</list></t>
		<figure anchor="case5">
		<name>TEEP Implementation of Case 5</name>
			<artwork><![CDATA[
+-------------+--------------------------------------------------+
|Package Mode |               Case 5 (UA, PD) (TA)               |
+-------------+----------------+----------------+----------------+
|             |  Confidential  |  Confidential  |                |
|  Instance   |   Process in   |  Container in  |  Confidential  |
|    Type     |   Physical or  |  Physical or   |       VM       |
|             | Virtual Machine| Virtual Machine|                |
+-------------+----------------+----------------+----------------+
|  Hardware   |    TrustZone,  | TrustZone, SGX,|                |
| Architecture|      SGX       |  SEV-SNP, CCA, |   SEV,CCA,TDX  |
|             |                |      TDX       |                |
+-------------+----------------+----------------+----------------+
|             |{att TEEP Agent,|{att TEEP Agent,|{att TEEP Agent,|
|    Load     |      TA->      |      TA->      |      TA->      |
|  Sequence   |  Confidential  |  Confidential  |  Confidential  |
|             |    Process,    |   Container,   |      VM,       |
|             |  (UA,PD)->TA}  |  (UA,PD)->TA}  |  (UA,PD)->TA}  |
+-------------+----------------+----------------+----------------+
]]></artwork>
        </figure>
	  </section>
	</section>
		
	<section title="IANA Considerations">
		<t>This document does not require actions by IANA. </t>
	</section>

	<section title="Security Considerations">
        <t>Besides the security considerations in TEEP architecture, there is no more security and privacy issues in this document.</t>
	</section>
	<section title="Acknowledgements">
		<t>Many thanks to Dave Thaler, Eric Voit, Hannes Tschofenig, the CCC TAC meeting and other people who provide comments and suggestions.</t>
	</section>
  </middle>
	
  <back>
	<references title="Normative Reference">
		&I-D.ietf-teep-architecture;
		&RFC2119;
		&I-D.ietf-teep-protocol;
		&RFC9334;
			
	</references>
	<references title="Informative 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>
					<organization>NIST</organization>
				</author>
				<date year="2020" month="June"/>
			</front>
        </reference>
		<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>
					<organization>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>
					<organization>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>
					<organization>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>
					<organization>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>
					<organization>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>
					<organization>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>
					<organization>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>
					<organization>Intel</organization>
				</author>
				<date year="2021" month="August" />
			</front>
		</reference>
				
	</references>
      
  <section title="Submodules in TEEP Agent">
    <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.</t>
    <t>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.</t>
    <t>In SEV and other architectures that support whole guest VM as a TEE, TEEP Agent doesn&apos;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>
</rfc>