<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.19 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc rfcedstyle="yes"?>
<?rfc toc="yes"?>
<?rfc tocindent="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-teep-otrp-over-http-13" category="std">

  <front>
    <title abbrev="TEEP HTTP Transport">HTTP Transport for Trusted Execution Environment Provisioning: Agent Initiated Communication</title>

    <author initials="D." surname="Thaler" fullname="Dave Thaler">
      <organization>Microsoft</organization>
      <address>
        <email>dthaler@microsoft.com</email>
      </address>
    </author>

    <date year="2022" month="February" day="28"/>

    <area>Security</area>
    <workgroup>TEEP WG</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>The Trusted Execution Environment Provisioning (TEEP) Protocol is used to manage code and
configuration data in a Trusted Execution
Environment (TEE).  This document specifies the HTTP transport for TEEP communication where
a Trusted Application Manager (TAM) service is used to manage code and data in TEEs on devices that can initiate
communication to the TAM.  An implementation of this document can (if desired) run outside of any TEE,
but interacts with a TEEP implementation that runs inside a TEE.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<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.
The Trusted Execution Environment Provisioning (TEEP) protocol is designed to
provision authorized code and configuration into TEEs.</t>

<t>To be secure against malware, a TEEP implementation (referred to as a
TEEP “Agent” on the client side, and a “Trusted Application Manager (TAM)” on
the server side) SHOULD themselves run inside a TEE, although a TAM running
outside a TEE is also supported. However, the transport for TEEP,
along with the underlying TCP/IP stack, does not necessarily run inside a TEE.  This split allows
the set of highly trusted code to be kept as small as possible, including allowing code
(e.g., TCP/IP or QUIC <xref target="RFC9000"/>) that only sees encrypted messages, to be kept out of the TEE.</t>

<t>The TEEP specification <xref target="I-D.ietf-teep-protocol"/> (like its predecessors
<xref target="I-D.ietf-teep-opentrustprotocol"/> and <xref target="GP-OTrP"/>) describes the
behavior of TEEP Agents and TAMs, but does not specify the details of the transport.
The purpose of this document is to provide such details.  That is,
a TEEP-over-HTTP (TEEP/HTTP) implementation delivers messages up to a TEEP
implementation, and accepts messages from the TEEP implementation to be sent over a network.
The TEEP-over-HTTP implementation can be implemented either outside a TEE (i.e., in
a TEEP “Broker”) or inside a TEE.</t>

<t>There are two topological scenarios in which TEEP could be deployed:</t>

<t><list style="numbers">
  <t>TAMs are reachable on the Internet, and Agents are on networks that might be
behind a firewall or stateful NAT, so that communication must be initiated by an Agent.
Thus, the Agent has an HTTP Client and the TAM has an HTTP Server.</t>
  <t>Agents are reachable on the Internet, and TAMs are on networks that might be
behind a firewall or stateful NAT, so that communication must be initiated by a TAM.
Thus, the Agent has an HTTP Server and the TAM has an HTTP Client.</t>
</list></t>

<t>The remainder of this document focuses primarily on the first scenario as depicted
in <xref target="communication-model"/>, but some sections (<xref target="use-of-http"/>
and <xref target="security"/>) may apply to the second scenario as well.  A fuller
discussion of the second scenario may be handled by a separate document.</t>

<figure title="Agent Initiated Communication" anchor="communication-model"><artwork><![CDATA[
    +------------------+           TEEP           +------------------+
    |    TEEP Agent    | <----------------------> |        TAM       |
    +------------------+                          +------------------+
             |                                              |
    +------------------+      TEEP-over-HTTP      +------------------+
    | TEEP/HTTP Client | <----------------------> | TEEP/HTTP Server |
    +------------------+                          +------------------+
             |                                              |
    +------------------+           HTTP           +------------------+
    |    HTTP Client   | <----------------------> |    HTTP Server   |
    +------------------+                          +------------------+
]]></artwork></figure>

<t>This document specifies the middle layer (TEEP-over-HTTP), whereas
the top layer (TEEP) is specified in <xref target="I-D.ietf-teep-protocol"/>.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”,
and “OPTIONAL” in this document are to be interpreted as described
in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear
in all capitals, as shown here.</t>

<t>This document also uses various terms defined in
<xref target="I-D.ietf-teep-architecture"/>, including Trusted Execution Environment (TEE),
Trusted Application (TA), Trusted Application Manager (TAM), TEEP Agent, TEEP Broker,
and Rich Execution Environment (REE).</t>

</section>
<section anchor="teep-broker" title="TEEP Broker">

<t>Section 6 of the TEEP architecture <xref target="I-D.ietf-teep-architecture"/> defines a TEEP “Broker”
as being a component on the device, but outside the TEE, that facilitates communication
with a TAM. That document further explains that the protocol layer at which the
TEEP broker operates may vary by implementation, and it depicts several exemplary models.
An implementation is free to choose any of these models, although model A is the one we
will use in our examples.</t>

<t>Passing information from an REE component to a TEE component is typically spoken of as
being passed “in” to the TEE, and information passed in the opposite direction is spoken of
as being passed “out”.  In the protocol layering sense, information is typically spoken
of as being passed “up” or “down” the stack.  Since the layer at which information is
passed in/out may vary by implementation, we will generally use “up” and “down” in this
document.</t>

<section anchor="use-of-abstract-apis" title="Use of Abstract APIs">

<t>This document refers to various APIs between a TEEP implementation and a TEEP/HTTP implementation
in the abstract, meaning the literal syntax and programming language
are not specified, so that various concrete APIs can be designed
(outside of the IETF) that are compliant.</t>

<t>Some TEE architectures (e.g., SGX) may support API calls both into and out of a TEE.
In other TEE architectures, there may be no calls out from a TEE, but merely data returned
from calls into a TEE.  This document attempts to be agnostic as to the
concrete API architecture for Broker/Agent communication.  Since in model A,
the Broker/Agent communication is done at the layer between the TEEP and TEEP/HTTP
implementations, and there may be some architectures that do not support calls out
of the TEE (which would be downcalls from TEEP in model A), we will refer to passing
information up to the TEEP implementation as API calls, but will simply refer to
“passing data” back down from a TEEP implementation.  A concrete API might pass data
back via an API downcall or via data returned from an API upcall.</t>

<t>This document will also refer to passing “no” data back out of a TEEP implementation.
In a concrete API, this might be implemented by not making any downcall, or by
returning 0 bytes from an upcall, for example.</t>

</section>
</section>
<section anchor="use-of-http" title="Use of HTTP as a Transport">

<t>This document uses HTTP <xref target="I-D.ietf-httpbis-semantics"/> as a transport.
For the motivation behind the HTTP recommendations in this document,
see the discussion of HTTP as a transport in <xref target="I-D.ietf-httpbis-bcp56bis"/>.</t>

<t>Redirects MUST NOT be automatically followed.
Cookies are not used.</t>

<t>Content is not intended to be treated as active by browsers and so HTTP responses
with content SHOULD have the following header fields as explained in Section 4.13 of
<xref target="I-D.ietf-httpbis-bcp56bis"/> (using the TEEP media type defined
in <xref target="I-D.ietf-teep-protocol"/>):</t>

<figure><artwork><![CDATA[
    Content-Type: application/teep+cbor
    X-Content-Type-Options: nosniff
    Content-Security-Policy: default-src 'none'
    Referrer-Policy: no-referrer
]]></artwork></figure>

<t>Only the POST method is specified for TAM resources exposed over HTTP.
A URI of such a resource is referred to as a “TAM URI”.  A TAM URI can
be any HTTP(S) URI.  The URI to use is configured in a TEEP Agent
via an out-of-band mechanism, as discussed in the next section.</t>

<t>It is strongly RECOMMENDED that implementations use HTTPS.
Although TEEP is protected end-to-end inside of HTTP, there is still value
in using HTTPS for transport, since HTTPS can provide additional protections
as discussed in Sections 4.4.2 and 6 of <xref target="I-D.ietf-httpbis-bcp56bis"/>.</t>

<t>However, there may be constrained nodes where code space is an
issue. <xref target="RFC7925"/> provides TLS profiles that can be used in many
constrained nodes, but in rare cases the most constrained nodes
might need to use HTTP without a TLS stack, relying on the end-to-end
security provided by the TEEP protocol.</t>

<t>When HTTPS is used, clients MUST use the procedures detailed in
Section 4.3.4 of <xref target="I-D.ietf-httpbis-semantics"/> to verify the authenticity of the server.
See <xref target="BCP195"/> for additional TLS recommendations
and <xref target="RFC7925"/> for TLS recommendations related to IoT devices.</t>

</section>
<section anchor="teephttp-client-behavior" title="TEEP/HTTP Client Behavior">

<section anchor="request-ta" title="Receiving a request to install a new Trusted Application">

<t>In some environments, an application installer can determine (e.g., from an application manifest)
that the application being installed or updated has a dependency on a given Trusted Application (TA)
being available in a given type of TEE. In such a case, it will notify a TEEP Broker, where
the notification will contain the following:</t>

<t><list style="symbols">
  <t>A unique identifier of the TA</t>
  <t>Optionally, any metadata to provide to the TEEP Agent.  This might
include a TAM URI provided in the application manifest, for example.</t>
  <t>Optionally, any requirements that may affect the choice of TEE,
if multiple are available to the TEEP Broker.</t>
</list></t>

<t>When a TEEP Broker receives such a notification, it first identifies
in an implementation-dependent way which TEE (if any) is most appropriate
based on the constraints expressed.  If there is only one TEE, the choice
is obvious.  Otherwise, the choice might be based on factors such as
capabilities of available TEE(s) compared with TEE requirements in the notification.
Once the TEEP Broker picks a TEE, it passes the notification to the TEEP/HTTP Client for that TEE.</t>

<t>The TEEP/HTTP Client then informs the TEEP Agent in that TEE by invoking
an appropriate “RequestTA” API that identifies the TA needed and any other
associated metadata.  The TEEP/HTTP Client need not know whether the TEE already has
such a TA installed or whether it is up to date.</t>

<t>The TEEP Agent will either (a) pass no data back, (b) pass back a TAM URI to connect to,
or (c) pass back a message buffer and TAM URI to send it to.  The TAM URI
passed back may or may not be the same as the TAM URI, if any, provided by
the TEEP/HTTP Client, depending on the TEEP Agent’s configuration.  If they differ,
the TEEP/HTTP Client MUST use the TAM URI passed back.</t>

<section anchor="client-start" title="Session Creation">

<t>If no data is passed back, the TEEP/HTTP Client simply informs its caller (e.g., the
application installer) of success.</t>

<t>If the TEEP Agent passes back a TAM URI with no message buffer, the TEEP/HTTP Client
attempts to create session state,
then sends an HTTP(S) POST to the TAM URI with an Accept header field with the TEEP media type
specified in <xref target="I-D.ietf-teep-protocol"/>,
and an empty body. The HTTP request is then associated with the TEEP/HTTP Client’s session state.</t>

<t>If the TEEP Agent instead passes back a TAM URI with a message buffer, the TEEP/HTTP Client
attempts to create session state and handles the message buffer as
specified in <xref target="send-msg"/>.</t>

<t>Session state consists of:</t>

<t><list style="symbols">
  <t>Any context (e.g., a handle) that identifies the API session with the TEEP Agent.</t>
  <t>Any context that identifies an HTTP request, if one is outstanding.  Initially, none exists.</t>
</list></t>

</section>
</section>
<section anchor="receiving-a-notification-that-a-trusted-application-is-no-longer-needed" title="Receiving a notification that a Trusted Application is no longer needed">

<t>In some environments, an application installer can determine (e.g., from an application manifest)
that a given Trusted Application is no longer needed, such as
if the application that previously depended on the TA is uninstalled
or updated in a way that removes the dependency.
In such a case, it will notify a TEEP Broker, where
the notification will contain the following:</t>

<t><list style="symbols">
  <t>A unique identifier of the TA</t>
  <t>Optionally, any metadata to provide to the TEEP Agent.  This might
include a TAM URI provided in the original application manifest, for example.</t>
  <t>Optionally, any requirements that may affect the choice of TEE,
if multiple are available to the TEEP Broker.</t>
</list></t>

<t>When a TEEP Broker receives such a notification, it first identifies
in an implementation-dependent way which TEE (if any) is believed to
contain the TA that is no longer needed, similar to the process in <xref target="request-ta"/>.
Once the TEEP Broker picks a TEE, it passes the notification to the TEEP/HTTP
Client for that TEE.</t>

<t>The TEEP/HTTP Client then informs the TEEP Agent in that TEE by invoking
an appropriate “UnrequestTA” API that identifies the unneeded TA.
The TEEP/HTTP Client need not know whether the TEE actually has
the TA installed.</t>

<t>The TEEP Agent will either (a) pass no data back, (b) pass back a TAM URI to connect to,
or (c) pass back a message buffer and TAM URI to send it to.  The TAM URI
passed back may or may not be the same as the TAM URI, if any, provided by
the TEEP/HTTP Client, depending on the TEEP Agent’s configuration.  If they differ,
the TEEP/HTTP Client MUST use the TAM URI passed back.</t>

<t>Processing then continues as in <xref target="client-start"/>.</t>

</section>
<section anchor="send-msg" title="Getting a TAM URI and message buffer back from a TEEP Agent">

<t>When a TEEP Agent passes a TAM URI and optionally a message buffer to a TEEP/HTTP Client, the
TEEP/HTTP Client MUST do the following, using the TEEP/HTTP Client’s session state associated
with its API call to the TEEP Agent.</t>

<t>The TEEP/HTTP Client sends an HTTP POST request to the TAM URI with Accept
and Content-Type header fields with the TEEP media type, and a body
containing the TEEP message buffer (if any) provided by the TEEP Agent.
The HTTP request is then associated with the TEEP/HTTP Client’s session state.</t>

</section>
<section anchor="http-response" title="Receiving an HTTP response">

<t>When an HTTP response is received in response to a request associated
with a given session state, the TEEP/HTTP Client MUST do the following.</t>

<t>If the HTTP response body is empty, the TEEP/HTTP Client’s task is complete, and
it can delete its session state, and its task is done.</t>

<t>If instead the HTTP response body is not empty, the TEEP/HTTP Client passes
(e.g., using the “ProcessTeepMessage” API as mentioned in Section 6.2.1 of <xref target="I-D.ietf-teep-architecture"/>)
the response body up to the TEEP Agent
associated with the session.  The TEEP Agent will then either pass no data back,
or pass back a message buffer.</t>

<t>If no data is passed back, the TEEP/HTTP Client’s task is complete, and it
can delete its session state, and inform its caller (e.g., the application
installer) of success.</t>

<t>If instead the TEEP Agent passes back a message buffer, the TEEP/HTTP Client
handles the message buffer as specified in <xref target="send-msg"/>.</t>

</section>
<section anchor="handling-checks-for-policy-changes" title="Handling checks for policy changes">

<t>An implementation MUST provide a way to periodically check for TAM policy
changes, such as a Trusted Application needing to be deleted from a TEE
because it is no longer permitted, or needing to be updated to a later
version.
This can be done in any implementation-specific manner, such as any of the
following or a combination thereof:</t>

<t>A) The TEEP/HTTP Client might call up to the TEEP Agent at an interval previously
   specified by the TEEP Agent.
   This approach requires that the TEEP/HTTP Client be capable of running a periodic timer.</t>

<t>B) The TEEP/HTTP Client might be informed when an existing TA is invoked, and call up to the TEEP Agent if
   more time has passed than was previously specified by the TEEP Agent.  This approach allows
   the device to go to sleep for a potentially long period of time.</t>

<t>C) The TEEP/HTTP Client might be informed when any attestation attempt determines that the device
   is out of compliance, and call up to the TEEP Agent to remediate.</t>

<t>The TEEP/HTTP Client informs the TEEP Agent by invoking an appropriate “RequestPolicyCheck” API.
The TEEP Agent will either (a) pass no data back, (b) pass back a TAM URI to connect to,
or (c) pass back a message buffer and TAM URI to send it to.  Processing then continues
as specified in <xref target="client-start"/>.</t>

<t>The TEEP Agent might need to talk to multiple TAMs, however, as shown in
Figure 1 of <xref target="I-D.ietf-teep-architecture"/>.  To accomplish this,
the TEEP/HTTP Client keeps invoking the “RequestPolicyCheck” API until
the TEEP Agent passes no data back, so that the TEEP Agent can return
each TAM URI in response to a separate API call.</t>

</section>
<section anchor="error-handling" title="Error handling">

<t>If any local error occurs where the TEEP/HTTP Client cannot get
a message buffer (empty or not) back from the TEEP Agent, the
TEEP/HTTP Client deletes its session state, and informs its caller (if any, e.g.,
the application installer) of a failure.</t>

<t>If any HTTP request results in an HTTP error response or
a lower layer error (e.g., network unreachable), the
TEEP/HTTP Client calls the TEEP Agent’s “ProcessError” API, and then
deletes its session state and informs its caller of a failure.</t>

</section>
</section>
<section anchor="teephttp-server-behavior" title="TEEP/HTTP Server Behavior">

<section anchor="receiving-an-http-post-request" title="Receiving an HTTP POST request">

<t>If the TAM does not receive the appropriate Content-Type header
field value, the TAM SHOULD fail the request, returning a 415 Unsupported Media Type
response.  Similarly, if an appropriate Accept header field is not
present, the TAM SHOULD fail the request with an appropriate error response.
(This is for consistency with common implementation practice to allow
the HTTP server to choose a default error response, since in some
implementations the choice is done at the HTTP layer rather than the
layer at which TEEP-over-HTTP would be implemented.)
Otherwise, processing continues as follows.</t>

<t>When an HTTP POST request is received with an empty body, this indicates
a request for a new TEEP session, and
the TEEP/HTTP Server invokes the TAM’s “ProcessConnect” API.  The TAM will then
pass back a message buffer.</t>

<t>When an HTTP POST request is received with a non-empty body, this indicates a
message on an existing TEEP session, and the TEEP/HTTP Server passes the
request body to the TAM (e.g., using the “ProcessTeepMessage” API mentioned in
<xref target="I-D.ietf-teep-architecture"/>). The TAM will
then pass back a (possibly empty) message buffer.</t>

</section>
<section anchor="getting-an-empty-buffer-back-from-the-tam" title="Getting an empty buffer back from the TAM">

<t>If the TAM passes back an empty buffer, the TEEP/HTTP Server sends a successful
(2xx) response with no body.  It SHOULD be status 204 (No Content).</t>

</section>
<section anchor="getting-a-message-buffer-from-the-tam" title="Getting a message buffer from the TAM">

<t>If the TAM passes back a non-empty buffer, the TEEP/HTTP Server
generates a successful (2xx) response with a Content-Type
header field with the TEEP media type, and with the message buffer as the body.</t>

</section>
<section anchor="error-handling-1" title="Error handling">

<t>If any error occurs where the TEEP/HTTP Server cannot get
a message buffer (empty or not) back from the TAM, the
TEEP/HTTP Server generates an appropriate HTTP 5xx error response.</t>

</section>
</section>
<section anchor="sample-message-flow" title="Sample message flow">

<t>The following shows a sample TEEP message flow that uses application/teep+cbor
as the Content-Type.</t>

<t><list style="numbers">
  <t>An application installer determines (e.g., from an application manifest)
that the application has a dependency on TA “X”, and passes
this notification to the TEEP Broker.  The TEEP Broker
picks a TEE (e.g., the only one available) based on
this notification, and passes the information to the
TEEP/HTTP Cient for that TEE.</t>
  <t>The TEEP/HTTP Client calls the TEEP Agent’s “RequestTA” API, passing
TA Needed = X.</t>
  <t>The TEEP Agent finds that no such TA is already installed,
but that it can be obtained from a given TAM.  The TEEP
Agent passes back the TAM URI (e.g., “https://example.com/tam”)
to the TEEP/HTTP Client.</t>
  <t>The TEEP/HTTP Client sends an HTTP POST request to the TAM URI:  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
        POST /tam HTTP/1.1
        Host: example.com
        Accept: application/teep+cbor
        Content-Length: 0
        User-Agent: Foo/1.0
]]></artwork></figure>
  <vspace blankLines='1'/>
where the TEEP/HTTP Client fills in an implementation-specific value in the
User-Agent header field.</t>
  <t>On the TAM side, the TEEP/HTTP Server receives the HTTP POST request, and calls
the TAM’s “ProcessConnect” API.</t>
  <t>The TAM generates a TEEP message (where typically QueryRequest
is the first message) and passes it to the TEEP/HTTP Server.</t>
  <t>The TEEP/HTTP Server sends an HTTP successful response with
the TEEP message in the body:  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
        HTTP/1.1 200 OK
        Content-Type: application/teep+cbor
        Content-Length: [length of TEEP message here]
        Server: Bar/2.2
        X-Content-Type-Options: nosniff
        Content-Security-Policy: default-src 'none'
        Referrer-Policy: no-referrer

        [TEEP message here]
]]></artwork></figure>
  <vspace blankLines='1'/>
where the TEEP/HTTP Server fills in an implementation-specific value in the
Server header field.</t>
  <t>Back on the TEEP Agent side, the TEEP/HTTP Client gets the HTTP response, extracts the TEEP
message and pass it up to the TEEP Agent.</t>
  <t>The TEEP Agent processes the TEEP message, and generates a TEEP
response (e.g., QueryResponse) which it passes back to the TEEP/HTTP Client.</t>
  <t>The TEEP/HTTP Client gets the TEEP message buffer and sends
an HTTP POST request to the TAM URI, with the TEEP message in the body:  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
       POST /tam HTTP/1.1
       Host: example.com
       Accept: application/teep+cbor
       Content-Type: application/teep+cbor
       Content-Length: [length of TEEP message here]
       User-Agent: Foo/1.0

       [TEEP message here]
]]></artwork></figure>
  </t>
  <t>The TEEP/HTTP Server receives the HTTP POST request, and passes the payload up
to the TAM.</t>
  <t>Steps 6-11 are then repeated until the TAM passes no data back
to the TEEP/HTTP Server in step 6.</t>
  <t>The TEEP/HTTP Server sends an HTTP successful response with
no body:  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
       HTTP/1.1 204 No Content
       Server: Bar/2.2
]]></artwork></figure>
  </t>
  <t>The TEEP/HTTP Client deletes its session state.</t>
</list></t>

</section>
<section anchor="security" title="Security Considerations">

<t><xref target="use-of-http"/> discussed security recommendations for HTTPS transport
of TEEP messages. See Section 6 of <xref target="I-D.ietf-httpbis-bcp56bis"/>
for additional discussion of HTTP(S) security considerations.
See section 9 of <xref target="I-D.ietf-teep-architecture"/> for security considerations
specific to the use of TEEP.</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>This document has no actions for IANA.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>




<reference anchor='I-D.ietf-teep-protocol'>
   <front>
      <title>Trusted Execution Environment Provisioning (TEEP) Protocol</title>
      <author fullname='Hannes Tschofenig'>
	 <organization>Arm Ltd.</organization>
      </author>
      <author fullname='Mingliang Pei'>
	 <organization>Broadcom</organization>
      </author>
      <author fullname='David Wheeler'>
	 <organization>Amazon</organization>
      </author>
      <author fullname='Dave Thaler'>
	 <organization>Microsoft</organization>
      </author>
      <author fullname='Akira Tsukamoto'>
	 <organization>AIST</organization>
      </author>
      <date day='25' month='October' year='2021'/>
      <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-07'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-teep-protocol-07.txt' type='TXT'/>
</reference>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/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='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<date month='May' year='2017'/>
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>


<reference anchor='I-D.ietf-httpbis-semantics'>
   <front>
      <title>HTTP Semantics</title>
      <author fullname='Roy T. Fielding'>
	 <organization>Adobe</organization>
      </author>
      <author fullname='Mark Nottingham'>
	 <organization>Fastly</organization>
      </author>
      <author fullname='Julian Reschke'>
	 <organization>greenbytes GmbH</organization>
      </author>
      <date day='12' month='September' year='2021'/>
      <abstract>
	 <t>   The Hypertext Transfer Protocol (HTTP) is a stateless application-
   level protocol for distributed, collaborative, hypertext information
   systems.  This document describes the overall architecture of HTTP,
   establishes common terminology, and defines aspects of the protocol
   that are shared by all versions.  In this definition are core
   protocol elements, extensibility mechanisms, and the &quot;http&quot; and
   &quot;https&quot; Uniform Resource Identifier (URI) schemes.

   This document updates RFC 3864 and obsoletes RFC 2818, RFC 7231, RFC
   7232, RFC 7233, RFC 7235, RFC 7538, RFC 7615, RFC 7694, and portions
   of RFC 7230.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-httpbis-semantics-19'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-httpbis-semantics-19.txt' type='TXT'/>
</reference>



<reference anchor='RFC7925' target='https://www.rfc-editor.org/info/rfc7925'>
<front>
<title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
<author fullname='H. Tschofenig' initials='H.' role='editor' surname='Tschofenig'><organization/></author>
<author fullname='T. Fossati' initials='T.' surname='Fossati'><organization/></author>
<date month='July' year='2016'/>
<abstract><t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t><t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery.  The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t></abstract>
</front>
<seriesInfo name='RFC' value='7925'/>
<seriesInfo name='DOI' value='10.17487/RFC7925'/>
</reference>



<reference anchor='BCP195' target='https://www.rfc-editor.org/info/rfc7525'>
<front>
<title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
<author fullname='Y. Sheffer' initials='Y.' surname='Sheffer'><organization/></author>
<author fullname='R. Holz' initials='R.' surname='Holz'><organization/></author>
<author fullname='P. Saint-Andre' initials='P.' surname='Saint-Andre'><organization/></author>
<date month='May' year='2015'/>
<abstract><t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are widely used to protect data exchanged over application protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP.  Over the last few years, several serious attacks on TLS have emerged, including attacks on its most commonly used cipher suites and their modes of operation.  This document provides recommendations for improving the security of deployed services that use TLS and DTLS. The recommendations are applicable to the majority of use cases.</t></abstract>
</front>
<seriesInfo name='BCP' value='195'/>
<seriesInfo name='RFC' value='7525'/>
<seriesInfo name='DOI' value='10.17487/RFC7525'/>
</reference>




    </references>

    <references title='Informative References'>

<reference anchor="GP-OTrP" target="https://globalplatform.org/specs-library/tee-management-framework-open-trust-protocol/">
  <front>
    <title>TEE Management Framework: Open Trust Protocol (OTrP) Profile Version 1.0</title>
    <author >
      <organization>Global Platform</organization>
    </author>
    <date year="2019" month="May"/>
  </front>
  <seriesInfo name="Global Platform" value="GPD_SPE_123"/>
</reference>




<reference anchor='RFC9000' target='https://www.rfc-editor.org/info/rfc9000'>
<front>
<title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
<author fullname='J. Iyengar' initials='J.' role='editor' surname='Iyengar'><organization/></author>
<author fullname='M. Thomson' initials='M.' role='editor' surname='Thomson'><organization/></author>
<date month='May' year='2021'/>
<abstract><t>This document defines the core of the QUIC transport protocol.  QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances.  Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t></abstract>
</front>
<seriesInfo name='RFC' value='9000'/>
<seriesInfo name='DOI' value='10.17487/RFC9000'/>
</reference>


<reference anchor='I-D.ietf-teep-opentrustprotocol'>
   <front>
      <title>The Open Trust Protocol (OTrP)</title>
      <author fullname='Mingliang Pei'>
	 <organization>Symantec</organization>
      </author>
      <author fullname='Andrew Atyeo'>
	 <organization>Intercede</organization>
      </author>
      <author fullname='Nick Cook'>
	 <organization>ARM Ltd.</organization>
      </author>
      <author fullname='Minho Yoo'>
	 <organization>IoTrust</organization>
      </author>
      <author fullname='Hannes Tschofenig'>
	 <organization>ARM Ltd.</organization>
      </author>
      <date day='15' month='May' year='2019'/>
      <abstract>
	 <t>   This document specifies the Open Trust Protocol (OTrP), a protocol
   that follows the Trust Execution Environment Provisioning (TEEP)
   architecture and provides a message protocol that provisions and
   manages Trusted Applications into a device with a Trusted Execution
   Environment (TEE).

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teep-opentrustprotocol-03'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-teep-opentrustprotocol-03.txt' type='TXT'/>
</reference>


<reference anchor='I-D.ietf-teep-architecture'>
   <front>
      <title>Trusted Execution Environment Provisioning (TEEP) Architecture</title>
      <author fullname='Mingliang Pei'>
	 <organization>Broadcom</organization>
      </author>
      <author fullname='Hannes Tschofenig'>
	 <organization>Arm Limited</organization>
      </author>
      <author fullname='Dave Thaler'>
	 <organization>Microsoft</organization>
      </author>
      <author fullname='David Wheeler'>
	 <organization>Amazon</organization>
      </author>
      <date day='12' month='July' year='2021'/>
      <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-15'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-teep-architecture-15.txt' type='TXT'/>
</reference>


<reference anchor='I-D.ietf-httpbis-bcp56bis'>
   <front>
      <title>Building Protocols with HTTP</title>
      <author fullname='Mark Nottingham'>
	 </author>
      <date day='27' month='August' year='2021'/>
      <abstract>
	 <t>   Applications often use HTTP as a substrate to create HTTP-based APIs.
   This document specifies best practices for writing specifications
   that use HTTP to define new application protocols.  It is written
   primarily to guide IETF efforts to define application protocols using
   HTTP for deployment on the Internet, but might be applicable in other
   situations.

   This document obsoletes [RFC3205].

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-httpbis-bcp56bis-15'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-httpbis-bcp56bis-15.txt' type='TXT'/>
</reference>




    </references>




  </back>

<!-- ##markdown-source:
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

-->

</rfc>

