<?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.22 (Ruby 2.5.1) -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-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-ietf-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="2023" month="March" day="14"/>
    <area>Security</area>
    <workgroup>SCITT</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 Signed Statements on any Transparency Service, 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-ietf-scitt-architecture/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        scitt Working Group mailing list (<eref target="mailto:scitt@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/scitt/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/scitt/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-scitt/draft-ietf-scitt-architecture"/>.</t>
    </note>
  </front>
  <middle>
    <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 Signed Statements; verifying this proof ensures that the issuer is consistent and non-equivocal when producing Signed Statements.</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 <xref target="MERKLE"/>), and by requiring a Transparency Service 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 Transparency Service implements and operates its Registry.
Each service may enforce its own policy for authorizing entities to register their Signed Statements on the Transparency Service.
Some Transparency Services 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 Transparency Services 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 Transparency Services provides visibility into Signed Statements originally created as Statements and issued as Signed Statements by supply chain entities and their sub-systems.
These Signed Statements (and corresponding Statement payload) are about the objects produced by supply chain objects: Artifacts.
A Transparency Service vouches for specific and well-defined metadata about these Artifacts that is captured in Statements.
Some metadata is selected (and signed) by the Issuer, indicating, e.g., "who issued the Statement" or "what type of Artifact is described" or "what is the Artifact's version"; whereas additional metadata is selected (and countersigned) by the Transparency Services, indicating, e.g., "when was the Signed Statement about the Artifact registered in the Registry".
A Statements payload content typically is opaque to the Transparency Services, if so desired: it is the metadata that must always be transparent in order to warrant trust for later processing.</t>
      <t>Transparent Statements provide a common basis for holding Issuers accountable for the Statement payload about Artifacts they release and (more generally) principals accountable for auxiliary Signed Statements from other Issuers about the original Signed Statement about an Artifact.
Hence, Issuers may register new Signed Statements about their Artifacts, but they cannot delete or alter earlier Signed Statements about certain Artifacts, or hide their Signed Statements from third parties such as auditors.</t>
      <t>Trust in the Transparency Service 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, each Transparency Service is required 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 Transparency Services specified in this architecture caters to two types of audiences:</t>
      <ol spacing="normal" type="1">
        <li>Signed Statement Issuers: entities, stakeholders, and users involved in supply chain interactions that need to release authentic Statements to a definable set of peers; and</li>
        <li>Transparent Statement Consumers: entities, stakeholders, and users involved in supply chain interactions that need to access, validate, and trust authentic Statements.</li>
      </ol>
      <t>Signed Statement Issuers rely on being discoverable and represented as the responsible parties for their registered Signed Statements via Transparency Services in a believable manner.
Analogously, Transparent Statement Consumers rely on verifiable trustworthiness assertions associated with Transparent Statements and their processing provenance in a believable manner.
If trust can be put into the operations that record Signed Statements (i.e., a believable notarization function) in a secure, append-only Registry via online operations, the same trust can be put into a corresponding Receipt that is the resulting documentation of these online operations issued by the Transparency Services and that can be validated in offline operations.</t>
      <t>The Transparency Services 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 Transparency Services 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="RFC9052"/>, which is used to sign released Statements about Artifacts and to build and maintain a Merkle tree that functions as an append-only Registry for corresponding Signed Statements.
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 <contact fullname="°"/>C and 0 <contact fullname="°"/>C (or -18 <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; 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>Auditor:</dt>
        <dd>
          <t>an entity that checks the correctness and consistency of all Transparent Statements registered by a Transparency Service (a subset of potential Transparent Statement Consumers).</t>
        </dd>
        <dt>Consumer of Signed Statements:</dt>
        <dd>
          <t><cref anchor="definehere">Define here.</cref></t>
        </dd>
      </dl>
      <dl>
        <dt>Envelope:</dt>
        <dd>
          <t>metadata and an Issuer's signature is added to a Statement via a COSE envelope by the Issuer to produce a Signed Statement.
An Envelope contains the identity of the Issuer and other information to help components responsible for validation that are part of a Transparency Services to identify the software Artifact referred to in a Signed Statement.
In essence, a Signed Statement is a COSE Envelope wrapped around a Statement binding the metadata included in the Envelope to a Statement.
In COSE, an Envelope consists of a protected header (included in the Issuer's signature) and an unprotected header (not included in the Issuer's signature).</t>
        </dd>
        <dt>Feed:</dt>
        <dd>
          <t>an identifier chosen by the Issuer for the Artifact.
For every Issuer and Feed, the Registry on a Transparency Service contains a sequence of Signed Statements about the same Artifact.
In COSE, Feed is a dedicated header attribute in the protected header of the Envelope.</t>
        </dd>
        <dt>Issuer:</dt>
        <dd>
          <t>an entity that creates Signed Statements about software Artifacts in the supply chain.
An Issuer may be the owner or author of software Artifacts, or an independent third party such as a reviewer or an endorser.</t>
        </dd>
        <dt>Receipt:</dt>
        <dd>
          <t>a Receipt is a special form of COSE countersignature for Signed Statements that embeds cryptographic evidence that the Signed Statement is recorded in the Registry.
A Receipt 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's protected headers) to assist in auditing.</t>
        </dd>
        <dt>Registration:</dt>
        <dd>
          <t>the process of submitting a Signed Statement to a Transparency Service, applying the Transparency Service's registration policy, storing it in the Registry, producing a Receipt, and returning it to the submitting Issuer.</t>
        </dd>
        <dt>Registration Policy:</dt>
        <dd>
          <t>the pre-condition enforced by the Transparency Service before registering a Signed Statement, rendering it a Signed Statement,
based on metadata contained in its COSE Envelope (notably the identity of its Issuer)
and on prior Signed Statements already added to a Registry.</t>
        </dd>
        <dt>Registry:</dt>
        <dd>
          <t>the verifiable append-only data structure that stores Signed Statements 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>Signed Statement:</dt>
        <dd>
          <t>an identifiable and non-repudiable Statement about an Artifact made by an Issuer.
In SCITT, Signed Statements are encoded as COSE signed objects; the payload of the COSE structure contains the issued Statement.</t>
        </dd>
        <dt>Statement:</dt>
        <dd>
          <t>any serializable information about an Artifact.
To help interpretation of Statements, they must be tagged with a media type (as specified in <xref target="RFC6838"/>).
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>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 Transparency Service to provide many security guarantees about its Registry.
The identity of a Transparency Service is captured by a public key that must be known by Verifiers in order to validate Receipts.</t>
        </dd>
        <dt>Transparent Statement:</dt>
        <dd>
          <t>a Signed Statement that is augmented with a Receipt created via registration at a Transparency Services (stored in the unprotected header of COSE envelope of the Signed Statement).
A Transparent Statement remains a valid Signed Statement, and may be registered again in a different Transparency Service.</t>
        </dd>
        <dt>Verifier:</dt>
        <dd>
          <t>an entity that consumes Transparent Statements (a specialization of Signed Statement Consumer), verifying their proofs and inspecting their Statement payload, either before using corresponding Artifacts, or later to audit an Artifact's provenance on the supply chain.</t>
        </dd>
      </dl>
    </section>
    <section anchor="mybody">
      <name>Definition of Transparency</name>
      <t>In this document, the definition of transparency is indented to build over abstract notions of Registry and Receipts.
Existing transparency systems such as Certificate Transparency are instances of this definition.</t>
      <t>A Signed Statement is an identifiable and non-repudiable Statement made by an Issuer.
The Issuer selects additional metadata and attaches a proof of endorsement (in most cases, a signature) using the identity key of the Issuer that binds the Statement and its metadata.
Signed Statements can be made transparent by attaching a proof of Registration by a Transparency Service, in the form of a Receipt that countersigns the Signed Statement and witnesses its inclusion in the Registry of a Transparency Service.
By extension, the document may say an Artifact (e.g., a firmware binary) is transparent if it comes with one or more Transparent Signed Statements from its author or owner, though the context should make it clear what type of Signed Statements is expected for a given Artifact.</t>
      <t>Transparency does not prevent dishonest or compromised Issuers, but it holds them accountable: any Artifact that may be 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 Transparency Service 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 (more recent Signed Statements) that subsume older entries (less recent Signed Statements).</t>
      <t>Anyone with access to the Registry can independently verify its consistency and review the complete list of Transparent Statements registered by each Issuer.
However, the Registries of separate Transparency Services are generally disjoint, though it is possible to take a Transparent Statement 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 to produce Signed Statements.
Similarly, reputable Transparency Services 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 (<xref target="sec-consistency"/>) through Receipts, that is, given two valid Receipts the Transparency Service may be asked to produce a cryptographic proof that they are consistent.
Failure to produce this proof can indicate that the Transparency Services operator misbehaved.</t>
    </section>
    <section anchor="sec-architecture-overview">
      <name>Architecture Overview</name>
      <artset>
        <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="656" width="592" viewBox="0 0 592 656" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
            <path d="M 208,64 L 208,88" fill="none" stroke="black"/>
            <path d="M 208,128 L 208,144" fill="none" stroke="black"/>
            <path d="M 208,416 L 208,432" fill="none" stroke="black"/>
            <path d="M 216,224 L 216,240" fill="none" stroke="black"/>
            <path d="M 232,304 L 232,336" fill="none" stroke="black"/>
            <path d="M 264,176 L 264,200" fill="none" stroke="black"/>
            <path d="M 264,256 L 264,272" fill="none" stroke="black"/>
            <path d="M 264,368 L 264,392" fill="none" stroke="black"/>
            <path d="M 264,448 L 264,600" fill="none" stroke="black"/>
            <path d="M 312,224 L 312,240" fill="none" stroke="black"/>
            <path d="M 320,128 L 320,144" fill="none" stroke="black"/>
            <path d="M 320,416 L 320,432" fill="none" stroke="black"/>
            <path d="M 344,496 L 344,520" fill="none" stroke="black"/>
            <path d="M 376,496 L 376,520" fill="none" stroke="black"/>
            <path d="M 392,272 L 392,336" fill="none" stroke="black"/>
            <path d="M 416,144 L 416,192" fill="none" stroke="black"/>
            <path d="M 480,192 L 480,240" fill="none" stroke="black"/>
            <path d="M 496,336 L 496,472" fill="none" stroke="black"/>
            <path d="M 496,488 L 496,600" fill="none" stroke="black"/>
            <path d="M 512,272 L 512,336" fill="none" stroke="black"/>
            <path d="M 536,128 L 536,144" fill="none" stroke="black"/>
            <path d="M 536,192 L 536,464" fill="none" stroke="black"/>
            <path d="M 568,144 L 568,192" fill="none" stroke="black"/>
            <path d="M 176,32 L 248,32" fill="none" stroke="black"/>
            <path d="M 176,64 L 248,64" fill="none" stroke="black"/>
            <path d="M 176,96 L 240,96" fill="none" stroke="black"/>
            <path d="M 280,96 L 352,96" fill="none" stroke="black"/>
            <path d="M 112,112 L 128,112" fill="none" stroke="black"/>
            <path d="M 376,112 L 520,112" fill="none" stroke="black"/>
            <path d="M 176,128 L 240,128" fill="none" stroke="black"/>
            <path d="M 280,128 L 352,128" fill="none" stroke="black"/>
            <path d="M 416,144 L 568,144" fill="none" stroke="black"/>
            <path d="M 224,160 L 248,160" fill="none" stroke="black"/>
            <path d="M 280,160 L 304,160" fill="none" stroke="black"/>
            <path d="M 416,192 L 568,192" fill="none" stroke="black"/>
            <path d="M 232,208 L 296,208" fill="none" stroke="black"/>
            <path d="M 320,240 L 480,240" fill="none" stroke="black"/>
            <path d="M 232,256 L 296,256" fill="none" stroke="black"/>
            <path d="M 392,272 L 512,272" fill="none" stroke="black"/>
            <path d="M 280,288 L 384,288" fill="none" stroke="black"/>
            <path d="M 272,304 L 320,304" fill="none" stroke="black"/>
            <path d="M 112,320 L 128,320" fill="none" stroke="black"/>
            <path d="M 344,320 L 392,320" fill="none" stroke="black"/>
            <path d="M 272,336 L 320,336" fill="none" stroke="black"/>
            <path d="M 392,336 L 512,336" fill="none" stroke="black"/>
            <path d="M 224,400 L 304,400" fill="none" stroke="black"/>
            <path d="M 224,448 L 304,448" fill="none" stroke="black"/>
            <path d="M 280,480 L 328,480" fill="none" stroke="black"/>
            <path d="M 392,480 L 520,480" fill="none" stroke="black"/>
            <path d="M 304,528 L 472,528" fill="none" stroke="black"/>
            <path d="M 120,544 L 136,544" fill="none" stroke="black"/>
            <path d="M 280,576 L 448,576" fill="none" stroke="black"/>
            <path d="M 192,608 L 344,608" fill="none" stroke="black"/>
            <path d="M 400,608 L 544,608" fill="none" stroke="black"/>
            <path d="M 120,624 L 136,624" fill="none" stroke="black"/>
            <path d="M 176,640 L 328,640" fill="none" stroke="black"/>
            <path d="M 384,640 L 528,640" fill="none" stroke="black"/>
            <path d="M 176,640 L 192,608" fill="none" stroke="black"/>
            <path d="M 280,576 L 304,528" fill="none" stroke="black"/>
            <path d="M 328,640 L 344,608" fill="none" stroke="black"/>
            <path d="M 384,640 L 400,608" fill="none" stroke="black"/>
            <path d="M 448,576 L 472,528" fill="none" stroke="black"/>
            <path d="M 528,640 L 544,608" fill="none" stroke="black"/>
            <path d="M 176,32 C 167.16936,32 160,39.16936 160,48" fill="none" stroke="black"/>
            <path d="M 248,32 C 256.83064,32 264,39.16936 264,48" fill="none" stroke="black"/>
            <path d="M 176,64 C 167.16936,64 160,56.83064 160,48" fill="none" stroke="black"/>
            <path d="M 248,64 C 256.83064,64 264,56.83064 264,48" fill="none" stroke="black"/>
            <path d="M 176,96 C 167.16936,96 160,103.16936 160,112" fill="none" stroke="black"/>
            <path d="M 240,96 C 248.83064,96 256,103.16936 256,112" fill="none" stroke="black"/>
            <path d="M 280,96 C 271.16936,96 264,103.16936 264,112" fill="none" stroke="black"/>
            <path d="M 352,96 C 360.83064,96 368,103.16936 368,112" fill="none" stroke="black"/>
            <path d="M 520,112 C 528.83064,112 536,119.16936 536,128" fill="none" stroke="black"/>
            <path d="M 176,128 C 167.16936,128 160,120.83064 160,112" fill="none" stroke="black"/>
            <path d="M 240,128 C 248.83064,128 256,120.83064 256,112" fill="none" stroke="black"/>
            <path d="M 280,128 C 271.16936,128 264,120.83064 264,112" fill="none" stroke="black"/>
            <path d="M 352,128 C 360.83064,128 368,120.83064 368,112" fill="none" stroke="black"/>
            <path d="M 224,160 C 215.16936,160 208,152.83064 208,144" fill="none" stroke="black"/>
            <path d="M 248,160 C 256.83064,160 264,167.16936 264,176" fill="none" stroke="black"/>
            <path d="M 280,160 C 271.16936,160 264,167.16936 264,176" fill="none" stroke="black"/>
            <path d="M 304,160 C 312.83064,160 320,152.83064 320,144" fill="none" stroke="black"/>
            <path d="M 232,208 C 223.16936,208 216,215.16936 216,224" fill="none" stroke="black"/>
            <path d="M 296,208 C 304.83064,208 312,215.16936 312,224" fill="none" stroke="black"/>
            <path d="M 232,256 C 223.16936,256 216,248.83064 216,240" fill="none" stroke="black"/>
            <path d="M 296,256 C 304.83064,256 312,248.83064 312,240" fill="none" stroke="black"/>
            <path d="M 248,288 C 239.16936,288 232,295.16936 232,304" fill="none" stroke="black"/>
            <path d="M 248,288 C 256.83064,288 264,280.83064 264,272" fill="none" stroke="black"/>
            <path d="M 280,288 C 271.16936,288 264,280.83064 264,272" fill="none" stroke="black"/>
            <path d="M 272,304 C 263.16936,304 256,311.16936 256,320" fill="none" stroke="black"/>
            <path d="M 320,304 C 328.83064,304 336,311.16936 336,320" fill="none" stroke="black"/>
            <path d="M 272,336 C 263.16936,336 256,328.83064 256,320" fill="none" stroke="black"/>
            <path d="M 320,336 C 328.83064,336 336,328.83064 336,320" fill="none" stroke="black"/>
            <path d="M 248,352 C 239.16936,352 232,344.83064 232,336" fill="none" stroke="black"/>
            <path d="M 248,352 C 256.83064,352 264,359.16936 264,368" fill="none" stroke="black"/>
            <path d="M 280,352 C 271.16936,352 264,359.16936 264,368" fill="none" stroke="black"/>
            <path d="M 280,352 C 288.83064,352 296,344.83064 296,336" fill="none" stroke="black"/>
            <path d="M 224,400 C 215.16936,400 208,407.16936 208,416" fill="none" stroke="black"/>
            <path d="M 304,400 C 312.83064,400 320,407.16936 320,416" fill="none" stroke="black"/>
            <path d="M 224,448 C 215.16936,448 208,440.83064 208,432" fill="none" stroke="black"/>
            <path d="M 304,448 C 312.83064,448 320,440.83064 320,432" fill="none" stroke="black"/>
            <path d="M 280,480 C 271.16936,480 264,472.83064 264,464" fill="none" stroke="black"/>
            <path d="M 328,480 C 336.83064,480 344,487.16936 344,496" fill="none" stroke="black"/>
            <path d="M 392,480 C 383.16936,480 376,487.16936 376,496" fill="none" stroke="black"/>
            <path d="M 520,480 C 528.83064,480 536,472.83064 536,464" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="504,600 492,594.4 492,605.6 " fill="black" transform="rotate(90,496,600)"/>
            <path class="jump" d="M 496,488 C 502,488 502,472 496,472" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="392,288 380,282.4 380,293.6 " fill="black" transform="rotate(0,384,288)"/>
            <polygon class="arrowhead" points="384,520 372,514.4 372,525.6 " fill="black" transform="rotate(90,376,520)"/>
            <polygon class="arrowhead" points="384,112 372,106.4 372,117.6 " fill="black" transform="rotate(180,376,112)"/>
            <polygon class="arrowhead" points="352,520 340,514.4 340,525.6 " fill="black" transform="rotate(90,344,520)"/>
            <polygon class="arrowhead" points="352,320 340,314.4 340,325.6 " fill="black" transform="rotate(180,344,320)"/>
            <polygon class="arrowhead" points="328,240 316,234.4 316,245.6 " fill="black" transform="rotate(180,320,240)"/>
            <polygon class="arrowhead" points="272,600 260,594.4 260,605.6 " fill="black" transform="rotate(90,264,600)"/>
            <polygon class="arrowhead" points="272,392 260,386.4 260,397.6 " fill="black" transform="rotate(90,264,392)"/>
            <polygon class="arrowhead" points="272,200 260,194.4 260,205.6 " fill="black" transform="rotate(90,264,200)"/>
            <polygon class="arrowhead" points="216,88 204,82.4 204,93.6 " fill="black" transform="rotate(90,208,88)"/>
            <polygon class="arrowhead" points="144,624 132,618.4 132,629.6 " fill="black" transform="rotate(0,136,624)"/>
            <polygon class="arrowhead" points="144,544 132,538.4 132,549.6 " fill="black" transform="rotate(0,136,544)"/>
            <polygon class="arrowhead" points="136,320 124,314.4 124,325.6 " fill="black" transform="rotate(0,128,320)"/>
            <polygon class="arrowhead" points="136,112 124,106.4 124,117.6 " fill="black" transform="rotate(0,128,112)"/>
            <g class="text">
              <text x="212" y="52">Artifact</text>
              <text x="448" y="100">Decentralized</text>
              <text x="548" y="100">Identifier</text>
              <text x="28" y="116">Issuer</text>
              <text x="208" y="116">Statement</text>
              <text x="316" y="116">Envelope</text>
              <text x="440" y="164">DID</text>
              <text x="472" y="164">Key</text>
              <text x="524" y="164">Manifest</text>
              <text x="260" y="228">Signed</text>
              <text x="364" y="228">COSE</text>
              <text x="416" y="228">Signing</text>
              <text x="264" y="244">Statement</text>
              <text x="452" y="292">Transparency</text>
              <text x="52" y="324">Transparency</text>
              <text x="296" y="324">Receipt</text>
              <text x="448" y="324">Service</text>
              <text x="72" y="340">Service</text>
              <text x="264" y="420">Transparent</text>
              <text x="264" y="436">Statement</text>
              <text x="36" y="548">Verifier</text>
              <text x="332" y="548">Verify</text>
              <text x="408" y="548">Transparent</text>
              <text x="376" y="564">Statement</text>
              <text x="32" y="628">Auditor</text>
              <text x="224" y="628">Collect</text>
              <text x="292" y="628">Receipts</text>
              <text x="444" y="628">Replay</text>
              <text x="488" y="628">Log</text>
            </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
                    .----------.
                   |  Artifact  |
                    '----+-----'
                         v
                    .----+----.  .----------.    Decentralized Identifier
Issuer       -->   | Statement ||  Envelope  +<------------------.
                    '----+----'  '-----+----'                     |
                         |             |           +--------------+---+
                          '----. .----'            | DID Key Manifest |
                                |                  |                  |
                                v                  +-------+------+---+
                           .----+----.                     |      |
                          |  Signed   |    COSE Signing    |      |
                          | Statement +<-------------------'      |
                           '----+----'                            |
                                |               +--------------+  |
                             .-' '------------->+ Transparency |  |
                            |   .-------.       |              |  |
Transparency -->            |  | Receipt +<-----+   Service    |  |
     Service                |   '---+---'       +------------+-+  |
                             '-. .-'                         |    |
                                |                            |    |
                                v                            |    |
                          .-----+-----.                      |    |
                         | Transparent |                     |    |
                         |  Statement  |                     |    |
                          '-----+-----'                      |    |
                                |                            |    |
                                |'-------.     .-------------)---'
                                |         |   |              |
                                |         v   v              |
                                |    .----+---+-----------.  |
Verifier      -->               |   / Verify Transparent /   |
                                |  /      Statement     /    |
                                | '--------------------'     |
                                v                            v
                       .--------+---------.      .-----------+-----.
Auditor       -->     / Collect Receipts /      /   Replay Log    /
                     '------------------'      '-----------------'
]]></artwork>
      </artset>
      <t>The SCITT architecture consists of a very loose federation of Transparency Services, and a set of common formats and protocols for issuing, registering and auditing Transparent Statements.
In order to accommodate as many Transparency Service implementations as possible, this document only specifies the format of Signed Statements (which must be used by all Issuers) and a very thin wrapper format for Receipts, which specifies the Transparency Service identity and the 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, a high level the three main roles and associated processes in SCITT: Issuers and the Signed Statement issuance process, transparency Registry and the Transparent Statement Registration process, as well as  Verifiers and the Receipt validation process.</t>
      <section anchor="sec-signed-statement-issuance-and-registration">
        <name>Signed Statement Issuance and Registration</name>
        <section anchor="sec-issuer-identity">
          <name>Issuer Identity</name>
          <t>Before an Issuer is able to produce Signed Statements, it must first create its <xref target="DID-CORE">decentralized identifier</xref> (also known as a DID).
A DID can be <em>resolved</em> into a <em>key manifest</em> (a list of public keys indexed by a <em>key identifier</em>) using many different DID methods.</t>
          <t>Issuers <bcp14>MAY</bcp14> choose the DID method they prefer, but with no guarantee that all Transparency Services will be able to register their Signed Statements.
To facilitate interoperability, all Transparency Service implementations <bcp14>SHOULD</bcp14> support the <tt>did:web</tt> method <xref target="DID-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 Statements about 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 Signed Statements that are registered as Transparent Statements issued with those keys.
This DID appears in the Issuer protected header of Signed Statements' Envelopes, while the version of the key from the manifest used to sign the Signed Statement is written in the <tt>kid</tt> header.</t>
        </section>
        <section anchor="sec-naming-artifacts">
          <name>Naming Artifacts</name>
          <t>Many Issuers issue Signed Statements 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 Signed Statements 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 Signed Statements under the same key.</t>
        </section>
        <section anchor="sec-signed-statement-metadata">
          <name>Signed Statement Metadata</name>
          <t>Besides Issuer, Feed and kid, the only other mandatory metadata in a Signed Statement is the type of the Payload, indicated in the <tt>cty</tt> (content type) 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 Signed Statement to be registered, if it was signed recently.
While the Issuer is free to add any information in the payload of the Signed Statements, the Transparency Services (and most of its auditors) can only be expected to interpret information in the Envelope.</t>
          <t>Such metadata, meant to be interpreted by the Transparency Services during Registration policy evaluation, should be added to the <tt>reg_info</tt> header.
While the header <bcp14>MUST</bcp14> be present in all Signed Statements, 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 Transparency Services.
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">
        <name>Transparency Service</name>
        <t>The role of Transparency Service can be decomposed into several major functions.
The most important is maintaining a Registry, the verifiable data structure that records Signed Statements, and enforcing a Registration policy.
It also maintains a service key, which is used to endorse the state of the Registry in Receipts.
All Transparency Services <bcp14>MUST</bcp14> expose standard endpoints for Registration of Signed Statements and Receipt issuance, which is described in <xref target="sec-messages"/>.
Each Transparency Services 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 Transparency Service.
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 Transparency Service.
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 Transparent Statements registered by a given Issuer via a certain Feed.
Implementations of Transparency Services <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 Transparency Services <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 Transparency Service 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>A Transparency Services <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 Transparency Service.
This additional evidence <bcp14>SHOULD</bcp14> be recorded in the Registry and presented on demand to Verifiers and auditors.
Examples for Statements that can improve trustworthy assessments of Transparency Services are RATS Conceptual Messages, such as Evidence, Endorsements, or corresponding Attestation Results (see <xref target="RFC9334"/>.</t>
          <t>For example, consider a Transparency Services 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 Transparency Services that accepts to register any valid Signed Statement offered by an Issuer would end up providing only limited value to verifiers.
In consequence, a baseline transparency guarantee policing the registration of Signed Statements is required to ensure completeness of audit, which can help detect equivocation.
Most advanced SCITT scenarios rely on the Transparency Service performing additional domain-specific checks before a Signed Statement is accepted: Transparency Services may only allow trusted authenticated users to register Signed Statements, Transparency Services may try to check that a new Signed Statement is consistent with previous Signed Statements from the same Issuers or that Signed Statements are registered in the correct order and cannot be re-played; some Transparency Services may even interpret and validate the payload of Signed Statements.</t>
          <t>In general, registration policies are applied at the discretion of the Transparency Services, and verifiers use Receipts as witnesses that confirm that the registration policy of the Transparency Services was satisfied at the time of creating a Transparent Statement via Signed Statement registration.
Transparency Service 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 Transparency Services is opaque to the verifier, which is forced to trust the associated registration policy.
If the policy of the Transparency Services evolves over time, or is different across Issuers, the assurances  derived from Receipt validation may not be uniform across all Signed Statements over time.</t>
          <t>To help verifiers interpret the semantics of Signed Statement registration, the SCITT Architecture defines a standard mechanism to include signals the Signed Statement itself which policies have been applied by the Transparency Service from a defined set
of registration policies with standardized semantics.
Each policy that is expected to be enforced by the Transparency Service is represented by an entry in the registration policy info map (<tt>reg_info</tt>) in the COSE Envelope of the Signed Statement.
The key of the map entry 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 Signed Statement 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 Transparent Statement is registered, its main downside is that it requires the Issuer to include the necessary policies in the Envelope when the Signed Statement is produced.
Furthermore, it makes it impossible to register the same Signed Statement on two different Transparency Services, if their required registration policies are incompatible.</t>
          <aside>
            <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 Signed Statements but requires the verifier to be more aware of the particular policies at the Transparency Service where the Signed Statement is registered.</t>
          </aside>
        </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.
The Registry is only required 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, no particular Registry format is specified in this document.
Instead, two initial formats for Registry in <xref target="I-D.birkholz-scitt-receipts"/> using historical and sparse Merkle Trees are proposed.
Beyond the format of Receipts, generic properties that should be satisfied by the components in the Transparency Services that have the ability to write to the Registry are required.</t>
          <section anchor="sec-finality">
            <name>Finality</name>
            <t>A Registry is append-only: once a Signed Statement is registered and becomes a Transparent Statement, it cannot be modified, deleted, or moved.
In particular, once a Receipt is returned for a given Signed Statement, the registered Signed Statement 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.
Transparency Service 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 Transparency Service defines and enforces deterministic Registration policies that can be re-evaluated based solely on the contents of the Registry at the time of registration, 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>a Transparency Services <bcp14>SHOULD</bcp14> store evidence about the resolution of distributed identifiers into manifests.</li>
              <li>a Transparency Service <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 Transparency Service 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 Statement about code updates, secured on the Registry itself, or on some auxiliary Transparency Service).</t>
            <t>Governance procedures, their auditing, and their transparency are implementation specific.
A Transparency Service <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 Transparency Services, or automated based on the contents of an auxiliary governance Transparency Service.</li>
              <li>Governance typically involves additional records in the Registry to enable its auditing.
Hence, the Registry may contain both Transparent Statements and governance entries.</li>
              <li>Issuers, Verifiers, and third-party auditors may review the Transparency Service governance before trusting the service, or on a regular basis.</li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="validation">
        <name>Verifying Transparent Statements</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 Transparency Services.</li>
        </ol>
        <t>When presented with a Transparent Statement for an Artifact, consumers verify its Issuer identity, signature, and Receipt.
They may additionally apply a validation policy based on the protected headers present both in the Envelope, the Receipt, or the Statement itself, which may include security-critical or Artifact-specific details.</t>
        <t>Some Verifiers may systematically resolve Issuer DIDs to fetch the latest corresponding DID documents.
This behavior strictly enforces the revocation of compromised keys: once the Issuer has updated its Statement to remove a key identifier, all Signed Statements include the corresponding <tt>kid</tt> will be rejected.
However, others may delegate DID resolution to a trusted third party and/or cache its results.</t>
        <t>Some Verifiers may decide to skip the DID-based signature verification, relying on the Transparency Service's Registration policy and the scrutiny of other Verifiers.
Although this weakens their guarantees against key revocation, or against a corrupt Transparency Services, they can still keep the Receipt and blame the Issuer or the Transparency Services at a later point.</t>
      </section>
    </section>
    <section anchor="sec-signed-statement-issuance-registration-and-verification">
      <name>Signed Statement Issuance, Registration, and Verification</name>
      <t>This section details the interoperability requirements for implementers of Signed Statements issuance and validation libraries, and of Transparency Services.</t>
      <section anchor="sec-envelope-and-signed-statement-format">
        <name>Envelope and Signed Statement Format</name>
        <t>The formats of Signed Statements and Receipts are based on CBOR Object Signing and Encryption (COSE <xref target="RFC9052"/>).
The choice of CBOR <xref target="RFC8949"/> is a trade-off between safety (in particular, non-malleability: each Signed Statement 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 Signed Statement is a COSE single-signed object (i.e., a <tt>COSE_Sign1</tt>) that contains the correct set of protected headers.
Although Issuers and relaying parties may attach unprotected headers to Signed Statements, Transparency Services and Verifiers <bcp14>MUST NOT</bcp14> rely on the presence or value of additional unprotected headers in Signed Statements during Registration and validation.</t>
        <t>All Signed Statements <bcp14>MUST</bcp14> include the following protected headers:</t>
        <ul spacing="normal">
          <li>algorithm (label: <tt>1</tt>): Asymmetric signature algorithm used by the Issuer of a Signed Statement, as an integer, for example <tt>-35</tt> for ECDSA with SHA-384, see <xref target="IANA.cose">COSE Algorithms registry</xref>;</li>
          <li>Issuer (label: <tt>TBD</tt>, temporary: <tt>391</tt>): DID (Decentralized Identifier <xref target="DID-CORE"/>) of the signer, as a string, for example <tt>did:web:example.com</tt>;</li>
          <li>Feed (label: <tt>TBD</tt>, temporary: <tt>392</tt>): the Issuer's name for the Artifact, as a string;</li>
          <li>payload type (label: <tt>3</tt>): media-type of Statement payload as a string, for example <tt>application/spdx+json</tt></li>
          <li>Registration policy info (label: <tt>TBD</tt>, temporary: <tt>393</tt>): a map of additional attributes to help enforce Registration policies;</li>
          <li>Key ID (label: <tt>4</tt>): Key ID, as a bytestring.</li>
        </ul>
        <t>Additionally, Signed Statements <bcp14>MAY</bcp14> carry the following unprotected headers:</t>
        <ul spacing="normal">
          <li>Receipts (label: <tt>TBD</tt>, temporary: <tt>394</tt>): 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 .within (~time),
  ? "sequence_no": uint,
  ? "issuance_ts": uint .within (~time),
  ? "no_replay": null,
  * 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
  4 =&gt; bstr              ; Key ID
  ; TBD, Labels are temporary
  391 =&gt; tstr            ; DID of Issuer
  392 =&gt; tstr            ; Feed
  393 =&gt; Reg_Info        ; Registration policy info
}

Unprotected_Header = {
  ; TBD, Labels are temporary
  ? 394 =&gt; [+ SCITT_Receipt]
}
</sourcecode>
      </section>
      <section anchor="sec-signed-statement-issuance">
        <name>Signed Statement 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 Signed Statements.
An Issuer must first decide on a suitable format to serialize the Statement payload, such as:</t>
        <ul spacing="normal">
          <li>JSON-SPDX</li>
          <li>CBOR-SPDX</li>
          <li>SWID</li>
          <li>CoSWID</li>
          <li>CycloneDX</li>
          <li>in-toto</li>
          <li>SLSA</li>
        </ul>
        <t>Once the Statement is serialized with the correct media-type/content-format, an Issuer should fill in the attributes for the Registration policy information header.
From the Issuer's perspective, using attributes from named policies ensures that the Signed Statement may only be registered on Transparency Services that implement the associated policy.
For instance, if a Signed Statement 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, an Issuer <bcp14>MUST</bcp14> use a standard COSE implementation to produce an appropriately serialized Signed Statement (the SCITT tag of <tt>COSE_Sign1_Tagged</tt> is outside the scope of COSE, and used to indicate that a signed object is a Signed Statement).</t>
      </section>
      <section anchor="sec-standard-registration-policies">
        <name>Standard Registration Policies</name>
        <aside>
          <t><strong>Editor's note</strong></t>
          <t>The technical design for signaling 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>
        </aside>
        <t>Transparency Service 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 Signed Statement can be registered.
Any unsupported types of Signed Statements <bcp14>MUST</bcp14> be indicated separately and corresponding unknown policy entries in the map of a Signed Statement <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 reg_info attributes</th>
              <th align="left">Implementation</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TimeLimited</td>
              <td align="left">
                <tt>register_by: uint .within (~time)</tt></td>
              <td align="left">Returns true if now () &lt; <tt>register_by</tt> at registration time. The Transparency Service <bcp14>MUST</bcp14> store the time of registration along with the Signed Statement, and <bcp14>SHOULD</bcp14> indicate it in corresponding Receipts. The value provided for <tt>register_by</tt> <bcp14>MUST</bcp14> be an unsigned integer, interpreted according to POSIX time, representing the number of seconds since 1970-01-01T00:00Z UTC.</td>
            </tr>
            <tr>
              <td align="left">Sequential</td>
              <td align="left">
                <tt>sequence_no: uint</tt></td>
              <td align="left">First, lookup of existing registered Transparent Statements with same Issuer and Feed. If at least one is found, returns true if and only if the <tt>sequence_no</tt> of the new Signed Statement to be registered would become the highest <tt>sequence_no</tt> in the set of existing Transparent Statements, 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 .within (~time)</tt></td>
              <td align="left">Returns true if and only if there is no existing already registered Transparent Statement in the ledger with the same Issuer and Feed with a greater <tt>issuance_ts</tt> and now () &gt; <tt>issuance_ts</tt> at registration time. The value provided for <tt>issuance_ts</tt> <bcp14>MUST</bcp14> be an unsigned integer, interpreted according to POSIX time, representing the number of seconds since 1970-01-01T00:00Z UTC.</td>
            </tr>
            <tr>
              <td align="left">NoReplay</td>
              <td align="left">
                <tt>no_replay: null</tt></td>
              <td align="left">If the <tt>no_replay</tt> attribute is present then the policy returns true if and only if the Signed Statement about to be registered doesn't already appear in the ledger. This policy has no required attributes.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-registering-signed-statements">
        <name>Registering Signed Statements</name>
        <t>The same Signed Statement may be independently registered in multiple Transparency Services.
To register a Signed Statement, the 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.
Signed Statements may be registered by a different party than their Issuer.</li>
          <li>Issuer identification.
The Transparency Service <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 resolves 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 includes a Statement payload and the protected headers listed above.
The service <bcp14>MAY</bcp14> additionally verify the Statement payload format and content.</li>
          <li>Apply Registration policy: for named policies, the Transparency Service should check that the required Registration info attributes are present in the Envelope and apply the check described in Table 1.
A Transparency Service <bcp14>MUST</bcp14> reject Signed Statements that contain an attribute used for a named policy that is not enforced by the service.
Custom Signed Statements are evaluated given the current Registry state and the entire Envelope, and <bcp14>MAY</bcp14> use information contained in the attributes of named policies.</li>
          <li>Commit (register) the new Signed Statement 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 Signed Statements recorded in the Registry.</t>
        <t>A Transparency Service <bcp14>MUST</bcp14> ensure that a Signed Statement is registered before releasing its Receipt, so that it can always back up the Receipt by releasing the corresponding entry (the now Transparent Statement) in the Registry.
Conversely, the service <bcp14>MAY</bcp14> re-issue Receipts for the Registry content, for instance after a transient fault during Signed Statement Registration.</t>
      </section>
      <section anchor="sec-validation-of-transparent-statements">
        <name>Validation of Transparent Statements</name>
        <t>This section provides additional implementation considerations.
The high-level validation algorithm is described in <xref target="validation"/>; the Registry-specific details of checking Receipts are covered in <xref target="I-D.birkholz-scitt-receipts"/>.</t>
        <t>Before checking a Transparent Statement, the Verifier must be configured with one or more identities of trusted Transparency Services.
If more than one service is configured, the Verifier <bcp14>MUST</bcp14> return which service the Transparent Statement is registered on.</t>
        <t>In some scenarios, the Verifier already expects a specific Issuer and Feed for the Transparent Statement, 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 Transparency Service during Registration.</t>
        <t>Some Verifiers <bcp14>MAY</bcp14> decide to locally re-apply some or all of the Registration policies, if they have limited trust in the Transparency Services.
In addition, Verifiers <bcp14>MAY</bcp14> apply arbitrary validation policies after the signature and Receipt have been checked.
Such policies may use as input all information in the Envelope, the Receipt, and the Statement payload, as well as any local state.</t>
        <t>Verifiers <bcp14>SHOULD</bcp14> offer options to store or share Receipts in case they are needed to audit the Transparency Services in case of a dispute.</t>
      </section>
    </section>
    <section anchor="sec-federation1">
      <name>Federation<cref anchor="_1" source="Henk">This section needs work.</cref></name>
      <t>Editor's note: This section needs work.</t>
      <t>Multiple, independently-operated Transparency Services can help secure distributed supply chains, without the need for a single, centralized service trusted by all parties.
For example, multiple Transparency Service instances may be governed and operated by different organizations that do not trust one another.</t>
      <t>This may involve registering the same Signed Statements at different Transparency Services, each with their own purpose and registration policy.
This may also involve attaching multiple Receipts to the same Signed Statements, each Receipt endorsing the Issuer signature and a subset of prior Receipts, and each Transparency Service  verifying prior Receipts as part of their registration policy.</t>
      <t>For example,
a supplier's Transparency Service may provide a complete, authoritative Registry for some kind of Signed Statements, whereas a consumer's Transparency Service may collect different kinds of Signed Statements
to ensure complete auditing for a specific use case, and possibly require additional reviews before registering some of these Signed Statements.</t>
    </section>
    <section anchor="sec-transparency-service-api2">
      <name>Transparency Service API<cref anchor="_2" source="Henk">This may be moved to appendix.</cref></name>
      <t>Editor's Note: This may be moved to appendix.</t>
      <section anchor="sec-messages">
        <name>Messages</name>
        <t>All messages are sent as HTTP GET or POST requests.</t>
        <t>If the transparency service cannot process a client's request, it <bcp14>MUST</bcp14> return an HTTP 4xx or 5xx status code, and the body <bcp14>SHOULD</bcp14> be a JSON problem details object (<xref target="RFC7807"/>) containing:</t>
        <ul spacing="normal">
          <li>type: A URI reference identifying the problem.
To facilitate automated response to errors, this document defines a set of standard tokens for use in the type field within the URN namespace of: "urn:ietf:params:scitt:error:".</li>
          <li>detail: A human-readable string describing the error that prevented the transparency service from processing the request, ideally with sufficient detail to enable the error to be rectified.</li>
        </ul>
        <t>Error responses <bcp14>SHOULD</bcp14> be sent with the <tt>Content-Type: application/problem+json</tt> HTTP header.</t>
        <t>As an example, submitting a signed statement with an unsupported signature algorithm would return a <tt>400 Bad Request</tt> status code and the following body:</t>
        <sourcecode type="json">
{
  "type": "urn:ietf:params:scitt:error:badSignatureAlgorithm",
  "detail": "The statement was signed with an algorithm the server does not support"
}
</sourcecode>
        <t>Most error types are specific to the type of request and are defined in the respective subsections below.
The one exception is the "malformed" error type, which indicates that the transparency service could not parse the client's request because it did not comply with this document:</t>
        <ul spacing="normal">
          <li>Error code: <tt>malformed</tt> (The request could not be parsed).</li>
        </ul>
        <t>Clients <bcp14>SHOULD</bcp14> treat 500 and 503 HTTP status code responses as transient failures and <bcp14>MAY</bcp14> retry the same request without modification at a later date.
Note that in the case of a 503 response, the transparency service <bcp14>MAY</bcp14> include a <tt>Retry-After</tt> header field per <xref target="RFC7231"/> in order to request a minimum time for the client to wait before retrying the request.
In the absence of this header field, this document does not specify a minimum.</t>
        <section anchor="sec-register-signed-statement">
          <name>Register Signed Statement</name>
          <section anchor="sec-request">
            <name>Request</name>
            <artwork><![CDATA[
POST <Base URL>/entries
]]></artwork>
            <t>Headers:</t>
            <ul spacing="normal">
              <li>
                <tt>Content-Type: application/cose</tt></li>
            </ul>
            <t>Body: SCITT COSE_Sign1 message</t>
          </section>
          <section anchor="sec-response">
            <name>Response</name>
            <t>One of the following:</t>
            <ul spacing="normal">
              <li>
                <t>Status 201 - Registration is successful.
                </t>
                <ul spacing="normal">
                  <li>Header <tt>Location: &lt;Base URL&gt;/entries/&lt;Entry ID&gt;</tt></li>
                  <li>Header <tt>Content-Type: application/json</tt></li>
                  <li>Body <tt>{ "entryId": "&lt;Entry ID"&gt; }</tt></li>
                </ul>
              </li>
              <li>
                <t>Status 202 - Registration is running.
                </t>
                <ul spacing="normal">
                  <li>Header <tt>Location: &lt;Base URL&gt;/operations/&lt;Operation ID&gt;</tt></li>
                  <li>Header <tt>Content-Type: application/json</tt></li>
                  <li>(Optional) Header: <tt>Retry-After: &lt;seconds&gt;</tt></li>
                  <li>Body <tt>{ "operationId": "&lt;Operation ID&gt;", "status": "running" }</tt></li>
                </ul>
              </li>
              <li>
                <t>Status 400 - Registration was unsuccessful due to invalid input.
                </t>
                <ul spacing="normal">
                  <li>Error code <tt>badSignatureAlgorithm</tt></li>
                  <li/>
                </ul>
              </li>
            </ul>
            <t>If 202 is returned, then clients should wait until registration succeeded or failed by polling the registration status using the Operation ID returned in the response.
Clients should always obtain a receipt as a proof that registration has succeeded.</t>
          </section>
        </section>
        <section anchor="sec-retrieve-operation-status">
          <name>Retrieve Operation Status</name>
          <section anchor="sec-request-1">
            <name>Request</name>
            <artwork><![CDATA[
GET <Base URL>/operations/<Operation ID>
]]></artwork>
          </section>
          <section anchor="sec-response-1">
            <name>Response</name>
            <t>One of the following:</t>
            <ul spacing="normal">
              <li>
                <t>Status 200 - Registration is running
                </t>
                <ul spacing="normal">
                  <li>Header: <tt>Content-Type: application/json</tt></li>
                  <li>(Optional) Header: <tt>Retry-After: &lt;seconds&gt;</tt></li>
                  <li>Body: <tt>{ "operationId": "&lt;Operation ID&gt;", "status": "running" }</tt></li>
                </ul>
              </li>
              <li>
                <t>Status 200 - Registration was successful
                </t>
                <ul spacing="normal">
                  <li>Header: <tt>Location: &lt;Base URL&gt;/entries/&lt;Entry ID&gt;</tt></li>
                  <li>Header: <tt>Content-Type: application/json</tt></li>
                  <li>Body: <tt>{ "operationId": "&lt;Operation ID&gt;", "status": "succeeded", "entryId": "&lt;Entry ID&gt;" }</tt></li>
                </ul>
              </li>
              <li>
                <t>Status 200 - Registration failed
                </t>
                <ul spacing="normal">
                  <li>Header <tt>Content-Type: application/json</tt></li>
                  <li>Body: <tt>{ "operationId": "&lt;Operation ID&gt;", "status": "failed", "error": { "type": "&lt;type&gt;", "detail": "&lt;detail&gt;" } }</tt></li>
                  <li>Error code: <tt>badSignatureAlgorithm</tt></li>
                  <li/>
                </ul>
              </li>
              <li>
                <t>Status 404 - Unknown Operation ID
                </t>
                <ul spacing="normal">
                  <li>Error code: <tt>operationNotFound</tt></li>
                  <li>This can happen if the operation ID has expired and been deleted.</li>
                </ul>
              </li>
            </ul>
            <t>If an operation failed, then error details <bcp14>SHOULD</bcp14> be embedded as a JSON problem details object in the <tt>"error"</tt> field.</t>
            <t>If an operation ID is invalid (i.e., it does not correspond to any submit operation), a service may return either a 404 or a <tt>running</tt> status.
This is because differentiating between the two may not be possible in an eventually consistent system.</t>
          </section>
        </section>
        <section anchor="sec-retrieve-signed-statement">
          <name>Retrieve Signed Statement</name>
          <section anchor="sec-request-2">
            <name>Request</name>
            <artwork><![CDATA[
GET <Base URL>/entries/<Entry ID>
]]></artwork>
            <t>Query parameters:</t>
            <ul spacing="normal">
              <li>(Optional) <tt>embedReceipt=true</tt></li>
            </ul>
            <t>If the query parameter <tt>embedReceipt=true</tt> is provided, then the signed statement is returned with the corresponding registration receipt embedded in the COSE unprotected header.</t>
          </section>
          <section anchor="sec-response-2">
            <name>Response</name>
            <t>One of the following:</t>
            <ul spacing="normal">
              <li>
                <t>Status 200.
                </t>
                <ul spacing="normal">
                  <li>Header: <tt>Content-Type: application/cose</tt></li>
                  <li>Body: COSE_Sign1</li>
                </ul>
              </li>
              <li>
                <t>Status 404 - Entry not found.
                </t>
                <ul spacing="normal">
                  <li>Error code: <tt>entryNotFound</tt></li>
                </ul>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="sec-retrieve-registration-receipt">
          <name>Retrieve Registration Receipt</name>
          <section anchor="sec-request-3">
            <name>Request</name>
            <artwork><![CDATA[
GET <Base URL>/entries/<Entry ID>/receipt
]]></artwork>
          </section>
          <section anchor="sec-response-3">
            <name>Response</name>
            <t>One of the following:</t>
            <ul spacing="normal">
              <li>
                <t>Status 200.
                </t>
                <ul spacing="normal">
                  <li>Header: <tt>Content-Type: application/cbor</tt></li>
                  <li>Body: SCITT_Receipt</li>
                </ul>
              </li>
              <li>
                <t>Status 404 - Entry not found.
                </t>
                <ul spacing="normal">
                  <li>Error code: <tt>entryNotFound</tt></li>
                </ul>
              </li>
            </ul>
            <t>The retrieved Receipt may be embedded in the corresponding COSE_Sign1 document in the unprotected header, see draft-birkholz-scitt-receipts (<eref target="more error codes to be defined, see [#17](https://github.com/ietf-wg-scitt/draft-ietf-scitt-architecture/issues/17)">TODO</eref>: replace with final reference).</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="sec-privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Unless advertised by a Transparency Service, every Issuer should treat Signed Statements it registered (rendering them Transparent Statements) as public.
In particular, Signed Statement's Envelopes and Statement payload 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 Statement does not guarantee that its Envelope or contents are trustworthy---just that they have been signed by the apparent Issuer and counter-signed by the
Transparency Service.
If the Verifier trusts the Issuer, it can infer that an Issuer's Signed Statement was issued with this Envelope and contents, which may be interpreted as the Issuer saying the Artifact is fit for its intended purpose.
If the Verifier trusts the Transparency Service, it can independently infer that the Signed Statement passed the Transparency Service Registration policy and that has been persisted in the Registry.
Unless advertised in the Transparency Service Registration policy, the Verifier should not assume that the ordering of Transparent Statements in the Registry matches the ordering of their issuance.</t>
      <t>Similarly, the fact that an Issuer can be held accountable for its Transparent Statements does not on its own provide any mitigation or remediation mechanism in case one of these Transparent Statements turned out to be misleading or malicious---just that signed evidence will be available to support them.</t>
      <t>Issuers <bcp14>SHOULD</bcp14> ensure that the Statement payloads in their Signed Statements are correct and unambiguous, for example by avoiding ill-defined or ambiguous formats that may cause Verifiers to interpret the Signed Statement as valid for some other purpose.</t>
      <t>Issuers and Transparency Services <bcp14>SHOULD</bcp14> carefully protect their private signing keys and avoid these keys for any purpose not described in this architecture document.
In cases where key re-use is unavoidable, keys <bcp14>MUST NOT</bcp14> sign any other message that may be verified as an Envelope as part of a Signed Statement.</t>
      <section anchor="sec-threat-model">
        <name>Threat Model</name>
        <t>The document provides a generic threat model for SCITT, describing its residual security properties when some of its actors (identity providers, Issuers, Transparency Services, and Auditors) are corrupt or compromised.</t>
        <t>This model may need to be refined to account for specific supply chains and use cases.</t>
        <section anchor="sec-signed-statement-authentication-and-transparency">
          <name>Signed Statement Authentication and Transparency.</name>
          <t>SCITT primarily supports checking of Signed Statement authenticity, both from the Issuer (authentication) and from the Transparency Service (transparency).
These guarantees are meant to hold for the extensive periods of time, possibly decades.</t>
          <t>It can never be assumed that some Issuers and some Transparency Services will not be corrupt.</t>
          <t>SCITT entities explicitly trust one another on the basis of their long-term identity, which maps to shorter-lived cryptographic credentials.
Hence, a Verifier would usually validate a Transparent Statement originating from a given Issuer, registered at a given Transparency Service (both identified in the Verifier's local authorization policy) and would not depend on any other Issuer or Transparency Services.</t>
          <t>Authorized supply chain actors (Issuers) cannot be stopped from producing Signed Statements including false assertions in their Statement payload (either by mistake or by corruption), but these Issuers can made accountable by ensuring their Signed Statements are systematically registered at a trustworthy Transparency Service.</t>
          <t>Similarly, providing strong residual guarantees against faulty/corrupt Transparency Services is a SCITT design goal.
Preventing a Transparency Service from registering Signed Statements that do not meet its stated Registration Policy, or to issue Receipts that are not consistent with their append-only Registry is not possible.
In contrast Transparency Services can be hold accountable and they can be called out by any Auditor that replays their Registry against any contested Receipt.
Note that the SCITT Architecture does not require trust in a single centralized Transparency Service: different actors may rely on different Transparency Services, each registering a subset of Signed Statements subject to their own policy.</t>
          <t>In both cases, the SCITT Architecture provides generic, universally-verifiable cryptographic proof to individually blame Issuers or the Transparency Service.
On the one hand, this enables valid actors to detect and disambiguate malicious actors who issue contradictory Signed Statements 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 of the SCITT Architecture.</t>
          <t>Verifiers and Auditors need not be trusted by other actors.
In particular, they cannot "frame" an Issuer or a Transparency Service for Signed Statements they did not issue or register.</t>
          <section anchor="sec-append-only-log">
            <name>Append-only Log</name>
            <t>If a Transparency Service is honest, then a Transparent Statement including a correct Receipt ensures that the Transparent Statement passed its Registration Policy and was recorded appropriately.</t>
            <t>Conversely, a corrupt Transparency Service may
1. refuse or delay the registration of Signed Statements,
2. register Signed Statements that do not pass its Registration Policy (e.g., Signed Statement with Issuer identities and signatures that do not verify),
3. issue verifiable Receipts for Signed Statements that do not match its Registry, or
4. refuse access to its Registry (e.g., to Auditors, possibly after storage loss).</t>
            <t>An Auditor granted (partial) access to a 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 Transparency Service for them.
This ensures any Verifier that trusts at least one such Auditor that (2,3) will be blamed to the Transparency Service.</t>
            <t>Due to the operational challenge of maintaining a globally consistent append-only Registry,
some Transparency Services may provide limited support for historical queries on the Transparent Statements 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>
          </section>
          <section anchor="sec-availability-of-transparent-signed-statement">
            <name>Availability of Transparent Signed Statement</name>
            <t>Networking and Storage are trusted only for availability.</t>
            <t>Auditing may involve access to data beyond what is persisted in the Transparency Services.
For example, the registered Transparency Service may include only the hash of a detailed SBOM, which may limit the scope of auditing.</t>
            <t>Resistance to denial-of-service is implementation specific.</t>
            <t>Actors should independently keep their own record of the Signed Statements they issue, endorse, verify, or audit.</t>
          </section>
        </section>
        <section anchor="sec-confidentiality-and-privacy">
          <name>Confidentiality and privacy.</name>
          <t>According to Zero Trust Principles any location in a network is never trusted.
All contents exchanged between actors is protected using secure authenticated channels (e.g., TLS) but, as usual, this may not exclude network traffic analysis.</t>
          <section anchor="sec-signed-statements-and-their-registration">
            <name>Signed Statements and Their Registration</name>
            <t>The Transparency Service is trusted with the confidentiality of the Signed Statements presented for registration.
Some Transparency Services may publish every Transparent Statement in their logs, to facilitate their dissemination and auditing.
Others may just return Receipts to clients that present Singed Statements for registration, and disclose the ledger only to auditors trusted with the confidentiality of its contents.</t>
            <t>A collection of Transparent Statements leaks no information about the contents of other Transparent Statements registered at the Transparency Service.</t>
            <t>Nonetheless, Issuers should carefully review the inclusion of private/confidential materials in their issued Signed Statements; they may for instance remove any PII, or include instead opaque cryptographic commitments, such as hashes.</t>
          </section>
          <section anchor="sec-queries-to-the-registry">
            <name>Queries to the Registry</name>
            <t>The confidentiality of queries is implementation-specific, and generally not guaranteed.
For example, while offline Envelope validation of Signed Statements is private, a Transparency Services may monitor which of its Transparent Statements are being verified from lookups to ensure their freshness.</t>
          </section>
        </section>
        <section anchor="sec-cryptographic-assumptions">
          <name>Cryptographic Assumptions</name>
          <t>SCITT relies on standard cryptographic security for signing schemes (EUF-CMA: for a given key, given the public key and any number of signed messages, an attacker cannot forge a valid signature for any other message) and for Receipts schemes (log collision-resistance: for a given commitment such as a Merkle-tree root, there is a unique log such that any valid path authenticates a Signed Statement in this log.)</t>
          <t>The SCITT Architecture supports cryptographic agility: the actors depend only on the subset of signing and Receipt schemes they trust.
This enables the gradual transition to stronger algorithms, including e.g. post-quantum signature algorithms.</t>
        </section>
        <section anchor="sec-transparency-service-clients">
          <name>Transparency Service Clients</name>
          <t>Trust in clients that submit Signed Statements for registration is implementation-specific.
Hence, an attacker may attempt to register any Signed Statement it has obtained, at any Transparency Service that accepts them, possibly multiple times and out of order.
This may be mitigated by a Transparency Services that enforces restrictive access control and Registration policies.</t>
        </section>
        <section anchor="sec-identity">
          <name>Identity</name>
          <t>The identity resolution mechanism is trusted to associate long-term identifiers with their public signature-verification keys.
(Transparency Services and other parties may record identity-resolution evidence to facilitate its auditing.)</t>
          <t>If one of the credentials of an Issuer gets compromised, the SCITT Architecture still guarantees the authenticity of all Signed Statements signed with this credential that have been registered on a Transparency Service before the compromise.
It is up to the Issuer to notify Transparency Services of credential revocation to stop Verifiers from accepting Signed Statements signed with compromised credentials.</t>
          <t>The confidentiality of any identity lookup during Signed Statement Registration or Transparent Statement Verification is out of scope.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD; <xref target="mybody"/>.</t>
      <section anchor="sec-urn-sub-namespace-for-scitt-urnietfparamsscitt">
        <name>URN Sub-namespace for SCITT (urn:ietf:params:scitt)</name>
        <t>IANA is requested to register the URN sub-namespace <tt>urn:ietf:params:scitt</tt>
in the "IETF URN Sub-namespace for Registered Protocol Parameter Identifiers"
registry <xref target="IANA.params"/>, following the template in <xref target="RFC3553"/>:</t>
        <t>Registry name:  scitt</t>
        <t>Specification:  [RFCthis]</t>
        <t>Repository:  http://www.iana.org/assignments/scitt</t>
        <t>Index value:  No transformation needed.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <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="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <seriesInfo name="DOI" value="10.17487/RFC9052"/>
            <seriesInfo name="RFC" value="9052"/>
            <seriesInfo name="STD" value="96"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need to be able to define basic security services for this data format.  This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.  </t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <seriesInfo name="DOI" value="10.17487/RFC8949"/>
            <seriesInfo name="RFC" value="8949"/>
            <seriesInfo name="STD" value="94"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049.  It does not create a new version of the format.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="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="RFC7807">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <seriesInfo name="DOI" value="10.17487/RFC7807"/>
            <seriesInfo name="RFC" value="7807"/>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <author fullname="E. Wilde" initials="E." surname="Wilde">
              <organization/>
            </author>
            <date month="March" year="2016"/>
            <abstract>
              <t>This document defines a "problem detail" as a way to carry machine- readable details of errors in a HTTP response to avoid the need to define new error response formats for HTTP APIs.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7231">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title>
            <seriesInfo name="DOI" value="10.17487/RFC7231"/>
            <seriesInfo name="RFC" value="7231"/>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
              <organization/>
            </author>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless \%application- level protocol for distributed, collaborative, hypertext information systems.  This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="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="RFC3553">
          <front>
            <title>An IETF URN Sub-namespace for Registered Protocol Parameters</title>
            <seriesInfo name="DOI" value="10.17487/RFC3553"/>
            <seriesInfo name="RFC" value="3553"/>
            <seriesInfo name="BCP" value="73"/>
            <author fullname="M. Mealling" initials="M." surname="Mealling">
              <organization/>
            </author>
            <author fullname="L. Masinter" initials="L." surname="Masinter">
              <organization/>
            </author>
            <author fullname="T. Hardie" initials="T." surname="Hardie">
              <organization/>
            </author>
            <author fullname="G. Klyne" initials="G." surname="Klyne">
              <organization/>
            </author>
            <date month="June" year="2003"/>
            <abstract>
              <t>This document describes a new sub-delegation for the 'ietf' URN namespace for registered protocol items.  The 'ietf' URN namespace is defined in RFC 2648 as a root for persistent URIs that refer to IETF- defined resources.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="IANA.params" target="https://www.iana.org/assignments/params">
          <front>
            <title>Uniform Resource Name (URN) Namespace for IETF Use</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cose" target="https://www.iana.org/assignments/cose">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="DID-CORE" target="https://www.w3.org/TR/did-core/">
          <front>
            <title>Decentralized Identifiers (DIDs) v1.0</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date year="2022" month="July" day="22"/>
          </front>
        </reference>
        <reference anchor="DID-WEB" target="https://w3c-ccg.github.io/did-method-web/">
          <front>
            <title>did:web Decentralized Identifiers Method Spec</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="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">
          <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">
          <front>
            <title>Countersigning COSE Envelopes in Transparency Services</title>
            <seriesInfo name="Internet-Draft" value="draft-birkholz-scitt-receipts-02"/>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Maik Riechert" initials="M." surname="Riechert">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Antoine Delignat-Lavaud" initials="A." surname="Delignat-Lavaud">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Cedric Fournet" initials="C." surname="Fournet">
              <organization>Microsoft</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   A transparent and authentic Transparent Registry service in support
   of a supply chain's integrity, transparency, and trust requires all
   peers that contribute to the Registry 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 registries.  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">
          <front>
            <title>Practical byzantine fault tolerance and proactive recovery</title>
            <seriesInfo name="DOI" value="10.1145/571637.571640"/>
            <seriesInfo name="ACM Transactions on Computer Systems" value="vol. 20, no. 4, pp. 398-461"/>
            <author fullname="Miguel Castro" initials="M." surname="Castro">
              <organization>Microsoft Research</organization>
            </author>
            <author fullname="Barbara Liskov" initials="B." surname="Liskov">
              <organization>MIT Laboratory for Computer Science</organization>
            </author>
            <date month="November" year="2002"/>
          </front>
        </reference>
        <reference anchor="MERKLE">
          <front>
            <title>A Digital Signature Based on a Conventional Encryption Function</title>
            <seriesInfo name="DOI" value="10.1007/3-540-48184-2_32"/>
            <seriesInfo name="Advances in Cryptology - CRYPTO '87" value="pp. 369-378"/>
            <author fullname="Ralph C. Merkle" initials="R." surname="Merkle">
              <organization/>
            </author>
            <date year="1988"/>
          </front>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <seriesInfo name="DOI" value="10.17487/RFC9334"/>
            <seriesInfo name="RFC" value="9334"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author fullname="D. Thaler" initials="D." surname="Thaler">
              <organization/>
            </author>
            <author fullname="M. Richardson" initials="M." surname="Richardson">
              <organization/>
            </author>
            <author fullname="N. Smith" initials="N." surname="Smith">
              <organization/>
            </author>
            <author fullname="W. Pan" initials="W." surname="Pan">
              <organization/>
            </author>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims.  It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
        </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:
H4sIAGKuD2QAA8W963obV5Il+h9PkUP/EGkDoCjJZZuqcjdFSW1O69Yi3dU9
/txmAkiQWQIyUZkJUrCseZbzCOcZ5slOrLjsS14o2XVmpr6Ztggkdu5L7Liu
iJhMJqOb4+ThaNTkzSo7Tk6K5KSaX+dNNm+2VZYsyyq5qLZ1c1tWzfUuSYsF
/Z0W9SatsqJJnuZXeZOukvPtZrPaJafXaV7Uo3Q2qzIa9/z07OIiGnC0KOdF
uqY3Lap02UzyrFlO6nneNJM0eGxy/2g0ojekNEY231Z5sxvdXumAo3e3x8lZ
0WRVkTWTpxhnNE+b46RuFqN5WdRZUW/r42SX1aN6O1vndZ2XRbPb0FvPnl08
H43eVel6Ud4Wv5Sbhr6qj0dJkm6b8pd88cumypb5exosm09oDtvmuqyOR5NE
Zv1DVrxLnuTVu+ty9Sv9qqxoVs+rdFtcl8usSs7PLjCWrr/zRbZO89Vxck2j
TGc6yj/XeTNduieni4werJsqy2hJb68z2tCmSus6S775mr6Zlwuax70/PXrw
3df38DftzXHyNK3WdZMuGn5iWzQVffgvWbVOi52b/EnRlHmRJU+zVX5VpM3k
RXqTbheyjLTIf02xG8fJy3xelXW5bJK3WZ3hXIIZPThKzht+MHlbpgs/o9Mn
R8mD50/8nE7T9azKF1eZX3haNIvVP69t/Om8XIcT/vFf3VxPs0WVz5Pn5Ran
/H9wikt542dN8j/Lq6y+pv2srzd0M7LONE/evgzmdXR0P3m+Xc3whp6Zfffq
v985sx2/jehD3/bPdOY9kxsVJR17k99kIOu3z0+//dPRfRrw6dMX8vd3979+
QH+/Pn+m33/36Dv6+8nrt6Mv7IGH8sDk5MW/nPtPH+mnP5yc/6BjHf0JY13I
X998e/8bfek3Dx4e6T//9O3Db/WfD7+mkemfZyevTqbEQtJ17f6clzXP+OnZ
08np67fP8O8kadLqCnt33TSb+vjw8Pb2dnr7cErbfHjx9nCRLybzssoO5Vnh
YU+zObGmKl3lv2aL5GxBf+TLPKvqZJ/Grg+Sm6Ppff6B3e6E/8d3+a8PT/nP
RdrQUA/uP3gwuf/N5MEDndhfnz0ZmNfD+WQ+v5oSO7zezqZ5yXNbZ/SCxeQ2
m0UzpK+O6bM7ZvqSf5icb7L5KC+W4YmeTZ463qGss6Jx8k1DPO/ts9NnZ28u
zum5N0+eX9BmvD6bHt2fHh09+vrw62+O/vTwmyn+8wgb8PLZ23998cw/c//+
N4cPJ18/uj959O3Rt48mD355+ECP+eFDOvsqbWpm06PRTVZseTZCmjyNfwYz
x8nQx7INxwnz99srmefhnTx/NJpMJsQ6we3mzWhEYmaepbN8RfchKZfJ5npX
53OSNZBBC5U7aUU7Ro/XSV4ktQihOQuhJK+TNFmVBb28oZ/kxdU4mW0benBO
gqWmv+nZOqvycluD27OUoZtUzEmwTEcX11lS5cR1aeBNudmu0konckO/Webp
bJWBSlJc7y2vgF6Id64zmkGR1+ukKWl/3mUJTbCkQ10TpdK/+bLyzyFdSVKk
tAnFVdIQr69oAuvNKk9pFsmmKkl40bDXNC7xJVp3Xa4zWud8ntX1ckvrpxXT
prAUw+tqIhia3DzZ0sznKX68T49fY2Y0frRF/HrbSFo0aI+GyuoD2ahVOn+H
9VxlRQZejH2v6QB46uHJ0chpQ28rknSxoG3Aj27zBUk90hSuMuyZm86UDvaa
jmadrctkQaK2yD7zHWWSFfxx4/SPOSkk4NI0QrGL13ZLBJis8yJfb9c0LRH0
ySytKr5fWDpt72I7Z75we13y/KvsKq9JsdCzOCcxSRcTwiRb0+WsExoDr7oI
p3CeVTf5PBvLO7HLV1tibaSg6M6kqxXoqt6u8bLbnP6c0ep4LaWQ0w6/Wx/w
+rOi3F5dJ8tV9j5X8qfHaJDylo5rSToCNK+cyIQnpYdPm9w3q1pmdZMKnZO4
zxsQG14UkFqV/X2bV7LIqdzEdb5YrOhWfgFdi7cKL9LjIzVui4fpCOt5lc/4
EP3B0eAyfdyRiMl1z/SaJ8ATs9uO37t7Ih/RkdoaaNzarYGmXF3hj+jyT0dn
tO30puwmA+HTjK9KovLZjl5IZz/X+0Z0gG3FX7wZsqHVzvMDd5QkqEZHU7rs
jhbW6SLDiKRfbnGwKQn2JqZCz57WpEPj1HNl8tinMQsg/D0f82KKsiBevqGt
wNePRw+mCV/e8KU6jlEqbSloUiacgR9kxWJSFjSFt/wIFlMKHQpRE9kT95ZN
p3fS3hBz2jH5Y36kWGAIetlqp1RS1HiVfIBjyhaPRw+nyZmuG7/MlsQ7cnmG
X8AkSzelpJfSO2kjmMR13pVoZ0SzAxftsV4LOSc6PhqUnoZmX/GJynJ078Hr
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

-->

</rfc>
