<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.35 (Ruby 3.3.5) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-scitt-receipts-ccf-profile-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="CCF Profile for COSE Receipts">CCF Profile for COSE Receipts</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-receipts-ccf-profile-02"/>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <author initials="A." surname="Delignat-Lavaud" fullname="Antoine Delignat-Lavaud">
      <organization>Microsoft Research</organization>
      <address>
        <postal>
          <street>21 Station Road</street>
          <city>Cambridge</city>
          <code>CB1 2FB</code>
          <country>UK</country>
        </postal>
        <email>antdl@microsoft.com</email>
      </address>
    </author>
    <author initials="C." surname="Fournet" fullname="Cedric Fournet">
      <organization>Microsoft Research</organization>
      <address>
        <postal>
          <street>21 Station Road</street>
          <city>Cambridge</city>
          <code>CB1 2FB</code>
          <country>UK</country>
        </postal>
        <email>fournet@microsoft.com</email>
      </address>
    </author>
    <author initials="A." surname="Chamayou" fullname="Amaury Chamayou">
      <organization>Microsoft Research</organization>
      <address>
        <postal>
          <street>21 Station Road</street>
          <city>Cambridge</city>
          <code>CB1 2FB</code>
          <country>UK</country>
        </postal>
        <email>amaury.chamayou@microsoft.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="13"/>
    <area>Security</area>
    <workgroup>SCITT</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 79?>

<t>This document defines a new verifiable data structure (VDS) type for COSE Receipts and inclusion proofs specifically designed for append-only logs produced by the Confidential Consortium Framework (CCF) to provide stronger tamper-evidence guarantees.</t>
    </abstract>
  </front>
  <middle>
    <?line 83?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The COSE Receipts document <xref target="I-D.ietf-cose-merkle-tree-proofs"/> defines a common framework for expressing different types of proofs about verifiable data structures (VDS), providing a standardized way to convey trust-relevant evidence. For instance, inclusion proofs guarantee to a verifier that a given serializable element is recorded at a given state of the VDS, while consistency proofs are used to establish that an inclusion proof is still consistent with the new state of the VDS at a later time.</t>
      <t>In this document, we define a new type of VDS and inclusion proof associated with an application of the Confidential Consortium Framework (CCF) ledger that implements the SCITT Architecture defined in <xref target="I-D.ietf-scitt-architecture"/>. This VDS carries indexed transaction information in a binary Merkle Tree, where new transactions are appended to the right, so that the binary decomposition of the index of a transaction can be interpreted as the position in the tree if 0 represents the left branch and 1 the right branch.
Compared to <xref target="RFC9162"/>, the leaves of CCF trees carry additional internal information for the following purposes:</t>
      <ol spacing="normal" type="1"><li>
          <t>To bind the full details of the transaction executed, which is a superset of what is exposed in the proof and captures internal details useful for detailed system audit, but not for application purposes.</t>
        </li>
        <li>
          <t>To allow the distributed system executing the application logic in Trusted Execution Environments (TEEs) to persist signatures to storage early. Receipt production is only enabled once transactions are fully committed by the consensus protocol.</t>
        </li>
      </ol>
      <section anchor="requirements-notation">
        <name>Requirements Notation</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
        <?line -18?>

</section>
    </section>
    <section anchor="description-of-the-confidential-consortium-framework-ledger-verifiable-data-structure">
      <name>Description of the Confidential Consortium Framework Ledger Verifiable Data Structure</name>
      <t>This document extends the VDS registry of <xref target="I-D.ietf-cose-merkle-tree-proofs"/> with the following value:</t>
      <table align="left" anchor="verifiable-data-structure-values">
        <name>Verifiable Data Structure Algorithms</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Value</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">CCF_LEDGER_SHA256</td>
            <td align="left">TBD_1 (requested assignment 2)</td>
            <td align="left">Historical transaction ledgers, such as the CCF ledger</td>
            <td align="left">RFCthis</td>
          </tr>
        </tbody>
      </table>
      <section anchor="merkle-tree-shape">
        <name>Merkle Tree Shape</name>
        <t>A CCF ledger is a binary Merkle Tree constructed from a hash function H, which is defined from the log type. For instance, the hash function for <tt>CCF_LEDGER_SHA256</tt> is <tt>SHA256</tt>, whose <tt>HASH_SIZE</tt> is 32 bytes.</t>
        <t>The Merkle Tree encodes an ordered list of <tt>n</tt> transactions T_n = {T[0], T[1], ..., T[n-1]}. We define the Merkle Tree Hash (MTH) function, which takes as input a list of serialized transactions (as byte strings), and outputs a single HASH_SIZE byte string called the Merkle root hash, by induction on the list.</t>
        <t>This function is defined as follows:</t>
        <t>The hash of an empty list is the hash of an empty string:</t>
        <artwork><![CDATA[
MTH({}) = HASH().
]]></artwork>
        <t>The hash of a list with one entry (also known as a leaf hash) is:</t>
        <artwork><![CDATA[
MTH({d[0]}) = HASH(d[0]).
]]></artwork>
        <t>For n &gt; 1, let k be the largest power of two smaller than n (i.e., k &lt; n &lt;= 2k). The Merkle Tree Hash of an n-element list D_n is then defined recursively as:</t>
        <artwork><![CDATA[
MTH(D_n) = HASH(MTH(D[0:k]) || MTH(D[k:n])),
]]></artwork>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>|| denotes concatenation</t>
          </li>
          <li>
            <t>: denotes concatenation of lists</t>
          </li>
          <li>
            <t>D[k1:k2] = D'_(k2-k1) denotes the list {d'[0] = d[k1], d'[1] = d[k1+1], ..., d'[k2-k1-1] = d[k2-1]} of length (k2 - k1).</t>
          </li>
        </ul>
      </section>
      <section anchor="transaction-components">
        <name>Transaction Components</name>
        <t>Each leaf in a CCF ledger carries the following components:</t>
        <sourcecode type="cddl"><![CDATA[
ccf-leaf = [
  ; Byte string of size HASH_SIZE(32)
  internal-transaction-hash: bstr .size 32

  ; Text string of at most 1024 bytes
  internal-evidence: tstr .size (1..1024)

  ; Byte string of size HASH_SIZE(32)
  data-hash: bstr .size 32
]
]]></sourcecode>
        <t>The <tt>internal-transaction-hash</tt> and <tt>internal-evidence</tt> values are internal to the CCF implementation. They can be safely ignored by receipt Verifiers, but they commit the transparency service (TS) to the whole tree contents and may be used for additional, CCF-specific auditing.</t>
        <t><tt>internal-transaction-hash</tt> is a hash over the complete entry in the <xref target="CCF-Ledger-Format"/>, and <tt>internal-evidence</tt> is a revealable <xref target="CCF-Commit-Evidence"/> value that allows early persistence of ledger entries before distributed consensus can be established. This mechanism is useful to implement high-throughput transparency applications in Trusted Execution Environments (TEEs) that only provide a limited amount of memory, while maintaining high availability afforded by distributed consensus. Using a secure a one-way function <tt>f</tt> to publish an <tt>f(x)</tt> committment to an <tt>x</tt> value that can be revealed at a later time is common feature of distributed protocols (<xref target="COIN-FLIPPING"/>).</t>
        <t><tt>data-hash</tt> summarizes the application data included in the ledger at this transaction, which is a Signed Statement as defined by <xref target="I-D.ietf-scitt-architecture"/>.</t>
      </section>
    </section>
    <section anchor="ccf-inclusion-proofs">
      <name>CCF Inclusion Proofs</name>
      <t>CCF inclusion proofs consist of a list of digests tagged with a single left-or-right bit.</t>
      <sourcecode type="cddl"><![CDATA[
ccf-proof-element = [
  ; Position of the element
  left: bool

  ; Hash of the proof element: byte string of size HASH_SIZE(32)
  hash: bstr .size 32
]

ccf-inclusion-proof = bstr .cbor {
  &(leaf: 1) => ccf-leaf
  &(path: 2) => [+ ccf-proof-element]
}
]]></sourcecode>
      <t>Unlike some other tree algorithms, the index of the element in the tree is not explicit in the inclusion proof, but the list of left-or-right bits can be treated as the binary decomposition of the index, from the least significant (leaf) to the most significant (root).</t>
      <section anchor="ccf-inclusion-proof-signature">
        <name>CCF Inclusion Proof Signature</name>
        <t>The proof signature for a CCF inclusion proof is a COSE signature (encoded with the <tt>COSE_Sign1</tt> CBOR type) which includes the following additional requirements for protected and unprotected headers. Please note that there may be additional header parameters defined by the application.</t>
        <t>The protected header parameters for the CCF inclusion proof signature <bcp14>MUST</bcp14> include the following:</t>
        <ul spacing="normal">
          <li>
            <t><tt>verifiable-data-structure: int/tstr</tt>. This header <bcp14>MUST</bcp14> be set to the verifiable data structure algorithm identifier for <tt>CCF_LEDGER_SHA256</tt> (TBD_1).</t>
          </li>
          <li>
            <t><tt>label: int</tt>. This header <bcp14>MUST</bcp14> be set to the value of the <tt>inclusion</tt> proof type in the IANA registry of Verifiable Data Structure Proof Type (-1).</t>
          </li>
        </ul>
        <t>The unprotected header for a CCF inclusion proof signature <bcp14>MUST</bcp14> include the following:</t>
        <ul spacing="normal">
          <li>
            <t><tt>inclusion-proof: bstr .cbor ccf-inclusion-proof</tt>. This contains the serialized CCF inclusion proof, as defined above.</t>
          </li>
        </ul>
        <t>The payload of the signature is the CCF ledger Merkle root digest, and <bcp14>MUST</bcp14> be detached in order to force verifiers to recompute the root from the inclusion proof in the unprotected header. This provides a safeguard against implementation errors that use the payload of the signature but do not recompute the root from the inclusion proof.</t>
      </section>
      <section anchor="inclusion-proof-verification-algorithm">
        <name>Inclusion Proof Verification Algorithm</name>
        <t>CCF uses the following algorithm to verify an inclusion receipt:</t>
        <artwork><![CDATA[
compute_root(proof):
  h := HASH(
       proof.leaf.internal-transaction-hash
           || HASH(proof.leaf.internal-evidence)
           || proof.leaf.data-hash
       )

  for [left, hash] in proof.path:
      h := HASH(hash + h) if left
           HASH(h + hash) else
  return h

verify_inclusion_receipt(inclusion_receipt):
  let label = INCLUSION_PROOF_LABEL
  assert(label in inclusion_receipt.unprotected_header)
  let proof = inclusion_receipt.unprotected_header[label]
  assert(inclusion_receipt.payload == nil)
  let payload = compute_root(proof)

  # Use the Merkle Root as the detached payload
  return verify_cose(inclusion_receipt, payload)
]]></artwork>
        <t>A description can also be found at <xref target="CCF-Receipt-Verification"/>.</t>
      </section>
    </section>
    <section anchor="usage-in-cose-receipts">
      <name>Usage in COSE Receipts</name>
      <t>A COSE Receipt with a CCF inclusion proof is described by the following CDDL definition:</t>
      <sourcecode type="cddl"><![CDATA[
protected-header-map = {
  &(alg: 1) => int
  &(vds: 395) => 2
  * cose-label => cose-value
}
]]></sourcecode>
      <ul spacing="normal">
        <li>
          <t>alg (label: 1): <bcp14>REQUIRED</bcp14>. Signature algorithm identifier. Value type: int.</t>
        </li>
        <li>
          <t>vds (label: 395): <bcp14>REQUIRED</bcp14>. Verifiable data structure algorithm identifier. Value type: int.</t>
        </li>
      </ul>
      <t>The unprotected header for an inclusion proof signature is described by the following CDDL definition:</t>
      <sourcecode type="cddl"><![CDATA[
inclusion-proof = ccf-inclusion-proof

inclusion-proofs = [ + inclusion-proof ]

verifiable-proofs = {
  &(inclusion-proof: -1) => inclusion-proofs
}

unprotected-header-map = {
  &(vdp: 396) => verifiable-proofs
  * cose-label => cose-value
}
]]></sourcecode>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>See the privacy considerations section of:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="I-D.ietf-cose-merkle-tree-proofs"/></t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="I-D.ietf-cose-merkle-tree-proofs"/> apply.</t>
      <section anchor="trusted-execution-environments">
        <name>Trusted Execution Environments</name>
        <t>CCF networks of nodes rely on executing in TEEs to secure their function, in particular:</t>
        <ol spacing="normal" type="1"><li>
            <t>The evaluation of registration policies</t>
          </li>
          <li>
            <t>The creation and usage of receipt signing keys</t>
          </li>
        </ol>
        <t>A compromise in the TEE platform used to execute the network may allow an attacker to produce invalid and divergent ledger branches.
Clients can mitigate this risk in two ways: by regularly auditing the consistency of the CCF ledger; and by regularly fetching attestation information about the TEE instances, available in the ledger and from the network itself, and confirming that the nodes composing the network are running up-to-date, trusted platform components.</t>
      </section>
      <section anchor="operators">
        <name>Operators</name>
        <t>An operator has the ability to start successor networks with a distinct identity. The operator of a CCF network can recover the service by starting a successor network, for example a new CCF network with its own service identity, that endorses the ledger state of the previous instance. This provides service continuity after a catastrophic failure of a majority of the nodes. However, a malicious operator could exploit this mechanism and truncate the ledger’s history by initializing the successor network from an earlier ledger prefix, thereby omitting some later entries. Clients can mitigate this risk by auditing the successor ledger and verifying that their latest known receipts from the prior service are included in the successor’s ledger.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="additions-to-existing-registries">
        <name>Additions to Existing Registries</name>
        <section anchor="tree-alg-registry">
          <name>Tree Algorithms</name>
          <t>This document requests IANA to add the following new value to the 'COSE Verifiable Data Structures' registry:</t>
          <ul spacing="normal">
            <li>
              <t>Name: CCF_LEDGER_SHA256</t>
            </li>
            <li>
              <t>Value: 2 (requested assignment)</t>
            </li>
            <li>
              <t>Description: Append-only logs that are integrity-protected by a Merkle Tree and signatures produced via Trusted Execution Environments containing a mix of public and confidential information, as specified by the Confidential Consortium Framework.</t>
            </li>
            <li>
              <t>Reference: RFCthis</t>
            </li>
            <li>
              <t>Related information: <xref target="I-D.ietf-cose-merkle-tree-proofs"/></t>
            </li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
        <reference anchor="I-D.ietf-cose-merkle-tree-proofs">
          <front>
            <title>COSE (CBOR Object Signing and Encryption) Receipts</title>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Tradeverifyd</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Antoine Delignat-Lavaud" initials="A." surname="Delignat-Lavaud">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Cedric Fournet" initials="C." surname="Fournet">
              <organization>Microsoft</organization>
            </author>
            <date day="2" month="December" year="2025"/>
            <abstract>
              <t>   COSE (CBOR Object Signing and Encryption) Receipts prove properties
   of a verifiable data structure to a verifier.  Verifiable data
   structures and associated proof types enable security properties,
   such as minimal disclosure, transparency and non-equivocation.
   Transparency helps maintain trust over time, and has been applied to
   certificates, end to end encrypted messaging systems, and supply
   chain security.  This specification enables concise transparency
   oriented systems, by building on CBOR (Concise Binary Object
   Representation) and COSE.  The extensibility of the approach is
   demonstrated by providing CBOR encodings for Merkle inclusion and
   consistency proofs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-merkle-tree-proofs-18"/>
        </reference>
        <reference anchor="I-D.ietf-scitt-architecture">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Antoine Delignat-Lavaud" initials="A." surname="Delignat-Lavaud">
              <organization>Microsoft Research</organization>
            </author>
            <author fullname="Cedric Fournet" initials="C." surname="Fournet">
              <organization>Microsoft Research</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>ARM</organization>
            </author>
            <author fullname="Steve Lasker" initials="S." surname="Lasker">
         </author>
            <date day="10" month="October" year="2025"/>
            <abstract>
              <t>   Traceability in supply chains is a growing security concern.  While
   verifiable data structures have addressed specific issues, such as
   equivocation over digital certificates, they lack a universal
   architecture for all supply chains.  This document defines such an
   architecture for single-issuer signed statement transparency.  It
   ensures extensibility, interoperability between different
   transparency services, and compliance with various auditing
   procedures and regulatory requirements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-architecture-22"/>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="CCF" target="https://github.com/microsoft/ccf">
          <front>
            <title>Confidential Consortium Framework</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CCF-Ledger-Format" target="https://microsoft.github.io/CCF/main/architecture/ledger.html">
          <front>
            <title>CCF Ledger Format</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CCF-Commit-Evidence" target="https://microsoft.github.io/CCF/main/use_apps/verify_tx.html#commit-evidence">
          <front>
            <title>CCF Commit Evidence</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CCF-Receipt-Verification" target="https://microsoft.github.io/CCF/main/use_apps/verify_tx.html#receipt-verification">
          <front>
            <title>CCF Receipt Verification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="COIN-FLIPPING" target="https://dl.acm.org/doi/epdf/10.1145/1008908.1008911">
          <front>
            <title>Coin Flipping By Telephone - A Protocol For Solving Impossible Problems</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="DOI" value="10.1145/1323293.1294280"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
