<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.14 (Ruby 2.5.1) -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-birkholz-scitt-architecture-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.46.0 -->
  <front>
    <title abbrev="SCITT Architecture">An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
    <seriesInfo name="Internet-Draft" value="draft-birkholz-scitt-architecture-01"/>
    <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>
    <date year="2022" month="September" day="07"/>
    <area>Security</area>
    <workgroup>TBD</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <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 memo defines a generic and scalable architecture to enable transparency across any supply chain with minimum adoption barriers for producers (who can register their claims on any Transparency Service (TS), with the guarantee that all consumers will be able to verify them) and enough flexibility to allow different implementations of Transparency Services with various auditing and compliance requirements.</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-birkholz-scitt-architecture/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        scitt non-WG mailing list (<eref target="mailto:scitt@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/scitt/"/>.
      </t>
    </note>
  </front>
  <middle>
    <section anchor="sec-introduction">
      <name>Introduction</name>
      <t>This document describes a scalable and flexible decentralized architecture to enhance auditability and accountability in various existing and emerging supply chains.
It achieves this goal by enforcing the following complementary security guarantees:</t>
      <ol spacing="normal" type="1">
        <li>statements made by issuers about supply chain artifacts must be identifiable, authentic, and non-repudiable;</li>
        <li>such statements must be registered on a secure append-only Registry so that their provenance and history can be independently and consistently audited;</li>
        <li>issuers can efficiently prove to any other party the registration of their claims; verifying this proof ensures that the issuer is consistent and non-equivocal when making claims.</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 in an immutable, append-only, transparent Registry. The last guarantee is achieved by implementing the Registry using a verifiable data structure (such as a Merkle Tree), and by requiring a TS that operates the Registry to endorse its state at the time of registration.</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 much broader, which requires much more flexibility in how each TS implements and operates its Registry. Each service may enforce its own policy for authorizing entities to register their claims on the TS. Some TS may also enforce access control policies to limit who can audit the full Registry, or keep some information on the Registry encrypted. Nevertheless, it is critical to provide global interoperability for all TS instances as the composition and configuration of involved supply chain entities and their system components is ever changing and always in flux.</t>
      <t>A TS provides visibility into claims issued by supply chain entities and their sub-systems. These claims are called Digital Supply Chain Artifacts (DSCA).
A TS vouches for specific and well-defined metadata about these DSCAs. Some metadata is selected (and signed) by the issuer, indicating, e.g., "who issued the DSCA" or "what type of DSCA is described" or "what is the DSCA version"; whereas additional metadata is selected (and countersigned) by the TS, indicating, e.g., "when was the DSCA registered in the Registry". The DSCA contents can be opaque to the TS, if so desired: it is the metadata that must always be transparent in order to warrant trust.</t>
      <t>Transparent claims provide a common basis for holding issuers accountable for the DSCA they release and (more generally) principals accountable for auxiliary claims they make about DSCAs. Hence, issuers may register new claims about their artifacts, but they cannot delete or alter earlier claims, or hide their claims from third parties such as auditors.</t>
      <t>Trust in the TS itself is supported both by protecting their implementation (using, for instance, replication, trusted hardware, and remote attestation of systems) and by enabling independent audits of the correctness and consistency of its Registry, thereby holding the organization accountable that operates it. Unlike CT, where independent auditors are responsible for enforcing the consistency of multiple independent instances of the same global Registry, we require each TS to guarantee the consistency of its own Registry (for instance, through the use of a consensus algorithm between replicas of the Registry), but assume no consistency between different transparency services.</t>
      <t>The TS specified in this architecture caters to two types of audiences:</t>
      <ol spacing="normal" type="1">
        <li>DSCA Issuers: entities, stakeholders, and users involved in supply chain interactions that need to release DSCAs to a definable set of peers; and</li>
        <li>DSCA Consumers: entities, stakeholders, and users involved in supply chain interactions that need to access, validate, and trust DSCAs.</li>
      </ol>
      <t>DSCA Issuers rely on being discoverable and represented as the responsible parties for released DSCAs by the TS in a believable manner.
Analogously, DSCA Consumers rely on verifiable trustworthiness assertions associated with DSCAs and their processing in a believable manner.
If trust can be put into the operations that record DSCAs in a secure, append-only Registry via an online operation, the same trust can be put into a corresponding receipt that is the result of these online operations issued by the TS and that can be validated in offline operations.</t>
      <t>The TS specified in this architecture can be implemented by various different types of services in various types of languages provided via various variants of API layouts.</t>
      <t>The global interoperability enabled and guaranteed by the TS is enabled via core components (architectural constituents) that come with prescriptive requirements (that are typically hidden away from the user audience via APIs). The core components are based on the Concise Signing and Encryption standard specified in <xref target="RFC8152"/>, which is used to sign released DSCAs and to build and maintain a Merkle tree that functions as the append-only Registry for DSCAs.
The format and verification process for Registry-based transparency receipts are described in <xref target="I-D.birkholz-scitt-receipts"/>.</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&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="sec-use-cases">
      <name>Use Cases</name>
      <t>This section presents representative and solution-agnostic use cases to illustrate the scope of SCITT and the processing of Digital Supply Chain Artifacts.</t>
      <section anchor="sec-software-bill-of-materials-sbom">
        <name>Software Bill of Materials (SBOM)</name>
        <t>As the ever increasing complexity of large software projects requires more modularity and abstractions to manage them, keeping track of their full Trusted Computing Base (TCB) is becoming increasingly difficult. Each component may have its own set of dependencies and libraries. Some of these dependencies are binaries, which means their TCB depends not only on their source, but also on their build environment (compilers and tool-chains). Besides, many source and binary packages are distributed through various channels and repositories that may not be trustworthy.</t>
        <t>Software Bills of Materials (SBOM) help the authors, packagers, distributors, auditors and users of software understand its provenance and who may have the ability to introduce a vulnerability that can affect the supply chain downstream. However, the usefulness of SBOM in protecting end users is limited if supply chain actors cannot be held accountable for their contents. For instance, consider a package repository for an open source operating system distribution. The operator of this repository may decide to provide a malicious version of a package only to users who live in a specific country. They can write two equivocal SBOMs for the honest and backdoored versions of the package, so that nobody outside the affected country can discover the malicious version, but victims are not aware they are being targeted.</t>
      </section>
      <section anchor="sec-confidential-computing">
        <name>Confidential Computing</name>
        <t>Confidential Computing can leverage hardware-protected trusted execution environments (TEEs) to operate cloud services that protect the confidentiality of data that they process. It relies on remote attestation, which allows the service to prove to remote users what is the hash of its software, as measured and signed by the hardware.</t>
        <t>For instance, consider a speech recognition service that implements machine learning inference using a deep neural network model. The operator of the service wants to prove to its users that the service preserves the user's privacy, that is, the submitted recordings can only be used to detect voice commands but no other purpose (such as storing the recordings or detecting mentions of brand names for advertisement purposes).
When the user connects to the TEE implementing the service, the TEE presents attestation evidence that includes a hardware certificate and a software measurement for their task; the user verifies this evidence before sending its recording.</t>
        <t>But how can users verify the software measurement for their task? And how can operators update their service, e.g., to mitigate security vulnerabilities or improve accuracy,
without first convincing all users to update the measurements they trust?</t>
        <t>A supply chain that maintains a transparent record of the successive software releases for machine-learning models and runtimes, recording both their software measurements
and their provenance (source code, build reports, audit reports,...) can provide users with the information they need to authorize these tasks, while holding the service operator accountable for the software they release for them.</t>
      </section>
      <section anchor="sec-cold-chains-for-seafood">
        <name>Cold Chains for Seafood</name>
        <t>Once seafood is caught, its quality is determined -- amongst other criteria -- via the integrity of a cold chain that ensures a regulatory perspective freshness mandating a continuous storing temperature between 1&nbsp;<contact fullname="°"/>C and 0&nbsp;<contact fullname="°"/>C (or -18&nbsp;<contact fullname="°"/>C and lower for frozen seafood). The temperature is recorded by cooling units adhering to certain compliance standards automatically. Batches of seafood can be split or aggregated before arriving in a shelf so that each unit can potentially have a potentially unique cold chain record whose transparency impacts the accuracy of the shelf-life associated with it. Especially in early links of the supply chain, Internet connection or sophisticated IT equipment are typically not available and sometimes temperature measurements are recorded manually and digital records are created in hindsight.</t>
      </section>
    </section>
    <section anchor="sec-terminology">
      <name>Terminology</name>
      <t>The terms defined in this section have special meaning in the context of Supply Chain Integrity, Transparency, and Trust 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>Artifact:</dt>
        <dd>
          <t>a physical or non-physical item that is moving along the supply chain.</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"/>).
For example, a statement may represent a Software Bill Of Materials (SBOM) that lists the ingredients of a software Artifact, or some endorsement or attestation about an Artifact.</t>
        </dd>
        <dt>Claim:</dt>
        <dd>
          <t>an identifiable and non-repudiable Statement about an Artifact made by an Issuer. In SCITT, Claims are encoded as COSE signed objects; the payload of the COSE structure contains the Statement.</t>
        </dd>
        <dt>Issuer:</dt>
        <dd>
          <t>an entity that makes Claims about Artifacts in the supply chain. The Issuer may be the owner or author of the Artifact, or an independent third party such as a reviewer or an endorser.</t>
        </dd>
        <dt>Envelope:</dt>
        <dd>
          <t>the metadata added to the Statement by the Issuer to make it a Claim.
It contains the identity of the Issuer and other information to help Verifiers identify the Artifact referred in the Statement. A Claim binds the Envelope to the Statement. In COSE, the Envelope consists of protected headers.</t>
        </dd>
        <dt>Feed:</dt>
        <dd>
          <t>an identifier chosen by the Issuer for the Artifact. For every Issuer and Feed, the Registry on a Transparency Service contains a sequence of Claims about the same Artifact.
In COSE, Feed is a dedicated header attribute in the protected header of the Envelope.</t>
        </dd>
        <dt>Registry:</dt>
        <dd>
          <t>the verifiable append-only data structure that stores Claims in a Transparency Service often referred to by the synonym log or ledger. SCITT supports multiple Registry and Receipt formats to accommodate different Transparency Service implementations, such as historical Merkle Trees and sparse Merkle Trees.</t>
        </dd>
        <dt>Transparency Service:</dt>
        <dd>
          <t>an entity that maintains and extends the Registry, and endorses its state. A Transparency Service is often referred to by its synonym Notary. A Transparency Service can be a complex distributed system, and SCITT requires the TS to provide many security guarantees about its Registry . The identity of a TS is captured by a public key that must be known by Verifiers in order to validate Receipts.</t>
        </dd>
        <dt>Receipt:</dt>
        <dd>
          <t>a Receipt is a special form of COSE countersignature for Claims that embeds cryptographic evidence that the Claim is recorded in the Registry . It consists of a Registry -specific inclusion proof, a signature by the Transparency Service of the state of the Registry , and additional metadata (contained in the countersignature protected headers) to assist in auditing.</t>
        </dd>
        <dt>Registration:</dt>
        <dd>
          <t>the process of submitting a Claim to a Transparency Service, applying its registration policy, storing it in the Registry, producing a Receipt, and returning it to the submitter.</t>
        </dd>
        <dt>Registration Policy:</dt>
        <dd>
          <t>the pre-condition enforced by the TS before registering a Claim,
based on its Envelope (notably the identity of its Issuer)
and on prior claims already in the Registry.</t>
        </dd>
        <dt>Transparent Claim:</dt>
        <dd>
          <t>a Claim that is augmented with a Receipt of its registration. A Transparent Claim remains a valid Claim (as the Receipt is carried in the countersignature), and may be registered again in a different TS.</t>
        </dd>
        <dt>Verifier:</dt>
        <dd>
          <t>an entity that consumes Transparent Claims (a specialization of Claim Consumer), verifying their proofs and inspecting their Statements, either before using their Artifacts, or later to audit their provenance on the supply chain.</t>
        </dd>
        <dt>Auditor:</dt>
        <dd>
          <t>an entity that checks the correctness and consistency of all Claim registered by a TS (a specialization of Claim Consumer).</t>
        </dd>
      </dl>
    </section>
    <section anchor="mybody">
      <name>Definition of Transparency</name>
      <t>In this document, we use a definition of transparency built over abstract notions of Registry and Receipts. Existing transparency systems such as Certificate Transparency are instances of this definition.</t>
      <t>A Claim 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. Claims can be made transparent by attaching a proof of Registration by a TS, in the form of a Receipt that countersigns the Claim and witnesses its inclusion in the Registry of a TS. By extension, we may say an Artifact (e.g. a firmware binary) is transparent if it comes with one or more Transparent Claims from its author or owner, though the context should make it clear what type of Claim 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 used to target a particular user that checks for Receipts must have been recorded in the tamper-proof Registry, and will be subject to scrutiny and auditing by other parties.</t>
      <t>Transparency is implemented by a Registry that provides a consistent, append-only, cryptographically verifiable, publicly available record of entries. Implementations of TS may protect their Registry 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 Registry. Receipts do not expire, but it is possible to append new entries that subsume older entries.</t>
      <t>Anyone with access to the Registry can independently verify its consistency and review the complete list of Claims registered by each Issuer. However, the Registry of separate Transparency Services are generally disjoint, though it is possible to take a Claim from one Registry and register it again on another (if its policy allows it), so the authorization of the Issuer and of the Registry by the Verifier of the Receipt are generally independent.</t>
      <t>Reputable Issuers are thus incentivized to carefully review their Statements before signing them into Claims. Similarly, reputable TS are incentivized to secure their Registry, as any inconsistency can easily be pinpointed by any auditor with read access to the Registry. Some Registry formats may also support consistency auditing through Receipts, that is, given two valid Receipts the TS may be asked to produce a cryptographic proof that they are consistent. Failure to produce this proof can indicate that the TS operator misbehaved.</t>
    </section>
    <section anchor="sec-architecture-overview">
      <name>Architecture Overview</name>
      <artwork><![CDATA[
             Artifact
                |
                v                      +------------------+
 Issuer    -> Statement    Envelope    | DID Key Manifest |
                \           /          | (decentralized)  |
                 \         /           +------------------+
                  \ ______/               |     |
                      |                   |     |
                      v        signature  |     |
                    Claim  <--------------/     |
                      |                         |
                      |  Claim      +---------+ |
                      |------------>| Trans.  | |
Transparency ->       +<------------| Registry| /
Service               |  Receipt    +--------+ X
                      v                       / \
                 Transparent                 /   \
                    Claim                   /    |
                      |\                   /     |
                      | \                 /      |
                      |  \               /       |
Verifier    ->        |    Verify Claim          |
                      |                          |
Auditor    ->       Collect Receipts     Replay Registry
]]></artwork>
      <t>The SCITT architecture consists of a very loose federation of Transparency Services, and a set of common formats and protocols for issuing, registering and auditing Claims.
In order to accommodate as many TS implementations as possible, this document only specifies the format of Claims (which must be used by all Issuers) and a very thin wrapper format for Receipts, which specifies the TS identity and the Registry algorithm. Most of the details of the Receipt's contents are specific to the Registry algorithm. The <xref target="I-D.birkholz-scitt-receipts"/> document defines two initial Registry algorithms (for historical and sparse Merkle Trees), but other Registry formats (such as blockchains, or hybrid historical and indexed Merkle Trees) may be proposed later.</t>
      <t>In this section, we describe at a high level the three main roles and associated processes in SCITT: Issuers and the Claim issuance process, transparency Registry and the Claim Registration process, and Verifiers and the Receipt validation process.</t>
      <section anchor="sec-claim-issuance-and-registration">
        <name>Claim Issuance and Registration</name>
        <section anchor="sec-issuer-identity">
          <name>Issuer Identity</name>
          <t>Before an Issuer is able to produce Claims, it must first create its <eref target="https://www.w3.org/TR/did-core">decentralized identifier</eref> (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 TS will be able to register their Claim. To facilitate interoperability, all Transparency Service implementations <bcp14>SHOULD</bcp14> support the <tt>did:web</tt> method from [https://w3c-ccg.github.io/did-method-web/]. For instance, 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 Artifacts, to simplify authorization by Verifiers and auditing. They <bcp14>MAY</bcp14> update their DID manifest, for instance to refresh their signing keys or algorithms, but they <bcp14>SHOULD NOT</bcp14> remove or change any prior keys unless they intend to revoke all Claims issued with those keys. This DID appears in the Issuer header of the Claim's Envelope, while the version of the key from the manifest used to sign the Claim is written in the <tt>kid</tt> header.</t>
        </section>
        <section anchor="sec-naming-artifacts">
          <name>Naming Artifacts</name>
          <t>Many Issuers issue Claims about different Artifacts under the same DID, so it is important for everyone to be able to immediately recognize by looking at the Envelope of a Claim what Artifact it is referring to. This information is stored in the Feed header of the Envelope. Issuers <bcp14>MAY</bcp14> use different signing keys (identified by <tt>kid</tt> in the resolved key manifest) for different Artifacts, or sign all Claims under the same key.</t>
        </section>
        <section anchor="sec-claim-metadata">
          <name>Claim Metadata</name>
          <t>Besides Issuer, Feed and kid, the only other mandatory metadata in the Claim is the type of the Payload, indicated in the <tt>cty</tt> Envelope header.
However, this set of mandatory metadata is not sufficient to express many important Registration policies. For example, a Registry may only allow a Claim to be registered if it was signed recently. While the Issuer is free to add any information in the payload of the Claim, the TS (and most of its auditor) can only be expected to interpret information in the Envelope.</t>
          <t>Such metadata, meant to be interpreted by the TS during Registration policy evaluation, should be added to the <tt>reg_info</tt> header. While the header <bcp14>MUST</bcp14> be present in all Claims, its contents consist of a map of named attributes. Some attributes (such as the Issuer's timestamp) are standardized with a defined type, to help uniformize their semantics across TS. Others are completely customizable and may have arbitrary types. In any case, all attributes are optional so the map <bcp14>MAY</bcp14> be empty.</t>
        </section>
      </section>
      <section anchor="sec-transparency-service-ts">
        <name>Transparency Service (TS)</name>
        <t>The role of TS can be decomposed into several major functions. The most important is maintaining a Registry, the verifiable data structure that records Claims, and enforcing a Registration policy. It also maintains a service key, which is used to endorse the state of the Registry in Receipts. All TS <bcp14>MUST</bcp14> expose standard endpoints for Registration of Claims and Receipt issuance, which is described in <xref target="sec-messages"/>. Each TS also defines its Registration policy, which <bcp14>MUST</bcp14> apply to all entries in the Registry.</t>
        <t>The combination of Registry, identity, Registration policy evaluation, and Registration endpoint constitute the trusted part of the TS. Each of these components <bcp14>SHOULD</bcp14> be carefully protected against both external attacks and internal misbehavior by some or all of the operators of the TS. For instance, the code for policy evaluation, Registry extension and endorsement may be protected by running in a TEE; the Registry may be replicated and a consensus algorithm such as Practical Byzantine Fault Tolerance (pBFT <xref target="PBFT"/>) 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 for the history of Claims made by a given Issuer and Feed. Implementations of TS <bcp14>SHOULD</bcp14> avoid using the service identity and extending the Registry in auditing endpoints; as much as practical, the Registry <bcp14>SHOULD</bcp14> contain enough evidence to re-construct verifiable proofs that the results returned by the auditing endpoint are consistent with a given state of the Registry.</t>
        <section anchor="sec-service-identity-remote-attestation-and-keying">
          <name>Service Identity, Remote Attestation, and Keying</name>
          <t>Every TS <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 should be stable for the lifetime of the service, so that all Receipts remain valid and consistent. The TS operator <bcp14>MAY</bcp14> use a distributed identifier as their public service identity if they wish to rotate their keys, if the Registry 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>The TS <bcp14>SHOULD</bcp14> provide evidence that it is securely implemented and operated, enabling remote authentication of the hardware platforms and/or software TCB that run the TS. This additional evidence <bcp14>SHOULD</bcp14> be recorded in the Registry and presented on demand to Verifiers and auditors.</t>
          <t>For example, consider a TS implemented using a set of replicas, each running within its own hardware-protected trusted execution environments (TEEs). Each replica <bcp14>SHOULD</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 <bcp14>SHOULD</bcp14> be supplemented with transparency 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>A TS that accepts to register any valid claim offered by an issuer would end up providing only limited value to verifiers. In consequence, a baseline transparency guarantee policing the registration of claims is required to ensure completeness of audit, which can help detect equivocation.
Most advanced SCITT scenarios rely on the TS performing additional domain-specific checks before a claim is accepted: TS may only allow trusted authenticated users to register claims, TS may try to check that a new claim is consistent with previous claims from the same issuers or that claims are registered in the correct order and cannot be re-played; some TS may even interpret and validate the payload of claims.</t>
          <t>In general, registration policies are applied at the discretion of the TS, and verifiers use receipts as witnesses that confirm that the registration policy of the TS was satisfied at the time claim registration. TS implementations <bcp14>SHOULD</bcp14> make their full registration policy public and auditable, e.g. by recording stateful policy inputs at evaluation time in the registry to ensure that policy can be independently validated later.
From an interoperability point of view, the policy that was applied by the TS is opaque to the verifier, who is forced to trust the associated registration policy. If the policy of the TS evolves over time, or is different across issuers, the guarantee derived from receipt validation may not be uniform across all claims over time.</t>
          <t>To help verifiers interpret the semantics of claim registration, SCITT defines a standard mechanism for signalling in the claim itself which policies have been applied by the TS from a defined set
of registration policies with standardized semantics. Each policy that is expected to be enforced by the TS is represented by an entry in the registration policy info map (<tt>reg_info</tt>) in the envelope. The key of the map corresponds to the name of the policy, while its value (including its type) is policy-specific. For instance, the <tt>register_by</tt> policy defines the maximum timestamp by which a claim can be registered, hence the associated value contains an unsigned integer.</t>
          <t>While this design ensures that all verifiers get the same guarantee regardless of where a claim is registered, its main downside is that it requires the issuer to include the necessary policies in the envelope when the claim is signed. Furthermore, it makes it impossible to register the same claim on two different TS if their required registration policies are incompatible.</t>
          <ul empty="true">
            <li>
              <t><strong>Editor's note</strong></t>
              <t>The technical design for signalling and verifying registration policies is a work in progress.
An alternative design would be to include the registration policies in the receipt/countersignature rather than in the envelope. This improves the portability of claims but requires the verifier to be more aware of the particular policies at the TS where the claim is registered.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-registry-security-requirements">
          <name>Registry Security Requirements</name>
          <t>There are many different candidate verifiable data structures that may be used to implement the Registry, such as chronological Merkle Trees, sparse/indexed Merkle Trees, full blockchains, and many other variants. We only require the Registry to support concise Receipts (i.e. whose size grows at most logarithmically in the number of entries in the Registry). This does not necessarily rule out blockchains as a Registry, but may necessitate advanced Receipt schemes that use arguments of knowledge and other verifiable computing techniques.</t>
          <t>Since the details of how to verify a Receipt are specific to the data structure, we do not specify any particular Registry format in this document. Instead, we propose two initial formats for Registry in <xref target="I-D.birkholz-scitt-receipts"/> using historical and sparse Merkle Trees. Beyond the format of Receipts, we require generic properties that should be satisfied by the components in the TS that have the ability to write to the Registry.</t>
          <section anchor="sec-finality">
            <name>Finality</name>
            <t>The Registry is append-only: once a Claim is registered, it cannot be modified, deleted, or moved. In particular, once a Receipt is returned for a given Claim, the Claim and any preceding entry in the Registry become 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 Registry: everyone with access to its contents sees the same sequence of entries, and can check its consistency with any Receipts they have collected.
TS implementations <bcp14>SHOULD</bcp14> provide a mechanism to verify that the state of the Registry encoded in an old Receipt is consistent with the current Registry state.</t>
          </section>
          <section anchor="sec-replayability-and-auditing">
            <name>Replayability and Auditing</name>
            <t>Everyone with access to the Registry can check the correctness of its contents. In particular,</t>
            <ul spacing="normal">
              <li>the TS defines and enforces deterministic Registration policies that can be re-evaluated based solely on the contents of the Registry at the time of registraton, and must then yield the same result.</li>
              <li>The ordering of entries, their cryptographic contents, and the Registry governance may be non-deterministic, but they must be verifiable.</li>
              <li>The TS <bcp14>SHOULD</bcp14> store evidence about the resolution of distributed identifiers into manifests.</li>
              <li>The TS <bcp14>MAY</bcp14> additionally support verifiability of client authentication and access control.</li>
            </ul>
          </section>
          <section anchor="sec-governance-and-bootstrapping">
            <name>Governance and Bootstrapping</name>
            <t>The TS needs to support governance, with well-defined procedures for allocating resources to operate the Registry (e.g., for provisioning trusted hardware and registering their attestation materials in the Registry) and for updating its code (e.g., relying on Transparent Claims about code updates, secured on the Registry itself, or on some auxiliary TS).</t>
            <t>Governance procedures, their auditing, and their transparency are implementation specific. The TS <bcp14>SHOULD</bcp14> document them.</t>
            <ul spacing="normal">
              <li>Governance may be based on a consortium of members that are jointly responsible for the TS, or automated based on the contents of an auxiliary governance TS.</li>
              <li>Governance typically involves additional records in the Registry to enable its auditing. Hence, the Registry may contain both Transparent Claims and governance entries.</li>
              <li>Issuers, Verifiers, and third-party auditors may review the TS governance before trusting the service, or on a regular basis.</li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="validation">
        <name>Verifying Transparent Claims</name>
        <t>For a given Artifact, Verifiers take as trusted inputs:</t>
        <ol spacing="normal" type="1">
          <li>the distributed identifier of the Issuer (or its resolved key manifest),</li>
          <li>the expected name of the Artifact (i.e. the Feed),</li>
          <li>the list of service identities of trusted TS.</li>
        </ol>
        <t>When presented with a Transparent Claim for the Artifact, they verify its Issuer identity, signature, and Receipt.
They may additionally apply a validation policy based on the protected headers present both in the Envelope or in the countersignature and the Statement itself, which may include security-critical Artifact-specific details.</t>
        <t>Some Verifiers may systematically resolve the Issuer DID to fetch their latest DID document. This strictly enforces the revocation of compromised keys: once the Issuer has updated its document to remove a key identifier, all Claims signed with this <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 TS's Registration policy and the scrutiny of other Verifiers. Although this weakens their guarantees against key revocation, or against a corrupt TS, they can still keep the Receipt and blame the Issuer or the TS at a later point.</t>
      </section>
    </section>
    <section anchor="sec-claim-issuance-registration-and-verification">
      <name>Claim Issuance, Registration, and Verification</name>
      <t>This section details the interoperability requirements for implementers of Claim issuance and validation libraries, and of Transparency Services.</t>
      <section anchor="sec-envelope-and-claim-format">
        <name>Envelope and Claim Format</name>
        <t>The formats of Claims and Receipts are based on CBOR Object Signing and Encryption (COSE). The choice of CBOR is a trade-off between safety (in particular, non-malleability: each Claim has a unique serialization), ease of processing and availability of implementations.</t>
        <t>At a high-level that is the context of this architecture, a Claim is a COSE single-signed object (i.e. <tt>COSE_Sign1</tt>) that contains the correct set of protected headers. Although Issuers and relays may attach unprotected headers to Claims, Transparency Services and Verifiers <bcp14>MUST NOT</bcp14> rely on the presence or value of additional unprotected headers in Claims during Registration and validation.</t>
        <t>All Claims <bcp14>MUST</bcp14> include the following protected headers:</t>
        <ul spacing="normal">
          <li>algorithm (label: <tt>1</tt>): Asymmetric signature algorithm used by the Claim Issuer, as an integer, for example <tt>-35</tt> for ECDSA with SHA-384, see <eref target="https://www.iana.org/assignments/cose/cose.xhtml">COSE Algorithms registry</eref>;</li>
          <li>Issuer (label: <tt>TBD</tt>, to be registered): DID (Decentralized Identifier, see <eref target="https://www.w3.org/TR/did-core/">W3C Candidate Recommendation</eref>) of the signer, as a string, for example <tt>did:web:example.com</tt>;</li>
          <li>Feed (label: <tt>TBD</tt>): the Issuer's name for the Artifact, as a string;</li>
          <li>payload type (label: <tt>3</tt>): Media type of payload as a string, for example <tt>application/spdx+json</tt></li>
          <li>Registration policy info (label: <tt>TBD</tt>): a map of additional attributes to help enforce Registration policies;</li>
          <li>DID key selection hint (label: <tt>TBD</tt>): a DID method-specific selector for the signing key, as a bytestring.</li>
        </ul>
        <t>Additionally, Claims <bcp14>MAY</bcp14> carry the following unprotected headers:</t>
        <ul spacing="normal">
          <li>Receipts (label: <tt>TBD</tt>, to be registered): Array of Receipts, defined in <xref target="I-D.birkholz-scitt-receipts"/></li>
        </ul>
        <t>In CDDL <xref target="RFC8610"/> notation, the Envelope is defined as follows:</t>
        <sourcecode type="cddl">
SCITT_Envelope = COSE_Sign1_Tagged

COSE_Sign1_Tagged = #6.18(COSE_Sign1)

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

Reg_Info = {
  ? "register_by": uint,
  ? "sequence_no": uint,
  ? "issuance_ts": uint,
  * tstr =&gt; any
}

; All protected headers are mandatory, to protect against faulty implementations of COSE
; that may accidentally read a missing protected header from the unprotected headers.
Protected_Header = {
  1 =&gt; int               ; algorithm identifier
  3 =&gt; tstr              ; payload type
  258 =&gt; tstr            ; DID of Issuer
  259 =&gt; tstr            ; Feed
  260 =&gt; Reg_Info        ; Registration policy info
  261 =&gt; bstr            ; key selector
}

Unprotected_Header = {
   ? 257 =&gt; SCITT_Receipt / [+ SCITT_Receipt]
}
</sourcecode>
      </section>
      <section anchor="sec-claim-issuance">
        <name>Claim Issuance</name>
        <t>There are many types of Statements (such as SBOMs, malware scans, audit reports, policy definitions) that Issuers may want to turn into Claims. The Issuer must first decide on a suitable format to serialize the Statement, such as:
- JSON-SPDX
- CBOR-SPDX
- SWID
- CoSWID
- CycloneDX
- in-toto
- SLSA</t>
        <t>Once the Statement is serialized with the correct content type, the 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 Claim may only be registered on Transparency Services that implement the associated policy. For instance, if a Claim is frequently updated, and it is important for Verifiers to always consider the latest version, Issuers <bcp14>SHOULD</bcp14> use the <tt>sequence_no</tt> or <tt>issuer_ts</tt> attributes.</t>
        <t>Once all the Envelope headers are set, the Issuer <bcp14>MAY</bcp14> use a standard COSE implementation to produce the serialized Claim (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 Claim).</t>
      </section>
      <section anchor="sec-standard-registration-policies">
        <name>Standard registration policies</name>
        <ul empty="true">
          <li>
            <t><strong>Editor's note</strong></t>
            <t>The technical design for signalling and verifying registration policies is a work in progress.
We expect that once the formats and semantics of the registration policy headers are finalized, standardized policies may be moved to a separate draft.
For now, we inline some significant policies to illustrate the most common use cases.</t>
          </li>
        </ul>
        <t>TS implementations <bcp14>MUST</bcp14> indicate their support for registration policies and <bcp14>MUST</bcp14> check that all the policies indicated as defined in the <tt>reg_info</tt> map are supported and are satisfied before a claim can be registered. Any unsupported claims <bcp14>MUST</bcp14> be indicated separately and corresponding unknown policy entries in the map of a claim <bcp14>MUST</bcp14> be rejected. This is to ensure that all verifiers get the same guarantee out of the registration policies regardless of where it is registered.</t>
        <table anchor="tbl-initial-named-policies">
          <name>An Initial Set of Named Policies</name>
          <thead>
            <tr>
              <th align="left">Policy Name</th>
              <th align="left">Required  attributes</th>
              <th align="left">Implementation</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TimeLimited</td>
              <td align="left">
                <tt>register_by: uint</tt></td>
              <td align="left">Returns true if now () &lt; register_by at registration time. The ledger <bcp14>MUST</bcp14> store the ledger time at registration along with the claim, and <bcp14>SHOULD</bcp14> indicate it in receipts</td>
            </tr>
            <tr>
              <td align="left">Sequential</td>
              <td align="left">
                <tt>sequence_no: uint</tt></td>
              <td align="left">First, lookup in the ledger for claims with the same issuer and feed. If at least one is found, returns true if and only if the <tt>sequence_no</tt> of the new claim is the highest <tt>sequence_no</tt> in the existing claims incremented by one. Otherwise, returns true if and only if <tt>sequence_no = 0</tt>.</td>
            </tr>
            <tr>
              <td align="left">Temporal</td>
              <td align="left">
                <tt>issuance_ts: uint</tt></td>
              <td align="left">Returns true if and only if there is no claim in the ledger with the same issuer and feed with a greater <tt>issuance_ts</tt></td>
            </tr>
            <tr>
              <td align="left">NoReplay</td>
              <td align="left">None</td>
              <td align="left">Returns true if and only if the claim doesn't already appear in the ledger</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-registering-signed-claims">
        <name>Registering Signed Claims</name>
        <t>The same Claim may be independently registered in multiple TS. To register a Claim, the service performs the following steps:</t>
        <ol spacing="normal" type="1">
          <li>Client authentication. This is implementation-specific, and <bcp14>MAY</bcp14> be unrelated to the Issuer identity. Claims may be registered by a different party than their Issuer.</li>
          <li>Issuer identification. The TS <bcp14>MUST</bcp14> store evidence of the DID resolution for the Issuer protected header of the Envelope and the resolved key manifest at the time of Registration for auditing. This <bcp14>MAY</bcp14> require that the service resolve the Issuer DID and record the resulting document, or rely on a cache of recent resolutions.</li>
          <li>Envelope signature verification, as described in COSE signature, using the signature algorithm and verification key of the Issuer DID document.</li>
          <li>Envelope validation. The service <bcp14>MUST</bcp14> check that the Envelope has a payload and the protected headers listed above. The service <bcp14>MAY</bcp14> additionally verify the payload format and content.</li>
          <li>Apply Registration policy: for named policies, the TS should check that the required Registration info attributes are present in the Envelope and apply the check described in Table 1. A TS <bcp14>MUST</bcp14> reject Claims that contain an attribute used for a named policy that is not enforced by the service. Custom Claims are evaluated given the current Registry state and the entire Envelope, and <bcp14>MAY</bcp14> use information contained in the attributes of named policies.</li>
          <li>Commit the new Claim to the Registry</li>
          <li>Sign and return the Receipt.</li>
        </ol>
        <t>The last two steps <bcp14>MAY</bcp14> be shared between a batch of Claims recorded in the Registry.</t>
        <t>The service <bcp14>MUST</bcp14> ensure that the Claim is committed before releasing its Receipt, so that it can always back up the Receipt by releasing the corresponding entry in the Registry. Conversely, the service <bcp14>MAY</bcp14> re-issue Receipts for the Registry content, for instance after a transient fault during Claim Registration.</t>
      </section>
      <section anchor="sec-validation-of-transparent-claims">
        <name>Validation of Transparent Claims</name>
        <t>This section provides additional implementation considerations, the high-level validation algorithm is described in <xref target="validation"/>, with the Registry-specific details of checking Receipts are covered in <xref target="I-D.birkholz-scitt-receipts"/>.</t>
        <t>Before checking a Claim, 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 Claim is registered on.</t>
        <t>In some scenarios, the Verifier already expects a specific Issuer and Feed for the Claim, while in other cases they are not known in advance and can be an output of validation. Verifiers <bcp14>SHOULD</bcp14> offer a configuration to decide if the Issuer's signature should be locally verified (which may require a DID resolution, and may fail if the manifest is not available or if the key is revoked), or if it should trust the validation done by the TS 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 TS. 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 payload, as well as any local state.</t>
        <t>Verifiers <bcp14>SHOULD</bcp14> offer options to store or share Receipts in case they are needed to audit the TS in case of a dispute.</t>
      </section>
    </section>
    <section anchor="sec-federation">
      <name>Federation</name>
      <t>We explain how multiple, independent Transparency Services can be composed to distribute supply chains without a single transparency authority trusted by all parties.</t>
      <t>Multiple SCITT instances, governed and operated by different organizations.</t>
      <t>For example,
- a small, simple SCITT instance may keep track specifically of the software used for operating SCITT services.
- an air-gapped data center may operate its own SCITT Registry to retain full control and auditing of its software supplies.</t>
      <t>How?
- Policy-based. Within an organization, local Verifiers contact an authoritative SCITT that records the latest policies associated with classes of Artifacts; these policies indicate which Issuers and Registries are trusted for verifying signed Transparent Claims for these Artifacts.</t>
      <ul spacing="normal">
        <li>Other federation mechanisms?</li>
      </ul>
      <t>We'd like to attach multiple Receipts to the same signed Claims, each Receipt endorsing the Issuer signature and a subset of prior Receipts. This involves down-stream Registries verifying and recording these Receipts before issuing their own Receipts.</t>
    </section>
    <section anchor="sec-transparency-service-api">
      <name>Transparency Service API</name>
      <t>Editor's Note: this may be moved to appendix.</t>
      <section anchor="sec-messages">
        <name>Messages</name>
        <section anchor="sec-register-signed-claims">
          <name>Register Signed Claims</name>
          <section anchor="sec-request">
            <name>Request</name>
            <artwork><![CDATA[
POST <Base URL>/entries
]]></artwork>
            <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>HTTP Status <tt>201</tt> - Registration was tentatively successful pending service consensus.</li>
              <li>
                <t>HTTP Status <tt>400</tt> - Registration was unsuccessful.
                </t>
                <ul spacing="normal">
                  <li>Error code <tt>AwaitingDIDResolutionTryLater</tt></li>
                  <li>Error code <tt>InvalidInput</tt></li>
                </ul>
              </li>
            </ul>
            <t>[TODO] Use 5xx for AwaitingDIDResolutionTryLater</t>
            <t>The <tt>201</tt> response contains the <tt>x-ms-ccf-transaction-id</tt> HTTP header which can be used to retrieve the Registration Receipt with the given transaction ID. [TODO] this has to be made generic</t>
            <t>[TODO] probably a bad idea to define a new header, or is it ok? can we register a new one? https://www.iana.org/assignments/http-fields/http-fields.xhtml</t>
            <t>The <tt>400</tt> response has a <tt>Content-Type: application/json</tt> header and a body containing details about the error:</t>
            <t><tt>json
{
  "error": {
    "code": "&lt;error code&gt;",
    "message": "&lt;message&gt;"
  }
}
</tt></t>
            <t><tt>AwaitingDIDResolutionTryLater</tt> means the service does not have an up-to-date DID document of the DID referenced in the Signed Claims but is performing or will perform a DID resolution after which the client may retry the request. The response may contain the HTTP header <tt>Retry-After</tt> to inform the client about the expected wait time.</t>
            <t><tt>InvalidInput</tt> means either the Signed Claims message is syntactically malformed, violates the signing profile (e.g. signing algorithm), or has an invalid signature relative to the currently resolved DID document.</t>
          </section>
        </section>
        <section anchor="sec-retrieve-registration-receipt">
          <name>Retrieve Registration Receipt</name>
          <section anchor="sec-request-1">
            <name>Request</name>
            <artwork><![CDATA[
GET <Base URL>/entries/<Transaction ID>/receipt
]]></artwork>
          </section>
          <section anchor="sec-response-1">
            <name>Response</name>
            <t>One of the following:</t>
            <ul spacing="normal">
              <li>HTTP Status <tt>200</tt> - Registration was successful and the Receipt is returned.</li>
              <li>
                <t>HTTP Status <tt>400</tt> - Transaction exists but does not correspond to a Registration Request.
                </t>
                <ul spacing="normal">
                  <li>Error code <tt>TransactionMismatch</tt></li>
                </ul>
              </li>
              <li>
                <t>HTTP Status <tt>404</tt> - Transaction is pending, unknown, or invalid.
                </t>
                <ul spacing="normal">
                  <li>Error code <tt>TransactionPendingOrUnknown</tt></li>
                  <li>Error code <tt>TransactionInvalid</tt></li>
                </ul>
              </li>
            </ul>
            <t>The <tt>200</tt> response contains the SCITT_Receipt in the body.</t>
            <t>The <tt>400</tt> and <tt>404</tt> responses return the error details as described earlier.</t>
            <t>The retrieved Receipt may be embedded in the corresponding COSE_Sign1 document in the unprotected header, see TBD.</t>
            <t>[TODO] There's also the <tt>GET &lt;Base URL&gt;/entries/&lt;Transaction ID&gt;</tt> endpoint which returns the submitted COSE_Sign1 with the Receipt already embedded. Is this useful?</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="sec-privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Unless advertised by the TS, every Issuer should treat its Claims as public. In particular, their Envelope and Statement should not carry any private information in plaintext.</t>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>On its own, verifying a Transparent Claim 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
TS. If the Verifier trusts the Issuer, it can infer that the Claim 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 TS, it can independently infer that the Claim passed the TS Registration policy and that has been persisted in the Registry. Unless advertised in the TS Registration policy, the Verifier should not assume that the ordering of Transparent Claims in the Registry matches the ordering of their issuance.</t>
      <t>Similarly, the fact that an Issuer can be held accountable for its Transparent Claims does not on its own provide any mitigation or remediation mechanism in case one of these Claims turned out to be misleading or malicious---just that signed evidence will be available to support them.</t>
      <t>Issuers <bcp14>SHOULD</bcp14> ensure that the Statements in their Claims are correct and unambiguous, for example by avoiding ill-defined or ambiguous formats that may cause Verifiers to interpret the Claim as valid for some other purpose.</t>
      <t>Issuers and Transparency Services <bcp14>SHOULD</bcp14> carefully protect their private signing keys
and avoid these keys for any purpose not described in this architecture. In case key re-use is unavoidable, they <bcp14>MUST NOT</bcp14> sign any other message that may be verified as an Envelope.</t>
      <section anchor="sec-threat-model">
        <name>Threat Model</name>
        <t>We provide a generic threat model for SCITT, describing its residual security properties when some of its actors (identity providers, Issuers, TS, 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-claim-authentication-and-transparency">
          <name>Claim authentication and transparency.</name>
          <t>SCITT primarily supports evidence of Claim integrity, both from the Issuer (authentication) and from the TS (transparency). These guarantees are meant to hold for the long term, possibly decades.</t>
          <t>We conservatively suppose that some issuers and some TS will 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. Hence, a Verifier would usually validate a transparent signed Claim from a given Issuer, registered at a given TS (both identified in the Verifier's local authorization policy) and would not depend on any other Issuer or TS.</t>
          <t>We cannot stop authorized supply chain actors from making false claims (either by mistake or by corruption) but we can make them accountable by ensuring their Claims are systematically registered at a trustworthy TS.</t>
          <t>Similarly, we aim to provide strong residual guarantees against a faulty/corrupt TS. We cannot stop a TS from registering Claims that do not meet its stated Registration Policy, or to issue Receipts that are not consistent with their append-only Registry, but we can hold it accountable and guarantee that it will be blamed by any Auditor that replays their Registry against any contested Receipt. Note that SCITT does not require trust in a single centralized TS: different actors may rely on different TS, each registering a subset of claims subject to their own policy.</t>
          <t>In both cases, SCITT provides generic, universally-verifiable cryptographic evidence to individually blame the Issuer or the TS. This enables valid actors to detect and disambiguate malicious actors who make contradictory Claims to different entities (Verifiers, Auditors, Issuers). On the other hand, their liability and the resulting damage to their reputation are application specific, and out of scope for SCITT.</t>
          <t>Verifiers and Auditors need not be trusted by other actors. In particular, they cannot "frame" an Issuer or a TS for claims they did not issue or register.</t>
          <t><strong>Append-only log</strong></t>
          <t>If a TS is honest, then a transparent signed Claim with a correct Receipt of registration at a given position ensures that the signed claim passed its Registration Policy and was recorded at that position in its Registry.</t>
          <t>Conversely, a corrupt TS may
1. refuse or delay the registration of Claims;
2. register Claims that do not pass its Registration Policy (e.g. Claims with Issuer identities and signatures that do not verify.)
3. issue verifiable Receipts for Claims that do not match its Registry;
4. refuse access to its Registry (e.g. to Auditors, possibly after storage loss)</t>
          <t>An Auditor granted (partial) access to the Registry 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 TS for them. This ensures any Verifier that trust at least one such Auditor that (2,3) will be blamed to the TS.</t>
          <t>Due to the operational challenge of maintaining a globally consistent append-only Registry,
some TS may provide limited support for historical queries on the Claims they have registered,
and accept the risk of being blamed for inconsistent Registration or Issuer equivocation.</t>
          <t>Verifier and Auditors may also witness (1,4) but may not be able to collect verifiable evidence for it.</t>
          <t><strong>Availability of Transparent Signed Claims</strong></t>
          <t>Networking and Storage are trusted only for availability.</t>
          <t>Auditing may involve access to data beyond what is persisted in the TS log. For example, the registered TS 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 should independently keep their own record of the Claims they issue, endorse, verify, or audit.</t>
        </section>
        <section anchor="sec-confidentiality-and-privacy">
          <name>Confidentiality and privacy.</name>
          <t>The network is untrusted. All contents exchanged between actors is protected using secure authenticated channels (TLS) but, as usual, this may not exclude network traffic analysis.</t>
          <t><strong>Claims and their registration</strong></t>
          <t>The TS is trusted with the confidentiality of the claims presented for registration. Some TS may publish every claim in their logs, to facilitate their dissemination and auditing. Others may just return receipts to the client that present claims for registration, and disclose the ledger only to auditors trusted with the confidentiality of its contents.</t>
          <t>A collection of transparent Claims leaks no information about the contents of other Claims registered at the TS.</t>
          <t>Nonetheless, Issuers should carefully review the inclusion of private/confidential materials in their Claims; they may for instance remove any PII, or include instead opaque cryptographic commitments, such as hashes.</t>
          <t><strong>Queries to the Registry</strong></t>
          <t>The confidentiality of queries is implementation-specific, and generally not guaranteed. For example, while offline Claim verification is private, a TS may monitor which of its Claims are being verified from lookups to ensure their freshness.</t>
        </section>
        <section anchor="sec-cryptographic-assumptions">
          <name>Cryptographic Assumptions</name>
          <t>We rely on standard cryptographic security for signing schemes (EUF-CMA: for a given key, given the public key and any number of signed messages, the 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 claim in this log.)</t>
          <t>SCITT 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-ts-clients">
          <name>TS Clients</name>
          <t>Trust in clients that submit Claims for registration is implementation-specific. Hence, an attacker may attempt to register any Claim it has obtained, at any TS that accepts them, possibly multiple times and out of order. This may be mitigated by a TS 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. (The TS and other parties may record identity-resolution evidence to facilitate its auditing.)</t>
          <t>If one of the credentials of an Issuer gets compromised, SCITT still guarantee the authenticity of all claims signed with this credential that have been registered on a TS before the compromise. It is up to the Issuer to notify TS of credential revocation to stop Verifiers from accepting Claims signed with compromised credentials. [See the thread of revocation for additional details.]</t>
          <t>The confidentiality of any identity lookup during Claim Registration or Claim Verification is out of scope.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-iana-considerations">
      <name>IANA Considerations</name>
      <t>See Body <xref target="mybody"/>.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC8610" target="https://www.rfc-editor.org/info/rfc8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <seriesInfo name="DOI" value="10.17487/RFC8610"/>
            <seriesInfo name="RFC" value="8610"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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>
        </reference>
        <reference anchor="RFC8152" target="https://www.rfc-editor.org/info/rfc8152">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <seriesInfo name="DOI" value="10.17487/RFC8152"/>
            <seriesInfo name="RFC" value="8152"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <date month="July" year="2017"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined 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>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC9162" target="https://www.rfc-editor.org/info/rfc9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <seriesInfo name="DOI" value="10.17487/RFC9162"/>
            <seriesInfo name="RFC" value="9162"/>
            <author fullname="B. Laurie" initials="B." surname="Laurie">
              <organization/>
            </author>
            <author fullname="E. Messeri" initials="E." surname="Messeri">
              <organization/>
            </author>
            <author fullname="R. Stradling" initials="R." surname="Stradling">
              <organization/>
            </author>
            <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>
        </reference>
        <reference anchor="RFC6838" target="https://www.rfc-editor.org/info/rfc6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <seriesInfo name="DOI" value="10.17487/RFC6838"/>
            <seriesInfo name="RFC" value="6838"/>
            <seriesInfo name="BCP" value="13"/>
            <author fullname="N. Freed" initials="N." surname="Freed">
              <organization/>
            </author>
            <author fullname="J. Klensin" initials="J." surname="Klensin">
              <organization/>
            </author>
            <author fullname="T. Hansen" initials="T." surname="Hansen">
              <organization/>
            </author>
            <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>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="BCP" value="14"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.birkholz-scitt-receipts" target="https://www.ietf.org/archive/id/draft-birkholz-scitt-receipts-01.txt">
          <front>
            <title>Countersigning COSE Envelopes in Transparency Services</title>
            <seriesInfo name="Internet-Draft" value="draft-birkholz-scitt-receipts-01"/>
            <author fullname="Henk Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Maik Riechert">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Antoine Delignat-Lavaud">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Cedric Fournet">
              <organization>Microsoft</organization>
            </author>
            <date day="5" month="September" year="2022"/>
            <abstract>
              <t>   A transparent and authentic ledger service in support of a supply
   chain's integrity, transparency, and trust requires all peers that
   contribute to the ledgers operations to be trustworthy and authentic.
   In this document, a countersigning variant is specified that enables
   trust assertions on Merkle-tree based operations for global supply
   chain ledgers.  A generic procedure for producing payloads to be
   signed and validated is defined and leverages solutions and
   principles from the Concise Signing and Encryption (COSE) space.

              </t>
            </abstract>
          </front>
        </reference>
        <reference anchor="PBFT" target="https://doi:10.1145/571637.571640">
          <front>
            <title>Practical byzantine fault tolerance and proactive recovery</title>
            <seriesInfo name="ACM Transactions on Computer Systems, Volume 20, Issue 4" value=""/>
            <author initials="M." surname="Castro" fullname="Miguel Castro">
              <organization>Microsoft Research</organization>
            </author>
            <author initials="B." surname="Liskov" fullname="Barbara Liskov">
              <organization>MIT Laboratory for Computer Science</organization>
            </author>
            <date year="2002" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="sec-attic">
      <name>Attic</name>
      <t>Not ready to throw these texts into the trash bin yet.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIALLyGGMAA8V963bbVpLufz4FjvMjkpuk7dw6kbuTlmW7o5n4MpbSmV6Z
rAgkQBERCLABUDKTeJ5lHuE8wzzZqfuuDYBOetY652StmbZIcGNfatf1q6rZ
bDbpiq7MT5LTKjltluuiy5fdrsmTVd0kl82u7e7qplvvk7TK4O+0ardpk1dd
8rS4Lrq0TC522225T87WaVG1k3SxaPLbk+Ti7PzyMhpwktXLKt3Am7ImXXWz
RdHcrOvy51m7LLpulrpHZw8fTdoOXvhjWtYV/KJrdvmk2Db0r7b76OHDLx5+
NIF5pPCmfLlrim4/ubs+SS6fPJ3c3J0k51WXN1XezZ7iuybLtDtJ2i6bLOuq
zat2154k+7ydtLvFpmjboq66/Rbec/7s8vlkW5xMkqSrl/xMkrSwAU2+au3v
/Sb8edOkm6y+q36stx2M0+Jv011X/1hkP27hseItvDlfziYT+HRdNyeTWQIb
dZJ8PU+eyBbAT3hnvs6rG/9p3cCanjfprlrXq7xJLs4vcXjZ48EX+SYtypNk
DaPMdXv/0hbdfGVPzrMcVwDryWFL3qxzmEvXpG2bJ3/8FL5Z1hnM48PPPvno
i08/xL9hZ0+Sp2mzgQPJOnpiV3UNfPjXvNmk1V7XczpPnuZlcV2l3eyb9Dbd
Zbas06qriyof+R4WmFbFzylu3Unyolg2dVuvuuRN3uZIEW6uHz1KLjp6MHlT
p1mY69mTR8lHz5+E2Z6lm0VTZNd52JK06rLyLxsdf76sN34p3/6rruJsnjyv
d0g6NvuzPGuKpfv4/9WkV/zG3zPtv+Pmt+st3JncJv73+ho+i76Ip3765oWb
66NHD5Pnu3KBbx2Z7Rcv/+W9s93T24C+5G1/AZoZmfCkqoFsuuI2x5vy5vnZ
5589eggDPn36jfz96NOP4O9XF8/47y8efYZ/X/Jfn33+8ecnk6Ja+VHOZ0/n
PXbS5Mu82HawNW+enT07f315Ac+9fvL8Ep+H280873WTLrtiCVxssf8ZaASJ
dJXuyg6uf5kDs1vmxPe2TY0P3uYJjFvf5s2eR0mba9y5dddt25MHD7K6OHn0
cP7o0SefPvj0j48++/iPc/yfTx7S03r/8d8z+v8JH96LOewnnEItH/LpvSiu
d3kZf0P8YJTgekM+mSffFO1NfRsN+SRtFmmTxl/xmOeXyTfpom7Srm72xPvP
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
ACPa56D3/x8CTbKI8t0AAA==

-->

</rfc>
