<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.5 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-birkholz-scitt-architecture-00" category="std" consensus="true" submissionType="IETF" obsoletes="" updates="" xml:lang="en" 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-00"/>
    <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>
    <date year="2022" month="March" 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 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>
  </front>
  <middle>
    <section anchor="sec-introduction" numbered="true" toc="default">
      <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 ledger 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 on an immutable, append-only, transparent ledger. The last guarantee is achieved by implementing the ledger using a verifiable data structure (such as a Merkle Tree), and by requiring a transparency service (TS) that operates the ledger 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" format="default"/>, 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 ledger. 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 ledger, or keep some information on the ledger 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 ledger". 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 ledger, 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 ledger, we require each TS to guarantee the consistency of its own ledger (for instance, through the use of a consensus algorithm between replicas of the ledger), 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 ledger 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" format="default"/>, which is used to sign released DSCAs and to build and maintain a Merkle tree that functions as the append-only ledger for DSCAs.
The format and verification process for ledger-based transparency receipts are described in <xref target="I-D.birkholz-scitt-receipts" format="default"/>.</t>
      <section anchor="sec-requirements-notation" numbered="true" toc="default">
        <name>Requirements Notation</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL</bcp14>
NOT", "<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" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they
appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="sec-use-cases" numbered="true" toc="default">
      <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" numbered="true" toc="default">
        <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" numbered="true" toc="default">
        <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" numbered="true" toc="default">
        <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" numbered="true" toc="default">
      <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>the 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" format="default"/>).</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>creator of Claims submitted to a Transparency Service for Registration. The Issuer may be the owner or author of the Artifact, or a completely independent third party.</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 Ledger on a Transparency Service contains a sequence of Claims about the same Artifact.
 In COSE, Feed is one header attributes in the protected header of the Envelope.</t>
        </dd>
        <dt>
Ledger:  </dt>
        <dd>
          <t>the verifiable data structure that stores Claims in a transparency service. SCITT supports multiple Ledger formats to accommodate different transparency service implementations, such as historical Merkle Trees and sparse Merkle Trees.</t>
        </dd>
        <dt>
Transparency Service:  </dt>
        <dd>
          <t>the entity that maintains and extends the Ledger, and endorses its state. A Transparency Service can be a complex distributed system, and SCITT requires the TS to provide many security guarantees about its Ledger. 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 Ledger. It consists of a Ledger-specific inclusion proof, a signature by the Transparency Service of the state of the Ledger, 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 Ledger and producing the Receipt returned to the submitter.</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>the entity that consumes Transparent Claims, verifying their proofs and inspecting their Statements, either before using their Artifacts, or later to audit their supply chain.</t>
        </dd>
      </dl>
    </section>
    <section anchor="mybody" numbered="true" toc="default">
      <name>Definition of Transparency</name>
      <t>In this document, we use a definition of transparency built over abstract notions of Ledgers 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 Ledger 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 Ledger, and will be subject to scrutiny and auditing by other parties.</t>
      <t>Transparency is implemented by a Ledger that provides a consistent, append-only, publicly available record of entries. Implementations of TS may protect their Ledger 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 edger. Receipts do not expire, but it is possible to append new entries that subsume older entries.</t>
      <t>Anyone with access to the Ledger can independently verify its consistency and review the complete list of Claims registered by each Issuer. However, the Ledgers of separate Transparency Services are generally disjoint, though it is possible to take a Claim from one Ledger and register it again on another (if its policy allows it), so the authorization of the Issuer and of the Ledger 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 Ledger, as any inconsistency can easily be pinpointed by any auditor with read access to the Ledger. Some Ledger 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" numbered="true" toc="default">
      <name>Architecture Overview</name>
      <artwork name="" type="" align="left" alt=""><![CDATA[
             Artifact
                |
                v                      +------------------+
 Issuer    -> Statement    Envelope    | DID Key Manifest |
                \           /          |  (decentraized)  |
                 \         /           +------------------+
                  \ ______/               |     |
                      |                   |     |
                      v        signature  |     |
                    Claim  <--------------/     |
                      |                         |
                      |   Receipt   +--------+  |
Transparency ->       +-------------| Ledger |  /
Service               |             +--------+ X
                      v                       / \
                 Transparent                 /   \
                    Claim                   /    |
                      |\                   /     |
                      | \                 /      |
                      |  \               /       |
Verifier    ->        |    Verify Claim          |
                      |                          |
Auditor    ->       Collect Receipts     Replay Ledger
]]></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 accomodate 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 Ledger algorithm. Most of the details of the Receipt's contents are specific to the Ledger algorithm. The <xref target="I-D.birkholz-scitt-receipts" format="default"/> document defines two initial Ledger algorithms (for historical and sparse Merkle Trees), but other Ledger 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 Ledgers and the Claim Registration process, and Verifiers and the Receipt validation process.</t>
      <section anchor="sec-claim-issuance" numbered="true" toc="default">
        <name>Claim Issuance</name>
        <section anchor="sec-issuer-identity" numbered="true" toc="default">
          <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" numbered="true" toc="default">
          <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" numbered="true" toc="default">
          <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 Ledger 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" numbered="true" toc="default">
        <name>Transparency Service (TS)</name>
        <t>The role of TS can be decomposed into several major functions. The most important is maintaining a Ledger, 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 Ledger 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" format="default"/>. Each TS also defines its Registration policy, which <bcp14>MUST</bcp14> apply to all entries in the Ledger.</t>
        <t>The combination of Ledger, 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, Ledger extension and endorsement may be protected by running in a TEE; the Ledger may be replicated and a consensus algorithm such as Practical Byzantine Fault Tolerance (pBFT <xref target="PBFT" format="default"/>) 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 Ledger in auditing endpoints; as much as practical, the Ledger <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 Ledger.</t>
        <section anchor="sec-service-identity-remote-attestation-and-keying" numbered="true" toc="default">
          <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 Ledger 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 Ledger 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" numbered="true" toc="default">
          <name>Registration Policies</name>
          <ul empty="true">
            <li>
              <t><strong>Editor's note</strong></t>
              <t>The initial version of this document assumes Registration policies are set for the lifetime of the Ledger, and that they apply to all Issuers and Feeds uniformly.
There is an ongoing discussion on how to make the design more flexible to allow per-Issuer and per-Feed Registration policies, and whether such policies should be updatable or if a policy change requires a Feed change.
Please contribute your comments to the SCITT mailing list.</t>
            </li>
          </ul>
          <t>Each TS is initially configured with a set of Registration policies, which will be applied for the lifetime of the Ledger.
A Registration policy represents a predicate that takes as input the current Ledger and the Envelope of a new Claim to register (including the <tt>reg_info</tt> header which contains customizable additional attributes), and returns a Boolean decision on whether the Claim should be included on the Ledger or not. A TS <bcp14>MUST</bcp14> ensure that all its Registration policies return a positive decision before adding a Claim to the Ledger.</t>
          <t>While Registration policies are a burden for Issuers (some may require them to maintain state to remember what they have signed before) they support stronger transparency guarantees, and they greatly help Verifiers and auditors in making sense of the information on the Ledger. (This is particularly relevant for parties that verify Receipts on their own, without accessing the Ledger.) For instance, if a TS doesn't apply any policy, Claims may be registered in a different order than they have been issued, and old Claims may be replayed, which makes it difficult to understand the logical history of an Artifact, or to prevent rollback attacks.</t>
          <t>There are two kinds of Registration policies: (1) named policies have standardized semantics that are uniform across all implementations of SCITT Transparency Services, while (2) custom policies are opaque and may contain pointers to (or even inlined) policy descriptions (declarative or programmable).</t>
          <t>Transparency services <bcp14>MUST</bcp14> advertise the Registration policies enforced by their service, including the list of <tt>reg_info</tt> attributes they require, both to minimize the risk of rejecting Claims presented by Issuers, and to advertise the properties implied by Receipt verification. Implementations of Receipt Verifiers <bcp14>SHOULD</bcp14> persist the list of Registration policies associated with a service identity, and return the list of Registration policies as an output of Receipt validation. Auditors <bcp14>MUST</bcp14> re-apply the Registration policy of every entry in the Ledger to ensure that the Ledger applied them correctly.</t>
          <t>Custom policies may use additional information present in the Ledger outside of Claims. For instance, Issuers may have to register on the TS before Claims can be accepted; a custom policy may be used to enforce access control to the Transparency Service. Verifying the signature of the Issuer is also a form of Registration policy, but it is globally enforced in order to separate authentication and authorization, with policy only considering authentic inputs.</t>
          <t><xref target="tbl-initial-named-policies" format="default"/> defines an initial set of named policies that TS may decide to enforce. This may be evolved in future drafts.</t>
          <table anchor="tbl-initial-named-policies" align="center">
            <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. 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-ledger-security-requirements" numbered="true" toc="default">
          <name>Ledger Security Requirements</name>
          <t>There are many different candidate verifiable data structures that may be used to implement the Ledger, such as chronological Merkle Trees, sparse/indexed Merkle Trees, full blockchains, and many other variants. We only require the Ledger to support concise Receipts (i.e. whose size grows at most logarithmically in the number of entries in the Ledger). This does not necessarily rule out blockchains as a Ledger, 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 Ledger format in this document. Instead, we propose two initial formats for Ledgers in <xref target="I-D.birkholz-scitt-receipts" format="default"/> 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 Ledger.</t>
          <section anchor="sec-finality" numbered="true" toc="default">
            <name>Finality</name>
            <t>The Ledger 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 Ledger become immutable, and the Receipt provides universally-verifiable evidence of this property.</t>
          </section>
          <section anchor="sec-consistency" numbered="true" toc="default">
            <name>Consistency</name>
            <t>There is no fork in the Ledger: 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 Ledger encoded in an old Receipt is consistent with the current Ledger state.</t>
          </section>
          <section anchor="sec-replayability-and-auditing" numbered="true" toc="default">
            <name>Replayability and Auditing</name>
            <t>Everyone with access to the Ledger 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 Ledger at the time of registraton, and must then yield the same result.</li>
              <li>The ordering of entries, their cryptographic contents, and the Ledger 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" numbered="true" toc="default">
            <name>Governance and Bootstrapping</name>
            <t>The TS needs to support governance, with well-defined procedures for allocating resources to operate the Ledger (e.g., for provisioning trusted hardware and registering their attestation materials in the Ledger) and for updating its code (e.g., relying on Transparent Claims about code updates, secured on the Ledger 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 Ledger to enable its auditing. Hence, the Ledger 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" numbered="true" toc="default">
        <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" numbered="true" toc="default">
      <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" numbered="true" toc="default">
        <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" format="default"/></li>
        </ul>
        <t>In CDDL <xref target="RFC8610" format="default"/> 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-1" numbered="true" toc="default">
        <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-registering-signed-claims" numbered="true" toc="default">
        <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 Ledger 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 Ledger</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 Ledger.</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 Ledger. Conversely, the service <bcp14>MAY</bcp14> re-issue Receipts for the Ledger content, for instance after a transient fault during Claim Registration.</t>
      </section>
      <section anchor="sec-validation-of-transparent-claims" numbered="true" toc="default">
        <name>Validation of Transparent Claims</name>
        <t>This section provides additional implementation considerations, the high-level validation algorithm is described in <xref target="validation" format="default"/>, with the Ledger-specific details of checking Receipts are covered in <xref target="I-D.birkholz-scitt-receipts" format="default"/>.</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" numbered="true" toc="default">
      <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 Ledger 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 Ledgers 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 Ledgers verifying and recording these Receipts before issuing their own Receipts.</t>
    </section>
    <section anchor="sec-transparency-service-api" numbered="true" toc="default">
      <name>Transparency Service API</name>
      <t>Editor's Note: this may be moved to appendix.</t>
      <section anchor="sec-messages" numbered="true" toc="default">
        <name>Messages</name>
        <section anchor="sec-register-signed-claims" numbered="true" toc="default">
          <name>Register Signed Claims</name>
          <section anchor="sec-request" numbered="true" toc="default">
            <name>Request</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
POST <Base URL>/entries
]]></artwork>
            <t>Body: SCITT COSE_Sign1 message</t>
          </section>
          <section anchor="sec-response" numbered="true" toc="default">
            <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" numbered="true" toc="default">
          <name>Retrieve Registration Receipt</name>
          <section anchor="sec-request-1" numbered="true" toc="default">
            <name>Request</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
GET <Base URL>/entries/<Transaction ID>/receipt
]]></artwork>
          </section>
          <section anchor="sec-response-1" numbered="true" toc="default">
            <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" numbered="true" toc="default">
      <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" numbered="true" toc="default">
      <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 Ledger. Unless advertised in the TS Registration policy, the Verifier should not assume that the ordering of Transparent Claims in the Ledger 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>
    <section anchor="sec-iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>See Body <xref target="mybody" format="default"/>.</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-00.txt">
          <front>
            <title>Countersigning COSE Envelopes in Transparency Services</title>
            <seriesInfo name="Internet-Draft" value="draft-birkholz-scitt-receipts-00"/>
            <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="7" month="March" 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 how to produce payloads for
   signing and validation 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" numbered="true" toc="default">
      <name>Attic</name>
      <t>Not ready to throw these texts into the trash bin yet.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAECIJmIAA7196XYb17XmfzxFtfzDpANAg4c4VGJfipJidjS1SMf3Lt8s
sYA6IMssVCFVBVKwrX6W+wj9DHmy3t8ezlAoysldq1trJSaAqjPus8dv7zOb
zSZ92VfuKDuus+N2eVX2btlvW5etmjY7b7ddf9u0/dUuy+uCPud1t8lbV/fZ
0/Ky7PMqO9tuNtUuO7nKy7qb5ItF626OsrOT0/PzpMFJ0SzrfE09FW2+6meL
sr2+aqqfZ92y7PtZHj06e/Bg0vXU4bu8amp6o2+3blJuWv6r6x89ePCHB48m
NI6cenLLbVv2u8nt5VF2/uTp5Pr2KDute9fWrp89RV+TZd4fZV1fTJZN3bm6
23ZH2c51k267WJddVzZ1v9tQP6fPzp9PNuXRJMv6ZinPZFlHC9C6Vec/79bh
43Wbr4vmtn7XbHpqp8O7+bZv3pXFuw09Vr6nnt1yNpnQt1dNezSZZbRQR9l3
8+yJLgG9Iivznauv42+blub0vM239VWzcm12dnqO5nWN935w67ysjrIramVu
y/tvXdnPV/7JeeEwA5qPoyV5e+VoLH2bd53Lfv8l/bJsChrHp1998egPX36K
z7SyR9nTvF3ThhQ9P7Gt+5a+/LNr13m9s/kcz7Onriov67yfvchv8m3hp3Vc
901Zu5HfaYJ5Xf6cY+mOspflsm26ZtVnb13nQBHRWB89zM56fjB72+RFGOvJ
k4fZo+dPwmhP8vWiLYtLF5Ykr/ui+re1tT9fNut4Kt//xWZxMs+eN1uQjh/9
iSvachl9/f9r0Cvp8aPDntQN7UJf3jgQ3tvnJ19/9fABtfb06Qv9/PDLR/T5
9dkz+fyHh1/h87l8+urrz78+mpT1Km7ldPZ0PjidrVu6ctPTAr19dvLs9M35
GT335snzczxPh0VYyJs2X/blkpjCYvczLTn2fJVvq55OU+WIdywds5FN2+DB
G5dRu82Na3fSSt5eYtGu+n7THd2/XzTl0cMH84cPv/jy/pe/f/jV57+f4z9f
POCn7Tjh7xn/fyZb+HJOi0kb0OiXsosvy8utq9Jf+HiN7t+gySfz7EXZXTc3
SZNP8naRt3n6k7R5ep69yBdNm/dNu2NWetKsN9seR3VZOloIfrzIe2qH2Nmj
2cOH/E3n2tJ12JAjbfD45KXwXSwZMZiMaCk0tut6t+6m2V+bart21NQ0O+26
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
nO5YdTC7AAA=

-->

</rfc>
