<?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.1 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-scitt-architecture-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="SCITT Architecture">An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-architecture-04"/>
    <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@sit.fraunhofer.de</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="Y." surname="Deshpande" fullname="Yogesh Deshpande">
      <organization>ARM</organization>
      <address>
        <postal>
          <street>110 Fulbourn Road</street>
          <city>Cambridge</city>
          <code>CB1 9NJ</code>
          <country>UK</country>
        </postal>
        <email>yogesh.deshpande@arm.com</email>
      </address>
    </author>
    <author initials="S." surname="Lasker" fullname="Steve Lasker">
      <organization>RKVST</organization>
      <address>
        <postal>
          <city>Seattle</city>
          <country>United States</country>
        </postal>
        <email>steve.lasker@rkvst.com</email>
      </address>
    </author>
    <date year="2023" month="October" day="23"/>
    <area>Security</area>
    <workgroup>SCITT</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 126?>

<t>Traceability of physical and digital Artifacts in supply chains is a long-standing, but increasingly serious security concern.
The rise in popularity of verifiable data structures as a mechanism to make actors more accountable for breaching their compliance promises has found some successful applications to specific use cases (such as the supply chain for digital certificates), but lacks a generic and scalable architecture that can address a wider range of use cases.</t>
      <t>This document defines a generic, interoperable and scalable architecture to enable transparency across any supply chain with minimum adoption barriers.
It provides flexibility, enabling interoperability across different implementations of Transparency Services with various auditing and compliance requirements.
Issuers can register their Signed Statements on any Transparency Service, with the guarantee that all Consumers will be able to verify them.</t>
      <t>Within the SCITT Architecture, a producer is known as an Issuer, and a consumer is known as a Verifier.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-scitt-architecture/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        scitt Working Group mailing list (<eref target="mailto:scitt@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/scitt/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/scitt/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-scitt/draft-ietf-scitt-architecture"/>.</t>
    </note>
  </front>
  <middle>
    <?line 137?>

<section anchor="sec-introduction">
      <name>Introduction</name>
      <t>This document describes a scalable and flexible, decentralized architecture to enhance auditability and accountability across various existing and emerging supply chains.
It achieves this goal by enforcing the following complementary security guarantees:</t>
      <ol spacing="normal" type="1"><li>
          <t>Statements made by Issuers about supply chain Artifacts must be identifiable, authentic, and non-repudiable</t>
        </li>
        <li>
          <t>Such Statements must be registered on a secure Append-only Log, enabling provenance and history to be independently and consistently audited</t>
        </li>
        <li>
          <t>Issuers can efficiently prove to any other party the Registration of their Signed Statements; verifying this proof ensures that the Issuer is consistent and non-equivocal when producing Signed Statements</t>
        </li>
      </ol>
      <t>The first guarantee is achieved by requiring Issuers to sign their Statements and associated metadata using a distributed public key infrastructure.
The second guarantee is achieved by storing the Signed Statement on an immutable, Append-only Log.
The next guarantee is achieved by implementing the Append-only Log using a verifiable data structure (such as a Merkle Tree <xref target="MERKLE"/>).
Lastly, the Transparency Service verifies the identity of the Issuer, and conformance to a Registration Policy associated with the instance of the Transparency Service.
As the Issuer of the Signed Statement and conformance to the Registration Policy are confirmed, an endorsement is made as the Signed Statement is added to the Append-only Log.</t>
      <t>The guarantees and techniques used in this document generalize those of Certificate Transparency <xref target="RFC9162"/>, which can be re-interpreted as an instance of this architecture for the supply chain of X.509 certificates.
However, the range of use cases and applications in this document is broader, which requires more flexibility in how each Transparency Service is implemented and operates.</t>
      <t>Each service <bcp14>MAY</bcp14> enforce its own Registration Policies for authorizing entities to register their Signed Statements to the Append-only Log.
Some Transparency Services may also enforce authorization policies limiting who can write, read and audit the Append-only Log.
It is critical to provide interoperability for all Transparency Services instances as the composition of supply chain entities is ever-changing.
It is implausible to expect all participants to choose a single vendor or Append-only Log.</t>
      <t>A Transparency Service provides visibility into Signed Statements associated with various supply chains and their sub-systems.
The Signed Statements (and inner payload) make claims about the Artifacts produced by a supply chain.
A Transparency Service endorses specific and well-defined metadata about Artifacts which are captured in the envelope of the Statements.
Some metadata is selected (and signed) by the Issuer ("who issued the Statement", "what type of Artifact is described", "what is the Artifact's version").
Whereas additional metadata is selected (and countersigned) by the Transparency Services ("when was the Signed Statement about an Artifact registered in the Transparency Service", "which registration policy was used").
Evaluating and Registering a Signed Statement, adding it to the Append-only Log, and producing a Transparent Statement is considered a form of counter-signed notarization.</t>
      <t>A Statements payload content is always opaque and <bcp14>MAY</bcp14> be encrypted when submitted to the Transparency Services.
However the header metadata <bcp14>MUST</bcp14> be transparent in order to warrant trust for later processing.</t>
      <t>Transparent Statements provide a common basis for holding Issuers accountable for the Statement payload about Artifacts they release.
Multiple Issuers may Register additional Signed Statements about the same Artifact, but they cannot delete or alter Signed Statements previously added to the Append-only Log.
The ability for the original Issuer to make additional Statements about an Artifact provides for updated information to be shared, such as new positive or negative validations of quality.
The ability of other Issuers to make Statements about an Artifact, produced from another Issuer, provides for third party validations.
A Transparency Service may restrict access to Signed Statements through access control or Registration policies.
However, third parties (such as Auditors) would be granted access as needed to attest to the validity of the Artifact, Subject or the entirety of the Transparency Service.
Independent third parties may also make Statements about an Artifact, published on other Transparency Services.</t>
      <t>Trust in the Transparency Service itself is supported both by protecting their implementation (using replication, trusted hardware, and remote attestation of a system's operational state) and by enabling independent audits of the correctness and consistency of its Append-only Log, thereby holding the organization that operates it accountable.
Unlike CT, where independent Auditors are responsible for enforcing the consistency of multiple independent instances of the same global Transparency Service, each Transparency Service is required to guarantee the consistency of its own Append-only Log (through the use of a consensus algorithm between replicas of the Transparency Service), but assume no consistency between different Transparency Services.</t>
      <t>Breadth of verifier access is critical.
As a result, the Transparency Service specified in this architecture caters to two types of audiences:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Issuers</strong>: organizations, stakeholders, and users involved in creating or attesting to supply chain artifacts, releasing authentic Statements to a definable set of peers</t>
        </li>
        <li>
          <t><strong>Verifiers</strong>: organizations, stakeholders, consumers, and users involved in validating supply chain artifacts, but can only do so if the Statements are known to be authentic.
Verifiers <bcp14>MAY</bcp14> be Issuers, providing additional Signed Statements, attesting to conformance of various compliance requirements.</t>
        </li>
      </ol>
      <t>The Issuer of a Signed Statement must be authenticated and authorized according to the Registration Policy of the Transparency Service.
Analogously, Transparent Statement Verifiers rely on verifiable trustworthiness assertions associated with Transparent Statements and their processing provenance in a believable manner.
If trust can be put into the operations that record Signed Statements in a secure, Append-only Log via online operations, the same trust can be put into the resulting Transparent Statement, issued by the Transparency Services and that can be validated in offline operations.</t>
      <t>The Transparency Services specified in this architecture are language independent and can be implemented alongside or within existing services.</t>
      <t>The interoperability guaranteed by the Transparency Services is enabled via core components (architectural constituents).
Many of the data elements processed by the core components are based on the CBOR Signing and Encryption (COSE) standard specified in <xref target="RFC9052"/>, which is used to produce Signed Statements about Artifacts and to build and maintain a Merkle tree that functions as an Append-only Log for corresponding Signed Statements.</t>
      <section anchor="sec-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="sec-use-cases">
      <name>Use Cases</name>
      <t>The building blocks defined in SCITT are intended to support applications in any supply chain that produces or relies upon digital artifacts, from the build and supply of software and IoT devices to advanced manufacturing and food supply.</t>
      <t>Detailed use cases are maintained in a separate document <xref target="I-D.ietf-scitt-software-use-cases"/>.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The terms defined in this section have special meaning in the context of Supply Chain Integrity, Transparency, and Trust, which are used throughout this document.
When used in text, the corresponding terms are capitalized.
To ensure readability, only a core set of terms is included in this section.</t>
      <dl>
        <dt>Append-only Log (converges Ledger and Registry):</dt>
        <dd>
          <t>the verifiable append-only data structure that stores Signed Statements in a Transparency Service often referred to by the synonym, Registry, Log or Ledger.
SCITT supports multiple Log and Receipt formats to accommodate different Transparency Service implementations, such as historical Merkle Trees and sparse Merkle Trees.</t>
        </dd>
        <dt>Artifact:</dt>
        <dd>
          <t>a physical or non-physical item that is moving along a supply chain.</t>
        </dd>
        <dt>Auditor:</dt>
        <dd>
          <t>an entity that checks the correctness and consistency of all Transparent Statements issued by a Transparency Service.</t>
        </dd>
        <dt>Envelope:</dt>
        <dd>
          <t>metadata, created by the Issuer to produce a Signed Statement.
The Envelope contains the identity of the Issuer and information about the Artifact, enabling Transparency Service Registration Policies to validate the Signed Statement.
A Signed Statement is a COSE Envelope wrapped around a Statement, binding the metadata in the Envelope to the Statement.
In COSE, an Envelope consists of a protected header (included in the Issuer's signature) and an unprotected header (not included in the Issuer's signature).</t>
        </dd>
        <dt>Feed:</dt>
        <dd>
          <t>see Subject</t>
        </dd>
        <dt>Issuer:</dt>
        <dd>
          <t>organizations, stakeholders, and users involved in creating or attesting to supply chain artifacts, releasing authentic Statements to a definable set of peers.
An Issuer may be the owner or author of Artifacts, or an independent third party such as an auditor, reviewer or an endorser.</t>
        </dd>
        <dt>Receipt:</dt>
        <dd>
          <t>a Receipt is a cryptographic proof that a Signed Statement is recorded in the Append-only Log.
Receipts are based on COSE Signed Merkle Tree Proofs <xref target="I-D.draft-steele-cose-merkle-tree-proofs"/>.
Receipts consist of Transparency Service-specific inclusion proofs, a signature by the Transparency Service of the state of the Append-only Log, and additional metadata (contained in the signature's protected headers) to assist in auditing.</t>
        </dd>
        <dt>Registration:</dt>
        <dd>
          <t>the process of submitting a Signed Statement to a Transparency Service, applying the Transparency Service's Registration Policy, adding to the Append-only Log, and producing a Receipt.</t>
        </dd>
        <dt>Registration Policy:</dt>
        <dd>
          <t>the pre-condition enforced by the Transparency Service before registering a Signed Statement, based on information in the non-opaque header and metadata contained in its COSE Envelope.
A Transparency Service <bcp14>MAY</bcp14> implement any range of policies that meets their needs.
However a Transparency Service can not alter the contents of the Signed Statements.</t>
        </dd>
        <dt>Registry:</dt>
        <dd>
          <t>See Append-only Log</t>
        </dd>
        <dt>Signed Statement:</dt>
        <dd>
          <t>an identifiable and non-repudiable Statement about an Artifact signed by an Issuer.
In SCITT, Signed Statements are encoded as COSE signed objects; the payload of the COSE structure contains the issued Statement.</t>
        </dd>
        <dt>Statement:</dt>
        <dd>
          <t>any serializable information about an Artifact.
To help interpretation of Statements, they must be tagged with a media type (as specified in <xref target="RFC6838"/>).
A Statement may represent a Software Bill Of Materials (SBOM) that lists the ingredients of a software Artifact, an endorsement or attestation about an Artifact, indicate the End of Life (EOL), redirection to a newer version,  or any content an Issuer wishes to publish about an Artifact.
The additional Statements about an artifact are correlated by the Subject defined in the CWT_Claims protected header.
The Statement is considered opaque to Transparency Service, and <bcp14>MAY</bcp14> be encrypted.</t>
        </dd>
        <dt>Subject:</dt>
        <dd>
          <t>(Previously named Feed) a logical collection of Statements about the same Artifact.
For any step or set of steps in a supply chain there may be multiple statements made about the same Artifact.
Issuers use Subject to create a coherent sequence of Signed Statements about the same Artifact and Verifiers use the Subject to ensure completeness and non-equivocation in supply chain evidence by identifying all Transparent Statements linked to the one(s) they are evaluating.
In SCITT, Subject is a property of the dedicated, protected header attribute <tt>13: CWT_Claims</tt> within the protected header of the COSE envelope.</t>
        </dd>
        <dt>Transparency Service:</dt>
        <dd>
          <t>an entity that maintains and extends the Append-only Log, and endorses its state.
A Transparency Service <bcp14>MAY</bcp14> implement a Registration Policy, often referred to by its synonym Notary.
A Transparency Service can be a complex distributed system, and SCITT requires the Transparency Service to provide many security guarantees about its Append-only Log.
The identity of a Transparency Service is captured by a public key that must be known by Verifiers in order to validate Receipts.</t>
        </dd>
        <dt>Transparent Statement:</dt>
        <dd>
          <t>a Signed Statement that is augmented with a Receipt created via Registration in a Transparency Service.
The receipt is stored in the unprotected header of COSE Envelope of the Signed Statement.
A Transparent Statement remains a valid Signed Statement, and may be registered again in a different Transparency Service.</t>
        </dd>
        <dt>Verifier:</dt>
        <dd>
          <t>organizations, stakeholders, and users involved in validating supply chain Artifacts.
Verifiers consume Transparent Statements, verifying their proofs and inspecting the Statement payload, either before using corresponding Artifacts, or later to audit an Artifact's provenance on the supply chain.</t>
        </dd>
      </dl>
    </section>
    <section anchor="mybody">
      <name>Definition of Transparency</name>
      <t>In this document, the definition of transparency is intended to build over abstract notions of Append-only Logs and Receipts.
Existing transparency systems such as Certificate Transparency are instances of this definition.</t>
      <t>A Signed Statement is an identifiable and non-repudiable Statement made by an Issuer.
The Issuer selects additional metadata and attaches a proof of endorsement (in most cases, a signature) using the identity key of the Issuer that binds the Statement and its metadata.
Signed Statements can be made transparent by attaching a proof of Registration by a Transparency Service, in the form of a Receipt that countersigns the Signed Statement and witnesses its inclusion in the Append-only Log of a Transparency Service.
By extension, the document may say an Artifact (a firmware binary) is transparent if it comes with one or more Transparent Statements from its author or owner, though the context should make it clear what type of Signed Statements is expected for a given Artifact.</t>
      <t>Transparency does not prevent dishonest or compromised Issuers, but it holds them accountable.
Any Artifact that may be verified, is subject to scrutiny and auditing by other parties.
The Transparency Service provides a history of Statements, which may be made by multiple Issuers, enabling Verifiers to make informed decisions.</t>
      <t>Transparency is implemented by providing a consistent, append-only, cryptographically verifiable, publicly available record of entries.
A SCITT instance is referred to as a Transparency Service.
Implementations of Transparency Services may protect their Append-only Log using a combination of trusted hardware, replication and consensus protocols, and cryptographic evidence.
A Receipt is an offline, universally-verifiable proof that an entry is recorded in the Append-only Log.
Receipts do not expire, but it is possible to append new entries (more recent Signed Statements) that subsume older entries (less recent Signed Statements).</t>
      <t>Anyone with access to the Transparency Service can independently verify its consistency and review the complete list of Transparent Statements registered by each Issuer.
However, the Registrations of separate Transparency Services are generally disjoint, though it is possible to take a Transparent Statement from one Transparency Service and register it again on another (if its policy allows), so the authorization of the Issuer and of the Transparency Service by the Verifier of the Receipt are generally independent.</t>
      <t>Reputable Issuers are thus incentivized to carefully review their Statements before signing them to produce Signed Statements.
Similarly, reputable Transparency Services are incentivized to secure their Append-only Log, as any inconsistency can easily be pinpointed by any Auditor with read access to the Transparency Service.
Some Append-only Log formats may also support consistency auditing (<xref target="sec-consistency"/>) through Receipts, that is, given two valid Receipts the Transparency Service may be asked to produce a cryptographic proof that they are consistent.
Failure to produce this proof can indicate that the Transparency Services operator misbehaved.</t>
    </section>
    <section anchor="sec-architecture-overview">
      <name>Architecture Overview</name>
      <artset>
        <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="656" width="552" viewBox="0 0 552 656" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
            <path d="M 184,64 L 184,88" fill="none" stroke="black"/>
            <path d="M 184,128 L 184,144" fill="none" stroke="black"/>
            <path d="M 184,416 L 184,432" fill="none" stroke="black"/>
            <path d="M 192,224 L 192,240" fill="none" stroke="black"/>
            <path d="M 208,304 L 208,336" fill="none" stroke="black"/>
            <path d="M 240,176 L 240,200" fill="none" stroke="black"/>
            <path d="M 240,256 L 240,272" fill="none" stroke="black"/>
            <path d="M 240,368 L 240,392" fill="none" stroke="black"/>
            <path d="M 240,448 L 240,600" fill="none" stroke="black"/>
            <path d="M 288,224 L 288,240" fill="none" stroke="black"/>
            <path d="M 296,128 L 296,144" fill="none" stroke="black"/>
            <path d="M 296,416 L 296,432" fill="none" stroke="black"/>
            <path d="M 320,496 L 320,520" fill="none" stroke="black"/>
            <path d="M 352,496 L 352,520" fill="none" stroke="black"/>
            <path d="M 368,272 L 368,336" fill="none" stroke="black"/>
            <path d="M 392,144 L 392,192" fill="none" stroke="black"/>
            <path d="M 456,192 L 456,240" fill="none" stroke="black"/>
            <path d="M 472,336 L 472,472" fill="none" stroke="black"/>
            <path d="M 472,488 L 472,600" fill="none" stroke="black"/>
            <path d="M 488,272 L 488,336" fill="none" stroke="black"/>
            <path d="M 512,128 L 512,144" fill="none" stroke="black"/>
            <path d="M 512,192 L 512,464" fill="none" stroke="black"/>
            <path d="M 544,144 L 544,192" fill="none" stroke="black"/>
            <path d="M 152,32 L 224,32" fill="none" stroke="black"/>
            <path d="M 152,64 L 224,64" fill="none" stroke="black"/>
            <path d="M 152,96 L 216,96" fill="none" stroke="black"/>
            <path d="M 256,96 L 328,96" fill="none" stroke="black"/>
            <path d="M 104,112 L 120,112" fill="none" stroke="black"/>
            <path d="M 352,112 L 496,112" fill="none" stroke="black"/>
            <path d="M 152,128 L 216,128" fill="none" stroke="black"/>
            <path d="M 256,128 L 328,128" fill="none" stroke="black"/>
            <path d="M 392,144 L 544,144" fill="none" stroke="black"/>
            <path d="M 200,160 L 224,160" fill="none" stroke="black"/>
            <path d="M 256,160 L 280,160" fill="none" stroke="black"/>
            <path d="M 392,192 L 544,192" fill="none" stroke="black"/>
            <path d="M 208,208 L 272,208" fill="none" stroke="black"/>
            <path d="M 296,240 L 456,240" fill="none" stroke="black"/>
            <path d="M 208,256 L 272,256" fill="none" stroke="black"/>
            <path d="M 368,272 L 488,272" fill="none" stroke="black"/>
            <path d="M 256,288 L 360,288" fill="none" stroke="black"/>
            <path d="M 248,304 L 296,304" fill="none" stroke="black"/>
            <path d="M 112,320 L 128,320" fill="none" stroke="black"/>
            <path d="M 320,320 L 368,320" fill="none" stroke="black"/>
            <path d="M 248,336 L 296,336" fill="none" stroke="black"/>
            <path d="M 368,336 L 488,336" fill="none" stroke="black"/>
            <path d="M 200,400 L 280,400" fill="none" stroke="black"/>
            <path d="M 200,448 L 280,448" fill="none" stroke="black"/>
            <path d="M 256,480 L 304,480" fill="none" stroke="black"/>
            <path d="M 368,480 L 496,480" fill="none" stroke="black"/>
            <path d="M 280,528 L 448,528" fill="none" stroke="black"/>
            <path d="M 112,544 L 128,544" fill="none" stroke="black"/>
            <path d="M 256,576 L 424,576" fill="none" stroke="black"/>
            <path d="M 168,608 L 320,608" fill="none" stroke="black"/>
            <path d="M 376,608 L 520,608" fill="none" stroke="black"/>
            <path d="M 112,624 L 128,624" fill="none" stroke="black"/>
            <path d="M 152,640 L 304,640" fill="none" stroke="black"/>
            <path d="M 360,640 L 504,640" fill="none" stroke="black"/>
            <path d="M 152,640 L 168,608" fill="none" stroke="black"/>
            <path d="M 256,576 L 280,528" fill="none" stroke="black"/>
            <path d="M 304,640 L 320,608" fill="none" stroke="black"/>
            <path d="M 360,640 L 376,608" fill="none" stroke="black"/>
            <path d="M 424,576 L 448,528" fill="none" stroke="black"/>
            <path d="M 504,640 L 520,608" fill="none" stroke="black"/>
            <path d="M 152,32 C 143.16936,32 136,39.16936 136,48" fill="none" stroke="black"/>
            <path d="M 224,32 C 232.83064,32 240,39.16936 240,48" fill="none" stroke="black"/>
            <path d="M 152,64 C 143.16936,64 136,56.83064 136,48" fill="none" stroke="black"/>
            <path d="M 224,64 C 232.83064,64 240,56.83064 240,48" fill="none" stroke="black"/>
            <path d="M 152,96 C 143.16936,96 136,103.16936 136,112" fill="none" stroke="black"/>
            <path d="M 216,96 C 224.83064,96 232,103.16936 232,112" fill="none" stroke="black"/>
            <path d="M 256,96 C 247.16936,96 240,103.16936 240,112" fill="none" stroke="black"/>
            <path d="M 328,96 C 336.83064,96 344,103.16936 344,112" fill="none" stroke="black"/>
            <path d="M 496,112 C 504.83064,112 512,119.16936 512,128" fill="none" stroke="black"/>
            <path d="M 152,128 C 143.16936,128 136,120.83064 136,112" fill="none" stroke="black"/>
            <path d="M 216,128 C 224.83064,128 232,120.83064 232,112" fill="none" stroke="black"/>
            <path d="M 256,128 C 247.16936,128 240,120.83064 240,112" fill="none" stroke="black"/>
            <path d="M 328,128 C 336.83064,128 344,120.83064 344,112" fill="none" stroke="black"/>
            <path d="M 200,160 C 191.16936,160 184,152.83064 184,144" fill="none" stroke="black"/>
            <path d="M 224,160 C 232.83064,160 240,167.16936 240,176" fill="none" stroke="black"/>
            <path d="M 256,160 C 247.16936,160 240,167.16936 240,176" fill="none" stroke="black"/>
            <path d="M 280,160 C 288.83064,160 296,152.83064 296,144" fill="none" stroke="black"/>
            <path d="M 208,208 C 199.16936,208 192,215.16936 192,224" fill="none" stroke="black"/>
            <path d="M 272,208 C 280.83064,208 288,215.16936 288,224" fill="none" stroke="black"/>
            <path d="M 208,256 C 199.16936,256 192,248.83064 192,240" fill="none" stroke="black"/>
            <path d="M 272,256 C 280.83064,256 288,248.83064 288,240" fill="none" stroke="black"/>
            <path d="M 224,288 C 215.16936,288 208,295.16936 208,304" fill="none" stroke="black"/>
            <path d="M 224,288 C 232.83064,288 240,280.83064 240,272" fill="none" stroke="black"/>
            <path d="M 256,288 C 247.16936,288 240,280.83064 240,272" fill="none" stroke="black"/>
            <path d="M 248,304 C 239.16936,304 232,311.16936 232,320" fill="none" stroke="black"/>
            <path d="M 296,304 C 304.83064,304 312,311.16936 312,320" fill="none" stroke="black"/>
            <path d="M 248,336 C 239.16936,336 232,328.83064 232,320" fill="none" stroke="black"/>
            <path d="M 296,336 C 304.83064,336 312,328.83064 312,320" fill="none" stroke="black"/>
            <path d="M 224,352 C 215.16936,352 208,344.83064 208,336" fill="none" stroke="black"/>
            <path d="M 224,352 C 232.83064,352 240,359.16936 240,368" fill="none" stroke="black"/>
            <path d="M 256,352 C 247.16936,352 240,359.16936 240,368" fill="none" stroke="black"/>
            <path d="M 256,352 C 264.83064,352 272,344.83064 272,336" fill="none" stroke="black"/>
            <path d="M 200,400 C 191.16936,400 184,407.16936 184,416" fill="none" stroke="black"/>
            <path d="M 280,400 C 288.83064,400 296,407.16936 296,416" fill="none" stroke="black"/>
            <path d="M 200,448 C 191.16936,448 184,440.83064 184,432" fill="none" stroke="black"/>
            <path d="M 280,448 C 288.83064,448 296,440.83064 296,432" fill="none" stroke="black"/>
            <path d="M 256,480 C 247.16936,480 240,472.83064 240,464" fill="none" stroke="black"/>
            <path d="M 304,480 C 312.83064,480 320,487.16936 320,496" fill="none" stroke="black"/>
            <path d="M 368,480 C 359.16936,480 352,487.16936 352,496" fill="none" stroke="black"/>
            <path d="M 496,480 C 504.83064,480 512,472.83064 512,464" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="480,600 468,594.4 468,605.6" fill="black" transform="rotate(90,472,600)"/>
            <path class="jump" d="M 472,488 C 478,488 478,472 472,472" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="368,288 356,282.4 356,293.6" fill="black" transform="rotate(0,360,288)"/>
            <polygon class="arrowhead" points="360,520 348,514.4 348,525.6" fill="black" transform="rotate(90,352,520)"/>
            <polygon class="arrowhead" points="360,112 348,106.4 348,117.6" fill="black" transform="rotate(180,352,112)"/>
            <polygon class="arrowhead" points="328,520 316,514.4 316,525.6" fill="black" transform="rotate(90,320,520)"/>
            <polygon class="arrowhead" points="328,320 316,314.4 316,325.6" fill="black" transform="rotate(180,320,320)"/>
            <polygon class="arrowhead" points="304,240 292,234.4 292,245.6" fill="black" transform="rotate(180,296,240)"/>
            <polygon class="arrowhead" points="248,600 236,594.4 236,605.6" fill="black" transform="rotate(90,240,600)"/>
            <polygon class="arrowhead" points="248,392 236,386.4 236,397.6" fill="black" transform="rotate(90,240,392)"/>
            <polygon class="arrowhead" points="248,200 236,194.4 236,205.6" fill="black" transform="rotate(90,240,200)"/>
            <polygon class="arrowhead" points="192,88 180,82.4 180,93.6" fill="black" transform="rotate(90,184,88)"/>
            <polygon class="arrowhead" points="136,624 124,618.4 124,629.6" fill="black" transform="rotate(0,128,624)"/>
            <polygon class="arrowhead" points="136,544 124,538.4 124,549.6" fill="black" transform="rotate(0,128,544)"/>
            <polygon class="arrowhead" points="136,320 124,314.4 124,325.6" fill="black" transform="rotate(0,128,320)"/>
            <polygon class="arrowhead" points="128,112 116,106.4 116,117.6" fill="black" transform="rotate(0,120,112)"/>
            <g class="text">
              <text x="188" y="52">Artifact</text>
              <text x="408" y="100">Decentralized</text>
              <text x="508" y="100">Identifier</text>
              <text x="28" y="116">Issuer</text>
              <text x="184" y="116">Statement</text>
              <text x="292" y="116">Envelope</text>
              <text x="416" y="164">DID</text>
              <text x="448" y="164">Key</text>
              <text x="500" y="164">Manifest</text>
              <text x="236" y="228">Signed</text>
              <text x="340" y="228">COSE</text>
              <text x="392" y="228">Signing</text>
              <text x="240" y="244">Statement</text>
              <text x="428" y="292">Transparency</text>
              <text x="52" y="324">Transparency</text>
              <text x="272" y="324">Receipt</text>
              <text x="424" y="324">Service</text>
              <text x="72" y="340">Service</text>
              <text x="240" y="420">Transparent</text>
              <text x="240" y="436">Statement</text>
              <text x="36" y="548">Verifier</text>
              <text x="308" y="548">Verify</text>
              <text x="384" y="548">Transparent</text>
              <text x="352" y="564">Statement</text>
              <text x="32" y="628">Auditor</text>
              <text x="200" y="628">Collect</text>
              <text x="268" y="628">Receipts</text>
              <text x="420" y="628">Replay</text>
              <text x="464" y="628">Log</text>
            </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
                 .----------.
                |  Artifact  |
                 '----+-----'
                      v
                 .----+----.  .----------.  Decentralized Identifier
Issuer      --> | Statement ||  Envelope  +<------------------.
                 '----+----'  '-----+----'                     |
                      |             |           +--------------+---+
                       '----. .----'            | DID Key Manifest |
                             |                  |                  |
                             v                  +-------+------+---+
                        .----+----.                     |      |
                       |  Signed   |    COSE Signing    |      |
                       | Statement +<-------------------'      |
                        '----+----'                            |
                             |               +--------------+  |
                          .-' '------------->+ Transparency |  |
                         |   .-------.       |              |  |
Transparency -->         |  | Receipt +<-----+   Service    |  |
     Service             |   '---+---'       +------------+-+  |
                          '-. .-'                         |    |
                             |                            |    |
                             v                            |    |
                       .-----+-----.                      |    |
                      | Transparent |                     |    |
                      |  Statement  |                     |    |
                       '-----+-----'                      |    |
                             |                            |    |
                             |'-------.     .-------------)---'
                             |         |   |              |
                             |         v   v              |
                             |    .----+---+-----------.  |
Verifier     -->             |   / Verify Transparent /   |
                             |  /      Statement     /    |
                             | '--------------------'     |
                             v                            v
                    .--------+---------.      .-----------+-----.
Auditor      -->   / Collect Receipts /      /   Replay Log    /
                  '------------------'      '-----------------'
]]></artwork>
      </artset>
      <t>The SCITT architecture consists of a very loose federation of Transparency Services, and a set of common formats and protocols for issuing and registering Signed Statements, and auditing Transparent Statements.</t>
      <t>In order to accommodate as many Transparency Service implementations as possible, this document only specifies the format of Signed Statements (which must be used by all Issuers) and a very thin wrapper format for Receipts, which specifies the Transparency Service identity and the agility parameters for the Merkle Tree Proof.
Most of the details of the Receipt's contents are specified in the COSE Signed Merkle Tree Proof document <xref target="I-D.draft-steele-cose-merkle-tree-proofs"/>.</t>
      <t>This section describes at a high level, the three main roles and associated processes in SCITT: Issuers and the Signed Statement issuance process, Transparency Service and the Signed Statement Registration process, as well as Verifiers of the Transparent Statements and the Receipt validation process.</t>
      <section anchor="sec-signed-statement-issuance-and-registration">
        <name>Signed Statement Issuance and Registration</name>
        <section anchor="sec-issuer-identity">
          <name>Issuer Identity</name>
          <t>Before an Issuer is able to produce Signed Statements, it must first create its <xref target="DID-CORE">decentralized identifier</xref> (also known as a DID).
A DID can be <em>resolved</em> into a <em>key manifest</em> (a list of public keys indexed by a <em>key identifier</em>) using many different DID methods.</t>
          <t>Issuers <bcp14>MAY</bcp14> choose the DID method they prefer, but with no guarantee that all Transparency Services will register their Signed Statements, as each Transparency Service may implement different Registration Policies.
To facilitate interoperability, all Transparency Service implementations <bcp14>MUST</bcp14> support the <tt>did:web</tt> method <xref target="DID-WEB"/>.
For example, if the Issuer publishes its manifest at <tt>https://sample.issuer/user/alice/did.json</tt>, the DID of the Issuer is <tt>did:web:sample.issuer:user:alice</tt>.</t>
          <t>Issuers <bcp14>SHOULD</bcp14> use consistent decentralized identifiers for all their Statements about Artifacts, to simplify authorization by Verifiers and auditing.
If an Issuer uses multiple DIDs (for instance, their clients support different resolution methods), they <bcp14>MUST</bcp14> ensure that statements signed under each DID are consistent.</t>
          <t>Issuers <bcp14>MAY</bcp14> update their DID Document at any time, for instance to refresh their signing keys or algorithms.
Issuers <bcp14>SHOULD NOT</bcp14> remove or change any of their previous keys unless they intend to revoke all Signed Statements that are registered as Transparent Statements issued with those keys.</t>
          <t>The Issuer's DID is required and appears in the <tt>1 iss</tt> claim of the <tt>13 CWT_Claims</tt> protected header of the Signed Statements' Envelope.
The version of the key from the DID Document used to sign the Signed Statement is written in the <tt>4 kid</tt> protected header.</t>
          <sourcecode type="cddl"><![CDATA[
CWT_Claims = {
  1 => tstr; iss, the issuer making statements,
  2 => tstr; sub, the subject of the statements,
  * tstr => any
}

Protected_Header = {
  1   => int             ; algorithm identifier,
  4   => bstr            ; Key ID (kid),
  13  => CWT_Claims      ; CBOR Web Token Claims,
  393 => Reg_Info        ; Registration Policy info,
  3   => tstr            ; payload type
}
]]></sourcecode>
          <t><tt>4 kid</tt> <bcp14>MUST</bcp14> either be an absolute URL, or a relative URL.
Relative URL <bcp14>MUST</bcp14> be relative to an <tt>iss</tt> value.</t>
          <t>Resolving <tt>kid</tt> <bcp14>MUST</bcp14> return an identity document of a registered content type (a set of public keys).
In the case of <tt>kid</tt> being an absolute DID URL, the identity document is called a DID Document, and is expected ot have content type <tt>application/did+json</tt>.</t>
          <t>To dereference a DID URL, it first <bcp14>MUST</bcp14> be resolved.
After that the fragment is processed according to the media type.</t>
          <t>For example, when resolving <tt>did:example:123#key-42</tt>, first, the identity document for <tt>did:example:123</tt> is resolved as content type <tt>application/did+json</tt>, next, the fragment <tt>#key-42</tt> is dereferenced to a verification method that contains a <tt>publicKeyJwk</tt> property.</t>
          <t>The content type of <tt>publicKeyJwk</tt> is expected to be <tt>application/jwk+json</tt>.</t>
          <t>The details of both <tt>DID resolution</tt> and <tt>DID dereferencing</tt> are out of scope for this document.</t>
          <t>The <tt>iss</tt> or <tt>kid</tt>, might not be DID URLs, however the following interfaces <bcp14>MUST</bcp14> be satisfied in order to ensure Issuer identity documents, and associated keys are discoverable in a consistent manner.</t>
          <section anchor="sec-resolving-identity-documents">
            <name>Resolving Identity Documents</name>
            <t>The value of <tt>id</tt> might be found the <tt>iss</tt> or <tt>sub</tt> claims if they are present in the protected header or payload.</t>
            <sourcecode type="sh"><![CDATA[
resolve = (id: string, accept: \
  content_type = 'application/did+json') =>
  idDocument (of content type application/did+json)
]]></sourcecode>
            <t>For example:</t>
            <sourcecode type="sh"><![CDATA[
did:example:123
]]></sourcecode>
            <t>Might resolve to:</t>
            <sourcecode type="json"><![CDATA[
{
  "id": "did:example:123",
  "verificationMethod": [{
    "id": "#key-42",
    "type": "JsonWebkey",
    "controller": "did:example:123",
    "publicKeyJwk": {
      "kty": "EC",
      "crv": "P-384",
      "alg": "ES384",
      "x": "LCeAt2sW36j94wuFP0gN...Ler3cKFBCaAHY1svmbPV69bP3RH",
      "y": "zz2SkcOGYM6PbYlw19tc...rd8QWykAprstPdxx4U0uScvDcYd"
    }
  }]
}
]]></sourcecode>
            <t><strong>Editor note</strong>: we might wish to eliminate this intermediate identity document content type, by treating it as an alterative encoding of <tt>application/jwk-set+json</tt> or <tt>application/cose-key-set</tt>.</t>
            <t>However, there is no media type fragment processing directive that would enable dereferencing the known key set content types, listed above.</t>
            <section anchor="sec-comment-on-oidc">
              <name>Comment on OIDC</name>
              <t>For well known token types, such as <tt>id_token</tt> or <tt>access_token</tt>.</t>
              <t><tt>iss</tt> <bcp14>MUST</bcp14> be a URL, and it <bcp14>MUST</bcp14> have keys discoverable in the following way:</t>
              <t><tt>iss</tt> can be used to build a <tt>.well-known</tt> URL to discovery the Issuer's configuration.</t>
              <t>For example, <tt>iss</tt> <tt>contoso.example</tt> will have the following open id connect configuration URL.</t>
              <t><tt>https://contoso.example/.well-known/openid-configuration</tt>.</t>
              <t>This URL will resolve to a JSON document which contains the property:</t>
              <t><tt>jwks_uri</tt>, for example <tt>https://contoso.example/.well-known/jwks.json</tt></t>
              <t>This URL will resolve to a JSON document of content type <tt>application/jwk-set+json</tt>, which will contain specific keys... for example:</t>
              <sourcecode type="json"><![CDATA[
{
  "keys": [
    {
      "alg": "RS256",
      "kty": "RSA",
      "use": "sig",
      "n": "wW9TkSbcn5FV3iUJ-812sqTvwT...YzXrnMZ7WgbMPXmHU8i4z04zw",
      "e": "AQAB",
      "kid": "NTBGNTJEMDc3RUE3RUVEOTM4NDcEFDNzEyOTY5NDNGOUQ4OEU5OA",
      "x5t": "NTBGNTJEMDc3RUE3RUVEOTM4NDcEFDNzEyOTY5NDNGOUQ4OEU5OA",
      "x5c": [
        "MIIDCzCCAfOgAwIBAgIPng0XRWwsd...f5GOGwJS+u/nSYvqCFt57+g3R+"
      ]
    },
    {
      "alg": "RS256",
      "kty": "RSA",
      "use": "sig",
      "n": "ylgVZbNR4nlsU_AbU8Zd7ZhVfm...fo5BLa3_YLWazqcpWRXn9QEDWw",
      "e": "AQAB",
      "kid": "aMIKy_brQk3nLd0PKd9ln",
      "x5t": "-xcTyx47q3ddycG7LtE6QCcETbs",
      "x5c": [
        "MIIC/TCCAeWgAwIBAgIJH62ygzAPG...xCxmHAbK+KdTka/Yg2MadFZdA=="
      ]
    }
  ]
}
]]></sourcecode>
              <t>TODO: For SCITT to be interoperable with OIDC, it would define key dereferencing compatible with OIDC dereferencing.</t>
            </section>
          </section>
          <section anchor="sec-dereferencing-public-keys">
            <name>Dereferencing Public Keys</name>
            <t><tt>kid</tt> is always present in the protected header.</t>
            <t>If <tt>iss</tt> is also present, <tt>kid</tt> <bcp14>MUST</bcp14> be a relative URL to <tt>iss</tt>, otherwise <tt>kid</tt> <bcp14>MUST</bcp14> be an absolute URL that starts with <tt>iss</tt>.</t>
            <t><tt>id</tt> = <tt>kid</tt> if <tt>iss</tt> is undefined, or <tt>iss</tt> + <tt>#</tt> + <tt>kid</tt> when <tt>iss</tt> is defined.</t>
            <t>See also <eref target="https://datatracker.ietf.org/doc/draft-ietf-cose-cwt-claims-in-headers/">draft-ietf-cose-cwt-claims-in-headers</eref>.</t>
            <sourcecode type="sh"><![CDATA[
dereference = (id: string, accept: \
  content_type = 'application/jwk+json') =>
  publicKeyJwk (of content type application/jwk+json)
]]></sourcecode>
            <t>For example, when DIDs are used:</t>
            <sourcecode type="http"><![CDATA[
did:example:123#key-42
]]></sourcecode>
            <t>Might dereference to:</t>
            <sourcecode type="json"><![CDATA[
{
  "kty": "EC",
  "crv": "P-384",
  "alg": "ES384",
  "x": "LCeAt2sW36j94wuFP0gNEIHDzqR6Nh...er3cKFBCaAHY1svmbPV69bP3RH",
  "y": "zz2SkcOGYM6PbYlw19tcbpzo6bEMYH...d8QWykAprstPdxx4U0uScvDcYd"
}
]]></sourcecode>
          </section>
        </section>
        <section anchor="sec-support-for-multiple-artifacts">
          <name>Support for Multiple Artifacts</name>
          <t>Issuers may produce Signed Statements about different Artifacts under the same Identity.
Issuers and Verifiers must be able to recognize the Artifact to which the statements pertain by looking at the Signed Statement.
The <tt>iss</tt> and <tt>sub</tt> claims, within the CWT_Claims protected header, are used to identify the Artifact the statement pertains to.</t>
          <t>See Subject under <xref target="terminology"/> Terminology.</t>
          <t>Issuers <bcp14>MAY</bcp14> use different signing keys (identified by <tt>kid</tt> in the resolved key manifest) for different Artifacts, or sign all Signed Statements under the same key.</t>
        </section>
        <section anchor="sec-registration-policy-metadata">
          <name>Registration Policy Metadata</name>
          <t>SCITT payloads are opaque to Transparency Services.
For interoperability, Registration Policy decisions should be based on interpretation of information in the non-opaque Envelope.</t>
          <t>The small mandatory set of metadata in the envelope of a Signed Statement is neither intended nor sufficient to express the information required for the processing of Registration Policies in a Transparency Service.</t>
          <t>For example, a Transparency Service may only allow a Signed Statement to be registered if it was signed very recently, or may reject a Signed Statement if it arrives out of order in some sequenced protocol.</t>
          <t>Any metadata meant to be interpreted by the Transparency Service during Registration Policy evaluation, <bcp14>SHOULD</bcp14> be added to the <tt>reg_info</tt> header, unless the data is private, in which case it <bcp14>MAY</bcp14> be sent to the Transparency Service as an additional input during registration.</t>
          <t>While the <tt>Reg_Info</tt> header <bcp14>MUST</bcp14> be present in all Signed Statements, all attributes are optional, and the map <bcp14>MAY</bcp14> be empty.</t>
        </section>
      </section>
      <section anchor="sec-transparency-service">
        <name>Transparency Service</name>
        <t>The role of Transparency Service can be decomposed into several major functions.
The most important is maintaining an Append-only Log, the verifiable data structure that records Signed Statements, and enforcing a Registration Policy.
It also maintains a service key, which is used to endorse the state of the Append-only Log in Receipts.
All Transparency Services <bcp14>MUST</bcp14> expose standard endpoints for Registration of Signed Statements and Receipt issuance, which is described in <xref target="sec-messages"/>.
Each Transparency Service also defines its own Registration Policies, which <bcp14>MUST</bcp14> apply to all entries in the Append-only Log.</t>
        <t>The combination of Identity, Registration Policy evaluation, and the Transparency Service endpoint constitute the trusted part of the Transparency Service.
Each of these components <bcp14>MUST</bcp14> be carefully protected against both external attacks and internal misbehavior by some or all of the operators of the Transparency Service.
For instance, the code for the Registration Policy evaluation and endorsement may be protected by running in a Trusted Execution Environment (TEE).
The Transparency Service may be replicated with a consensus algorithm, such as Practical Byzantine Fault Tolerance (pBFT <xref target="PBFT"/>) and may be used to protect against malicious or vulnerable replicas.
Threshold signatures may be use to protect the service key, etc.</t>
        <t>Beyond the trusted components, Transparency Services may operate additional endpoints for auditing, for instance to query the history of Signed Statements registered by a given Issuer via a certain Subject.
Implementations of Transparency Services <bcp14>SHOULD</bcp14> avoid using the service identity and extending the Transparency Service in auditing endpoints, except if it is necessary to compute an Append-only Log consistency proofs.
Other evidence to support the correctness and completeness of the audit response <bcp14>MUST</bcp14> be computed from the Append-only Log.</t>
        <section anchor="sec-service-identity-remote-attestation-and-keying">
          <name>Service Identity, Remote Attestation, and Keying</name>
          <t>Every Transparency Service <bcp14>MUST</bcp14> have a public service identity, associated with public/private key pairs for signing on behalf of the service.
In particular, this identity must be known by Verifiers when validating a Receipt.</t>
          <t>This identity <bcp14>MUST</bcp14> be stable for the lifetime of the service, so that all Receipts remain valid and consistent.
The Transparency Service operator <bcp14>MAY</bcp14> use a distributed identifier as their public service identity if they wish to rotate their keys, if the Append-only Log algorithm they use for their Receipt supports it.
Other types of cryptographic identities, such as parameters for non-interactive zero-knowledge proof systems, may also be used in the future.</t>
          <t>A Transparency Service <bcp14>MAY</bcp14> provide extra evidence that it is securely implemented and operated, enabling remote authentication of the hardware platforms and/or software TCB that run the Transparency Service.
If present, this additional evidence <bcp14>MUST</bcp14> be recorded in the Append-only Log and presented on demand to Verifiers and Auditors.
Examples for Statements that can improve trustworthy assessments of Transparency Services are RATS Conceptual Messages, such as Evidence, Endorsements, or corresponding Attestation Results (see <xref target="RFC9334"/>).</t>
          <t>For example, consider a Transparency Service implemented using a set of replicas, each running within its own hardware-protected trusted execution environments (TEEs).
Each replica <bcp14>MAY</bcp14> provide a recent attestation report for its TEE, binding their hardware platform to the software that runs the Transparency Service, the long-term public key of the service, and the key used by the replica for signing Receipts.
This attestation evidence can be supplemented with Receipts for the software and configuration of the service, as measured in its attestation report.</t>
        </section>
        <section anchor="sec-registration-policies">
          <name>Registration Policies</name>
          <t>Authorization is needed prior to registration of Signed Statements to ensure completeness of an audit.
A Transparency Service that registers valid Signed Statement offered by anonymous Issuers would provide limited to no value to Verifiers.
More advanced use case will rely on the Transparency Service performing additional domain-specific checks before a Signed Statement is accepted.
For example, some Transparency Services may validate the non-opaque content (payload) of Signed Statements.</t>
          <t>Registration Policies refers to the checks that are performed before a Signed Statement is registered given a set of input values.
This specification leaves the implementation of the Registration Policy to the provider of the Transparency Services and its users.</t>
          <t>As a minimum, a Transparency Service <bcp14>MUST</bcp14> authenticate the Issuer of the Signed Statement, which requires some form of trust anchor.
As defined in <xref target="RFC6024"/>, "A trust anchor represents an authoritative entity via a public key and associated data.
The public key is used to verify digital signatures, and the associated data is used to constrain the types of information for which the trust anchor is authoritative."
The Trust Anchor may be a certificate, a raw public key or other structure, as appropriate.
It can be a non-root certificate when it is a certificate.</t>
          <t>A provider of a Transparency Service is, however, expected to indicate what Registration Policy is used in a given deployment and inform its users about changes to the Registration Policy.</t>
        </section>
        <section anchor="sec-append-only-log-security-requirements">
          <name>Append-only Log Security Requirements</name>
          <t>There are many different candidate verifiable data structures that may be used to implement an Append-only Log, such as chronological Merkle Trees, sparse/indexed Merkle Trees, full blockchains, and many other variants.
The Transparency Service is only required to support concise Receipts (i.e., whose size grows at most logarithmically in the number of entries in the Append-only Log) that can be encoded as a COSE Signed Merkle Tree Proof.</t>
          <t>It is possible to offer multiple signature algorithms for the COSE signature of receipts' Signed Merkle Tree, or to change the signing algorithm at later points.
However, the Merkle Tree algorithm (including its internal hash function) cannot easily be changed without breaking the consistency of the Append-only Log.
It is possible to maintain separate Registries for each algorithm in parallel but the Transparency Service is then responsible for proving their mutual consistency.</t>
          <section anchor="sec-finality">
            <name>Finality</name>
            <t>A Transparency Service is append-only.
Once a Signed Statement is registered and becomes a Transparent Statement, it cannot be modified, deleted, or reordered within the Append-only Log.
In particular, once a Receipt is returned for a given Signed Statement, the registered Signed Statement and any preceding entry in the Append-only Log becomes immutable, and the Receipt provides universally-verifiable evidence of this property.</t>
          </section>
          <section anchor="sec-consistency">
            <name>Consistency</name>
            <t>There is no fork in the Append-only Log.
Everyone with access to its contents sees the same sequence of entries, and can check its consistency with any Receipts they have collected.
Transparency Service implementations <bcp14>MAY</bcp14> provide a mechanism to verify that the state of the Append-only Log, encoded in an old Receipt, is consistent with the current Append-only Log state.</t>
          </section>
          <section anchor="sec-replayability-and-auditing">
            <name>Replayability and Auditing</name>
            <t>Everyone with access to the Transparency Service can check the correctness of its contents.
In particular:</t>
            <ul spacing="normal">
              <li>
                <t>the Transparency Service defines and enforces deterministic Registration Policies that can be re-evaluated based solely on the contents of the Append-only Log at the time of Registration, and must then yield the same result</t>
              </li>
              <li>
                <t>the ordering of entries, their cryptographic contents, and the Transparency Services' governance may be non-deterministic, but they must be verifiable</t>
              </li>
              <li>
                <t>a Transparency Service <bcp14>MAY</bcp14> store evidence about the resolution of DIDs into DID Documents</t>
              </li>
              <li>
                <t>a Transparency Service <bcp14>MAY</bcp14> additionally support verifiability of client authentication and access control</t>
              </li>
            </ul>
          </section>
          <section anchor="sec-governance-and-bootstrapping">
            <name>Governance and Bootstrapping</name>
            <t>Transparency Services <bcp14>MAY</bcp14> document their governance rules and procedures for operating the Transparency Service and updating its code.<br/>
Example: relying on Transparent Statements about code updates, secured on its own Append-only Log, or on some auxiliary Transparency Service.<br/></t>
            <t>Governance procedures, their auditing, and their transparency are implementation specific.</t>
            <ul spacing="normal">
              <li>
                <t>Governance may be based on a consortium of members that are jointly responsible for the Transparency Services, or automated based on the contents of an auxiliary governance Transparency Service.</t>
              </li>
              <li>
                <t>Governance typically involves additional records in the Append-only Log to enable its auditing.
The Transparency Service may contain both Transparent Statements and governance entries.</t>
              </li>
              <li>
                <t>Issuers, Verifiers, and third-party Auditors may review the Transparency Service governance before trusting the service, or on a regular basis.</t>
              </li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="validation">
        <name>Verifying Transparent Statements</name>
        <t>For a given Transparent Statement, Verifiers take as trusted inputs:</t>
        <ol spacing="normal" type="1"><li>
            <t>the CWT_Claims Issuer (or its resolved key manifest)</t>
          </li>
          <li>
            <t>the collection of Transparent Statements to which this Statement about the Artifact belongs (CWT_Claims Subject)</t>
          </li>
          <li>
            <t>the list of service identities of trusted Transparency Services</t>
          </li>
        </ol>
        <t>When presented with a Transparent Statement for an Artifact, Verifiers verify the CWT_Claims Issuer identity, signature, and Receipt.
They may additionally apply a validation policy based on the protected headers present both in the Envelope, the Receipt, or the Statement itself, which may include security-critical or Artifact-specific details.</t>
        <t>Some Verifiers may systematically fetch all Transparent Statements using the CWT_Claims Subject and assess them alongside the Transparent Statement they are verifying to ensure freshness, completeness of evidence, and the promise of non-equivocation.</t>
        <t>Some Verifiers may choose to subset the collection of Statements, filtering on the payload type (Protected Header <tt>3</tt>), the CWT (Protected Header <tt>13</tt>) Issuer claim, or other non-opaque properties.</t>
        <t>Some Verifiers may systematically resolve Issuer DIDs to fetch the latest corresponding DID documents.
This behavior strictly enforces the revocation of compromised keys.
Once the Issuer has updated its Statement to remove a key identifier, all Signed Statements include the corresponding <tt>kid</tt> will be rejected.
However, others may delegate DID resolution to a trusted third party and/or cache its results.</t>
        <t>Some Verifiers may decide to skip the DID-based signature verification, relying on the Transparency Service's Registration Policy and the scrutiny of other Verifiers.
Although this weakens their guarantees against key revocation, or against a corrupt Transparency Services, they can still keep the Receipt and blame the Issuer or the Transparency Services at a later point.</t>
      </section>
    </section>
    <section anchor="sec-signed-statement-issuance-registration-and-verification">
      <name>Signed Statement Issuance, Registration, and Verification</name>
      <t>This section details the interoperability requirements for implementers of Signed Statements issuance and validation libraries, and of Transparency Services.</t>
      <section anchor="sec-signed-statement-envelope">
        <name>Signed Statement Envelope</name>
        <t>Signed Statements are CBOR encoded <xref target="RFC8949"/> and protected by CBOR Object Signing and Encryption (COSE <xref target="RFC9052"/>).
Signed Statements contain a protected, an unprotected header and a payload.</t>
        <t>All Signed Statements <bcp14>MUST</bcp14> include the following protected headers:</t>
        <ul spacing="normal">
          <li>
            <t><strong>algorithm</strong> (label: <tt>1</tt>): Asymmetric signature algorithm used by the Issuer of a Signed Statement, as an integer.<br/>
Example: <tt>-35</tt> is the registered algorithm identifier for ECDSA with SHA-384, see <xref target="IANA.cose">COSE Algorithms Registry</xref>.</t>
          </li>
          <li>
            <t><strong>Key ID</strong> (label: <tt>4</tt>): Key ID, as a bytestring</t>
          </li>
          <li>
            <t><strong>CWT_Claims</strong> (label: <tt>13</tt> pending <xref target="CWT_CLAIM_COSE"/>): A CWT representing the Issuer (<tt>iss</tt>) making the statement, and the Subject (<tt>sub</tt>) to correlate a collection of statements about an Artifact.
Additional <xref target="CWT_CLAIMS"/> <bcp14>MAY</bcp14> be used, while <tt>iss</tt> and <tt>sub</tt> <bcp14>MUST</bcp14> be provided
            </t>
            <ul spacing="normal">
              <li>
                <t><strong>iss</strong> (CWT_Claim Key <tt>1</tt>): The Identifier of the signer, as a string<br/>
Example: <tt>did:web:example.com</tt></t>
              </li>
              <li>
                <t><strong>sub</strong> (CWT_Claim Key <tt>2</tt>): The Subject to which the Statement refers, chosen by the Issuer<br/>
Example: <tt>github.com/opensbom-generator/spdx-sbom-generator/releases/tag/v0.0.13</tt></t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>Registration Policy</strong> (label: <tt>TBD</tt>, temporary: <tt>393</tt>): A map containing key/value pairs set by the Issuer which are sealed on Registration and non-opaque to the Transparency Service.
The key/value pair semantics are specified by the Issuer or are specific to the <tt>CWT_Claims iss</tt> and <tt>CWT_Claims sub</tt> tuple.<br/>
Examples: the sequence number of signed statements on a <tt>CWT_Claims Subject</tt>, Issuer metadata, or a reference to other Transparent Statements (e.g., augments, replaces, new-version, CPE-for)</t>
          </li>
          <li>
            <t><strong>Content type</strong> (label: <tt>3</tt>): The media type of the payload, as a string.<br/>
Example: <tt>application/spdx+json</tt> as the media type of SDPX in JSON encoding</t>
          </li>
        </ul>
        <t>In CDDL <xref target="RFC8610"/> notation, a Signed_Statement is defined as follows:</t>
        <sourcecode type="cddl"><![CDATA[
Signed_Statement = COSE_Sign1_Tagged

COSE_Sign1_Tagged = #6.18(COSE_Sign1)

COSE_Sign1 = [
  protected   : bstr .cbor Protected_Header,
  unprotected : Unprotected_Header,
  payload     : bstr,
  signature   : bstr
]

CWT_Claims = {
  1 => tstr; iss, the issuer making statements,
  2 => tstr; sub, the subject of the statements,
  * tstr => any
}

Reg_Info = {
  ? "register_by": uint .within (~time),
  ? "sequence_no": uint,
  ? "issuance_ts": uint .within (~time),
  ? "no_replay": null,
  * tstr => any
}

Protected_Header = {
  1   => int             ; algorithm identifier,
  4   => bstr            ; Key ID,
  13  => CWT_Claims      ; CBOR Web Token Claims,
  393 => Reg_Info        ; Registration Policy info,
  3   => tstr            ; payload type
}

Unprotected_Header = {
  ; TBD, Labels are temporary,
  ? 394 => [+ Receipt]
}
]]></sourcecode>
      </section>
      <section anchor="sec-creating-signed-statement">
        <name>Creating Signed Statement</name>
        <t>There are many types of Statements (such as SBOMs, malware scans, audit reports, policy definitions) that Issuers may want to turn into Signed Statements.
An Issuer must first decide on a suitable format (<tt>3</tt>: payload type) to serialize the Statement payload.
For a software supply chain, payloads describing the software artifacts may include:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="COSWID"/></t>
          </li>
          <li>
            <t><xref target="CycloneDX"/></t>
          </li>
          <li>
            <t><xref target="in-toto"/></t>
          </li>
          <li>
            <t><xref target="SPDX-CBOR"/></t>
          </li>
          <li>
            <t><xref target="SPDX-JSON"/></t>
          </li>
          <li>
            <t><xref target="SLSA"/></t>
          </li>
          <li>
            <t><xref target="SWID"/></t>
          </li>
        </ul>
        <t>Once the Statement is serialized with the correct media-type/content-format, an Issuer should fill in the attributes for the Registration Policy information header.
From the Issuer's perspective, using attributes from named policies ensures that the Signed Statement may only be registered on Transparency Services that implement the associated policy.</t>
        <t>For instance, if a Signed Statement is frequently updated, and it is important for Verifiers to always consider the latest version, Issuers may use the <tt>sequence_no</tt> or <tt>issuer_ts</tt> attributes.</t>
        <t>Once all the Envelope headers are set, an Issuer <bcp14>MUST</bcp14> use a standard COSE implementation to produce an appropriately serialized Signed Statement (the SCITT tag of <tt>COSE_Sign1_Tagged</tt> is outside the scope of COSE, and used to indicate that a signed object is a Signed Statement).</t>
      </section>
      <section anchor="sec-registering-signed-statements">
        <name>Registering Signed Statements</name>
        <t>The same Signed Statement may be independently registered in multiple Transparency Services.
To register a Signed Statement, the Transparency Service performs the following steps:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Client authentication:</strong> This is implementation-specific and <bcp14>MAY</bcp14> be unrelated to the Issuer identity.
Signed Statements may be registered by a different party than their Issuer.</t>
          </li>
          <li>
            <t><strong>Issuer Verification:</strong> The Transparency Service <bcp14>MUST</bcp14> perform resolution of the Issuer's identity.
  This step may require that the service retrieves the Issuer ID in real-time, or rely on a cache of recent resolutions.
  For auditing, during Registration, the Transparency Service <bcp14>MUST</bcp14> store evidence of the lookup, including if it was resolved from a cache.</t>
          </li>
          <li>
            <t><strong>Signature verification:</strong> The Transparency Service <bcp14>MUST</bcp14> verify the signature of the Signed Statement, as described in <xref target="RFC9360"/>, using the signature algorithm and verification key of the Issuer.</t>
          </li>
          <li>
            <t><strong>Signed Statement validation:</strong> The Transparency Service <bcp14>MUST</bcp14> check that the Signed Statement includes the required protected headers listed above.
The Transparency Service <bcp14>MAY</bcp14> verify the Statement payload format, content and other optional properties.</t>
          </li>
          <li>
            <t><strong>Apply Registration Policy:</strong> For named policies, the Transparency Service <bcp14>MUST</bcp14> check that the required Registration Policy attributes are present in the protected headers and apply the check described in Table 1.
  A Transparency Service <bcp14>MUST</bcp14> reject Signed Statements that contain an attribute used for a named policy that is not enforced by the service.
  Custom Signed Statements are evaluated given the current Transparency Service state and the entire Envelope, and may use information contained in the attributes of named policies.</t>
          </li>
          <li>
            <t><strong>Register the Signed Statement</strong> to the append-only log</t>
          </li>
          <li>
            <t><strong>Return the Transparent Statement</strong>, which includes the Receipt
  Details about generating Receipts are described in <xref target="Receipt"/>.</t>
          </li>
        </ol>
        <t>The last two steps may be shared between a batch of Signed Statements recorded in the Append-only Log.</t>
        <t>A Transparency Service <bcp14>MUST</bcp14> ensure that a Signed Statement is registered before releasing its Receipt, so that it can always back up the Receipt by releasing the corresponding entry (the now Transparent Statement) in the Append-only Log.
Conversely, the Transparency Service <bcp14>MAY</bcp14> re-issue Receipts for the Append-only Log content, for instance after a transient fault during Signed Statement registration.</t>
      </section>
      <section anchor="Receipt">
        <name>Transparent Statements and Receipts</name>
        <t>When a Signed Statement is registered by a Transparency Service a Transparent Statement is created.
This Transparent Statement consists of the Signed Statement and a Receipt.
Receipts are based on COSE Signed Merkle Tree Proofs (<xref target="I-D.draft-steele-cose-merkle-tree-proofs"/>) with an additional wrapper structure that adds the following information:</t>
        <ul spacing="normal">
          <li>
            <t><strong>version</strong>: Receipt version number <bcp14>MUST</bcp14> be set to <tt>0</tt> for the current implementation of this document</t>
          </li>
          <li>
            <t><strong>ts_identifier</strong>: The DID of the Transparency Service that issued the Receipt.
Verifiers <bcp14>MAY</bcp14> use this DID as a key discovery mechanism to verify the Receipt.
The verification is the same for Signed Statement and the signer <bcp14>MAY</bcp14> include the <tt>kid</tt> header parameter.
Verifiers <bcp14>MUST</bcp14> support the <tt>did:web</tt> method, all other methods are optional.</t>
          </li>
        </ul>
        <t>The following requirements for the COSE signature of the Merkle Root are added:</t>
        <ul spacing="normal">
          <li>
            <t>The SCITT version header <bcp14>MUST</bcp14> be included and its value match the <tt>version</tt> field of the Receipt structure</t>
          </li>
          <li>
            <t>The DID of Issuer header (in Signed Statements) <bcp14>MUST</bcp14> be included and its value match the <tt>ts_identifier</tt> field of the Receipt structure</t>
          </li>
          <li>
            <t>Transparency Service <bcp14>MAY</bcp14> include the Registration policy info header to indicate to Verifiers what policies have been applied at the registration of this Statement</t>
          </li>
          <li>
            <t>Since <xref target="I-D.draft-steele-cose-merkle-tree-proofs"/> uses optional headers, the <tt>crit</tt> header (id: 2) <bcp14>MUST</bcp14> be included and all SCITT-specific headers (version, DID of Transparency Service and Registration Policy) <bcp14>MUST</bcp14> be marked critical</t>
          </li>
        </ul>
        <t>The Transparency Service may include the registration time to help Verifiers decide about the trustworthiness of the Transparent Statement.
The registration time is defined as the timestamp at which the Transparency Service has added this Signed Statement to its Append-only Log.</t>
        <sourcecode type="cddl"><![CDATA[
Receipt = [
    version: int,
    ts_identifier: tstr,
    proof: SignedMerkleTreeProof
]

; Additional protected headers
; in the COSE signed_tree_root of the SignedMerkleTreeProof
Protected_Header = {
  390 => int         ; SCITT Receipt Version
  394 => tstr        ; DID of Transparency Service (required)
  ? 393 => Reg_info  ; Registration policy information (optional)

  ; Other COSE Signed Merkle Tree headers
  ; (e.g. tree algorithm, tree size)

  ; Additional standard COSE headers
  2 => [+ label]     ; Critical headers
  ? 4 => bstr        ; Key ID (optional)
  ? 33 => COSE_X509  ; X.509 chain (optional)
}

; Details of the registration info, as provided by the TS
RegistrationInfo = {
  ? "registration_time": uint .within (~time),
  * tstr => any
}
]]></sourcecode>
      </section>
      <section anchor="sec-validation-of-transparent-statements">
        <name>Validation of Transparent Statements</name>
        <t>The high-level validation algorithm is described in <xref target="validation"/>.
The algorithm-specific details of checking Receipts are covered in <xref target="I-D.draft-steele-cose-merkle-tree-proofs"/>.</t>
        <t>Before checking a Transparent Statement, the Verifier must be configured with one or more identities of trusted Transparency Services.
If more than one service is configured, the Verifier <bcp14>MUST</bcp14> return which service the Transparent Statement is registered on.</t>
        <t>In some scenarios, the Verifier already expects a specific Issuer and Subject for the Transparent Statement, while in other cases they are not known in advance and can be an output of validation.
Verifiers <bcp14>MAY</bcp14> be configured to re-verify the Issuer's signature locally, but this requires a fresh resolution of the Issuer's DID, which <bcp14>MAY</bcp14> fail if the DID document is not available or if the Statement's signing key has been revoked.
Otherwise, the Verifier trusts the validation done by the Transparency Service during Registration.</t>
        <t>Some Verifiers <bcp14>MAY</bcp14> decide to locally re-apply some or all of the Registration Policies, if they have limited trust in the Transparency Services.
In addition, Verifiers <bcp14>MAY</bcp14> apply arbitrary validation policies after the signature and Receipt have been checked.
Such policies may use as input all information in the Envelope, the Receipt, and the Statement payload, as well as any local state.</t>
        <t>Verifiers <bcp14>MAY</bcp14> offer options to store or share the Receipt of the Transparent Statement for auditing the Transparency Services in case a dispute arises.</t>
      </section>
    </section>
    <section anchor="sec-federation">
      <name>Federation</name>
      <t><strong>Note</strong>: This topic is still under discussion, see <eref target="https://github.com/ietf-wg-scitt/draft-ietf-scitt-architecture/issues/79">issue 79</eref></t>
      <t>Multiple, independently-operated Transparency Services can help secure distributed supply chains, without the need for a single, centralized service trusted by all parties.
For example, multiple Transparency Service instances may be governed and operated by different organizations that are either unaware of the other or do not trust one another.</t>
      <t>This may involve registering the same Signed Statements at different Transparency Services, each with their own purpose and Registration Policy.
This may also involve attaching multiple Receipts to the same Signed Statements, each Receipt endorsing the Issuer signature and a subset of prior Receipts, and each Transparency Service verifying prior Receipts as part of their Registration Policy.</t>
      <t>For example, a supplier may provide a complete, authoritative Transparency Service for its Signed Statements, whereas a Verifiers's Transparency Service may collect different kinds of Signed Statements to ensure complete auditing for a specific use case, and possibly require additional reviews before registering some of these Signed Statements.</t>
      <t>An independent entities (security companies) may Issue statements of quality about different artifacts on their own Transparency Service.
Verifiers choose which independent entities they trust, just as entities choose different security companies today.</t>
    </section>
    <section anchor="sec-transparency-service-api">
      <name>Transparency Service API</name>
      <section anchor="sec-messages">
        <name>Messages</name>
        <t>All messages are sent as HTTP GET or POST requests.</t>
        <t>If the Transparency Service cannot process a client's request, it <bcp14>MUST</bcp14> return an HTTP 4xx or 5xx status code, and the body <bcp14>MAY</bcp14> contain a JSON problem details object (<xref target="RFC9457"/>) with the following fields:</t>
        <ul spacing="normal">
          <li>
            <t><strong>type</strong>: A URI reference identifying the problem.
To facilitate automated response to errors, this document defines a set of standard tokens for use in the type field within the URN namespace of: "urn:ietf:params:scitt:error:".</t>
          </li>
          <li>
            <t><strong>detail</strong>: A human-readable string describing the error that prevented the Transparency Service from processing the request, ideally with sufficient detail to enable the error to be rectified.</t>
          </li>
        </ul>
        <t>Error responses <bcp14>MUST</bcp14> be sent with the <tt>Content-Type: application/problem+json</tt> HTTP header.</t>
        <t>As an example, submitting a Signed Statement with an unsupported signature algorithm would return a <tt>400 Bad Request</tt> status code and the following body:</t>
        <sourcecode type="json"><![CDATA[
{
  "type": "urn:ietf:params:scitt:error:badSignatureAlgorithm",
  "detail": "The Statement was signed with an unsupported algorithm"
}
]]></sourcecode>
        <t>Most error types are specific to the type of request and are defined in the respective subsections below.
The one exception is the "malformed" error type, which indicates that the Transparency Service could not parse the client's request because it did not comply with this document:</t>
        <ul spacing="normal">
          <li>
            <t>Error code: <tt>malformed</tt> (The request could not be parsed).</t>
          </li>
        </ul>
        <t>Clients <bcp14>MUST</bcp14> treat 500 and 503 HTTP status code responses as transient failures and <bcp14>MAY</bcp14> retry the same request without modification at a later date.
Note that in the case of a 503 response, the Transparency Service <bcp14>MAY</bcp14> include a <tt>Retry-After</tt> header field per <xref target="RFC9110"/> in order to request a minimum time for the client to wait before retrying the request.
In the absence of this header field, this document does not specify a minimum.</t>
        <section anchor="sec-register-signed-statement">
          <name>Register Signed Statement</name>
          <section anchor="sec-request">
            <name>Request</name>
            <sourcecode type="http"><![CDATA[
POST <Base URL>/entries
]]></sourcecode>
            <t>Headers:</t>
            <ul spacing="normal">
              <li>
                <t><tt>Content-Type: application/cose</tt></t>
              </li>
            </ul>
            <t>Body: SCITT COSE_Sign1 message</t>
          </section>
          <section anchor="sec-response">
            <name>Response</name>
            <t>One of the following:</t>
            <ul spacing="normal">
              <li>
                <t>Status 201 - Registration is successful.
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Header <tt>Location: &lt;Base URL&gt;/entries/&lt;Entry ID&gt;</tt></t>
                  </li>
                  <li>
                    <t>Header <tt>Content-Type: application/json</tt></t>
                  </li>
                  <li>
                    <t>Body <tt>{ "entryId": "&lt;Entry ID"&gt; }</tt></t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Status 202 - Registration is running.
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Header <tt>Location: &lt;Base URL&gt;/operations/&lt;Operation ID&gt;</tt></t>
                  </li>
                  <li>
                    <t>Header <tt>Content-Type: application/json</tt></t>
                  </li>
                  <li>
                    <t>(Optional) Header: <tt>Retry-After: &lt;seconds&gt;</tt></t>
                  </li>
                  <li>
                    <t>Body <tt>{ "operationId": "&lt;Operation ID&gt;", "status": "running" }</tt></t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Status 400 - Registration was unsuccessful due to invalid input.
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Error code <tt>badSignatureAlgorithm</tt></t>
                  </li>
                  <li>
                    <t>TBD: more error codes to be defined, see <eref target="https://github.com/ietf-wg-scitt/draft-ietf-scitt-architecture/issues/17">#17</eref></t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>If HTTP code 202 is returned, then clients must wait until Registration succeeded or failed by polling the Registration status using the Operation ID returned in the response.
Clients <bcp14>MUST NOT</bcp14> report registration is complete until an HTTP code 202 response has been received.
A time out of the Client <bcp14>MUST</bcp14> be treated as a registration failure, even though the transparency service may eventually complete the registration.</t>
          </section>
        </section>
        <section anchor="sec-retrieve-operation-status">
          <name>Retrieve Operation Status</name>
          <section anchor="sec-request-1">
            <name>Request</name>
            <sourcecode type="http"><![CDATA[
GET <Base URL>/operations/<Operation ID>
]]></sourcecode>
          </section>
          <section anchor="sec-response-1">
            <name>Response</name>
            <t>One of the following:</t>
            <ul spacing="normal">
              <li>
                <t>Status 200 - Registration is running
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Header: <tt>Content-Type: application/json</tt></t>
                  </li>
                  <li>
                    <t>(Optional) Header: <tt>Retry-After: &lt;seconds&gt;</tt></t>
                  </li>
                  <li>
                    <t>Body: <tt>{ "operationId": "&lt;Operation ID&gt;", "status": "running" }</tt></t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Status 200 - Registration was successful
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Header: <tt>Location: &lt;Base URL&gt;/entries/&lt;Entry ID&gt;</tt></t>
                  </li>
                  <li>
                    <t>Header: <tt>Content-Type: application/json</tt></t>
                  </li>
                  <li>
                    <t>Body: <tt>{ "operationId": "&lt;Operation ID&gt;", "status": "succeeded", "entryId": "&lt;Entry ID&gt;" }</tt></t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Status 200 - Registration failed
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Header <tt>Content-Type: application/json</tt></t>
                  </li>
                  <li>
                    <t>Body: <tt>{ "operationId": "&lt;Operation ID&gt;", "status": "failed", "error": { "type": "&lt;type&gt;", "detail": "&lt;detail&gt;" } }</tt></t>
                  </li>
                  <li>
                    <t>Error code: <tt>badSignatureAlgorithm</tt></t>
                  </li>
                  <li>
                    <t>TODO: more error codes to be defined, see <eref target="https://github.com/ietf-wg-scitt/draft-ietf-scitt-architecture/issues/17">#17</eref></t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Status 404 - Unknown Operation ID
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Error code: <tt>operationNotFound</tt></t>
                  </li>
                  <li>
                    <t>This can happen if the operation ID has expired and been deleted.</t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>If an operation failed, then error details <bcp14>MUST</bcp14> be embedded as a JSON problem details object in the <tt>"error"</tt> field.</t>
            <t>If an operation ID is invalid (i.e., it does not correspond to any submit operation), a service may return either a 404 or a <tt>running</tt> status.
This is because differentiating between the two may not be possible in an eventually consistent system.</t>
          </section>
        </section>
        <section anchor="sec-retrieve-signed-statement">
          <name>Retrieve Signed Statement</name>
          <section anchor="sec-request-2">
            <name>Request</name>
            <sourcecode type="http"><![CDATA[
GET <Base URL>/entries/<Entry ID>
]]></sourcecode>
            <t>Query parameters:</t>
            <ul spacing="normal">
              <li>
                <t>(Optional) <tt>embedReceipt=true</tt></t>
              </li>
            </ul>
            <t>If the query parameter <tt>embedReceipt=true</tt> is provided, then the Signed Statement is returned with the corresponding Registration Receipt embedded in the COSE unprotected header.</t>
          </section>
          <section anchor="sec-response-2">
            <name>Response</name>
            <t>One of the following:</t>
            <ul spacing="normal">
              <li>
                <t>Status 200.
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Header: <tt>Content-Type: application/cose</tt></t>
                  </li>
                  <li>
                    <t>Body: COSE_Sign1</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Status 404 - Entry not found.
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Error code: <tt>entryNotFound</tt></t>
                  </li>
                </ul>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="sec-retrieve-registration-receipt">
          <name>Retrieve Registration Receipt</name>
          <section anchor="sec-request-3">
            <name>Request</name>
            <sourcecode type="http"><![CDATA[
GET <Base URL>/entries/<Entry ID>/receipt
]]></sourcecode>
          </section>
          <section anchor="sec-response-3">
            <name>Response</name>
            <t>One of the following:</t>
            <ul spacing="normal">
              <li>
                <t>Status 200.
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Header: <tt>Content-Type: application/cbor</tt></t>
                  </li>
                  <li>
                    <t>Body: SCITT_Receipt</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Status 404 - Entry not found.
                </t>
                <ul spacing="normal">
                  <li>
                    <t>Error code: <tt>entryNotFound</tt></t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>The retrieved Receipt may be embedded in the corresponding COSE_Sign1 document in the unprotected header.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="sec-privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Unless advertised by a Transparency Service, every Issuer must treat Signed Statements it registered (rendering them as Transparent Statements) as public.
In particular, a Signed Statement Envelope and Statement payload <bcp14>MUST NOT</bcp14> carry any private information in plaintext.</t>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>On its own, verifying a Transparent Statement does not guarantee that its Envelope or contents are trustworthy.
Just that they have been signed by the apparent Issuer and counter-signed by the Transparency Service.
If the Verifier trusts the Issuer, it can infer that an Issuer's Signed Statement was issued with this Envelope and contents, which may be interpreted as the Issuer saying the Artifact is fit for its intended purpose.
If the Verifier trusts the Transparency Service, it can independently infer that the Signed Statement passed the Transparency Service Registration Policy and that has been persisted in the Append-only Log.
Unless advertised in the Transparency Service Registration Policy, the Verifier cannot assume that the ordering of Signed Statements in the Append-only Log matches the ordering of their issuance.</t>
      <t>Similarly, the fact that an Issuer can be held accountable for its Transparent Statements does not on its own provide any mitigation or remediation mechanism in case one of these Transparent Statements turned out to be misleading or malicious.
Just that signed evidence will be available to support them.</t>
      <t>An Issuer that knows of a changed state of quality for an Artifact, <bcp14>SHOULD</bcp14> Register a new Signed Statement, using the same <tt>13</tt> CWT <tt>iss</tt> and <tt>sub</tt> claims.</t>
      <t>Issuers <bcp14>MUST</bcp14> ensure that the Statement payloads in their Signed Statements are correct and unambiguous, for example by avoiding ill-defined or ambiguous formats that may cause Verifiers to interpret the Signed Statement as valid for some other purpose.</t>
      <t>Issuers and Transparency Services <bcp14>MUST</bcp14> carefully protect their private signing keys and avoid these keys being used for any purpose not described in this architecture document.
In cases where key re-use is unavoidable, keys <bcp14>MUST NOT</bcp14> sign any other message that may be verified as an Envelope as part of a Signed Statement.</t>
      <section anchor="sec-threat-model">
        <name>Threat Model</name>
        <t>The document provides a generic threat model for SCITT, describing its residual security properties when some of its actors (identity providers, Issuers, Transparency Services, and Auditors) are corrupt or compromised.</t>
        <t>This model may need to be refined to account for specific supply chains and use cases.</t>
        <section anchor="sec-signed-statement-authentication-and-transparency">
          <name>Signed Statement Authentication and Transparency</name>
          <t>SCITT primarily supports checking of Signed Statement authenticity, both from the Issuer (authentication) and from the Transparency Service (transparency).
These guarantees are meant to hold for extensive periods of time, possibly decades.</t>
          <t>It can never be assumed that some Issuers and some Transparency Services will not be corrupt.</t>
          <t>SCITT entities explicitly trust one another on the basis of their long-term identity, which maps to shorter-lived cryptographic credentials.
A Verifier <bcp14>SHOULD</bcp14> validate a Transparent Statement originating from a given Issuer, registered at a given Transparency Service (both identified in the Verifier's local authorization policy) and would not depend on any other Issuer or Transparency Services.</t>
          <t>Authorized supply chain actors (Issuers) cannot be stopped from producing Signed Statements including false assertions in their Statement payload (either by mistake or by corruption), but these Issuers can made accountable by ensuring their Signed Statements are systematically registered at a trustworthy Transparency Service.</t>
          <t>Similarly, providing strong residual guarantees against faulty/corrupt Transparency Services is a SCITT design goal.
Preventing a Transparency Service from registering Signed Statements that do not meet its stated Registration Policy, or to issue Receipts that are not consistent with their Append-only Log is not possible.
In contrast Transparency Services can be held accountable and they can be called out by any Auditor that replays their Append-only Log against any contested Receipt.
Note that the SCITT Architecture does not require trust in a single centralized Transparency Service.
Different actors may rely on different Transparency Services, each registering a subset of Signed Statements subject to their own policy.</t>
          <t>In both cases, the SCITT Architecture provides generic, universally-verifiable cryptographic proof to individually blame Issuers or the Transparency Service.
On one hand, this enables valid actors to detect and disambiguate malicious actors who issue contradictory Signed Statements to different entities (Verifiers, Auditors, Issuers), otherwise known as 'equivocation'.
On the other hand, their liability and the resulting damage to their reputation are application specific, and out of scope of the SCITT Architecture.</t>
          <t>Verifiers and Auditors need not be trusted by other actors.
In particular, so long as actors maintain proper control of their signing keys and identity infrastructure they cannot "frame" an Issuer or a Transparency Service for Signed Statements they did not issue or register.</t>
          <section anchor="sec-append-only-log">
            <name>Append-only Log</name>
            <t>If a Transparency Service is honest, then a Transparent Statement including a correct Receipt ensures that the associated Signed Statement passed its Registration Policy and was recorded appropriately.</t>
            <t>Conversely, a corrupt Transparency Service may:</t>
            <ol spacing="normal" type="1"><li>
                <t>refuse or delay the Registration of Signed Statements</t>
              </li>
              <li>
                <t>register Signed Statements that do not pass its Registration Policy (e.g., Signed Statement with Issuer identities and signatures that do not verify)</t>
              </li>
              <li>
                <t>issue verifiable Receipts for Signed Statements that do not match its Append-only Log</t>
              </li>
              <li>
                <t>refuse access to its Transparency Service (e.g., to Auditors, possibly after storage loss)</t>
              </li>
            </ol>
            <t>An Auditor granted (partial) access to a Transparency Service and to a collection of disputed Receipts will be able to replay it, detect any invalid Registration (2) or incorrect Receipt in this collection (3), and blame the Transparency Service for them.
This ensures any Verifier that trusts at least one such Auditor that (2, 3) will be blamed to the Transparency Service.</t>
            <t>Due to the operational challenge of maintaining a globally consistent Append-only Log, some Transparency Services may provide limited support for historical queries on the Signed Statements they have registered, and accept the risk of being blamed for inconsistent Registration or Issuer equivocation.</t>
            <t>Verifiers and Auditors may also witness (1, 4) but may not be able to collect verifiable evidence for it.</t>
          </section>
          <section anchor="sec-availability-of-transparent-statement">
            <name>Availability of Transparent Statement</name>
            <t>Networking and Storage are trusted only for availability.</t>
            <t>Auditing may involve access to data beyond what is persisted in the Transparency Services.
For example, the registered Transparency Service may include only the hash of a detailed SBOM, which may limit the scope of auditing.</t>
            <t>Resistance to denial-of-service is implementation specific.</t>
            <t>Actors may want to independently keep their own record of the Signed Statements they issue, endorse, verify, or audit.</t>
          </section>
        </section>
        <section anchor="sec-confidentiality-and-privacy">
          <name>Confidentiality and Privacy</name>
          <t>According to Zero Trust Principles any location in a network is never trusted.
All contents exchanged between actors is protected using secure authenticated channels (e.g., TLS) but may not exclude network traffic analysis.</t>
          <section anchor="sec-signed-statements-and-their-registration">
            <name>Signed Statements and Their Registration</name>
            <t>The Transparency Service is trusted with the confidentiality of the Signed Statements presented for Registration.
Some Transparency Services may publish every Signed Statement in their logs, to facilitate their dissemination and auditing.
Others may just return Receipts to clients that present Singed Statements for Registration, and disclose the Append-only Log only to Auditors trusted with the confidentiality of its contents.</t>
            <t>A collection of Signed Statements must not leak information about the contents of other Signed Statements registered on the Transparency Service.</t>
            <t>Issuers must carefully review the inclusion of private/confidential materials in their Statements.
For example, Issuers must remove Personally Identifiable Information (PII) as clear text in the statement.
Alternatively, Issuers may include opaque cryptographic statements, such as hashes.</t>
          </section>
          <section anchor="sec-queries-to-the-transparency-service">
            <name>Queries to the Transparency Service</name>
            <t>The confidentiality of queries is implementation-specific, and generally not guaranteed.
For example, while offline Envelope validation of Signed Statements is private, a Transparency Service may monitor which of its Transparent Statements are being verified from lookups to ensure their freshness.</t>
          </section>
        </section>
        <section anchor="sec-cryptographic-assumptions">
          <name>Cryptographic Assumptions</name>
          <t>SCITT relies on standard cryptographic security for signing schemes (EUF-CMA: for a given key, given the public key and any number of signed messages, an attacker cannot forge a valid signature for any other message) and for Receipts schemes (log collision-resistance: for a given commitment such as a Merkle-tree root, there is a unique log such that any valid path authenticates a Signed Statement in this log.)</t>
          <t>The SCITT Architecture supports cryptographic agility.
The actors depend only on the subset of signing and Receipt schemes they trust.
This enables the gradual transition to stronger algorithms, including e.g. post-quantum signature algorithms.</t>
        </section>
        <section anchor="sec-transparency-service-clients">
          <name>Transparency Service Clients</name>
          <t>Trust in clients that submit Signed Statements for Registration is implementation-specific.
An attacker may attempt to register any Signed Statement it has obtained, at any Transparency Service that accepts them, possibly multiple times and out of order.
This may be mitigated by a Transparency Service that enforces restrictive access control and Registration Policies.</t>
        </section>
        <section anchor="sec-identity">
          <name>Identity</name>
          <t>The identity resolution mechanism is trusted to associate long-term identifiers with their public signature-verification keys.
Transparency Services and other parties may record identity-resolution evidence to facilitate its auditing.</t>
          <t>If one of the credentials of an Issuer gets compromised, the SCITT Architecture still guarantees the authenticity of all Signed Statements signed with this credential that have been registered on a Transparency Service before the compromise.
It is up to the Issuer to notify Transparency Services of credential revocation to stop Verifiers from accepting Signed Statements signed with compromised credentials.
Issuers <bcp14>SHOULD</bcp14> register new Signed Statements indicating the revocation, using the same <tt>13</tt> CWT <tt>iss</tt> and <tt>sub</tt> claims.</t>
          <t>The confidentiality of any identity lookup during Signed Statement Registration or Transparent Statement Verification is out of scope.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD; <xref target="mybody"/>.</t>
      <section anchor="sec-urn-sub-namespace-for-scitt-urnietfparamsscitt">
        <name>URN Sub-namespace for SCITT (urn:ietf:params:scitt)</name>
        <t>IANA is requested to register the URN sub-namespace <tt>urn:ietf:params:scitt</tt>
in the "IETF URN Sub-namespace for Registered Protocol Parameter Identifiers"
Registry <xref target="IANA.params"/>, following the template in <xref target="RFC3553"/>:</t>
        <sourcecode type="output"><![CDATA[
   Registry name:  scitt

   Specification:  [RFCthis]

   Repository:  http://www.iana.org/assignments/scitt

   Index value:  No transformation needed.
]]></sourcecode>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <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 "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC3553">
          <front>
            <title>An IETF URN Sub-namespace for Registered Protocol Parameters</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="T. Hardie" initials="T." surname="Hardie"/>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <date month="June" year="2003"/>
            <abstract>
              <t>This document describes a new sub-delegation for the 'ietf' URN namespace for registered protocol items. The 'ietf' URN namespace is defined in RFC 2648 as a root for persistent URIs that refer to IETF- defined resources. 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="73"/>
          <seriesInfo name="RFC" value="3553"/>
          <seriesInfo name="DOI" value="10.17487/RFC3553"/>
        </reference>
        <reference anchor="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="IANA.params" target="http://www.iana.org/assignments/params">
          <front>
            <title>Uniform Resource Name (URN) Namespace for IETF Use</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cose" target="http://www.iana.org/assignments/cose">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="COSWID" target="https://www.rfc-editor.org/rfc/rfc9393.pdf">
          <front>
            <title>COSWID Specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CWT_CLAIM_COSE" target="https://datatracker.ietf.org/doc/draft-ietf-cose-cwt-claims-in-headers/">
          <front>
            <title>CBOR Web Token (CWT) Claims in COSE Headers</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </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="I-D.draft-steele-cose-merkle-tree-proofs">
          <front>
            <title>Concise Encoding of Signed Merkle Tree Proofs</title>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</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="10" month="July" year="2023"/>
            <abstract>
              <t>   This specification describes verifiable data structures and
   associated proof types for use with COSE.  The extensibility of the
   approach is demonstrated by providing CBOR encodings for RFC9162.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-steele-cose-merkle-tree-proofs-01"/>
        </reference>
        <reference anchor="PBFT">
          <front>
            <title>Practical byzantine fault tolerance and proactive recovery</title>
            <author fullname="Miguel Castro" initials="M." surname="Castro">
              <organization>Microsoft Research</organization>
            </author>
            <author fullname="Barbara Liskov" initials="B." surname="Liskov">
              <organization>MIT Laboratory for Computer Science</organization>
            </author>
            <date month="November" year="2002"/>
          </front>
          <seriesInfo name="ACM Transactions on Computer Systems" value="vol. 20, no. 4, pp. 398-461"/>
          <seriesInfo name="DOI" value="10.1145/571637.571640"/>
          <refcontent>Association for Computing Machinery (ACM)</refcontent>
        </reference>
        <reference anchor="MERKLE">
          <front>
            <title>A Digital Signature Based on a Conventional Encryption Function</title>
            <author fullname="Ralph C. Merkle" initials="R." surname="Merkle">
              <organization/>
            </author>
            <date year="1988"/>
          </front>
          <seriesInfo name="Advances in Cryptology — CRYPTO ’87" value="pp. 369-378"/>
          <seriesInfo name="DOI" value="10.1007/3-540-48184-2_32"/>
          <seriesInfo name="ISBN" value="[&quot;9783540187967&quot;, &quot;9783540481843&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
        <reference anchor="RFC6024">
          <front>
            <title>Trust Anchor Management Requirements</title>
            <author fullname="R. Reddy" initials="R." surname="Reddy"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>A trust anchor represents an authoritative entity via a public key and associated data. The public key is used to verify digital signatures, and the associated data is used to constrain the types of information for which the trust anchor is authoritative. A relying party uses trust anchors to determine if a digitally signed object is valid by verifying a digital signature using the trust anchor's public key, and by enforcing the constraints expressed in the associated data for the trust anchor. This document describes some of the problems associated with the lack of a standard trust anchor management mechanism and defines requirements for data formats and push-based protocols designed to address these problems. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6024"/>
          <seriesInfo name="DOI" value="10.17487/RFC6024"/>
        </reference>
        <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="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="I-D.ietf-scitt-software-use-cases">
          <front>
            <title>Detailed Software Supply Chain Uses Cases for SCITT</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer Institute for Secure Information Technology</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>ARM</organization>
            </author>
            <author fullname="Dick Brooks (REA)" initials="D." surname="Brooks">
              <organization>REA</organization>
            </author>
            <author fullname="Bob Martin" initials="B." surname="Martin">
              <organization>MITRE</organization>
            </author>
            <author fullname="Brian Knight" initials="B." surname="Knight">
              <organization>Microsoft</organization>
            </author>
            <date day="16" month="October" year="2023"/>
            <abstract>
              <t>   This document includes a collection of representative Software Supply
   Chain Use Case Descriptions.  These use cases aim to identify
   software supply chain problems that the industry faces today and acts
   as a guideline for developing a comprehensive solution for these
   classes of scenarios.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-software-use-cases-02"/>
        </reference>
        <reference anchor="CWT_CLAIMS" target="https://www.iana.org/assignments/cwt/cwt.xhtml">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CycloneDX" target="https://cyclonedx.org/specification/overview/">
          <front>
            <title>CycloneDX</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="DID-CORE" target="https://www.w3.org/TR/did-core/">
          <front>
            <title>Decentralized Identifiers (DIDs) v1.0</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date year="2022" month="July" day="22"/>
          </front>
        </reference>
        <reference anchor="DID-WEB" target="https://w3c-ccg.github.io/did-method-web/">
          <front>
            <title>did:web Decentralized Identifiers Method Spec</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="in-toto" target="https://in-toto.io/">
          <front>
            <title>in-toto</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SLSA" target="https://slsa.dev/">
          <front>
            <title>SLSA</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SPDX-JSON" target="https://spdx.dev/use/specifications/">
          <front>
            <title>SPDX Specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SPDX-CBOR" target="https://spdx.dev/use/specifications/">
          <front>
            <title>SPDX Specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SWID" target="https://csrc.nist.gov/Projects/Software-Identification-SWID/guidelines">
          <front>
            <title>SWID Specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="O." surname="Steele" fullname="Orie Steele">
        <organization>Transmute</organization>
        <address>
          <postal>
            <country>United States</country>
          </postal>
          <email>orie@transmute.industries</email>
        </address>
      </contact>
      <t>Orie contributed to improving the generalization of COSE building blocks and document consistency.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA82963bbxpYu+p9PgeP8sOSQlGXJSaxcesmSnCixLceSc1nr
ZFggAUpYJgEGACUzjvtZ9rOcJzvzWjULF9pJ9967M0b3skiwUJdZ8z6/ORqN
BjcH0d5gUGf1PD2IDvPosJxeZ3U6rVdlGs2KMrooV1V9W5T19TqK8wT+jvNq
GZdpXkfH2VVWx/PofLVcztfR0XWc5dUgnkzKFMY9Pzq9uAgGHCTFNI8X8Kak
jGf1KEvr2aiaZnU9is1jo/v7gwG8IYYx0umqzOr14PZKBhy8uT2ITvM6LfO0
Hh3jOINpXB9EVZ0MpkVepXm1qg6idVoNqtVkkVVVVuT1eglvPT25eDIYvCnj
RVLc5q+LZQ1fVQeDKIpXdfE6S14vy3SWvYXB0ukI5rCqr4vyYDCKeNbfpfmb
6HFWvrku5n/Ar4oSZvWkjFf5dTFLy+j89ALHkvW3vkgXcTY/iK5hlPFERvlH
ldXjmXtynKTwYFWXaQpLenmdwobWZVxVafT5Q/hmWiQwj7uf7T949PAu/g17
cxAdx+WiquOkpidWeV3Ch9+m5SLO127yh3ldZHkaHafz7CqP69HT+CZeJbyM
OM/+iHE3DqJn2bQsqmJWRy/TKsVzMTN6sBud1/Rg9LKIEz+jo8e70YMnj/2c
juLFpMySq9QvPM7rZP6PhY4/nhYLO+FXP7i5HqVJmU2jJ8UKT/n/4BRn/MaP
muSvxVVaXcN+VtdLuBlpa5qHL5+Zee3u3o+erOYTfEPHzB49/37jzNb0NqAP
eds/4Mw7JwcUA1dlHD2NqzdpCV/zbM/r9Cb1HxLpvvzhp3NDmBU+Mp7TI/8o
39xUbvU0qfM0roFNBC/M4c4mtN9w3fD61WU2gbtU4qWSuZyN8eUp/VJnc1Zm
qf003DjiMYtVzd/J7Ar4yT9q/Wac5QkwJvisood6psRfyaxo7G/os4hn4L6C
X9RFlC2WZXGT5VdRfZ1GV2melvFcZhUVs+jo7PwkmqyyeYLPTObF9E1FTBH4
2mqBHBEZUAb7mE/X48EgL+AK1tlNirvx8snRF5/t3ofDPT5+yn8/uv/wwQGN
Kt8/2n8Efz8+ezn4RB/Y4wdGh0+/Pfef7sun3x2efydj7T/8XF7zCEhN/vnZ
F3tfyD/3HsJY8sDeZ/TA6eHzwzHw8nhRuT+nRUXTheF/Pj0+oN2q4/IKSfi6
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
s4f/7Qexnl/99M/J85f7+bx69fpw8uqLfyaf//P6p9kC51U8fPw03nv969Of
4z9+ny5/fvlL/ujHk+OfP+ok4menP6xfT8of3+zlT5P7L35IHs3z1laP3k4v
1m/3P/99L0nW028/f1qffPbj0fTkYlJt3tGjnQvY0fRn3dHvv/vswfrqj8MX
38LM3x69XXx3OPnh0x+Sizfxzq9XD57FyZN/Jodff93Y0gH+S6Tgxdnx2UGE
bIuDTAahyHXJIQcJsnKye1hecAkgyYVQZmBOIdzL4HfhI6pZHge/e8F2Iagc
oFayHejhij+gH6Jjaybsln5UFfqToTVfSXRYwxiXSz8bckbyLTZlavwgtK6d
4w2hTGiB9HsSUfCrr+XXmZkO+uSoXpIsc/74U7CZ6P/T02TiueflaSx0TFNe
zL8+qrPfb1v/TR0Ct52Wbc3fv6loq/WlirZVLTer2vrLtqotVjG5VxXchxk5
NSlrKuCiG1s93C4s0MVZCARqblvFbau3/artyel3x3/8/vKz59dwST+g4/br
t5PlH8Vnk5Nnv34Ho2xSdOVe4wU7F98ySjsHYO283d4ZLPnfG5HfvH/aY8Cx
s9mVnKp96B2/Ye2pQ4+UqBXmaF/l3IHDFKwiMDiJ8NAtGKH2gcJ8QpFu8jKK
i6Ubp4bvE5nyxuwc2trPDYXLQwMaVbjy1sZM7QR1fpiIKldXK1d5n969s6BY
7y1gVtMxX1nUo8DDvuXcmRQ3E2bDq3GeHBt925ZObK3TI2ZEnuJuV3rjcGFM
5tud7sxnUoM0ELAnMdb5cm6u8q447tSOcnW9x1VoaAHNJLWAFU2Mgc0QFiem
uBeXucCNWCBkItWZiL+yifxj+zN0A7vk4pp1hXQ57vRKG0hJ941SYhvBJF2Q
QYP+xmxrlmc5LKQNhaMhz+ypncXrz1hlaIj0wKKEZZ5cH4VNEiTuRJYRVzRg
rnhRCgQD0X/XNtEA2B4Pe5aJT40dW6ivUydCKXf32ShcGOFPBHHiaquxCKbi
JhSUhCHyuohLy8+xiExCVpM0BNq/hD14jQd26diEj1JF2uxiCauKay6T045B
FdV5CZhBJZvaO0txF/iiwyxHKFeZvG1Ygd3yrrM589BLDT7o9JwWYxSozuvO
QWVXMa8Xl98+dFkOi3jpABkWy5pZQucS+E5hwkdfGpKa33Cnqa8NOTepZgCN
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
mEejEeELD/5/f/j6D+saAQA=

-->

</rfc>
