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


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc compact="yes"?>
<?rfc subcompact="yes"?>

<rfc ipr="trust200902" docName="draft-openhttpa-protocol-00" category="std" consensus="true" submissionType="IETF" obsoletes="draft-sandowicz-httpbis-httpa2" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="OpenHTTPA">OpenHTTPA: Hypertext Transfer Protocol with Attestation</title>

    <author initials="G." surname="King" fullname="Gordon King">
      <organization>The `OpenHTTPA` Foundation (openhttpa.org)</organization>
      <address>
        <email>info@openhttpa.org</email>
      </address>
    </author>
    <author initials="H." surname="Wang" fullname="Hans Wang">
      <organization>The `OpenHTTPA` Foundation (openhttpa.org)</organization>
      <address>
        <email>info@openhttpa.org</email>
      </address>
    </author>

    <date year="2026" month="June" day="01"/>

    <area>Security</area>
    <workgroup>HTTPBIS, TEE, SECDISPATCH</workgroup>
    <keyword>http</keyword> <keyword>attestation</keyword> <keyword>tee</keyword> <keyword>post-quantum</keyword> <keyword>pqc</keyword> <keyword>sigma-i</keyword> <keyword>eat</keyword>

    <abstract>

<t><tt>OpenHTTPA</tt> (Hypertext Transfer Protocol with Attestation) defines a protocol for establishing
hardware-verified, end-to-end confidential and authenticated communication between a client
and a Trusted Execution Environment (TEE) over standard HTTP/2, HTTP/3, and gRPC transports.
Unlike traditional TLS which terminates at the network edge, <tt>OpenHTTPA</tt> ensures that the
cryptographic session terminates inside the hardware-isolated enclave.
The protocol is based on the SIGMA-I model and incorporates post-quantum hybrid key exchange (ML-KEM), post-quantum digital signatures (ML-DSA), transcript-bound hardware attestation, and semantic binding of HTTP requests to the hardware-verified session state.</t>



    </abstract>



  </front>

  <middle>

<section anchor="introduction"><name>Introduction</name>

<t>Modern web architectures rely on Transport Layer Security (TLS) <xref target="RFC8446"/> for data-in-transit
protection. However, TLS termination often occurs at the network edge (e.g., Load Balancers,
CDNs, or WAFs), leaving data exposed within internal cloud networks and vulnerable to
privileged insiders or compromised host software.</t>

<t>Trusted Execution Environments (TEEs), such as Intel SGX/TDX, AMD SEV-SNP, and Arm TrustZone,
provide hardware-level isolation. While TEEs can generate cryptographic "quotes" to prove
their identity and integrity, there is no standardized Application Layer (L7) protocol to
seamlessly bind these hardware proofs to HTTP sessions.</t>

<t><tt>OpenHTTPA</tt> addresses this gap by providing an end-to-end trusted communication protocol. Building upon the foundational concepts of the earlier HTTPA/2 specification (see <xref target="I-D.sandowicz-httpbis-httpa2"/>), <tt>OpenHTTPA</tt> introduces:</t>

<ol>
  <li><strong>Enclave-to-Enclave Security</strong>: Cryptographic termination inside the TEE.</li>
  <li><strong>Mutual Attestation</strong>: Integration of TEE hardware quotes into the handshake via the
SIGMA-I model.</li>
  <li><strong>Post-Quantum Resilience</strong>: A hybrid key exchange combining classical X25519 with
ML-KEM <xref target="FIPS-203"/> and post-quantum identity via ML-DSA <xref target="FIPS-204"/>.</li>
  <li><strong>Semantic Intent Binding</strong>: The Attested Header List (AHL) mechanism, which binds HTTP
semantic context (Method, Path, Query) to the hardware-verified session.</li></ol>

<section anchor="working-group-target"><name>Working Group Target</name>

<t>This document is submitted for cross-working-group review:</t>

<ul>
  <li><strong>HTTPBIS</strong>: For extensions to the HTTP protocol, including the <tt>ATTEST</tt> method and SFV headers.</li>
  <li><strong>TEE</strong>: For the use of hardware attestation reports and Entity Attestation Tokens (EAT) <xref target="RFC9334"/>.</li>
  <li><strong>SECDISPATCH</strong>: For architectural review of the hybrid security model.</li></ul>

</section>
</section>
<section anchor="design-goals"><name>Design Goals</name>

<t><tt>OpenHTTPA</tt> is designed with the following core architectural goals:</t>

<ol>
  <li><strong>Transport Independence</strong>: The protocol MUST be capable of operating over HTTP/2,
HTTP/3, and gRPC without modification to the underlying transport framing.</li>
  <li><strong>Cryptographic Agility</strong>: The hybrid KEM and AEAD selections MUST be negotiable to
allow for the adoption of future post-quantum algorithms.</li>
  <li><strong>Auditability</strong>: The handshake transcript MUST be deterministic and auditable to
allow for formal verification of security properties.</li>
  <li><strong>Hardware Heterogeneity</strong>: The protocol SHOULD support the simultaneous attestation
of multiple hardware providers (e.g., CPU + Accelerator) in a single unified session.</li></ol>

</section>
<section anchor="conventions-and-terminology"><name>Conventions and Terminology</name>

<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>The following terms are used throughout this document:</t>

<ul>
  <li><strong>TEE (Trusted Execution Environment)</strong>: A secure area of a main processor that guarantees
confidentiality and integrity of code and data.</li>
  <li><strong>Attestation Quote</strong>: A hardware-signed report proving the state and identity of a TEE.</li>
  <li><strong>AtHS (Attestation Handshake)</strong>: The initial protocol phase to establish a session, based
on the SIGMA-I model.</li>
  <li><strong>TrR (Trusted Request)</strong>: An encrypted HTTP request sent over an established AtHS session.</li>
  <li><strong>AHL (Attested Header List)</strong>: A canonical representation of the request headers used for
semantic binding.</li>
  <li><strong>Hybrid KEM</strong>: A Key Encapsulation Mechanism that combines a classical and a
post-quantum primitive to achieve IND-CCA2 security.</li></ul>

</section>
<section anchor="protocol-overview"><name>Protocol Overview</name>

<t><tt>OpenHTTPA</tt> operates in several distinct phases, integrated into the standard HTTP request-response
lifecycle.</t>

<section anchor="phase-1-preflight-capability-negotiation"><name>Phase 1: Preflight (Capability Negotiation)</name>

<t>A client MAY initiate a preflight request using the <tt>OPTIONS</tt> method to discover <tt>OpenHTTPA</tt>
support and available hardware providers.</t>

<t><tt>http
OPTIONS /api/resource HTTP/1.1
Host: server.example.com
Attest-Versions: openhttpa
</tt></t>

<t>The server responds with supported versions and hardware types using Structured Field Values
<xref target="RFC8941"/>.</t>

<t><tt>http
HTTP/1.1 204 No Content
Attest-Versions: openhttpa
Attest-TEE-Types: intel_tdx, nvidia_gpu
</tt></t>

</section>
<section anchor="phase-2-attestation-handshake-aths"><name>Phase 2: Attestation Handshake (AtHS)</name>

<t>The AtHS establishes a secure session between the client and the TEE. It uses the <tt>ATTEST</tt>
method (or a fallback <tt>POST</tt> with specific headers).</t>

<section anchor="aths-request"><name>AtHS Request</name>

<t>The client sends its preferred cipher suites, versions, nonces, and public key shares.</t>

<ul>
  <li><tt>Attest-Versions</tt>: Supported versions.</li>
  <li><tt>Attest-Cipher-Suites</tt>: Preferred hybrid suites (e.g., <tt>X25519_ML_KEM768_AES256GCM_SHA384</tt>).</li>
  <li><tt>Attest-Random</tt>: 32-byte client nonce.</li>
  <li><tt>Attest-Key-Shares</tt>: Structured list of ECDHE and ML-KEM public keys.</li></ul>

</section>
<section anchor="aths-response"><name>AtHS Response</name>

<t>The server responds with the selected parameters and its own attestation evidence.</t>

<ul>
  <li><tt>Attest-Version</tt>: Negotiated version.</li>
  <li><tt>Attest-Cipher-Suite</tt>: Negotiated suite.</li>
  <li><tt>Attest-Random</tt>: 32-byte server nonce.</li>
  <li><tt>Attest-Quotes</tt>: One or more TEE attestation quotes.</li>
  <li><tt>Attest-Server-Signatures</tt>: Post-quantum and hardware-backed digital signatures (e.g., ML-DSA, TEE-ECDSA).</li>
  <li><tt>Attest-Base-ID</tt>: Unique session identifier (UUID).</li></ul>

</section>
</section>
<section anchor="handshake-flow-visualization"><name>Handshake Flow Visualization</name>

<t>The following diagram illustrates the AtHS SIGMA-I handshake:</t>

<t>```mermaid
sequenceDiagram
    participant Client
    participant Server</t>

<figure><artwork><![CDATA[
Client->>Server: ATTEST (Random_C, KeyShare_C, Suites, Versions)
Note over Server: Negotiate, KEM Encap, Bind Transcript
Server->>Client: 200 OK (Random_S, KeyShare_S, Atb-ID, Quotes)
Note over Client: Verify Quote, KEM Decap, Derive Keys
Note over Server: Derive Keys ```
]]></artwork></figure>

</section>
</section>
<section anchor="message-formats"><name>Message Formats</name>

<t>To ensure cross-platform interoperability, <tt>OpenHTTPA</tt> defines strict formats for all wire
elements.</t>

<section anchor="structured-field-values-sfv"><name>Structured Field Values (SFV)</name>

<t>All <tt>OpenHTTPA</tt> headers MUST follow <xref target="RFC8941"/>.</t>

<section anchor="attest-versions"><name>Attest-Versions</name>

<t>A List of tokens identifying supported protocol versions.</t>

<ul>
  <li>Example: <tt>Attest-Versions: openhttpa, httpa/3</tt></li></ul>

</section>
<section anchor="attest-cipher-suites"><name>Attest-Cipher-Suites</name>

<t>A List of tokens identifying supported cipher suites in order of preference.</t>

<ul>
  <li>Example: <tt>Attest-Cipher-Suites: X25519_ML_KEM768_AES256GCM_SHA384, X25519_AES256GCM_SHA384</tt></li></ul>

</section>
<section anchor="attest-random"><name>Attest-Random</name>

<t>A 32-byte byte sequence (base64-encoded in HTTP).</t>

<ul>
  <li>Example: <tt>Attest-Random: :dW5pY29ybi1tdW5jaC1yYW5kb20tYnl0ZXM=: </tt></li></ul>

</section>
<section anchor="attest-quotes"><name>Attest-Quotes</name>

<t>A List of Inner Lists. Each inner list contains a TEE type token and a byte sequence (the raw quote).</t>

<t><em>Note: For strict performance requirements (sub-millisecond setup times), <tt>OpenHTTPA</tt> transmits raw hardware quotes directly rather than encapsulating them in Entity Attestation Tokens (EAT) as defined in <xref target="RFC9334"/>.</em></t>

<ul>
  <li>Example: <tt>Attest-Quotes: (tdx :YmFzZTY0LXF1b3RlLWJ5dGVz:), (nvidia_gpu :Z3B1LXF1b3RlOjpieXRlcw==:)</tt></li></ul>

</section>
</section>
<section anchor="json-key-shares"><name>JSON Key Shares</name>

<t>The <tt>Attest-Key-Shares</tt> and <tt>Attest-Key-Share</tt> headers contain a JSON-encoded object with
the following schema:</t>

<t><tt>json
{
  "ecdhe_public": "base64_encoded_bytes",
  "mlkem_public": "base64_encoded_bytes",
  "mlkem_ciphertext": "base64_encoded_bytes (server response only)",
  "server_identity_pub": "base64_encoded_bytes (optional server response)",
  "signature_alg": "string (e.g., 'ml-dsa-65')"
}
</tt></t>

</section>
</section>
<section anchor="test-vectors"><name>Test Vectors</name>

<ul empty="true"><li>
  <t><strong>Note to RFC Editor:</strong> The following test vectors were generated from the OpenHTTPA reference implementation (<tt>openhttpa-rs</tt>).</t>
</li></ul>

<section anchor="hybrid-kem-key-exchange"><name>Hybrid KEM Key Exchange</name>

<t><strong>Client ECDHE Public Key:</strong></t>

<t><tt>text
7837c04985b1737863fc4bb7e3e18a0ff55dc9815865877676977f69d0c8851a
</tt></t>

<t><strong>Client ML-KEM Public Key:</strong></t>

<t><tt>text
47a226263994c1677422005a2345508546a4c1049e9af576b582a2
31db5a354a5b7290a4cacc22c18322fd45729527a0b8584bfe0b12
48634f6016ad6e39ad5d229869e9cd00ba06f755557df266f0a52f
393b6734ecc4ee696f4b761b3f6088eed895ebb81f0d66c97b8361
fad9cb5583ac02a9734286bc74e28e6484bc229332e0f00c5f471a
09648610daa11e48be1cf08cc4bc84902713432468816533a24433
786c20f0231b7eac413753a3ae3a19d0c817b79451a9817f787694
2d53b6ccec6a6784c7c2d84929039a67a0c26cbb5875ba0432686f
ee7227e95b14c6494c517c1214b59cbbbb06fe996447203e8fe27a
48996613674a826674564a4c11c5055e3679d686b30233a84c4ab4
6c07c764fcbc4a646972dc16c895bdde9c575d86bcd3d35baf3952
0e967d286c8af44763a856926e7534a4f488ca403e1bb7baff4c6d
41230f67a590453891fc6730d63bcac141954d32ae37ebca96b244
09922a234b3b486c3f9a602e13337ae9f1a4a8c2137ac6481f32bb
7e34cd3f97cd00d9ae92dc187fb00c78384b669443d2377e79b82f
5890037fcacd64952003b1b3589968b3725763f79f4618491bb274
26e96fac824dbe93828bea31572a8852139e46806121652c7673ce
1b659e8249bcc102ac39a768322a62f85b6b25c74a12126336d05d
a992c8a0729e7f97909591c816b0c98366600fa7053c29c530a546
c3c92b705144f153b949f6bf9a43cbb2141572c9251b43c3507769
78b8cdb19ba642695c3242207260934dd1707d12662a666790bb68
16292f67cc19a416c17a01828be46005dc6b1319b551899044b44c
8bc80b0ac329e61c60a00279ac87a5ff03697d501c9d79b6945a0b
04e95f8654ad8f5b72e431b339a909fb5cce6652991762cf377800
9fd53e0896b47c725b9ddbbc9ae63b6e1b8ff184880b156b4b3626
d6cb9ebd8b37ba5b63bada72fdd58adff49be0f736242bb219b643
0f700d99c5a87d8109ede8211c5bc5fb85762b843c9e6aa9750685
d5f4442b9ba0d3e07fa7f10628abaaefd0555d63cd437b3ea36894
bd21731763b194c0a1f9746838845bfaf8159278b255f14bdd00ac
82e05b2d90cd52f57388b8036c7ac0feccc0a3b975419756e8bb5d
e36ba25bf18dc1931663f3afaf08c9f4d7b533097723f1a3be260f
d34ac968795f82c51ebb5b081385546c82a41924ac7ac672b5ec61
78b3310661b9017a8f37823f1da3cf7c384e00389685ac584b0b33
9f96899b707d4928a5831972479750a39ac6852514a96b9f81f541
b6cba6aea7a23f911c939b050f9b239026c825b4b7b978cbb10951
a7d3bccd442641a184e5425a0224421d48c082acc8afc215e0aa20
1cca63bfd056678b311cbc0fcbb5144320a91a963952b227b3a8cf
a71c562cb5a844295c2e20520118943bc6bdf50392f8391f9d81ca
bf18c82c1ba194a27131b16b06952b80d4055e0a6767431cd0f61f
ba43698b590912c2b6463688bfd99e099a4519061ea4230e72b794
c9114fd91c59a5c8585ed65f622a42004c6e11b086db272bbcb4c5
3c7c8abcfa69d730bfe0b4857bd61c0f6a37be496e0063a5dc6145
e26a4f931b3e261a52233244a6028c34b2ccadea1c400df39ed0a8
f8c4047ed3ceeda48a6d7b29a0553d35706fde12858da5
</tt></t>

<t><strong>Server ECDHE Public Key:</strong></t>

<t><tt>text
cfff07624272cf8303edd7d71ea3bea1b359008c321ae06f076ed52200047418
</tt></t>

<t><strong>Server ML-KEM Ciphertext:</strong></t>

<t><tt>text
34b21199544efdba9cb4a0f832f61cf922983b52c7c3d042484986
26d1e0a17565e81581a1d0017f453cb3bb19acf5c2f6340b338114
e460a222bf0b1d339299820ab97e1b7645b0bf2b6ed917dc9c0093
5d3acf1a829155e1df2651785c8e91205b95f48d77198cd77854e2
92f84ee483d0ad97075d175e346c4a5c261746f2116b5b5b176401
cd37f7521a277705bb1574e0a6f8e9614d8691a78bef730f93e04c
b10f114cc217550f083ab6a51b7ef1388026af3ca9b9f191127ff3
dde9aa8f4e7ed8d30bd948fde3f8348a3506be7b1cee85f670379d
17af5b5ac797a4987356d500444c01f145c2ddbb3ecbb54ac08456
ee07ae8770156b0a303c4841ccc6f03e82d79dfb3b78a2d7f15c6f
c79af454e051a80cb7508474d2fdbdf400100fea583316854d28e5
faee57cd7ce15dbd3609d14d16f4b7944c43d35e2afc0d5c443c69
125a471405215fde928dd27b26bd641dce55e78d1d4c1ed12f9d09
f03ffc6698f1573659c72ace12ff8428d972db6381727b40097c4f
ae0a1b89faf7e0e8371dc451c2221120be73731cc5428cff83ee09
d212df32020af7677c24973796970480d647c24f5d88f4a33b4e6f
f77e3db809d9ae8684ed31a4075b536aeb8f789ce65075c7096cfe
de20377cc9b4ff47973c22a0d9aa429207d36fc0a3ea24ca3c0b92
c93af6a31f87cea8b20bdd81cb63db603bd3f012697194bb2f3068
592b331a81ecd589510902d0356ef88c107b154b52e5617e2859a0
1b3f40151c7067221328f53f2f84429f4ccd99eb4981f96fcaae5f
30f4caa1dd66eee2902714c35f4eacc0e7a32a382a36ca4ce532c4
89471d39b21ad1d9be3edc8dd5df16572fc93dbbd4f06cfab00bad
fd313e0b6b09c0dac2c491b70edf5eb3170cd65e6f72219496c986
637676d6c80a2f6197c60c854f297476c05ef4565d5b9ddd2b79ea
2e04ea0107d64a53fdb0d485f83983957b6985b36d1a6e24a062b5
fd15fb9c20a00a74f2a8146f0c2d0c611d272d5d65c0495d954349
542e94c5e23bd37ceaf5cc512a1c49ce84c08d7de7ff5015a1e42c
2c9ea65e0f9187b20c1576daaad1fe1203975bbd611d52ca71eb22
85e026c0f4cb166740f68158516d5e0484a7097c00bc8a8370b00f
3fa1673be7f27ef098f664dd0406dbcca7e11cae9ce27b0dd4cb31
4c098b65ab9f698c0ebd9ca23969a1bdb7e1cf9a15dcbfac5d935c
785d7b94fd77fe862d9c149666b8ea4bd75116fb4da8dd3510be5a
2b2cf2cd5f158bcdbcf567d8c2a4288120db5fa459f54f2c8188d9
61436219ac5d2da7dea94246f2aa6dc3a165cc6a8ceaa45a62b303
f4dd7d6dddfeb7f02beba9a41e22b60d006f6cb6ed2f9b17a3d4a1
2d200d1b432f9e08d629418a625f0f5dad3b6af69ca167d58aac86
88eb20ab4ea5e68d589aa89f6da920decf07d382a2ac4937df1f23
6da2316174ef70b145c211e1a002201079c507d4ca4d5867acfdd5
b32619e192928522cefc4f943e552f349000a3fb092274bb09de10
5b7905edff03f7ad
</tt></t>

<t><strong>Combined Hybrid Secret (IKM):</strong></t>

<t><tt>text
0f59c9666c406b1623a6759955670303871d1d7edd333596df998f8e2c5bef58
</tt></t>

<section anchor="derived-session-keys"><name>Derived Session Keys</name>

<t><em>Transcript Hash (All Zeros for Test Vector):</em></t>

<t><tt>text
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
</tt></t>

<t><strong>Master Secret:</strong></t>

<t><tt>text
e4c42f6ce7dd16b5d7c0dbbe632df194df2c66c2c23684149915028d521f120c
aa4ba423f91a7c33e508c301ee828b58
</tt></t>

<t><strong>Client Write Key:</strong></t>

<t><tt>text
00b0652de62e2ca2a59b9278c0394968fcf8f3c51201673f48b60aaa6025ce17
</tt></t>

<t><strong>Server Write Key:</strong></t>

<t><tt>text
45682e8d7d91daae8ed44f309fb141e3f1feb3a7809139d86b818e7d42a58caa
</tt></t>

<t><strong>Client MAC Key:</strong></t>

<t><tt>text
b027a1f5a0a45b5298bc3c97078d5914e8e924b426dcd5d2b96b47b0521a307e
</tt></t>

<t><strong>Server MAC Key:</strong></t>

<t><tt>text
f66f2e32e43af2be6775ebb2c5915f0c98fe1e5c54c68320447964d7a70ac80f
</tt></t>

</section>
</section>
<section anchor="binary-trailer-layouts"><name>Binary Trailer Layouts</name>

<t>Trailers MUST use big-endian encoding for all numeric fields.</t>

<section anchor="attest-ticket-request-trailer"><name>Attest-Ticket (Request Trailer)</name>

<t>Used in TrR (Phase 4) to authenticate the request.</t>

<ul>
  <li><tt>nonce</tt>: 8 bytes (big-endian u64).</li>
  <li><tt>mac</tt>: Variable length (based on cipher suite, e.g., 48 bytes for SHA-384).</li></ul>

</section>
<section anchor="attest-binder-response-trailer"><name>Attest-Binder (Response Trailer)</name>

<t>Used in TrR (Phase 4) to bind the response to the request.</t>

<ul>
  <li><tt>request_nonce</tt>: 8 bytes (big-endian u64, echo of request nonce).</li>
  <li><tt>mac</tt>: Variable length.</li></ul>

</section>
</section>
</section>
<section anchor="protocol-state-machine"><name>Protocol State Machine</name>

<t>Implementations MUST maintain a session state machine to ensure correct sequencing of
handshake and trusted request phases.</t>

<section anchor="client-state-machine"><name>Client State Machine</name>

<table>
      <thead>
        <tr>
          <th align="left">Current State</th>
          <th align="left">Event</th>
          <th align="left">Next State</th>
          <th align="left">Action</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>START</td>
          <td>Send OPTIONS</td>
          <td>PREFLIGHT</td>
          <td>Wait for preflight response</td>
        </tr>
        <tr>
          <td>PREFLIGHT</td>
          <td>Recv 204</td>
          <td>IDLE</td>
          <td>Parse supported versions/TEEs</td>
        </tr>
        <tr>
          <td>IDLE</td>
          <td>Send ATTEST</td>
          <td>HANDSHAKE</td>
          <td>Generate KEM pair, send shares</td>
        </tr>
        <tr>
          <td>HANDSHAKE</td>
          <td>Recv 200</td>
          <td>ESTABLISHED</td>
          <td>Verify quotes, derive keys</td>
        </tr>
        <tr>
          <td>ESTABLISHED</td>
          <td>Send TrR</td>
          <td>ESTABLISHED</td>
          <td>Encrypt body, add AHL binder</td>
        </tr>
      </tbody>
    </table>

</section>
<section anchor="server-state-machine"><name>Server State Machine</name>

<table>
      <thead>
        <tr>
          <th align="left">Current State</th>
          <th align="left">Event</th>
          <th align="left">Next State</th>
          <th align="left">Action</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>START</td>
          <td>Recv OPTIONS</td>
          <td>START</td>
          <td>Send supported capabilities</td>
        </tr>
        <tr>
          <td>START</td>
          <td>Recv ATTEST</td>
          <td>HANDSHAKE</td>
          <td>Pick suite/version, generate KEM</td>
        </tr>
        <tr>
          <td>HANDSHAKE</td>
          <td>Send 200</td>
          <td>ESTABLISHED</td>
          <td>Send quotes/shares, derive keys</td>
        </tr>
        <tr>
          <td>ESTABLISHED</td>
          <td>Recv TrR</td>
          <td>ESTABLISHED</td>
          <td>Verify AHL, decrypt body</td>
        </tr>
      </tbody>
    </table>

</section>
</section>
<section anchor="cryptography"><name>Cryptography</name>

<t><tt>OpenHTTPA</tt> mandates high-assurance primitives and constructions to protect against both classical
and future quantum adversaries. All signatures MUST use ML-DSA-65 or higher for post-quantum
identity assurance.</t>

<section anchor="hybrid-kem-combiner"><name>Hybrid KEM Combiner</name>

<t>To achieve IND-CCA2 security, <tt>OpenHTTPA</tt> implements a hybrid combiner following
<xref target="I-D.ietf-tls-hybrid-design"/> §3.2.</t>

<section anchor="combiner-input-ikm"><name>Combiner Input (IKM)</name>

<t>The Input Key Material (IKM) binds all public material from the exchange:</t>

<t><tt>text
IKM = ECDHE_SS ‖ ML-KEM_SS ‖ u16(len(label)) ‖ label
      ‖ u16(len(ECDHE_PK_client)) ‖ ECDHE_PK_client
      ‖ u16(len(ECDHE_PK_server)) ‖ ECDHE_PK_server
      ‖ u16(len(ML-KEM_EK_client)) ‖ ML-KEM_EK_client
      ‖ u16(len(ML-KEM_CT)) ‖ ML-KEM_CT
</tt></t>

<t>The <tt>label</tt> MUST be <tt>b"openhttpa hybrid kem v1"</tt>.</t>

</section>
<section anchor="combined-secret-derivation"><name>Combined Secret Derivation</name>

<ol>
  <li><tt>PRK = HKDF-Extract(salt=[0;32], IKM)</tt></li>
  <li><tt>Secret = HKDF-Expand(PRK, info=b"combined", 32)</tt></li></ol>

</section>
</section>
<section anchor="session-key-schedule"><name>Session Key Schedule</name>

<t>The key schedule follows <xref target="RFC5869"/> and is aligned with <xref target="RFC8446"/> §7.1.</t>

<section anchor="hkdf-extract"><name>HKDF-Extract</name>

<t><tt>text
Handshake_PRK = HKDF-Extract(Hash=SHA-384, salt=[0x00;48], IKM=combined_secret)
</tt></t>

</section>
<section anchor="hkdf-expand"><name>HKDF-Expand</name>

<t><tt>text
OKM = HKDF-Expand(Hash=SHA-384, PRK=Handshake_PRK,
                 info=b"openhttpa v2 " ‖ label ‖ transcript_hash, L=&lt;length&gt;)
</tt></t>

<t>The fixed 48-byte length of the <tt>transcript_hash</tt> (SHA-384 output) ensures unambiguous domain separation between the <tt>label</tt> and the <tt>transcript_hash</tt> without the need for a delimiter.</t>

</section>
</section>
<section anchor="key-schedule-visualization"><name>Key Schedule Visualization</name>

<t>The following diagram illustrates the hierarchical derivation of session keys:</t>

<t><tt>text
       Combined Hybrid Secret
                 |
          HKDF-Extract(salt=[0;48])
                 |
          Handshake_PRK
        /        |        \
HKDF-Expand  HKDF-Expand  HKDF-Expand
(Label=Master) (Label=Write) (Label=MAC)
      |          |           |
Master Secret  Write Keys    MAC Keys
               (C-&gt;S, S-&gt;C)  (C-&gt;S, S-&gt;C)
</tt></t>

</section>
</section>
<section anchor="session-resumption-trr"><name>Session Resumption (TrR)</name>

<t>To avoid the computational overhead of hybrid KEM handshakes, <tt>OpenHTTPA</tt> supports session
resumption using opaque tickets.</t>

<section anchor="ticket-format"><name>Ticket Format</name>

<t>The <tt>Attest-Ticket-Resumption</tt> header contains a server-encrypted blob (AtST) containing:</t>

<ul>
  <li><strong>Protocol Version</strong>: 1 byte.</li>
  <li><strong>Cipher Suite</strong>: 2 bytes (big-endian).</li>
  <li><strong>Master Secret</strong>: 48 bytes (from the original session).</li>
  <li><strong>Session Expiry</strong>: 8 bytes (Unix timestamp).</li>
  <li><strong>Hardware Context</strong>: Opaque TEE measurement/policy record.</li></ul>

</section>
<section anchor="resumption-flow"><name>Resumption Flow</name>

<ol>
  <li>Client sends <tt>Attest-Ticket: &lt;base64_ticket&gt;</tt> in a new request.</li>
  <li>Server decrypts the ticket and verifies expiry and TEE context.</li>
  <li>Both sides derive a new <tt>Handshake_PRK</tt> using the ticket's Master Secret as IKM.</li>
  <li>New session keys are expanded using the new handshake transcript.</li></ol>

</section>
</section>
<section anchor="confidential-oracle-extension"><name>Confidential Oracle Extension</name>

<t>The <tt>OpenHTTPA</tt> Confidential Oracle Extension enables a TEE-based agent to act as a bridge
between Web2 APIs and Web3 environments (e.g., Bitcoin, EVM). This extension ensures
that off-chain data is fetched, processed, and cryptographically bound to the hardware
evidence before being transmitted to an on-chain verifier.</t>

<section anchor="protocol-binding"><name>Protocol Binding</name>

<t>When an Oracle fetch is performed, the TEE MUST bind the resulting data to the current
AtHS session transcript. This is achieved by including a truncated version of the <tt>transcript_hash</tt> in the 64-byte hardware report data (e.g., the <tt>REPORT_DATA</tt> field in Intel TDX or <tt>REPORT_DATA</tt> in Intel SGX).</t>

<t>The 64-byte <tt>ReportData</tt> structure is defined as follows:</t>

<t><tt>text
ReportData[0..32]  = Domain_Prefix (padded with trailing zeros to 32 bytes)
ReportData[32..64] = Transcript_Hash[0..32] (truncated to 256 bits)
</tt></t>

<t>The <tt>Domain_Prefix</tt> MUST be the ASCII string <tt>"openhttpa hs server"</tt>. Since TEE hardware report registers are limited to 64 bytes, the 384-bit (48-byte) SHA-384 <tt>transcript_hash</tt> is truncated to its first 32 bytes (256 bits). Truncating the SHA-384 digest to 256 bits maintains 256 bits of preimage resistance and 128 bits of collision resistance, which is cryptographically sufficient to securely bind the session.</t>

</section>
<section anchor="on-chain-verification"><name>On-Chain Verification</name>

<t>The Oracle response incorporates a hardware quote and, optionally, a ZK-STARK proof
(e.g., generated via RISC Zero) that proves the integrity of the data transformation.
Smart contracts verify:</t>

<ol>
  <li><strong>Handshake Consistency</strong>: The <tt>transcript_hash</tt> in the quote matches the session.</li>
  <li><strong>Hardware Integrity</strong>: The quote was generated by a valid TEE (verified via DCAP/SNP).</li>
  <li><strong>Data Correctness</strong>: The ZK proof (if present) confirms that the Web2 payload
correctly corresponds to the claimed on-chain state.</li></ol>

</section>
</section>
<section anchor="semantic-binding-via-ahl"><name>Semantic Binding via AHL</name>

<t>The Attested Header List (AHL) prevents semantic re-routing attacks.</t>

<section anchor="ahl-transcript-construction"><name>AHL Transcript Construction</name>

<t>The AHL transcript MUST use length-prefixed binary fields:</t>

<t><tt>text
AHL_Transcript = 7::method ‖ len(method_val) ‖ : ‖ method_val
                 ‖ 5::path ‖ len(path_val) ‖ : ‖ path_val
                 ‖ 10::authority ‖ len(authority_val) ‖ : ‖ authority_val
                 ‖ [ len(HEADER_NAME_N) ‖ HEADER_NAME_N ‖ len(HEADER_VALUE_N) ‖ : ‖ HEADER_VALUE_N ... ]
</tt></t>

<t>Headers MUST be sorted lexicographically by name before encoding.</t>

</section>
<section anchor="binder-calculation"><name>Binder Calculation</name>

<t><tt>Binder = HMAC-SHA-384(mac_key, AHL_Transcript)</tt></t>

</section>
</section>
<section anchor="error-handling"><name>Error Handling</name>

<t><tt>OpenHTTPA</tt> implementations MUST use appropriate HTTP status codes and extended error headers.</t>

<table>
      <thead>
        <tr>
          <th align="left">Error Condition</th>
          <th align="left">Status Code</th>
          <th align="left">Extended Error Code</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>No Mutually Supported Suite</td>
          <td>406</td>
          <td><tt>negotiation_failed</tt></td>
        </tr>
        <tr>
          <td>Attestation Verification Fail</td>
          <td>403</td>
          <td><tt>handshake_integrity_failed</tt></td>
        </tr>
        <tr>
          <td>Key Derivation Failure</td>
          <td>500</td>
          <td><tt>key_derivation_failed</tt></td>
        </tr>
        <tr>
          <td>Policy Violation (e.g. SVN)</td>
          <td>403</td>
          <td><tt>policy_violation</tt></td>
        </tr>
      </tbody>
    </table>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<section anchor="transcript-integrity"><name>Transcript Integrity</name>

<t><tt>OpenHTTPA</tt> relies on the integrity of the handshake transcript. Every field in the transcript,
including nonces, public keys, and negotiated parameters, MUST be length-prefixed to prevent
canonicalization attacks.</t>

</section>
<section anchor="hardware-splitting-attacks"><name>Hardware Splitting Attacks</name>

<t>Implementations MUST verify that the same transcript hash is bound to all hardware quotes
provided in the <tt>Attest-Quotes</tt> header (e.g., both Host CPU and GPU quotes).</t>

</section>
<section anchor="tee-vulnerabilities-and-revocation"><name>TEE Vulnerabilities and Revocation</name>

<t>The protocol supports Attestation Revocation Lists (ARL) and Secure Version Number (SVN)
enforcement to mitigate TEE-specific vulnerabilities.</t>

</section>
<section anchor="replay-protection"><name>Replay Protection</name>

<t>To prevent replay attacks during the Trusted Request (TrR) phase, servers MUST mandate strict replay protection for the <tt>nonce</tt> provided in the <tt>Attest-Ticket</tt> request trailer. The server MUST either enforce a strictly increasing monotonic counter for nonces within a session, or maintain a sliding-window strike register (replay cache) of recently seen nonces.</t>

</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<section anchor="attestation-fingerprinting"><name>Attestation Fingerprinting</name>

<t>Hardware attestation quotes MAY contain unique identifiers (e.g., CPU serial numbers,
unique entity IDs) that allow for the tracking and fingerprinting of TEE instances.
Implementations SHOULD use privacy-preserving attestation technologies, such as
Enhanced Privacy ID (EPID) or Intel SGX Quote Verification Enclaves, to minimize the exposure
of stable hardware identifiers.</t>

</section>
<section anchor="provenance-tracking"><name>Provenance Tracking</name>

<t>The <tt>Attest-Provenance</tt> header provides a chain of custody for multi-hop agent delegation.
While essential for security auditing, this chain reveals the topology of the agent mesh.
Implementations MUST ensure that provenance data is only transmitted within established
<tt>OpenHTTPA</tt> sessions to prevent leakage to unauthorized observers.</t>

</section>
</section>
<section anchor="implementation-status"><name>Implementation Status</name>

<ul empty="true"><li>
  <t><strong>Note to RFC Editor:</strong> Please remove this section before publication.</t>
</li></ul>

<t>This section documents the current implementation status of <tt>OpenHTTPA</tt> as of May 2026.</t>

<ul>
  <li><strong>OpenHTTPA Reference Implementation</strong>: A production-grade Rust implementation is available
at <tt>https://github.com/openhttpa/openhttpa-rs</tt>. It supports Intel TDX, AMD SEV-SNP, and
NVIDIA Hopper GPU attestation.</li>
  <li><strong>Go/Python/Node Bindings</strong>: Language bindings are provided for seamless integration
into existing cloud-native stacks.</li>
  <li><strong>Formal Models</strong>: Symbolic and temporal security models have been validated using
<xref target="ProVerif"/> and <xref target="Tamarin"/> Prover.</li></ul>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The authors would like to thank the contributors to the The <tt>OpenHTTPA</tt> Foundation (openhttpa.org) and the IETF
Security area for their feedback on early iterations of this protocol.</t>

</section>
<section anchor="contributors"><name>Contributors</name>

<t>The following individuals have contributed to the design and implementation of <tt>OpenHTTPA</tt> and its predecessor HTTPA/2:</t>

<ul>
  <li><strong>Shih-han Wang</strong>: Original HTTPA/2 Co-Author</li>
  <li><strong>Nick Li</strong>: Original HTTPA/2 Co-Author</li>
  <li><strong>Ned Smith</strong>: Original HTTPA/2 Co-Author</li>
  <li><strong>Krzysztof Sandowicz</strong>: Original HTTPA/2 Co-Author</li></ul>

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

<section anchor="http-method-registry"><name>HTTP Method Registry</name>

<t>This document requests the registration of the <tt>ATTEST</tt> method in the "HTTP Method Registry".</t>

<table>
      <thead>
        <tr>
          <th align="left">Method</th>
          <th align="left">Safe</th>
          <th align="left">Idempotent</th>
          <th align="left">Reference</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>ATTEST</td>
          <td>No</td>
          <td>No</td>
          <td>This document</td>
        </tr>
      </tbody>
    </table>

</section>
<section anchor="http-field-name-registry"><name>HTTP Field Name Registry</name>

<t>This document requests the registration of the following headers in the "Hypertext Transfer
Protocol (HTTP) Field Name Registry":</t>

<table>
      <thead>
        <tr>
          <th align="left">Field Name</th>
          <th align="left">Template</th>
          <th align="left">Reference</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><tt>Attest-Cipher-Suites</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Supported-Cipher-Suites</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Cipher-Suite</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Supported-Groups</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Key-Shares</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Key-Share</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Random</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Policies</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Base-Creation</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Blocklist</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Versions</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Supported-Versions</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Date</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Signatures</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Server-Signatures</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Transport</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Quotes</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Base-ID</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Version</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Expires</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Secrets</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Cargo</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Ticket</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Binder</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Base-Termination</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Challenge</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Provenance</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Ticket-Resumption</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Zk-Proof</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>Attest-Ai-Provenance-Proof</tt></td>
          <td>SFV</td>
          <td>This document</td>
        </tr>
      </tbody>
    </table>

</section>
<section anchor="tls-exporter-labels-registry"><name>TLS Exporter Labels Registry</name>

<t>This document requests the registration of the following labels in the IANA "TLS Exporter Labels" registry (RFC 5705) for use with HKDF expansion in OpenHTTPA.</t>

<table>
      <thead>
        <tr>
          <th align="left">Label</th>
          <th align="left">DTLS-OK</th>
          <th align="left">Reference</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><tt>openhttpa_v2</tt></td>
          <td>Y</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>openhttpa_v2_0rtt</tt></td>
          <td>Y</td>
          <td>This document</td>
        </tr>
      </tbody>
    </table>

<t>Furthermore, the following specific key slots are logically prefixed by the protocol label:</t>

<ul>
  <li><tt>master secret</tt></li>
  <li><tt>client write key</tt></li>
  <li><tt>server write key</tt></li>
  <li><tt>client write iv</tt></li>
  <li><tt>server write iv</tt></li>
  <li><tt>client mac key</tt></li>
  <li><tt>server mac key</tt></li></ul>

</section>
<section anchor="tee-type-registry"><name>TEE Type Registry</name>

<t>This document establishes a new IANA registry titled "<tt>OpenHTTPA</tt> TEE Types".</t>

<table>
      <thead>
        <tr>
          <th align="left">TEE Type Token</th>
          <th align="left">Description</th>
          <th align="left">Reference</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><tt>sgx</tt></td>
          <td>Intel SGX (Software Guard Ext)</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>tdx</tt></td>
          <td>Intel TDX (Trust Domain Ext)</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>sev_snp</tt></td>
          <td>AMD SEV-SNP</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>trustzone</tt></td>
          <td>Arm TrustZone</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>nvidia_gpu</tt></td>
          <td>NVIDIA Hopper/Blackwell GPU</td>
          <td>This document</td>
        </tr>
        <tr>
          <td><tt>tpm</tt></td>
          <td>Trusted Platform Module 2.0</td>
          <td>This document</td>
        </tr>
      </tbody>
    </table>

</section>
</section>
<section anchor="strategic-future"><name>Strategic Future</name>

<section anchor="httpa3-quic"><name>HTTPA/3 (QUIC)</name>

<t><tt>OpenHTTPA</tt> is designed for transport-independence, with HTTP/3 (QUIC) being the primary high-performance target. Future iterations of the protocol will leverage QUIC's stream-level isolation and connection migration to support massive-scale agentic meshes.</t>

</section>
<section anchor="rtt-confidentiality"><name>0-RTT Confidentiality</name>

<t>To achieve sub-millisecond setup times in trusted environments, <tt>OpenHTTPA</tt> will implement 0-RTT Confidentiality bound to the Session Resumption mechanism. By reusing the Master Secret and TEE state from a previous 1-RTT handshake, clients can send encrypted Trusted Requests in the first flight of a QUIC connection while maintaining hardware-level assurance.</t>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <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">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <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="RFC8446">
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <date month="August" year="2018"/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8446"/>
  <seriesInfo name="DOI" value="10.17487/RFC8446"/>
</reference>

<reference anchor="RFC5869">
  <front>
    <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
    <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
    <author fullname="P. Eronen" initials="P." surname="Eronen"/>
    <date month="May" year="2010"/>
    <abstract>
      <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5869"/>
  <seriesInfo name="DOI" value="10.17487/RFC5869"/>
</reference>

<reference anchor="RFC8941">
  <front>
    <title>Structured Field Values for HTTP</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
    <date month="February" year="2021"/>
    <abstract>
      <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields that wish to use a common syntax that is more restrictive than traditional HTTP field values.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8941"/>
  <seriesInfo name="DOI" value="10.17487/RFC8941"/>
</reference>

<reference anchor="RFC9334">
  <front>
    <title>Remote ATtestation procedureS (RATS) Architecture</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="D. Thaler" initials="D." surname="Thaler"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="N. Smith" initials="N." surname="Smith"/>
    <author fullname="W. Pan" initials="W." surname="Pan"/>
    <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="FIPS-203" >
  <front>
    <title>Module-Lattice-Based Key-Encapsulation Mechanism Standard</title>
    <author >
      <organization>NIST</organization>
    </author>
    <date year="2024"/>
  </front>
</reference>
<reference anchor="FIPS-204" >
  <front>
    <title>Module-Lattice-Based Digital Signature Standard</title>
    <author >
      <organization>NIST</organization>
    </author>
    <date year="2024"/>
  </front>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.sandowicz-httpbis-httpa2">
   <front>
      <title>The Hypertext Transfer Protocol Attestable (HTTPA) Version 2</title>
      <author fullname="Hans Wang" initials="H." surname="Wang">
         <organization>Intel</organization>
      </author>
      <author fullname="Gordon King" initials="G." surname="King">
         <organization>Intel</organization>
      </author>
      <author fullname="Nick Li" initials="N." surname="Li">
         <organization>Intel</organization>
      </author>
      <author fullname="Ned Smith" initials="N." surname="Smith">
         <organization>Intel</organization>
      </author>
      <author fullname="Krzysztof Sandowicz" initials="K." surname="Sandowicz">
         <organization>Intel</organization>
      </author>
      <date day="4" month="November" year="2023"/>
      <abstract>
	 <t>   The Hypertext Transfer Protocol Attestable version 2 (HTTPA/2) is an
   HTTP extension.  It is a transaction-based protocol agnostic to
   Transport Layer Security (TLS) in which the Trusted Execution
   Environment (TEE) is considered a new type of requested resource over
   the Internet.  The original Hypertext Transfer Protocol Attestable
   (HTTPA) (referred to as HTTPA/1 in the rest of the document) includes
   remote attestation (RA) process onto the HTTPS protocol in the
   assumption of using Transport Layer Security (TLS) across the
   Internet.  In contrast, the design of HTTPA/2 could establish a
   trusted (attested) and more secure communication without dependence
   on TLS.

   The definition of Attestation for the purposes of this draft:

   The process of vouching for the accuracy of TEE based services,
   configuration, and data where the TEE conveys Evidence about its
   environment, roots of trust and protected functions.  The Evidence is
   a digital expression of TEE trustworthiness.


	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-sandowicz-httpbis-httpa2-03"/>
   
</reference>


<reference anchor="I-D.ietf-tls-hybrid-design">
   <front>
      <title>Hybrid key exchange in TLS 1.3</title>
      <author fullname="Douglas Stebila" initials="D." surname="Stebila">
         <organization>University of Waterloo</organization>
      </author>
      <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Shay Gueron" initials="S." surname="Gueron">
         <organization>University of Haifa and Meta</organization>
      </author>
      <date day="7" month="September" year="2025"/>
      <abstract>
	 <t>   Hybrid key exchange refers to using multiple key exchange algorithms
   simultaneously and combining the result with the goal of providing
   security even if a way is found to defeat the encryption for all but
   one of the component algorithms.  It is motivated by transition to
   post-quantum cryptography.  This document provides a construction for
   hybrid key exchange in the Transport Layer Security (TLS) protocol
   version 1.3.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-16"/>
   
</reference>


<reference anchor="ProVerif" >
  <front>
    <title>ProVerif: Cryptographic Protocol Verifier in the Formal Model</title>
    <author initials="B." surname="Blanchet">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="Tamarin" >
  <front>
    <title>The Tamarin Prover for symbolic analysis of security protocols</title>
    <author >
      <organization>Tamarin Team</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

</references>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA7V96VIcSZbu/3gKN/pHQU0min1hRmUXARKMANEkUi1928DD
3QOilVtnZIKoUpndp7ivMO8xj3Kf5H7H3WNLEpVKMyNr68qMjPDlLN/5jof7
YTgcOstyOVZ77Lt3czU9vrq62N9jx49ztViqT0t2teDTqlALdrGYLWdiNmYP
5fKO7S+XqlryZTmbfufwPF+o+24L3zlyJqZ8gmblghfL4Qy/3C2Xcz6c23aG
ruvM8mo2Vmipvq3iUzl7KMWvQ7o5Lyv9X+47gi/V7WzxuMeqpXSccr7YY8vF
qlr6rpu5vsMXiu+xkRKrRbl8dB5mi4+3i9lqjqlgPK9ORgN2dXQ0YKOjg8OT
0cX+1cGx81E94j65x/5GnQwYb+c0YEulBmw+q5bDf674dLma4Ns/xYBV5e2E
D8sBU3z5d6daot/JHjs5unrtONPZYoLH79Wew9jl6wPf8zL7MfWSsP4YhrH9
GKVxc0MWevZjFgT63tcnF6Oh7wb0mbFaS2czuRqr4SlGWwo1fMUrJdlb9Tg8
mgo+r1ZjPQF2psQdn5bVhI2WECpfyO90M3y1vJstTJOMDdlscbvHzk9GV/qK
hJj3mO/6Ydt/+BX9H5a35ZKP2ai8nfLlaqG+tVennBZdKZ4MD3efM4r691It
i+FyjMuP+aKUQ6mgpCn9Cpv9oBZl0Z9Bc5UdLB7ny9ntgs/vStFauP61hM2X
U7a8U+w1jWjMMHM13jyfcgoTfrXLXo35VNypJX644hO+KKf9rq/Qmv2BurtH
H5guqx4n+WyMIfApHz9WZcVmBausMbPaY6ovyLJu9Arm6MAsIbJrPp5N0emj
qhw4Z+DMS5g6WoIRzxYw3KIaUM/mg5hN5lwscWWV289/d5y2LzvHN7vsbTm9
1Z0b/34DF4K9NVcxHNjdr9oKMS5M+KaBhRuIcgWz0Ba63WDCLp7Z0Q+rCS/H
e4yM4H/1fm5HcLzLfuS9ERwDodpr/0P9DwGU9H+M53B6SMdxuu1u/xnE3GFS
FeVUVYw3ytV2QDfk47K6I2HewXsegGvDe2OOEpgzlcPlbIj/QF/TopRquixh
mdC2Ngv6SkhJP08mqyl9oanmavmg1BTdiXGJmxz9AEYKAMXNR59gavrGo+l9
uZhNJ7iHbQMwd5i20co6swbTF/7A/DcY6I5vLy8OgMWY9BxmVe0676fj8qOi
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
foQz0NJDVWISpxaYlmbxwZq1zqDbKNsw2BZ64SNHJpTvPUHrTnQcMP2fF8FN
bwQ9uP7qYfQCChEypHP4jsdM0GnQ7cnIev3tsT9E/0F9y5Ow0JuGMVQaf411
FvCMc7Jt4vRxOMQXsHidv5G+djYP0rS2x/bkj9H8Zz97zEtvic//4Afe488/
Rh9z313+PB27v/x09hKP9YZivKIrypPp1BL4apcdgQSje7qiQxEt2SHlqkxO
owmTkb3hfevz0PyePxg0puFfk/uYVShr0zB9bdZ0P9FPmLRd+K9W+XACkCvB
XWb6rc5yNWfLcqKqtcVhvcwxoeBFna2vz0o0KZbIagGVZAfICXTeUycMhumS
K/7h6prOqskltU66a23XG1VjpLsHQchPbO/nyetff7n62T396bWXB5fj0x//
PZJvPvy6h+lst4yP7f0SvPLqm979Y16qny7H4uHly70dQwX/ffTuXKc9hjKY
ALGBSmilPLneer3VJvRGLTbmNsv/AYGZdeX+Ul4lIChuQso/KoSm34CJW0rI
O3VtGMnWHtsy1nttm7smm6i2aFVuazL+qCZ/4k7jubRI/Nzd9DKhQ3JoFXU6
ftwxjZifrutcnDp+vh2z8kaxvt9g3VbNAK75+JZaIfuFSCwd+G4yHsqKD+Po
u50t5/c6EFxRNvUB0pwtoKYfkL3q+IEkCqbDjmSJH/a+/56tr57gqXvzFHug
F0n1WylkxovZRIf7xv5ZA2KsJPObNBn29k27pWhR3dRco12r1KmzfcXgON9/
b6KhZZsXhmLiHoxQq5wU4SRpkAg3zNIo95IgSeOgEGGeJypQXsrdoogiKbLU
i9I4SpMkTuIsSYo4k65I08izOVrTl+Wzz3QWJtz3Yz8OsiwUXpwkoY9oH3E/
CKPITaMw5riO0aiMF1ES51Hqc98JPJlHPIhCHuWJn7m4iQvh+8JLA98vZBjh
auQn3M3TKA3zQrm55zshJhMWsevFXMYqyLiMpO9naYzmhXTdnLtxkUT4l8jC
j+PC5ZFfOEEW5HEShEqIUKk4i4swT2J4L5pKU6VkmkUqz1OvcGUciyzJ0yD2
nILLTORRlAZcuD7P0IKfxrlIQuWnMFCMC0MGvvjKLVxXREWYQHxuhp9iz5Wc
e54K01x5onBT9J2LNMxcP/GCMPDDOE29OAoC7odhEEBtsfDRjh940BUXoRck
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
J4L+zZJoTbOu2NHI4slfUnCa1wPbulbMpgFs7ZG0Oj9s/odZQX5jsz3tOfF9
VUa9UZ6ba6/1E/zXH54TcPt8k3uvt/SVz/dqk7H/Sv+6+HQ7ha98vluohX1D
/52CLt/0vC24tkn/X/W8Xhoon4z+q5/XNdIOAOhPFgq+8vnxTHykqkTfOP+m
SOA3jr/V/1pLX/n8IV8+Ud2f6r+tZPdtzz8piPfnnm/Kdn+j/Ov1hm+df11j
71ufr2sYfuvzekfCpgl8tfzpZfy3P3/AF7ezDeL7av3ZRYVvlr9eSv4vPE/6
u2r/LsPNn3z+4A7JuUIOvj6Er8WvTq767fLr7bj5U8//8pGGMCueSPArn98v
O1PoNvXF5/WC3emI9tMQeNEJm5wShf8GkjI2LVmOojni1oautupmHtk2ZbFR
4kY7mtTTyoh+c06bxcwmFFM0c9pWu9KETzf0RGqH6Gz47u3XkpaWnGymKU1C
cn3v39R9/MyeE+zaE9fuYrm8+eITzuvVgpbrqIDpYE2WzdKl3nk6ni3t+/fZ
rX31076Ue9SPNourWgs6xbiZmF0/ZkfoDV2x9Wcf9E45NK0v2gXE/sXeneX9
0xvtNXvfhIv19ppL9RoxlTl+1s765Yppt5E2oMZU9F+Hk2yrm2PVjVYmDWj6
0DX7yCCUWRd/5gjFH9vJH56X2Gw51e2nm2437dLc9sj+4SP2ZkVFvo8+LXc2
29JSbmqDtrqYUu5244lp4Rl7rNT9dTWdN8bbWfXYLI9N46DOfp1NDUh+7v99
pa9so61teKNv6S21vHg1Rgb/oMZjvejy7DjmXar6uVmFv6grqZq/ucj8XfcZ
b9PFUelPZMKrXusjEk22tv8iYNt/fX9ysPP8XzbRqw415RmWnb9UMrCgpf/i
iG2n3tx1Z0500GtzfdCjW+5yqf9aza4dzJOli45PP5SQzliXkb9VjDr4TheF
VXyy/get6lMjU7u4NynrP19E+1RskfYJHRe5V8MKWGLXRenEgyLvMyu97vDy
6qq3UU+/jOsc6vhCeU4dAqx+urvw+ltg9aSaRZTNPfZ30m3YmNv8saFd9oq2
crYbFte2PNoNlebcoN50qgvf35e0WdzTfTevDwe2Trf5i2D66Fm7ZXbt9U8T
78wOJnucTv/VB9JTVxUPejW7fpei0/r+XyXrHqshMKGlLef/A0zBg1h+dgAA

-->

</rfc>

