<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.35 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-pki-12" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="SCION CP-PKI">SCION Control Plane PKI</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-pki-12"/>
    <author initials="C." surname="de Kater" fullname="Corine de Kater">
      <organization>SCION Association</organization>
      <address>
        <email>c_de_kater@gmx.ch</email>
      </address>
    </author>
    <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
      <organization>SCION Association</organization>
      <address>
        <email>nic@scion.org</email>
      </address>
    </author>
    <author initials="S." surname="Hitz" fullname="Samuel Hitz">
      <organization>Anapaya Systems</organization>
      <address>
        <email>hitz@anapaya.net</email>
      </address>
    </author>
    <date year="2026" month="April" day="20"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 104?>

<t>This document presents the trust concept and design of the SCION <em>Control Plane Public Key Infrastructure (CP-PKI)</em>. SCION (Scalability, Control, and Isolation On Next-generation networks) is a path-aware, inter-domain network architecture that relies on the CP-PKI to handle cryptographic material, authenticate control plane messages used to securely disseminate path information.</t>
      <t>This specification introduces its localized trust model, anchored in Isolation Domains (ISDs). It defines the distinct certificate types, and specifies the structure, format and lifecycle of the Trust Root Configuration (TRC). Furthermore, it provides practical guidelines for deploying and maintaining the CP-PKI infrastructure.</t>
      <t>This document contains new approaches to secure path aware networking. It is not an Internet Standard, has not received any formal review of the IETF, nor was the work developed through the rough consensus process. The approaches offered in this work are offered to the community for its consideration in the further evolution of the Internet.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://scionassociation.github.io/scion-cppki_I-D/draft-dekater-scion-pki.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-dekater-scion-pki/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/scionassociation/scion-cppki_I-D"/>.</t>
    </note>
  </front>
  <middle>
    <?line 112?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>SCION is a path-aware internetworking routing architecture as described in <xref target="RFC9217"/>. A more detailed introduction, motivation, and problem statement are provided in <xref target="I-D.dekater-scion-controlplane"/>. Readers are encouraged to read the introduction in that document first.</t>
      <t>SCION relies on three main components:</t>
      <t><em>PKI</em> - providing cryptographic material within an unique trust model. It is described in this document.</t>
      <t><em>Control Plane</em> - performing inter-domain routing by discovering and securely disseminating path information. It is described in <xref target="I-D.dekater-scion-controlplane"/>.</t>
      <t><em>Data Plane</em> - carrying out secure packet forwarding between SCION-enabled ASes over paths selected by endpoints. It is described in <xref target="I-D.dekater-scion-dataplane"/>.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t><strong>Control Plane PKI (CP-PKI)</strong>: It is the public key infrastructure upon which SCION's Control Plane relies for the authentication of messages. It is a set of policies, roles, and procedures that are used to manage trust root configurations (TRCs) and certificates.</t>
        <t><strong>SCION Autonomous System (AS)</strong>: A SCION Autonomous System is a network under a common administrative control. For example, the network of a SCION service provider, company, or university can constitute an AS. While functionally similar to a BGP AS, a SCION AS operates within an Isolation Domain (ISD), utilizes a different address scheme, and serves as a locator in the addressing of end hosts. References to ASes throughout this document refer to SCION ASes.</t>
        <t><strong>Isolation Domain (ISD)</strong>: SCION ASes are organized into logical groups called Isolation Domains or ISDs. Each ISD consists of ASes that span an area with a uniform trust environment (e.g. a common jurisdiction).</t>
        <t><strong>Core AS</strong>: Each Isolation Domain (ISD) is administered by a set of distinguished SCION autonomous systems (ASes) called core ASes, which are responsible for initiating the path discovery and path construction process (called "beaconing" in SCION). Each ISD <bcp14>MUST</bcp14> have at least one Core AS.</t>
        <t><strong>Trust Root Configuration (TRC)</strong>: A Trust Root Configuration or TRC is a signed collection of certificates pertaining to an isolation domain (ISD). TRCs also contain ISD-specific policies.</t>
        <t><strong>Authoritative AS</strong>: Authoritative ASes are those ASes in an ISD that always have the latest TRCs of the ISD. As a consequence, authoritative ASes also start the announcement of a TRC update.</t>
        <t><strong>Base TRC</strong>: A base TRC is a trust root configuration (TRC) that other parties trust axiomatically. In other words, trust for a base TRC is assumed, not derived from another cryptographic object. Each ISD <bcp14>MUST</bcp14> create and sign a base TRC when the ISD is established. A base TRC is either the first TRC of the ISD or the result of a trust reset.</t>
        <t><strong>TRC Signing Ceremony</strong>: The ceremony during which the very first base TRC of an ISD, called the initial TRC, is signed. The initial TRC is a special case of the base TRC where the number of the ISD is assigned.</t>
        <t><strong>TRC Update</strong>: A <em>regular</em> TRC update is a periodic re-issuance of the TRC where the entities and policies listed in the TRC remain unchanged. A <em>sensitive</em> TRC update is an update that modifies critical aspects of the TRC, such as the set of core ASes. In both cases, the base TRC remains unchanged.</t>
        <t><strong>Voting ASes</strong>: Those ASes within an ISD that may sign TRC updates. The process of appending a signature to a new TRC is called "casting a vote".</t>
        <t><strong>Voting Quorum</strong>: The voting quorum is a trust root configuration (TRC) field that indicates the number of votes (signatures) needed on a successor TRC for it to be verifiable. A voting quorum greater than one will thus prevent a single entity from creating a malicious TRC update.</t>
        <t><strong>Grace Period</strong>: The grace period is an interval during which the previous version of a trust root configuration (TRC) is still considered active after a new version has been published.</t>
        <t><strong>Trust Reset</strong>: A trust reset is the action of announcing a new base TRC for an existing ISD, to mitigate a compromised TRC.</t>
      </section>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="trust-model">
        <name>Trust Model</name>
        <t>Given the diverse nature of the constituents in the current Internet, an important challenge is how to scale authentication of network elements (such as AS ownership, hop-by-hop routing information, name servers for DNS, and domains for TLS) to the global environment. The roots of trust of currently prevalent public key infrastructure (PKI) models do not scale well to a global environment because (1) mutually distrustful parties cannot agree on a single trust root (monopoly model), and because (2) the security of a plethora of roots of trust is only as strong as its weakest link (oligopoly model) - see also <xref target="BARRERA17"/>.</t>
        <t>The monopoly model suffers from two main drawbacks: First, all parties must agree on a single root of trust. Secondly, the single root of trust represents a single point of failure, the misuse of which enables the forging of certificates. Its revocation can also result in a kill switch for all the entities it certifies.</t>
        <t>The oligopoly model relies on several roots of trust, all equally and completely trusted. However, this is not automatically better: whereas the monopoly model has a single point of failure, the oligopoly model has the drawback of exposing more than one point of failure.</t>
        <t>Thus, there is a need for a trust architecture that supports meaningful trust roots in a global environment with inherently distrustful parties. This new trust architecture should provide the following properties:</t>
        <ul spacing="normal">
          <li>
            <t>Trust agility (see further below);</t>
          </li>
          <li>
            <t>Resilience to single root of trust compromise;</t>
          </li>
          <li>
            <t>Multi-party governance; and</t>
          </li>
          <li>
            <t>Support for policy versioning and updates.</t>
          </li>
        </ul>
        <t>Ideally, the trust architecture allows parties that mutually trust each other to form their own trust domain, and to freely decide whether to trust other trust domains.</t>
        <t>To fulfill the above requirements, which in fact apply well to inter-domain networking, SCION introduces the concept of <strong>Isolation Domains</strong>. An Isolation Domain (ISD) is a building block to support heterogeneous trust while achieving high availability and scalability in its control plane (<xref target="I-D.dekater-scion-controlplane"/>). It consists of a logical grouping of SCION ASes that share a uniform trust environment (i.e. a common jurisdiction).</t>
        <t>An ISD is governed by one or multiple ASes, known as the <strong>voting ASes</strong>. Furthermore, each ISD has a set of ASes that form the ISD core, known as the <strong>core ASes</strong>. The set of core and voting ASes may be, but do not necessarily have to be the same ASes. Governance is implemented by a policy called the <strong>Trust Root Configuration</strong> (TRC), which is negotiated by the voting ASes, and which defines the locally scoped roots of trust used to validate bindings between names and public keys.</t>
        <t>Authentication in SCION is based on X.509 certificates that bind identifiers to public keys and carry digital signatures that are verified by roots of trust. SCION allows each ISD to define its own set of trust roots, along with the policy governing their use. Such scoping of trust roots within an ISD improves security as compromise of a private key associated with a trust root cannot be used to forge a certificate outside the ISD. An ISD's trust roots and policy are encoded in the TRC, which has a version number, a list of public keys that serves as root of trust for various purposes, and a voting quorum governing the number of signatures required to update TRCs. The TRC serves as a way to bootstrap all authentication within SCION. Additionally, TRC versioning is used to efficiently revoke compromised roots of trust.</t>
        <t>The TRC also provides <em>trust agility</em> - enabling users to select the trust roots used to initiate certificate validation. This implies that users are free to choose an ISD they believe maintains a uncompromised set of trust roots. ISD members can also decide whether to trust other ISDs and thus transparently define trust relationships between parts of the network. The SCION trust model therefore, differs from the one provided by other PKI architectures.</t>
        <t>The need for trust agility also means that SCION does not by design provide IP prefix origin validation as provided by RPKI <xref target="RFC8210"/>. RPKI's trust model is currently reliant on the trust roots provided by the five Regional Internet Registries, and therefore outside of the governance of an ISD.</t>
      </section>
      <section anchor="trust-relations">
        <name>Trust Relations within an Isolation Domain</name>
        <t>The Control Plane PKI is organized at an ISD level whereby each ISD can independently specify its own Trust Root Configuration (TRC) and build its own verification chain. Each TRC consists of a collection of signed root certificates which are used to sign issuing CA certificates, which are in turn used to sign AS certificates. The TRC also includes ISD policies that specify, for example, the TRC's usage, validity, and future updates. The so-called <strong>base TRC</strong> constitutes the ISD's trust anchor which is signed during a signing ceremony by the voting ASes and then distributed throughout the ISD.</t>
        <section anchor="trust-reset">
          <name>Updates and Trust Resets</name>
          <t>There are two types of TRC updates: regular and sensitive (see <xref target="update"/>). A <strong>regular TRC update</strong> is a periodic re-issuance of the TRC where the entities and policies listed in the TRC remain unchanged, whereas a <strong>sensitive TRC update</strong> is an update that modifies critical aspects of the TRC, such as the set of core ASes. In both cases the base TRC remains unchanged.</t>
          <t>If the ISD's TRC has been compromised, it is necessary for an ISD to re-establish the trust root. This is possible with a process called <strong>trust reset</strong> (if permitted by the ISD's trust policy). In this case, a new base TRC is created.</t>
        </section>
        <section anchor="substitutes-to-revocation">
          <name>Substitutes to Certificate Revocation</name>
          <t>The Control Plane PKI does not explicitly support certificate revocation. Instead it relies on the two mechanisms described above and on short-lived certificates. This approach constitutes an attractive alternative to a revocation system for the following reasons:</t>
          <ul spacing="normal">
            <li>
              <t>Both short-lived certificates and revocation lists must be signed by a CA. Instead of periodically signing a new revocation list, the CA can re-issue all the non-revoked certificates. Although the overhead of signing multiple certificates is greater than that of signing a single revocation list, the overall complexity of the system is reduced. In the Control Plane PKI the number of certificates that each CA must renew is manageable as it is limited to at most the number of ASes within an ISD. The absence of CRL/OCSP checks improves performance by removing additional network lookups during PKI processing.</t>
            </li>
            <li>
              <t>Even with a revocation system, a compromised key cannot be instantaneously revoked. Through their validity period, both short-lived certificates and revocation lists implicitly define an attack window (i.e. a period during which an attacker who managed to compromise a key could use it before it becomes invalid). In both cases, the CA must consider a tradeoff between efficiency and security when picking this validity period.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="overview-of-certificates-keys-and-roles">
        <name>Overview of Certificates, Keys, and Roles</name>
        <t>The base TRC constitutes the root of trust within an ISD. <xref target="_figure-1"/> provides a view of the trust chain within an ISD, based on its TRC. For detailed descriptions, please refer to <xref target="cert-specs"/> and <xref target="trc-specification"/>.</t>
        <figure anchor="_figure-1">
          <name>Chain of trust within an ISD</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="656" width="576" viewBox="0 0 576 656" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,96 L 8,160" fill="none" stroke="black"/>
                <path d="M 80,96 L 80,160" fill="none" stroke="black"/>
                <path d="M 96,576 L 96,624" fill="none" stroke="black"/>
                <path d="M 128,32 L 128,400" fill="none" stroke="black"/>
                <path d="M 136,464 L 136,512" fill="none" stroke="black"/>
                <path d="M 144,64 L 144,160" fill="none" stroke="black"/>
                <path d="M 144,192 L 144,240" fill="none" stroke="black"/>
                <path d="M 144,272 L 144,304" fill="none" stroke="black"/>
                <path d="M 144,336 L 144,368" fill="none" stroke="black"/>
                <path d="M 168,512 L 168,568" fill="none" stroke="black"/>
                <path d="M 192,576 L 192,624" fill="none" stroke="black"/>
                <path d="M 200,368 L 200,456" fill="none" stroke="black"/>
                <path d="M 208,576 L 208,624" fill="none" stroke="black"/>
                <path d="M 232,512 L 232,568" fill="none" stroke="black"/>
                <path d="M 248,464 L 248,512" fill="none" stroke="black"/>
                <path d="M 280,192 L 280,240" fill="none" stroke="black"/>
                <path d="M 280,272 L 280,304" fill="none" stroke="black"/>
                <path d="M 304,192 L 304,240" fill="none" stroke="black"/>
                <path d="M 304,272 L 304,304" fill="none" stroke="black"/>
                <path d="M 304,576 L 304,624" fill="none" stroke="black"/>
                <path d="M 320,464 L 320,512" fill="none" stroke="black"/>
                <path d="M 328,576 L 328,624" fill="none" stroke="black"/>
                <path d="M 376,368 L 376,456" fill="none" stroke="black"/>
                <path d="M 376,512 L 376,568" fill="none" stroke="black"/>
                <path d="M 424,576 L 424,624" fill="none" stroke="black"/>
                <path d="M 432,464 L 432,512" fill="none" stroke="black"/>
                <path d="M 440,64 L 440,160" fill="none" stroke="black"/>
                <path d="M 440,192 L 440,240" fill="none" stroke="black"/>
                <path d="M 440,272 L 440,304" fill="none" stroke="black"/>
                <path d="M 440,336 L 440,368" fill="none" stroke="black"/>
                <path d="M 456,32 L 456,400" fill="none" stroke="black"/>
                <path d="M 496,96 L 496,160" fill="none" stroke="black"/>
                <path d="M 568,96 L 568,160" fill="none" stroke="black"/>
                <path d="M 128,32 L 456,32" fill="none" stroke="black"/>
                <path d="M 144,64 L 440,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 80,96" fill="none" stroke="black"/>
                <path d="M 496,96 L 568,96" fill="none" stroke="black"/>
                <path d="M 88,128 L 120,128" fill="none" stroke="black"/>
                <path d="M 464,128 L 488,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 80,160" fill="none" stroke="black"/>
                <path d="M 144,160 L 440,160" fill="none" stroke="black"/>
                <path d="M 496,160 L 568,160" fill="none" stroke="black"/>
                <path d="M 144,192 L 280,192" fill="none" stroke="black"/>
                <path d="M 304,192 L 440,192" fill="none" stroke="black"/>
                <path d="M 144,240 L 280,240" fill="none" stroke="black"/>
                <path d="M 304,240 L 440,240" fill="none" stroke="black"/>
                <path d="M 144,272 L 280,272" fill="none" stroke="black"/>
                <path d="M 304,272 L 440,272" fill="none" stroke="black"/>
                <path d="M 144,304 L 280,304" fill="none" stroke="black"/>
                <path d="M 304,304 L 440,304" fill="none" stroke="black"/>
                <path d="M 144,336 L 440,336" fill="none" stroke="black"/>
                <path d="M 144,368 L 440,368" fill="none" stroke="black"/>
                <path d="M 128,400 L 456,400" fill="none" stroke="black"/>
                <path d="M 136,464 L 248,464" fill="none" stroke="black"/>
                <path d="M 320,464 L 432,464" fill="none" stroke="black"/>
                <path d="M 136,512 L 248,512" fill="none" stroke="black"/>
                <path d="M 320,512 L 432,512" fill="none" stroke="black"/>
                <path d="M 96,576 L 192,576" fill="none" stroke="black"/>
                <path d="M 208,576 L 304,576" fill="none" stroke="black"/>
                <path d="M 328,576 L 424,576" fill="none" stroke="black"/>
                <path d="M 96,624 L 192,624" fill="none" stroke="black"/>
                <path d="M 208,624 L 304,624" fill="none" stroke="black"/>
                <path d="M 328,624 L 424,624" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="496,128 484,122.4 484,133.6" fill="black" transform="rotate(0,488,128)"/>
                <polygon class="arrowhead" points="384,568 372,562.4 372,573.6" fill="black" transform="rotate(90,376,568)"/>
                <polygon class="arrowhead" points="384,456 372,450.4 372,461.6" fill="black" transform="rotate(90,376,456)"/>
                <polygon class="arrowhead" points="240,568 228,562.4 228,573.6" fill="black" transform="rotate(90,232,568)"/>
                <polygon class="arrowhead" points="208,456 196,450.4 196,461.6" fill="black" transform="rotate(90,200,456)"/>
                <polygon class="arrowhead" points="176,568 164,562.4 164,573.6" fill="black" transform="rotate(90,168,568)"/>
                <polygon class="arrowhead" points="128,128 116,122.4 116,133.6" fill="black" transform="rotate(0,120,128)"/>
                <g class="text">
                  <text x="280" y="52">TRC</text>
                  <text x="304" y="52">2</text>
                  <text x="152" y="84">-</text>
                  <text x="192" y="84">Version</text>
                  <text x="280" y="84">-</text>
                  <text x="308" y="84">Core</text>
                  <text x="348" y="84">ASes</text>
                  <text x="152" y="100">-</text>
                  <text x="172" y="100">ID</text>
                  <text x="280" y="100">-</text>
                  <text x="336" y="100">Description</text>
                  <text x="32" y="116">TRC</text>
                  <text x="56" y="116">1</text>
                  <text x="152" y="116">-</text>
                  <text x="196" y="116">Validity</text>
                  <text x="280" y="116">-</text>
                  <text x="300" y="116">No</text>
                  <text x="336" y="116">Trust</text>
                  <text x="384" y="116">Reset</text>
                  <text x="520" y="116">TRC</text>
                  <text x="544" y="116">3</text>
                  <text x="40" y="132">(Base</text>
                  <text x="152" y="132">-</text>
                  <text x="184" y="132">Grace</text>
                  <text x="236" y="132">Period</text>
                  <text x="280" y="132">-</text>
                  <text x="316" y="132">Voting</text>
                  <text x="372" y="132">Quorum</text>
                  <text x="44" y="148">TRC)</text>
                  <text x="152" y="148">-</text>
                  <text x="176" y="148">...</text>
                  <text x="184" y="212">Regular</text>
                  <text x="244" y="212">Voting</text>
                  <text x="344" y="212">Sensitive</text>
                  <text x="412" y="212">Voting</text>
                  <text x="208" y="228">Certificate</text>
                  <text x="368" y="228">Certificate</text>
                  <text x="208" y="292">Votes</text>
                  <text x="372" y="292">Signatures</text>
                  <text x="220" y="356">CP</text>
                  <text x="252" y="356">Root</text>
                  <text x="324" y="356">Certificates</text>
                  <text x="148" y="484">CP</text>
                  <text x="192" y="484">Issuing</text>
                  <text x="236" y="484">CA</text>
                  <text x="332" y="484">CP</text>
                  <text x="376" y="484">Issuing</text>
                  <text x="420" y="484">CA</text>
                  <text x="192" y="500">Certificate</text>
                  <text x="376" y="500">Certificate</text>
                  <text x="132" y="596">CP</text>
                  <text x="156" y="596">AS</text>
                  <text x="244" y="596">CP</text>
                  <text x="268" y="596">AS</text>
                  <text x="364" y="596">CP</text>
                  <text x="388" y="596">AS</text>
                  <text x="144" y="612">Certificate</text>
                  <text x="256" y="612">Certificate</text>
                  <text x="376" y="612">Certificate</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
               +----------------------------------------+
               |                 TRC 2                  |
               | +------------------------------------+ |
               | |- Version       - Core ASes         | |
+--------+     | |- ID            - Description       | |    +--------+
| TRC 1  |     | |- Validity      - No Trust Reset    | |    | TRC 3  |
| (Base  |---->| |- Grace Period  - Voting Quorum     | |--->|        |
|  TRC)  |     | |- ...                               | |    |        |
+--------+     | +------------------------------------+ |    +--------+
               |                                        |
               | +----------------+  +----------------+ |
               | | Regular Voting |  |Sensitive Voting| |
               | |  Certificate   |  |  Certificate   | |
               | +----------------+  +----------------+ |
               |                                        |
               | +----------------+  +----------------+ |
               | |     Votes      |  |   Signatures   | |
               | +----------------+  +----------------+ |
               |                                        |
               | +------------------------------------+ |
               | |        CP Root Certificates        | |
               | +------+---------------------+-------+ |
               |        |                     |         |
               +--------+---------------------+---------+
                        |                     |
                        |                     |
                        v                     v
                +-------------+        +-------------+
                |CP Issuing CA|        |CP Issuing CA|
                | Certificate |        | Certificate |
                +---+-------+-+        +------+------+
                    |       |                 |
                    |       |                 |
                    v       v                 v
           +-----------+ +-----------+  +-----------+
           |   CP AS   | |   CP AS   |  |   CP AS   |
           |Certificate| |Certificate|  |Certificate|
           +-----------+ +-----------+  +-----------+

]]></artwork>
          </artset>
        </figure>
        <t>All certificates used in the Control Plane PKI are in X.509 v3 format <xref target="RFC5280"/> and additionally the TRC contains self-signed certificates instead of plain public keys. Self-signed certificates have the following advantages over plain public keys: (1) They make the binding between name and public key explicit; and (2) the binding is signed to prove possession of the corresponding private key. The public keys of Voting AS certificates must therefore be explicitly verified during the Signing Ceremony (<xref target="initial-ceremony"/>).</t>
        <t>SCION ASes sign and verify control plane messages. Certain ASes have additional roles:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Core ASes</strong>: They are a distinct set of ASes in the SCION Control Plane. For each ISD, the core ASes are listed in the TRC and each core AS has links to the other core ASes (in the same or in different ISDs).</t>
          </li>
          <li>
            <t><strong>Certification authorities (CAs)</strong>: CAs are responsible for issuing AS certificates to other ASes and/or themselves.</t>
          </li>
          <li>
            <t><strong>Voting ASes</strong>: They may sign TRC updates. The process of appending a signature to a new TRC is called "casting a vote", and the designated ASes that hold the private keys to sign a TRC update are "voting ASes".</t>
          </li>
          <li>
            <t><strong>Authoritative ASes</strong>: They always have the latest TRCs of the ISD. They start the announcement of a TRC update.</t>
          </li>
        </ul>
      </section>
      <section anchor="trust-as-a-function">
        <name>Trust as a Function</name>
        <t>The Control Plane PKI can be seen as a function that transforms potential distrust among different parties into a mutually accepted trust contract. This includes a trust update and reset policy as well as certificates used for authentication procedures in SCION's Control Plane.</t>
        <t>For this to work, it is not necessary that all the ASes of the ISD trust each other. However, all ASes <bcp14>MUST</bcp14> trust the ISD's core ASes, authoritative ASes, voting ASes, as well as its CA(s). These trusted parties negotiate the ISD trust contract in a "bootstrapping of trust" ceremony where cryptographic material is exchanged and the ISD's trust anchor (the initial Trust Root Configuration) is created and signed.</t>
        <section anchor="input">
          <name>Input</name>
          <t>Prior to the ceremony, the trusted parties <bcp14>MUST</bcp14> decide about the validity period of the TRC as well as the number of votes required to update a TRC. They <bcp14>MUST</bcp14> also bring the required keys and certificates, the so-called root and voting keys/certificates.</t>
          <t>The trusted parties require an ISD number whose numbering scheme is described in <xref target="I-D.dekater-scion-controlplane"/> section <tt>ISD Numbers</tt>, and allocation in <xref target="ISD-AS-assignments"/>.</t>
        </section>
        <section anchor="output">
          <name>Output</name>
          <t>The output of the bootstrapping of trust ceremony, or the trust "function", are the ISD's initial Trust Root Configuration as well as mutually trusted and accepted CA and AS certificates - the latter being used to verify control plane messages. Together with the ISD's control plane root certificates, the issuing CA and AS certificates build the ISD's trust and verification chain.</t>
        </section>
      </section>
    </section>
    <section anchor="cert-specs">
      <name>Certificate Specification</name>
      <t>There are three types of Control Plane (CP) certificates: root certificates, issuing CA certificates, and AS certificates. Together, they build a chain of trust that is anchored in the Trust Root Configuration (TRC) file of the respective Isolation Domain (ISD). Additionally, there are regular and sensitive voting certificates which define the keys to cast votes in a regular or sensitive TRC update.</t>
      <t>All certificates in the Control Plane PKI are in X.509 v3 format <xref target="RFC5280"/>.</t>
      <section anchor="trust-hierarchy">
        <name>Trust Hierarchy</name>
        <t>The trust is anchored in the TRC for each ISD. The trust root is axiomatic: All trust derived from this anchor relies on all parties transitively trusting the TRC.</t>
        <t>The trust hierarchy looks like this:</t>
        <artwork><![CDATA[
TRC
── Regular Voting Certificates
     └── TRC (next version, regular update)
── Sensitive Voting Certificates
     └── TRC (next version, sensitive update)
── CP Root Certificates
     └── CP Issuing CA Certificates
          └── CP AS Certificates
]]></artwork>
      </section>
      <section anchor="cp-root-cert">
        <name>Control Plane Root Certificate</name>
        <t>The private key of the Control Plane root certificate is used to sign Control Plane issuing CA certificates. Consequently, the public key of the Control Plane Root certificate is used to verify Control Plane issuing CA certificates, i.e. root certificates determine which ASes act as a CA in an ISD.</t>
        <t>In X.509 terms, Control Plane root certificates are CA certificates. For simplicity, this document calls them 'root certificates', distinguishing them from the subordinate 'issuing CA certificates'. Root certificates are self-signed; the issuer and subject are the same entity, and the public key within the certificate is used to verify its own signature. The public key of the Control Plane root certificate and proof of ownership of the private key are embedded in the TRC of an ISD, via the self-signed Control Plane root certificate. This facilitates the bootstrapping of trust within an ISD, and marks the Control Plane root certificates as the starting point of an ISD's certificate verification path.</t>
        <t>The <bcp14>RECOMMENDED</bcp14> maximum validity period of a Control Plane root certificate is 1 year.</t>
        <t><strong>Note</strong>: The TRC of each ISD contains a trusted set of Control Plane root certificates, and this set builds the root of each ISD's verification path. For more information on the selection of this trusted set of root certificates, see <xref target="trc-specification"/>.</t>
      </section>
      <section anchor="control-plane-issuing-ca-certificate">
        <name>Control Plane Issuing CA Certificate</name>
        <t>The private key of the Control Plane issuing CA certificate is used to sign Control Plane AS certificates. Consequently, Control Plane issuing CA certificates holding the public key of the Control Plane CA are used to verify Control Plane AS certificates.</t>
        <t>The public key needed to verify the issuing CA certificate is in a Control Plane root certificate. Issuing CA certificates do not bundle the root certificate needed to verify them. In order to verify an issuing CA certificate, a pool of root certificates must first be extracted from one or more active TRCs (as described in <xref target="signing-verifying-cp-messages"/>).</t>
        <t>The <bcp14>RECOMMENDED</bcp14> maximum validity period of a Control Plane issuing CA certificate is 11 days.
This is much shorter than root certificates, which have a longer recommended maximum validity period, because they are part of the TRC of an ISD, which itself also has a longer recommended maximum validity (see <xref target="_table-2"/>). This ensures that the TRC need not be updated all the time and is thus relatively stable.</t>
      </section>
      <section anchor="control-plane-as-certificate">
        <name>Control Plane AS Certificate</name>
        <t>SCION ASes sign control plane messages, such as Path Construction Beacons, with their AS private key. Consequently, Control Plane AS certificates holding the corresponding AS public key are required to verify control plane messages.</t>
        <t>In X.509 terms, Control Plane AS certificates are end entity certificates. That is, they cannot be used to verify other certificates.</t>
        <t>The <bcp14>RECOMMENDED</bcp14> maximum validity period of a CP AS certificate is 3 days.</t>
      </section>
      <section anchor="cp-voting-cert">
        <name>Voting Certificates</name>
        <t>There are two types of voting certificates: the (1) regular voting certificates and the (2) sensitive voting certificates. They contain the public keys associated with the private keys that may cast votes in the TRC update process.</t>
        <t>Regular and sensitive voting certificates are used to verify regular and sensitive TRC updates respectively, and are embedded in the TRC.</t>
        <section anchor="regular-voting-certificate">
          <name>Regular Voting Certificate</name>
          <t>Regular voting certificates may be used to cast a vote in a regular update. In X.509 terms, regular voting certificates are self-signed end-entity certificates. This means that the issuer and subject of a regular voting certificate are the same entity, and the public key within the certificate can be used to verify the certificate's signature. However, a regular voting certificate cannot be used to verify other certificates.</t>
          <t>The <bcp14>RECOMMENDED</bcp14> maximum validity period of a regular voting certificate is 1 year.</t>
        </section>
        <section anchor="sensitive-voting-certificate">
          <name>Sensitive Voting Certificate</name>
          <t>Sensitive voting certificates may be used to cast a vote in a sensitive update. In X.509 terms, sensitive voting certificates are self-signed end-entity certificates. This means that the issuer and subject of a sensitive voting certificate are the same entity, and the public key within the certificate can be used to verify the certificate's signature. However, a sensitive voting certificate cannot be used to verify other certificates.</t>
          <t>The <bcp14>RECOMMENDED</bcp14> maximum validity period of a sensitive voting certificate is 5 years.</t>
        </section>
      </section>
      <section anchor="key-pair-notation">
        <name>Key Pairs Overview and Notations</name>
        <t><xref target="_table-2"/> and <xref target="_table-3"/> below provide an overview of certificates and corresponding key pairs.</t>
        <table anchor="_table-2">
          <name>Key chain</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Notation (1)</th>
              <th align="left">Used to verify/sign</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Sensitive voting key</td>
              <td align="left">K<sub>sens</sub></td>
              <td align="left">TRC updates (sensitive)</td>
            </tr>
            <tr>
              <td align="left">Regular voting key</td>
              <td align="left">K<sub>reg</sub></td>
              <td align="left">TRC updates (regular)</td>
            </tr>
            <tr>
              <td align="left">CP root key</td>
              <td align="left">K<sub>root</sub></td>
              <td align="left">CP issuing CA certificates</td>
            </tr>
            <tr>
              <td align="left">CP CA key</td>
              <td align="left">K<sub>CA</sub></td>
              <td align="left">CP AS certificates</td>
            </tr>
            <tr>
              <td align="left">CP AS key</td>
              <td align="left">K<sub>AS</sub></td>
              <td align="left">CP messages, path segments</td>
            </tr>
          </tbody>
        </table>
        <t>(1)  K<sub>x</sub> = PK<sub>x</sub> + SK<sub>x</sub>, where x = certificate type, PK<sub>x</sub> = public key, and SK<sub>x</sub> = private key</t>
        <table anchor="_table-3">
          <name>Certificates</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Notation</th>
              <th align="left">Signed with</th>
              <th align="left">Contains</th>
              <th align="left">Validity (2)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TRC (trust root conf.)</td>
              <td align="left">TRC</td>
              <td align="left">SK<sub>sens</sub>, SK<sub>reg</sub> (1)</td>
              <td align="left">C<sub>root</sub>, C<sub>sens</sub>, C<sub>reg</sub> (1)</td>
              <td align="left">1 year</td>
            </tr>
            <tr>
              <td align="left">Sensitive voting cert.</td>
              <td align="left">C<sub>sens</sub></td>
              <td align="left">SK<sub>sens</sub></td>
              <td align="left">PK<sub>sens</sub></td>
              <td align="left">5 years</td>
            </tr>
            <tr>
              <td align="left">Regular voting cert.</td>
              <td align="left">C<sub>reg</sub></td>
              <td align="left">SK<sub>reg</sub></td>
              <td align="left">PK<sub>reg</sub></td>
              <td align="left">1 year</td>
            </tr>
            <tr>
              <td align="left">CP root certificate</td>
              <td align="left">C<sub>root</sub></td>
              <td align="left">SK<sub>root</sub></td>
              <td align="left">PK<sub>root</sub></td>
              <td align="left">1 year</td>
            </tr>
            <tr>
              <td align="left">CP issuing CA certificate</td>
              <td align="left">C<sub>CA</sub></td>
              <td align="left">SK<sub>root</sub></td>
              <td align="left">PK<sub>CA</sub></td>
              <td align="left">11 days (3)</td>
            </tr>
            <tr>
              <td align="left">CP AS certificate</td>
              <td align="left">C<sub>AS</sub></td>
              <td align="left">SK<sub>CA</sub></td>
              <td align="left">PK<sub>AS</sub></td>
              <td align="left">3 days</td>
            </tr>
          </tbody>
        </table>
        <t>(1) Multiple signatures and certificates of each type <bcp14>MAY</bcp14> be included in a TRC.<br/>
(2) Recommended maximum validity period. Note that initial AS certificates may have a longer validity (e.g. 10-30 days) to allow for enough time for deployment.<br/>
(3) A validity of 11 days with 4 days overlap between two issuing CA certificates is <bcp14>RECOMMENDED</bcp14> to enable the best possible operational procedures when performing a issuing CA certificate rollover.</t>
        <t><xref target="_figure-2"/> shows the content of a base/initial TRC, and the relationship between a TRC and the five types of certificates. The initial signatures are replaced by those of the Regular Voting Certificates with the first regular update to the base TRC.</t>
        <figure anchor="_figure-2">
          <name>TRC and the different types of associated certificates. Arrows indicate the certificate hierarchy.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="912" width="456" viewBox="0 0 456 912" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,688" fill="none" stroke="black"/>
                <path d="M 24,80 L 24,176" fill="none" stroke="black"/>
                <path d="M 24,208 L 24,336" fill="none" stroke="black"/>
                <path d="M 24,368 L 24,512" fill="none" stroke="black"/>
                <path d="M 24,544 L 24,672" fill="none" stroke="black"/>
                <path d="M 40,400 L 40,432" fill="none" stroke="black"/>
                <path d="M 40,464 L 40,496" fill="none" stroke="black"/>
                <path d="M 40,592 L 40,656" fill="none" stroke="black"/>
                <path d="M 48,736 L 48,784" fill="none" stroke="black"/>
                <path d="M 56,832 L 56,880" fill="none" stroke="black"/>
                <path d="M 88,592 L 88,656" fill="none" stroke="black"/>
                <path d="M 104,592 L 104,656" fill="none" stroke="black"/>
                <path d="M 104,784 L 104,824" fill="none" stroke="black"/>
                <path d="M 128,656 L 128,728" fill="none" stroke="black"/>
                <path d="M 152,592 L 152,656" fill="none" stroke="black"/>
                <path d="M 152,832 L 152,880" fill="none" stroke="black"/>
                <path d="M 160,736 L 160,784" fill="none" stroke="black"/>
                <path d="M 168,592 L 168,656" fill="none" stroke="black"/>
                <path d="M 176,400 L 176,432" fill="none" stroke="black"/>
                <path d="M 176,464 L 176,496" fill="none" stroke="black"/>
                <path d="M 184,208 L 184,336" fill="none" stroke="black"/>
                <path d="M 192,368 L 192,512" fill="none" stroke="black"/>
                <path d="M 200,208 L 200,336" fill="none" stroke="black"/>
                <path d="M 208,368 L 208,512" fill="none" stroke="black"/>
                <path d="M 216,592 L 216,656" fill="none" stroke="black"/>
                <path d="M 224,256 L 224,320" fill="none" stroke="black"/>
                <path d="M 224,432 L 224,496" fill="none" stroke="black"/>
                <path d="M 224,736 L 224,784" fill="none" stroke="black"/>
                <path d="M 232,592 L 232,656" fill="none" stroke="black"/>
                <path d="M 232,832 L 232,880" fill="none" stroke="black"/>
                <path d="M 256,656 L 256,728" fill="none" stroke="black"/>
                <path d="M 272,256 L 272,320" fill="none" stroke="black"/>
                <path d="M 272,432 L 272,496" fill="none" stroke="black"/>
                <path d="M 280,592 L 280,656" fill="none" stroke="black"/>
                <path d="M 280,784 L 280,824" fill="none" stroke="black"/>
                <path d="M 288,256 L 288,320" fill="none" stroke="black"/>
                <path d="M 288,432 L 288,496" fill="none" stroke="black"/>
                <path d="M 328,832 L 328,880" fill="none" stroke="black"/>
                <path d="M 336,256 L 336,320" fill="none" stroke="black"/>
                <path d="M 336,432 L 336,496" fill="none" stroke="black"/>
                <path d="M 336,736 L 336,784" fill="none" stroke="black"/>
                <path d="M 368,80 L 368,176" fill="none" stroke="black"/>
                <path d="M 368,208 L 368,336" fill="none" stroke="black"/>
                <path d="M 368,368 L 368,512" fill="none" stroke="black"/>
                <path d="M 368,544 L 368,672" fill="none" stroke="black"/>
                <path d="M 384,32 L 384,688" fill="none" stroke="black"/>
                <path d="M 8,32 L 384,32" fill="none" stroke="black"/>
                <path d="M 24,80 L 368,80" fill="none" stroke="black"/>
                <path d="M 24,176 L 368,176" fill="none" stroke="black"/>
                <path d="M 24,208 L 184,208" fill="none" stroke="black"/>
                <path d="M 200,208 L 368,208" fill="none" stroke="black"/>
                <path d="M 224,256 L 272,256" fill="none" stroke="black"/>
                <path d="M 288,256 L 336,256" fill="none" stroke="black"/>
                <path d="M 224,320 L 272,320" fill="none" stroke="black"/>
                <path d="M 288,320 L 336,320" fill="none" stroke="black"/>
                <path d="M 24,336 L 184,336" fill="none" stroke="black"/>
                <path d="M 200,336 L 368,336" fill="none" stroke="black"/>
                <path d="M 24,368 L 192,368" fill="none" stroke="black"/>
                <path d="M 208,368 L 368,368" fill="none" stroke="black"/>
                <path d="M 40,400 L 176,400" fill="none" stroke="black"/>
                <path d="M 40,432 L 176,432" fill="none" stroke="black"/>
                <path d="M 224,432 L 272,432" fill="none" stroke="black"/>
                <path d="M 288,432 L 336,432" fill="none" stroke="black"/>
                <path d="M 40,464 L 176,464" fill="none" stroke="black"/>
                <path d="M 40,496 L 176,496" fill="none" stroke="black"/>
                <path d="M 224,496 L 272,496" fill="none" stroke="black"/>
                <path d="M 288,496 L 336,496" fill="none" stroke="black"/>
                <path d="M 24,512 L 192,512" fill="none" stroke="black"/>
                <path d="M 208,512 L 368,512" fill="none" stroke="black"/>
                <path d="M 24,544 L 368,544" fill="none" stroke="black"/>
                <path d="M 40,592 L 88,592" fill="none" stroke="black"/>
                <path d="M 104,592 L 152,592" fill="none" stroke="black"/>
                <path d="M 168,592 L 216,592" fill="none" stroke="black"/>
                <path d="M 232,592 L 280,592" fill="none" stroke="black"/>
                <path d="M 40,656 L 88,656" fill="none" stroke="black"/>
                <path d="M 104,656 L 152,656" fill="none" stroke="black"/>
                <path d="M 168,656 L 216,656" fill="none" stroke="black"/>
                <path d="M 232,656 L 280,656" fill="none" stroke="black"/>
                <path d="M 24,672 L 368,672" fill="none" stroke="black"/>
                <path d="M 8,688 L 384,688" fill="none" stroke="black"/>
                <path d="M 48,736 L 160,736" fill="none" stroke="black"/>
                <path d="M 224,736 L 336,736" fill="none" stroke="black"/>
                <path d="M 48,784 L 160,784" fill="none" stroke="black"/>
                <path d="M 224,784 L 336,784" fill="none" stroke="black"/>
                <path d="M 56,832 L 152,832" fill="none" stroke="black"/>
                <path d="M 232,832 L 328,832" fill="none" stroke="black"/>
                <path d="M 56,880 L 152,880" fill="none" stroke="black"/>
                <path d="M 232,880 L 328,880" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="288,824 276,818.4 276,829.6" fill="black" transform="rotate(90,280,824)"/>
                <polygon class="arrowhead" points="264,728 252,722.4 252,733.6" fill="black" transform="rotate(90,256,728)"/>
                <polygon class="arrowhead" points="136,728 124,722.4 124,733.6" fill="black" transform="rotate(90,128,728)"/>
                <polygon class="arrowhead" points="112,824 100,818.4 100,829.6" fill="black" transform="rotate(90,104,824)"/>
                <g class="text">
                  <text x="184" y="52">TRC</text>
                  <text x="208" y="52">1</text>
                  <text x="196" y="68">(base/initial)</text>
                  <text x="40" y="100">-</text>
                  <text x="80" y="100">Version</text>
                  <text x="192" y="100">-</text>
                  <text x="220" y="100">Core</text>
                  <text x="260" y="100">ASes</text>
                  <text x="40" y="116">-</text>
                  <text x="60" y="116">ID</text>
                  <text x="192" y="116">-</text>
                  <text x="248" y="116">Description</text>
                  <text x="40" y="132">-</text>
                  <text x="84" y="132">Validity</text>
                  <text x="192" y="132">-</text>
                  <text x="212" y="132">No</text>
                  <text x="248" y="132">Trust</text>
                  <text x="296" y="132">Reset</text>
                  <text x="40" y="148">-</text>
                  <text x="72" y="148">Grace</text>
                  <text x="124" y="148">Period</text>
                  <text x="192" y="148">-</text>
                  <text x="228" y="148">Voting</text>
                  <text x="284" y="148">Quorum</text>
                  <text x="40" y="164">-</text>
                  <text x="64" y="164">...</text>
                  <text x="112" y="228">Votes</text>
                  <text x="256" y="228">Regular</text>
                  <text x="316" y="228">Voting</text>
                  <text x="68" y="244">(cert.</text>
                  <text x="132" y="244">indices)</text>
                  <text x="284" y="244">Certificates</text>
                  <text x="112" y="276">(empty)</text>
                  <text x="248" y="276">(1)</text>
                  <text x="312" y="276">(2)</text>
                  <text x="248" y="292">C</text>
                  <text x="312" y="292">C</text>
                  <text x="248" y="308">reg</text>
                  <text x="312" y="308">reg</text>
                  <text x="108" y="388">Signatures</text>
                  <text x="256" y="388">Sensitive</text>
                  <text x="324" y="388">Voting</text>
                  <text x="292" y="404">Certificates</text>
                  <text x="60" y="420">73</text>
                  <text x="84" y="420">A9</text>
                  <text x="108" y="420">4E</text>
                  <text x="132" y="420">AO</text>
                  <text x="160" y="420">...</text>
                  <text x="112" y="452">...</text>
                  <text x="248" y="452">(3)</text>
                  <text x="312" y="452">(4)</text>
                  <text x="248" y="468">C</text>
                  <text x="312" y="468">C</text>
                  <text x="60" y="484">53</text>
                  <text x="84" y="484">B7</text>
                  <text x="108" y="484">7C</text>
                  <text x="132" y="484">98</text>
                  <text x="160" y="484">...</text>
                  <text x="252" y="484">sens</text>
                  <text x="316" y="484">sens</text>
                  <text x="116" y="564">CP</text>
                  <text x="148" y="564">Root</text>
                  <text x="220" y="564">Certificates</text>
                  <text x="64" y="612">(5)</text>
                  <text x="128" y="612">(6)</text>
                  <text x="192" y="612">(7)</text>
                  <text x="256" y="612">(8)</text>
                  <text x="64" y="628">C</text>
                  <text x="128" y="628">C</text>
                  <text x="192" y="628">C</text>
                  <text x="256" y="628">C</text>
                  <text x="68" y="644">root</text>
                  <text x="132" y="644">root</text>
                  <text x="196" y="644">root</text>
                  <text x="260" y="644">root</text>
                  <text x="304" y="644">...</text>
                  <text x="60" y="756">CP</text>
                  <text x="104" y="756">Issuing</text>
                  <text x="148" y="756">CA</text>
                  <text x="236" y="756">CP</text>
                  <text x="280" y="756">Issuing</text>
                  <text x="324" y="756">CA</text>
                  <text x="104" y="772">Certificate</text>
                  <text x="280" y="772">Certificate</text>
                  <text x="92" y="852">CP</text>
                  <text x="116" y="852">AS</text>
                  <text x="268" y="852">CP</text>
                  <text x="292" y="852">AS</text>
                  <text x="104" y="868">Certificate</text>
                  <text x="280" y="868">Certificate</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+----------------------------------------------+
|                    TRC 1                     |
|                (base/initial)                |
| +------------------------------------------+ |
| | - Version          - Core ASes           | |
| | - ID               - Description         | |
| | - Validity         - No Trust Reset      | |
| | - Grace Period     - Voting Quorum       | |
| | - ...                                    | |
| +------------------------------------------+ |
|                                              |        
| +-------------------+ +--------------------+ |
| |        Votes      | |   Regular Voting   | |
| |  (cert. indices)  | |    Certificates    | |
| |                   | |  +-----+ +-----+   | |
| |       (empty)     | |  | (1) | | (2) |   | |
| |                   | |  |  C  | |  C  |   | |
| |                   | |  | reg | | reg |   | |
| |                   | |  +-----+ +-----+   | |
| +-------------------+ +--------------------+ |
|                                              |
| +--------------------+ +-------------------+ |
| |     Signatures     | | Sensitive Voting  | |
| | +----------------+ | |    Certificates   | |
| | | 73 A9 4E AO ...| | |                   | |
| | +----------------+ | | +-----+ +-----+   | |
| |         ...        | | | (3) | | (4) |   | |
| | +----------------+ | | |  C  | |  C  |   | |
| | | 53 B7 7C 98 ...| | | | sens| | sens|   | |
| | +----------------+ | | +-----+ +-----+   | |
| +--------------------+ +-------------------+ |
|                                              |        
| +------------------------------------------+ |
| |          CP Root Certificates            | |
| |                                          | |
| | +-----+ +-----+ +-----+ +-----+          | |
| | | (5) | | (6) | | (7) | | (8) |          | |
| | |  C  | |  C  | |  C  | |  C  |          | |
| | | root| | root| | root| | root| ...      | |
| | +-----+ +--+--+ +-----+ +--+--+          | |
| +------------+---------------+-------------+ |
+--------------+---------------+---------------+
               |               |
               v               v
     +-------------+       +-------------+
     |CP Issuing CA|       |CP Issuing CA|
     | Certificate |       | Certificate |
     +------+------+       +------+------+
            |                     |
            v                     v
      +-----------+         +-----------+
      |   CP AS   |         |   CP AS   |
      |Certificate|         |Certificate|
      +-----------+         +-----------+

]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="x509-certificate-profiles-and-constraints">
        <name>X.509 Certificate Profiles and Constraints</name>
        <t>Whilst the certificates used in the Control Plane PKI are X.509 v3 certificates, this specification is more restrictive. This section defines these additional constraints and conditions in comparison to <xref target="RFC5280"/>, which apply to all SCION certificate types. For the baseline X.509 v3 format, refer to <xref target="RFC5280"/> and <xref target="X.509"/> Clause 7.2.</t>
        <t>The following subsections define the specific constraints for the fields contained in the <tt>TBSCertificate</tt> sequence.</t>
        <section anchor="version">
          <name><tt>version</tt></name>
          <t>The <tt>version</tt> field describes the version of the encoded certificate. It <bcp14>MUST</bcp14> be set to "v3" because extensions are required.</t>
        </section>
        <section anchor="serialnumber">
          <name><tt>serialNumber</tt></name>
          <t>The <tt>serialNumber</tt> field contains a positive integer assigned by the CA to each certificate. It <bcp14>MUST</bcp14> be unique for each certificate issued by a given CA.</t>
        </section>
        <section anchor="certsign">
          <name><tt>signature</tt></name>
          <t>The <tt>signature</tt> field contains the identifier for the signature algorithm used by the CA to sign the certificate. Current implementations use the ECDSA signature algorithm defined in <xref target="X9.62"/>.
As a consequence, the <tt>parameters</tt> field in the <tt>AlgorithmIdentifier</tt> sequence <bcp14>MUST NOT</bcp14> be used.</t>
          <t>The Object Identifiers (OIDs) for ECDSA are defined as <tt>ecdsa-with-SHA256</tt>, <tt>ecdsa-with-SHA384</tt>, and <tt>ecdsa-with-SHA512</tt> in <xref target="RFC5758"/>.</t>
          <t>SCION implementations <bcp14>MUST</bcp14> include support for the ECDSA curves below.</t>
          <ul spacing="normal">
            <li>
              <t>NIST P-256 (NISTFIPS186-4, section D.1.2.3) (named <tt>secp256r1</tt> in <xref target="RFC5480"/>)</t>
            </li>
            <li>
              <t>NIST P-384 (NISTFIPS186-4, section D.1.2.4) (named <tt>secp384r1</tt> in <xref target="RFC5480"/>)</t>
            </li>
            <li>
              <t>NIST P-521 (NISTFIPS186-4, section D.1.2.5) (named <tt>secp521r1</tt> in <xref target="RFC5480"/>)</t>
            </li>
          </ul>
          <t>The OIDs for the above curves are specified in section 2.1.1.1 of <xref target="RFC5480"/>.</t>
          <t>Other algorithms or curves <bcp14>MAY</bcp14> be employed. Implementations deviating from the mandatory set generally lose the guarantee of global interoperability and are suitable primarily for isolated ISDs that do not require external interconnection. Future protocol versions may update the set of mandatory algorithms.</t>
          <t>The appropriate hash size to use when producing a signature with an ECDSA key is:</t>
          <ul spacing="normal">
            <li>
              <t>ECDSA with SHA-256, for a P-256 signing key</t>
            </li>
            <li>
              <t>ECDSA with SHA-384, for a P-384 signing key</t>
            </li>
            <li>
              <t>ECDSA with SHA-512, for a P-521 signing key</t>
            </li>
          </ul>
        </section>
        <section anchor="issuer">
          <name><tt>issuer</tt></name>
          <t>The <tt>issuer</tt> field contains the distinguished name (DN) of the entity that has issued and signed the certificate (usually a CA). This field <bcp14>MUST</bcp14> be non-empty.
In addition to the attributes described in <xref target="RFC5280"/> section 4.1.2.4, SCION implementations <bcp14>MUST</bcp14> also support the SCION-specific <tt>id-at-ia</tt> attribute identifying the SCION ISD and AS numbers.</t>
          <section anchor="isd-as-nr">
            <name><tt>id-at-ia</tt> Attribute</name>
            <t>The <tt>id-at-ia</tt> attribute identifies the SCION ISD and AS numbers. Its object identifier is defined in <xref target="cert-asn1"/>.</t>
            <t>The string representation of the <tt>ISD-AS number</tt> attribute <bcp14>MUST</bcp14> follow the formatting defined in <xref target="I-D.dekater-scion-controlplane"/>, section "Text Representation" where AS numbers in the lower 32-bit range are represented in decimal notation, and others in hexadecimal notation.</t>
            <t>Voting AS and issuing CA certificates <bcp14>MUST</bcp14> include the <tt>ISD-AS number</tt> attribute exactly once in the distinguished name of the certificate issuer or owner, specified in the <tt>issuer</tt> or <tt>subject</tt> field respectively. Implementations <bcp14>MUST NOT</bcp14> create nor successfully verify certificates whose <tt>issuer</tt> and <tt>subject</tt> fields do not include the ISD-AS number at all, or include it more than once.</t>
            <t>For issuing CA certificates, the inclusion of the <tt>ISD-AS number</tt> ensures the Control Plane knows from which AS to retrieve the certificate, thereby avoiding circular dependencies.</t>
            <t>Voting-only certificates are not required to include the <tt>ISD-AS number</tt> attribute in their distinguished name.</t>
          </section>
        </section>
        <section anchor="validity">
          <name><tt>validity</tt></name>
          <t>The <tt>validity</tt> field defines the validity period of the certificate. All certificates <bcp14>MUST</bcp14> have a well-defined expiration date. GeneralizedTime value "99991231235959Z" <bcp14>MUST NOT</bcp14> be used.
The recommended maximum validity period for each type of certificate is described in <xref target="key-pair-notation"/>. SCION implementations <bcp14>SHOULD</bcp14> adopt these values.</t>
        </section>
        <section anchor="subject">
          <name><tt>subject</tt></name>
          <t>The <tt>subject</tt> field defines the entity that owns the certificate. It <bcp14>MUST NOT</bcp14> be empty.
The same constraints as the <tt>issuer</tt> field apply. For details, see <xref target="issuer"/> and <xref target="isd-as-nr"/>.</t>
        </section>
        <section anchor="subjectpublickeyinfo">
          <name><tt>subjectPublicKeyInfo</tt></name>
          <t>The <tt>subjectPublicKeyInfo</tt> field carries the public key of the certificate's subject (the entity that owns the certificate, as defined in the <tt>subject</tt> field). The <tt>subjectPublicKeyInfo</tt> field also identifies which algorithm to use with the key.</t>
          <ul spacing="normal">
            <li>
              <t><strong>SCION constraints</strong>: For constraints regarding the algorithm, see the <tt>signature</tt> field.</t>
            </li>
          </ul>
        </section>
        <section anchor="issueruniqueid">
          <name><tt>issuerUniqueID</tt></name>
          <t>The <tt>issuerUniqueID</tt> field <bcp14>MUST NOT</bcp14> be used.</t>
        </section>
        <section anchor="subjectuniqueid">
          <name><tt>subjectUniqueID</tt></name>
          <t>The <tt>subjectUniqueID</tt> field <bcp14>MUST NOT</bcp14> be used.</t>
        </section>
      </section>
      <section anchor="exts">
        <name>Extensions</name>
        <t><xref target="RFC5280"/>, section 4.2.1, defines the syntax of the <tt>Extensions</tt> sequence in a X.509 certificate. Descriptions of each standard certificate extension can be found in <xref target="RFC5280"/>, section 4.2.1. The corresponding clauses in <xref target="X.509"/> are clause 7.2 and clause 9, respectively.</t>
        <t>The following extensions are relevant for the SCION PKI:</t>
        <ul spacing="normal">
          <li>
            <t><tt>authorityKeyIdentifier</tt></t>
          </li>
          <li>
            <t><tt>subjectKeyIdentifier</tt></t>
          </li>
          <li>
            <t><tt>keyUsage</tt></t>
          </li>
          <li>
            <t><tt>extKeyUsage</tt></t>
          </li>
          <li>
            <t><tt>basicConstraints</tt></t>
          </li>
        </ul>
        <t>The following sections describe the SCION-specifics in regard to these extensions.</t>
        <section anchor="authoritykeyidentifier-extension">
          <name><tt>authorityKeyIdentifier</tt> Extension</name>
          <t>The <tt>authorityKeyIdentifier</tt> extension identifies the public key corresponding to the private key used to sign a certificate.</t>
          <t>For the syntax and definition of the <tt>authorityKeyIdentifier</tt> extension, see <xref target="RFC5280"/>, section 4.2.1.1, and <xref target="X.509"/>, clause 9.2.2.1.</t>
          <t>The <tt>authorityKeyIdentifier</tt> extension provides three attributes to specify the public key:</t>
          <ul spacing="normal">
            <li>
              <t><tt>keyIdentifier</tt></t>
            </li>
            <li>
              <t><tt>authorityCertIssuer</tt></t>
            </li>
            <li>
              <t><tt>authorityCertSerialNumber</tt></t>
            </li>
          </ul>
          <t>In SCION, using the <tt>keyIdentifier</tt> attribute is the preferred way to specify the <tt>authorityKeyIdentifier</tt> extension.</t>
          <t>SCION implementations <bcp14>MAY</bcp14> also support the use of the <tt>authorityCertIssuer</tt> and <tt>authorityCertSerialNumber</tt> attributes. However, if these attributes are set and support for them is missing, implementations <bcp14>SHOULD</bcp14> error out.</t>
          <t>This extension <bcp14>MUST</bcp14> be marked as non-critical. Implementations <bcp14>MUST</bcp14> return an error if the extension is not present AND the certificate is not self-signed.</t>
        </section>
        <section anchor="subject-key-id-ext">
          <name><tt>subjectKeyIdentifier</tt> Extension</name>
          <t>The <tt>subjectKeyIdentifier</tt> extension identifies certificates that contain a particular public key. It can be used, for example, by control plane messages to identify which certificate to use for verification. The extension allows for overlapping control plane CA keys, for example during updates.</t>
          <t>For the syntax and definition of the <tt>subjectKeyIdentifier</tt> extension, see <xref target="RFC5280"/>, section 4.2.1.2, and <xref target="X.509"/>, clause 9.2.2.2.</t>
          <t>This extension <bcp14>MUST</bcp14> be marked as non-critical. Implementations <bcp14>MUST</bcp14> return an error if the extension is not present.</t>
        </section>
        <section anchor="key-usage-ext">
          <name><tt>keyUsage</tt> Extension</name>
          <t>The <tt>keyUsage</tt> extension identifies the intended usage of the public key in the corresponding certificate. For the syntax and definition of the <tt>keyUsage</tt> extension, see <xref target="RFC5280"/>, section 4.2.1.3, and <xref target="X.509"/>, clause 9.2.2.3.</t>
          <t>The attributes of the <tt>keyUsage</tt> extension define possible ways of using the public key. The attributes have the following meaning in SCION:</t>
          <ul spacing="normal">
            <li>
              <t><tt>digitalSignature</tt>: The public key can be used to verify the digital signature of a control plane payload.</t>
            </li>
            <li>
              <t><tt>keyCertSign</tt>: The public key can be used to verify the CA signature on a control plane AS certificate.</t>
            </li>
          </ul>
          <t>Other attributes are not used.</t>
          <t>If a certificate’s public key is used to verify the signature of a control plane payload (<tt>digitalSignature</tt> attribute), it <bcp14>MUST</bcp14> be possible to trace back the private key used to sign the certificate. This is done by referencing the ISD-AS and the subject key identifier (via the <tt>subjectKeyIdentifier</tt> extension). For more information about the <tt>subjectKeyIdentifier</tt> extension (see <xref target="subject-key-id-ext"/>).</t>
          <t>When present, this extension <bcp14>SHOULD</bcp14> be marked as critical.</t>
          <t>Each Control Plane PKI certificate type uses the public key differently, and consequently also specifies the attributes of the <tt>keyUsage</tt> extension differently. The next table shows the specifications per certificate type.</t>
          <table anchor="_table-4">
            <name>keyUsage extension - Specifications per certificate type</name>
            <thead>
              <tr>
                <th align="left">Certificate Type</th>
                <th align="left">Root</th>
                <th align="left">Issuing CA</th>
                <th align="left">AS</th>
                <th align="left">Voting</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <em>Attribute:</em></td>
                <td align="left"> </td>
                <td align="left"> </td>
                <td align="left"> </td>
                <td align="left"> </td>
              </tr>
              <tr>
                <td align="left">
                  <tt>keyUsage</tt> extension itself</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">
                  <bcp14>OPTIONAL</bcp14></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>digitalSignature</tt> bit</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be asserted (1)</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be asserted (2)</td>
                <td align="left">
                  <bcp14>MUST</bcp14> be asserted</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be asserted</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>keyCertSign</tt> bit</td>
                <td align="left">
                  <bcp14>MUST</bcp14> be asserted</td>
                <td align="left">
                  <bcp14>MUST</bcp14> be asserted</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be asserted</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be asserted</td>
              </tr>
            </tbody>
          </table>
          <t>(1)  Root certificates <bcp14>SHOULD NOT</bcp14> be used to verify control plane messages.<br/>
(2)  Issuing CA certificates <bcp14>SHOULD NOT</bcp14> be used to verify control plane messages.</t>
        </section>
        <section anchor="ext-key-usage-ext">
          <name><tt>extKeyUsage</tt> Extension</name>
          <t>The <tt>extKeyUsage</tt> extension specifies additional usages of the public key in the certificate. For the syntax and definition of the <tt>extKeyUsage</tt> extension, see <xref target="X.509"/>, clause 9.2.2.4.</t>
          <t>SCION uses the following attributes of the Extended Key Usage extension, as defined in Section 4.2.1.12 of <xref target="RFC5280"/>:</t>
          <ul spacing="normal">
            <li>
              <t><tt>id-kp-serverAuth</tt>: If set, the public key can be used for SCION Control Plane server authentication.</t>
            </li>
            <li>
              <t><tt>id-kp-clientAuth</tt>: If set, the public key can be used for SCION Control Plane client authentication.</t>
            </li>
            <li>
              <t><tt>id-kp-timeStamping</tt>: If set, the public key can be used for the verification of timestamps.</t>
            </li>
          </ul>
          <t>Additionally, the Extended Key Usage extension sequence <bcp14>MAY</bcp14> include the SCION-specific attributes <tt>id-kp-root</tt>, <tt>id-kp-regular</tt>, and <tt>id-kp-sensitive</tt>. These attributes are used in the TRC setup to distinguish root certificates, regular voting certificates, and sensitive voting certificates from each other. For more information, see <xref target="cert"/>.</t>
          <t>The specifications of the <tt>extKeyUsage</tt> extension differ per SCION Control Plane PKI certificate type. The next table provides an overview of the specifications per certificate type.</t>
          <table anchor="_table-5">
            <name>extKeyUsage extension - Specifications per certificate type</name>
            <thead>
              <tr>
                <th align="left">Certificate Type</th>
                <th align="left">Root</th>
                <th align="left">Issuing CA</th>
                <th align="left">AS</th>
                <th align="left">Voting</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <em>Attribute:</em></td>
                <td align="left"> </td>
                <td align="left"> </td>
                <td align="left"> </td>
                <td align="left"> </td>
              </tr>
              <tr>
                <td align="left">
                  <tt>extKeyUsage</tt> extension itself</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">
                  <bcp14>OPTIONAL</bcp14></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>id-kp-serverAuth</tt></td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be included</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be included</td>
                <td align="left">
                  <bcp14>MUST</bcp14> be included, if the certificate is used on the server-side of a control plane TLS session.</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be included</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>id-kp-clientAuth</tt></td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be included</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be included</td>
                <td align="left">
                  <bcp14>MUST</bcp14> be included, if the certificate is used on the client-side of a control plane TLS session.</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be included</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>id-kp-timeStamping</tt></td>
                <td align="left">
                  <bcp14>MUST</bcp14> be included</td>
                <td align="left"> </td>
                <td align="left">
                  <bcp14>MUST</bcp14> be included</td>
                <td align="left">
                  <bcp14>MUST</bcp14> be included</td>
              </tr>
              <tr>
                <td align="left">SCION-specific attributes (see <xref target="specatt"/>)</td>
                <td align="left">
                  <tt>id-kp-root</tt> <bcp14>MUST</bcp14> be included</td>
                <td align="left"> </td>
                <td align="left"> </td>
                <td align="left">Regular voting cert: <tt>id-kp-regular</tt> <bcp14>MUST</bcp14> be included.<br/> Sensitive voting cert: <tt>id-kp-sensitive</tt> <bcp14>MUST</bcp14> be included</td>
              </tr>
            </tbody>
          </table>
          <t><strong>Note</strong>: the use of <tt>extKeyUsage</tt> in Root certificates renders them incompatible with standard TLS handshakes according to <xref target="RFC5280"/>, because the <tt>id-kp-serverAuth</tt> attribute is not set. While current implementations follow what described in this document, the use of <tt>extKeyUsage</tt> should be revised in future protocol iterations.</t>
          <section anchor="specatt">
            <name>SCION-Specific Key Purposes</name>
            <t>Three additional key purpose attributes differentiate certificate roles within the CP-PKI:</t>
            <ul spacing="normal">
              <li>
                <t><tt>id-kp-sensitive</tt> (OID 1.3.6.1.4.1.55324.1.3.1): identifies sensitive voting certificate</t>
              </li>
              <li>
                <t><tt>id-kp-regular</tt> (OID 1.3.6.1.4.1.55324.1.3.2): identifies a regular voting certificate</t>
              </li>
              <li>
                <t><tt>id-kp-root</tt> (OID 1.3.6.1.4.1.55324.1.3.3): identifies a root certificate</t>
              </li>
            </ul>
            <t>The formal ASN.1 definitions for these attributes are provided in <xref target="cert-asn1"/>.</t>
          </section>
        </section>
        <section anchor="basic-constr-ext">
          <name><tt>basicConstraints</tt> Extension</name>
          <t>The <tt>basicConstraints</tt> extension specifies whether the certificate subject may act as a CA. For the syntax and definition of the <tt>basicConstraints</tt> extension, see <xref target="X.509"/>, clause 9.4.2.1.</t>
          <t>The <tt>basicConstraints</tt> extension includes the following attributes relevant for SCION:</t>
          <ul spacing="normal">
            <li>
              <t><tt>cA</tt> attribute: Specifies whether the certificate subject may act as a CA. If yes, this attribute <bcp14>MUST</bcp14> be asserted and the extension <bcp14>MUST</bcp14> be marked as critical.</t>
            </li>
            <li>
              <t><tt>pathLenConstraint</tt> attribute: This attribute is only relevant if the <tt>cA</tt> attribute is set to TRUE and specifies the maximum number of CA certificates that may follow this CA certificate in the certification chain. Value "0" means that this CA may only issue end-entity certificates, but no CA certificates. If the attribute is not set, there is no limit to the maximum length of the certification path.</t>
            </li>
          </ul>
          <t>The settings of the <tt>basicConstraints</tt> extension differ for each SCION Control Plane PKI certificate type. The next table shows the specifications per certificate type.</t>
          <table anchor="_table-6">
            <name>basicConstraints extension - Specifications per certificate type</name>
            <thead>
              <tr>
                <th align="left">Certificate Type</th>
                <th align="left">Root</th>
                <th align="left">Issuing CA</th>
                <th align="left">AS</th>
                <th align="left">Voting (regular and sensitive)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <em>Attribute:</em></td>
                <td align="left"> </td>
                <td align="left"> </td>
                <td align="left"> </td>
                <td align="left"> </td>
              </tr>
              <tr>
                <td align="left">
                  <tt>basicConstraints</tt> extension itself</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">
                  <bcp14>SHOULD NOT</bcp14> be present</td>
                <td align="left">
                  <bcp14>SHOULD NOT</bcp14> be present</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>cA</tt></td>
                <td align="left">
                  <bcp14>MUST</bcp14> be asserted</td>
                <td align="left">
                  <bcp14>MUST</bcp14> be asserted</td>
                <td align="left">If the extension is present, this attribute <bcp14>MUST NOT</bcp14> be asserted</td>
                <td align="left">If the extension is present, this attribute <bcp14>MUST NOT</bcp14> be asserted</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>pathLenConstraint</tt></td>
                <td align="left">
                  <bcp14>SHOULD</bcp14> be set to "1"</td>
                <td align="left">
                  <bcp14>SHOULD</bcp14> be set to "0" (1)</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be included</td>
                <td align="left">
                  <bcp14>MUST NOT</bcp14> be included</td>
              </tr>
            </tbody>
          </table>
          <t>(1) Control Plane CAs can only issue end-entity certificates.</t>
        </section>
      </section>
    </section>
    <section anchor="trc-specification">
      <name>Trust Root Configuration Specification</name>
      <t>The Trust Root Configuration (TRC) contains policy information about an ISD and acts as a distribution mechanism for the trust anchors of that ISD. It enables the securing of control plane interactions and is thus an integral part of the SCION infrastructure.</t>
      <t>The initial TRC of an ISD is signed during a signing ceremony and then distributed throughout the ISD. This signing ceremony follows specific rules which are described in <xref target="trc-ceremony"/>.</t>
      <t>The TRC is a signed collection of <xref target="X.509"/> v3 certificates. Additionally, the TRC contains ISD-specific policies encoded in CMS signed-data (<xref target="RFC5652"/> section 5).</t>
      <t>The TRC's certificates collection consists of a set of control plane root certificates which build the root of the certification chain for the AS certificates in an ISD. The other certificates in the TRC are solely used for signing the next TRC; a process called "voting". The verification of a new TRC thus depends on the policies and voting certificates defined in the previous TRC.</t>
      <t>This section specifies the TRC including format definitions and payload fields. The section uses the ITU-T <xref target="X.680"/> syntax.</t>
      <section anchor="trc-states">
        <name>TRC Types and States</name>
        <t>The following types of TRCs exist:</t>
        <ul spacing="normal">
          <li>
            <t>Initial: The very first TRC of an ISD is the initial TRC of that ISD. It is a special case of the base TRC, where the number of the ISD is specified.</t>
          </li>
          <li>
            <t>Base: A base TRC is either the initial TRC, or the first TRC after a trust reset (see <xref target="trust-reset"/>). Trust for a base TRC cannot be inferred by verifying a TRC update; base TRCs are trusted axiomatically, similarly to how root certificates are trusted by clients in the Web PKI.</t>
          </li>
          <li>
            <t>Update: All non-base TRCs are updated TRCs. They are the product of either a regular or a sensitive update.</t>
          </li>
        </ul>
        <t>A TRC can have the following states:</t>
        <ul spacing="normal">
          <li>
            <t>Valid: The validity period of a TRC is defined in the TRC itself, in the <tt>validity</tt> field (see <xref target="validity-trc"/>). A TRC is considered valid if the current time falls within its validity period.</t>
          </li>
          <li>
            <t>Active: An active TRC is a valid TRC that can be used for verifying certificate signatures. This is either the latest TRC or the predecessor TRC if it is still in its grace period (as defined in the <tt>gracePeriod</tt> field of the new TRC, see <xref target="grace"/>). No more than two TRCs can be active at the same time for any ISD.</t>
          </li>
        </ul>
        <t><xref target="_figure-2"/> shows the content of both a base/initial TRC, the changes made with the first regular update to the base TRC. All elements of the TRC is detailed in the following subsections.</t>
      </section>
      <section anchor="trcfields">
        <name>TRC Fields</name>
        <t>The TRC holds the root and voting certificates of the ISD, defining the ISD's trust policy. Its ASN.1 module is described in <xref target="trc-asn1"/>.
Its fields are contained in a <tt>TRCPayload</tt> sequence. This section describes their syntax and semantics.</t>
        <section anchor="version-1">
          <name><tt>version</tt></name>
          <t>The <tt>version</tt> field describes the version of the TRC format specification. It <bcp14>MUST</bcp14> be "v1".</t>
        </section>
        <section anchor="id">
          <name><tt>iD</tt></name>
          <t>The <tt>iD</tt> field contains an unique identifier for the TRC, constituted by a sequence of:</t>
          <ul spacing="normal">
            <li>
              <t>ISD number (<tt>iSD</tt> attribute),</t>
            </li>
            <li>
              <t>base number (<tt>baseNumber</tt> attribute). It indicates the starting point of the current TRC update chain. This starting point is either the ISD's initial TRC or the currently valid base TRC, if the valid base TRC differs from the initial TRC. The latter is the case after a trust reset.</t>
            </li>
            <li>
              <t>TRC serial number (<tt>serialNumber</tt> attribute). It represents the current update cycle, counting from the initial TRC of a specific ISD.</t>
            </li>
          </ul>
          <t>All numbers <bcp14>MUST</bcp14> be positive integers.</t>
          <t>A TRC where the base number is equal to the serial number is a base TRC. The initial TRC is a special case of a base TRC and <bcp14>MUST</bcp14> have a serial number of 1 and a base number of 1. With every TRC update, the serial number <bcp14>MUST</bcp14> be incremented by one which facilitates the unique identification of the predecessor and successor TRC in an update chain.</t>
          <t>If a trust reset is necessary, a new base TRC is announced in order to start a new and clean TRC update chain. The base number of this new TRC update chain <bcp14>SHOULD</bcp14> be the number following the serial number of the latest TRC that was produced by a non-compromised TRC update for this ISD.</t>
          <t>The following example illustrates how to specify the ID of the TRCs in an TRC update chain for <em>ISD 15</em>. The IDs are given in a human-readable notation, where Bxx is the base number, and Sxx the serial number.</t>
          <table anchor="_table-7">
            <name>ID of TRCs in TRC update chain</name>
            <thead>
              <tr>
                <th align="left">Update</th>
                <th align="left">TRC ID</th>
                <th align="left">Remarks</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Initial</td>
                <td align="left">ISD15-B01-S01</td>
                <td align="left"> </td>
              </tr>
              <tr>
                <td align="left">Regular</td>
                <td align="left">ISD15-B01-S02</td>
                <td align="left">Only the serial number is incremented.</td>
              </tr>
              <tr>
                <td align="left">Regular</td>
                <td align="left">ISD15-B01-S03</td>
                <td align="left">Only the serial number is incremented.</td>
              </tr>
              <tr>
                <td align="left">Sensitive</td>
                <td align="left">ISD15-B01-S04</td>
                <td align="left">Only the serial number is incremented.</td>
              </tr>
              <tr>
                <td align="left">Trust reset</td>
                <td align="left">ISD15-<strong>B05</strong>-S05</td>
                <td align="left">A trust reset includes the creation of a new base TRC. The new base number follows the serial number "04" of the latest TRC resulting from a non-compromised TRC update for this ISD.</td>
              </tr>
              <tr>
                <td align="left">Regular</td>
                <td align="left">ISD15-B05-S06</td>
                <td align="left">Only the serial number is incremented.</td>
              </tr>
              <tr>
                <td align="left">And so on</td>
                <td align="left"> </td>
                <td align="left"> </td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="validity-trc">
          <name><tt>validity</tt></name>
          <t>The <tt>validity</tt> field defines the TRC validity period. The <tt>notBefore</tt> and <tt>notAfter</tt> attributes of the <tt>validity</tt> field specify the lower and upper bound of the time interval during which a TRC can be active.</t>
          <t>An active TRC is a valid TRC that can be used for verifying certificate signatures. The time period during which a TRC is active can be shorter than the time period during which the TRC is valid. For more information, see <xref target="trc-states"/>.</t>
          <t>The <tt>validity</tt> field consists of a sequence of a <tt>notBefore</tt> and a <tt>notAfter</tt> date, both encoded as <tt>GeneralizedTime</tt>.
All TRCs <bcp14>MUST</bcp14> have a well-defined expiration date. SCION implementations <bcp14>MUST NOT</bcp14> create TRCs that use GeneralizedTime value "99991231235959Z", and verifiers <bcp14>MUST</bcp14> error out when encountering such a TRC.</t>
        </section>
        <section anchor="grace">
          <name><tt>gracePeriod</tt></name>
          <t>The <tt>gracePeriod</tt> field specifies the duration, in seconds, during which the predecessor TRC remains active after a new TRC is issued. This grace period starts at the beginning of the validity period of the new TRC.</t>
          <t>A predecessor TRC ceases to be active when the earliest of the following events occurs:</t>
          <ul spacing="normal">
            <li>
              <t>the grace period expires;</t>
            </li>
            <li>
              <t>the predecessor TRC reaches its expiration time (<tt>notAfter</tt>); or</t>
            </li>
            <li>
              <t>a subsequent TRC update (i.e., the successor to the new TRC) is announced.</t>
            </li>
          </ul>
          <t>In a base TRC, <tt>gracePeriod</tt> value <bcp14>MUST</bcp14> be zero. In a non-base TRC, <tt>gracePeriod</tt> <bcp14>SHOULD</bcp14> be greater than zero. The defined duration <bcp14>SHOULD</bcp14> provide sufficient overlap between the two TRCs to ensure uninterrupted operations within the ISD. If the grace period is too short, some Control Plane AS certificates may expire before the corresponding ASes can fetch an updated version from their CA.</t>
        </section>
        <section anchor="notrustreset">
          <name><tt>noTrustReset</tt></name>
          <t>The <tt>noTrustReset</tt> Boolean specifies whether a trust reset is forbidden by the ISD. Within a TRC update chain, this value <bcp14>MUST NOT</bcp14> be changed by a regular or sensitive update. However, it is possible to change the <tt>noTrustReset</tt> value in the event of a trust reset where a new base TRC is created.</t>
          <t>The <tt>noTrustReset</tt> field is <bcp14>OPTIONAL</bcp14> and defaults to FALSE.</t>
          <t>Note that once the <tt>noTrustReset</tt> Boolean is set to TRUE and a trust reset is disallowed, this cannot be reversed. Therefore, ISDs <bcp14>SHOULD</bcp14> always set this value to FALSE, unless they have sufficiently assessed the risks and implications of making a trust reset impossible.</t>
          <t>Note that a trust reset represents a special use case where a new base TRC is created. It therefore differs from a TRC update (regular or sensitive) as the signatures in the new base TRC cannot be verified with the certificates contained in the predecessor TRC. Instead, a trust reset base TRC must be axiomatically trusted, similarly to how the initial TRC is trusted.</t>
        </section>
        <section anchor="votes">
          <name><tt>votes</tt></name>
          <t>The <tt>votes</tt> field contains a sequence of indices referencing the voting certificates in the predecessor TRC. If index i is part of the <tt>votes</tt> field, then the voting certificate at position i in the <tt>certificates</tt> sequence of the predecessor TRC casted a vote on the successor TRC. For more information on the <tt>certificates</tt> sequence, see <xref target="cert"/>.</t>
          <t>In a base TRC, the <tt>votes</tt> sequence <bcp14>MUST</bcp14> be empty.
Every entry in the <tt>votes</tt> sequence <bcp14>MUST</bcp14> be unique.
Further restrictions on votes are discussed in <xref target="update"/>.</t>
          <t>The <tt>votes</tt> sequence <bcp14>MUST</bcp14> be present to prevent the stripping of voting signatures from the TRC. Without this sequence, an attacker could transform a TRC with more voting signatures than the voting quorum into multiple verifiable TRCs with the same payload, but different voting signature sets, which directly violates the uniqueness requirement of a TRC.</t>
        </section>
        <section anchor="quorum">
          <name><tt>votingQuorum</tt></name>
          <t>The <tt>votingQuorum</tt> field defines the number of necessary votes on a successor TRC to make it verifiable.</t>
          <t>A voting quorum greater than one will prevent a single entity from creating a malicious TRC update.</t>
        </section>
        <section anchor="core">
          <name><tt>coreASes</tt></name>
          <t>The <tt>coreASes</tt> field contains a sequence listing the core AS numbers within the ISD.</t>
          <t>Each AS number <bcp14>MUST</bcp14> be unique and encoded as a <tt>PrintableString</tt> using the formatting defined in <xref target="I-D.dekater-scion-controlplane"/>, section "Text Representation".</t>
          <t>To assign or revoke core status, the target AS number is added to or removed from this sequence. For such modification, a sensitive TRC update is <bcp14>REQUIRED</bcp14>.</t>
        </section>
        <section anchor="auth">
          <name><tt>authoritativeASes</tt></name>
          <t>The <tt>authoritativeASes</tt> field contains a sequence listing the authoritative AS numbers in the ISD. Authoritative ASes are those ASes in an ISD that always possess the latest TRCs for the ISD and initiate TRC update announcements.</t>
          <t>Every authoritative AS <bcp14>MUST</bcp14> be a core AS (i.e., be listed in the <tt>coreASes</tt> field). The encoding and uniqueness requirements for this sequence are identical to those of the <tt>coreASes</tt> field.</t>
          <t>As with core ASes, assigning or revoking authoritative status is performed by adding or removing the target AS number from this sequence. For such modification, a sensitive TRC update is <bcp14>REQUIRED</bcp14>.</t>
        </section>
        <section anchor="description">
          <name><tt>description</tt></name>
          <t>The <tt>description</tt> field contains a UTF-8 encoded string that describes the ISD. It <bcp14>SHOULD NOT</bcp14> be empty.
The description <bcp14>MUST</bcp14> be in English and <bcp14>MAY</bcp14> additionally contain information in other languages.</t>
        </section>
        <section anchor="cert">
          <name><tt>certificates</tt></name>
          <t>The voting ASes and the certification authorities (CAs) of an ISD are not specified explicitly in the ISD's TRC. Instead, this information is defined by the list of voting and root certificates in the <tt>certificates</tt> field of the TRC payload.</t>
          <t>The <tt>certificates</tt> field is a sequence of self-signed X.509 certificates. Each certificate in the certificate sequence <bcp14>MUST</bcp14> be one of the following types:</t>
          <ul spacing="normal">
            <li>
              <t>a sensitive voting certificate,</t>
            </li>
            <li>
              <t>a regular voting certificate, or</t>
            </li>
            <li>
              <t>a CP root certificate.</t>
            </li>
          </ul>
          <t>A certificate that is no control plane root or voting certificate <bcp14>MUST NOT</bcp14> be included in the sequence of certificates in the <tt>certificates</tt> field.</t>
          <t>A certificate's type (voting or root) is specified in the <tt>extKeyUsage</tt> extension of the certificate, by means of the SCION-specific attributes <tt>id-kp-regular</tt>, <tt>id-kp-sensitive</tt>, and <tt>id-kp-root</tt>, respectively. For more information, see <xref target="ext-key-usage-ext"/>.</t>
          <t>The following constraints <bcp14>MUST</bcp14> hold for each certificate in the <tt>certificates</tt> field of the TRC payload:</t>
          <ul spacing="normal">
            <li>
              <t>Each certificate <bcp14>MUST</bcp14> be unique in the sequence of certificates.</t>
            </li>
            <li>
              <t>The <tt>issuer</tt> / <tt>serialNumber</tt> pair for each certificate <bcp14>MUST</bcp14> be unique.</t>
            </li>
            <li>
              <t>If an ISD-AS number is present in the distinguished name of the certificate, this ISD number <bcp14>MUST</bcp14> be equal to the ISD number of the TRC (which is defined in the <tt>iD</tt> field (see <xref target="id"/>).</t>
            </li>
            <li>
              <t>Every certificate <bcp14>MUST</bcp14> have a validity period that fully contains the validity period of this TRC. That is, the <tt>notBefore</tt> date of this TRC's validity period <bcp14>MUST</bcp14> be equal to or later than the certificate's <tt>notBefore</tt> date, and the <tt>notAfter</tt> date of this TRC's validity period <bcp14>MUST</bcp14> be before or equal to the certificate's <tt>notAfter</tt> date.</t>
            </li>
            <li>
              <t>Per certificate type, every certificate distinguished name <bcp14>MUST</bcp14> be unique.</t>
            </li>
          </ul>
          <t>The following must hold for the entire sequence of certificates in the <tt>certificates</tt> field:</t>
          <ul spacing="normal">
            <li>
              <t><tt>votingQuorum</tt> &lt;= count (sensitive voting certificates) <br/>
That is, the quorum defined in the TRC's <tt>votingQuorum</tt> field (<xref target="quorum"/>) <bcp14>MUST</bcp14> be smaller than or equal to the number of sensitive voting certificates specified in the TRC's <tt>certificates</tt> field.</t>
            </li>
            <li>
              <t><tt>votingQuorum</tt> &lt;= count (regular voting certificates) <br/>
That is, the quorum defined in the TRC's <tt>votingQuorum</tt> field (<xref target="quorum"/>) <bcp14>MUST</bcp14> be smaller than or equal to the number of regular voting certificates specified in the TRC's <tt>certificates</tt> field.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="signed-format">
        <name>TRC Signature Syntax</name>
        <t>To guarantee the integrity and authenticity of the distributed trust anchors, each TRC is digitally signed using the Cryptographic Message Syntax (CMS). The signed TRC payload uses the CMS signed-data content type as specified in Section 5 of <xref target="RFC5652"/>, and is encapsulated in a CMS <tt>ContentInfo</tt> element, as defined in Section 3 of <xref target="RFC5652"/>.</t>
        <t>For signature calculation, the data that is to be signed <bcp14>MUST</bcp14> be encoded using ASN.1 distinguished encoding rules (DER) <xref target="X.690"/>.</t>
        <section anchor="scion-specific-rules">
          <name>SCION-specific rules</name>
          <t>SCION implementations <bcp14>MUST</bcp14> fulfill the following additional rules, as well as the general syntax rules specified in <xref target="RFC5652"/>:</t>
          <ul spacing="normal">
            <li>
              <t><tt>EncapsulatedContentInfo</tt> sequence:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The <tt>eContentType</tt> field <bcp14>MUST</bcp14> be set to "id-data".</t>
                </li>
                <li>
                  <t>The content of the <tt>eContent</tt> field <bcp14>MUST</bcp14> be the DER-encoded TRC payload. This has the benefit that the format is backwards compatible with PKCS #7, as described in Section 5.2.1 of <xref target="RFC5652"/>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>SignedData</tt> sequence:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The <tt>certificates</tt> field <bcp14>MUST</bcp14> be left empty. The certificate pool used to verify a TRC update is already specified in the <tt>certificates</tt> field of the predecessor TRC's payload (see also <xref target="cert"/>).</t>
                </li>
                <li>
                  <t>The <tt>version</tt> field <bcp14>MUST</bcp14> be set to "1". This is because SCION uses the "id-data" content type to encapsulate content info and does not specify any certificate in the <tt>SignedData</tt> sequence (see also Section 5.1 of <xref target="RFC5652"/>).</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>SignerIdentifier</tt> choice:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The type of signer identifier chosen here <bcp14>MUST</bcp14> be <tt>IssuerAndSerialNumber</tt>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>SignerInfo</tt> sequence:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The <tt>version</tt> field <bcp14>MUST</bcp14> be set to "1". This is because SCION uses the <tt>IssuerAndSerialNumber</tt> type of signer identifier (see also Section 5.3 of <xref target="RFC5652"/>).</t>
                </li>
                <li>
                  <t>The algorithm specified in the <tt>signatureAlgorithm</tt> field <bcp14>MUST</bcp14> be one of the algorithms supported by SCION . For details, see <xref target="certsign">signature Field - Additional Information</xref>.</t>
                </li>
                <li>
                  <t>The <tt>digestAlgorithm</tt> is determined by the algorithm specified in the <tt>signatureAlgorithm</tt> field.</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="trc-equality">
          <name>TRC Equality</name>
          <t>The signer information in the signed TRC is part of an unordered set, as per <xref target="RFC5652"/>. This implies that the signer information can be reordered without affecting verification, although certain operations require TRCs to be equal in accordance with the following definition:</t>
          <t><strong>Two TRCs are equal, if and only if their payloads are byte equal.</strong></t>
          <t>Two TRCs with byte equal payloads can be considered as equal because the TRC payload exactly defines which signatures must be attached in the signed TRC:</t>
          <ul spacing="normal">
            <li>
              <t>The <bcp14>REQUIRED</bcp14> signatures from voting certificates are explicitly mentioned in the <tt>votes</tt> field of the payload: If index "i" is part of the <tt>votes</tt> field, then the voting certificate at position i in the <tt>certificates</tt> sequence of the predecessor TRC casted a vote on the successor TRC. See also <xref target="votes"/>.</t>
            </li>
            <li>
              <t>The <bcp14>REQUIRED</bcp14> signatures for new certificates are implied by the currently valid TRC payload, and, in case of a TRC update, the predecessor payload.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="certification-path-trust-anchor-pool">
        <name>Certification Path - Trust Anchor Pool</name>
        <t>The certification path of a Control Plane AS certificate starts in a Control Plane root certificate. The Control Plane root certificate for a given ISD is distributed via the TRC.</t>
        <t>However, AS certificates and the corresponding issuing CA certificates are not part of the TRC, but are bundled into certificate chains and distributed separately from the corresponding TRC. This separation makes it possible to extend the validity period of the root certificate, and to update the corresponding TRC without having to modify the certificate chain. To be able to validate a certification path, each AS builds a collection of root certificates from the latest TRC of the relevant ISD.</t>
        <t>Note that any entity sending information that is secured by the Control Plane PKI, such as control plane messages, <bcp14>MUST</bcp14> be able to provide all the necessary trust material including certificates to verify said information. If any cryptographic material is missing in the process, the relying party <bcp14>MUST</bcp14> query the originator of the message for the missing material through the control plane API described in <xref target="I-D.dekater-scion-controlplane"/>, section "Distribution of Cryptographic Material". If it cannot be resolved, the verification process fails. For more details, see 4.2 "Signing and Verifying Control Plane Messages" <xref target="signing-verifying-cp-messages"/>.</t>
        <t>The following section explains how to build a trust anchor pool.</t>
        <section anchor="trc-selection">
          <name>TRC Selection For Trust Anchor Pool</name>
          <t>The selection of the right set of TRCs to build the trust anchor pool depends on the time of verification. The trust anchor pool is usually used to verify control plane messages and in this case, the time of verification is the current time. However, if the trust anchor pool will be used for auditing, the time of verification is the point in time to check whether a given signature was verifiable.</t>
          <t>The selection algorithm for building the trust anchor pool is described in pseudo-python code below.</t>
          <sourcecode type="python"><![CDATA[
    def select_trust_anchors(trcs: Dict[(int,int), TRC], \
    verification_time: int) -> Set[RootCert]:
        """
        Args:
            trcs: The dictionary mapping (serial number, \
            base number) to the TRC for a given ISD.
            verification_time: The time of verification.

        Returns:
            The set of CP Root certificates acting as trust anchors.
        """
        # Find highest base number that has a TRC with validity
        # period starting before verification time.
        base_nr = 1
        for trc in trcs.values()
            if trc.id.base_nr > base_nr and trc.validity.not_before \
            <= verification_time:
                base_nr = trc.id.base_nr

        # Find TRC with highest serial number with given base number
        # and a validity period starting before verification time.
        serial_nr = 1
        for trc in trcs[isd].values():
            if trc.id.base_nr != base_nr:
                continue
            if trc.id.serial_nr > serial_nr and \
            trc.validity.not_before <= verification_time:
                serial_nr = trc.id.serial_nr

        candidate = trcs[(serial_nr, base_nr)]

        # If the verification time is not inside the validity period,
        # there is no valid set of trust anchors.
        if not candidate.validity.contains(verification_time):
            return set()

        # If the grace period has passed, only the certificates in
        # that TRC may be used as trust anchors.
        if candidate.validity.not_before + candidate.grace_period \
        < verification_time:
            return collect_trust_anchors(candidate)

        predecessor = trcs.get((serial_nr-1, base_nr))
        if not predecessor or predecessor.validity.not_after < \
        verification_time:
            return collect_trust_anchors(candidate)

        return collect_trust_anchors(candidate) | \
        collect_trust_anchors(predecessor)


    def collect_trust_anchors(trc: TRC) -> Set[RootCert]:
        """
        Args:
            trc: A TRC from which the CP Root Certificates shall \
            be extracted.

        Returns:
            The set of CP Root certificates acting as trust anchors.
        """
        roots = set()
        for cert in trc.certificates:
            if not cert.basic_constraints.ca:
                continue
            roots.add(cert)
        return roots
]]></sourcecode>
        </section>
      </section>
      <section anchor="update">
        <name>TRC Updates</name>
        <t>All non-base TRCs of an ISD are updates of the ISD's base TRC(s) and constitute a chain. Updates are categorized as regular or sensitive, depending on which payload fields are being modified.</t>
        <t>This section describes the rules that apply to updating a TRC in regard to the payload information contained in the TRC. Some rules are valid for both update types whilst some only apply to a regular or a sensitive TRC update. Based on the type of update, different sets of voters are needed to create a verifiable TRC update and the corresponding voting (signing) process is also described. Finally, this section describes checks to verify a newly issued TRC.</t>
        <section anchor="change-new">
          <name>Changed or New Certificates</name>
          <t>In the context of a TRC update,</t>
          <ul spacing="normal">
            <li>
              <t>A certificate is <em>changing</em> if the certificate is part of the <tt>certificates</tt> sequence in the predecessor TRC, but no longer part of the <tt>certificates</tt> sequence in the updated TRC. Instead, the <tt>certificates</tt> sequence of the updated TRC holds another certificate of the <em>same type</em> and with the <em>same distinguished name</em>.</t>
            </li>
            <li>
              <t>A certificate is <em>new</em> if there is <strong>no</strong> certificate of the same type and distinguished name at all in the <tt>certificates</tt> sequence of the predecessor TRC.</t>
            </li>
          </ul>
          <t>Every new sensitive or regular voting certificate in a TRC attaches a signature to the TRC. This is done to ensure that the freshly included voting entity agrees with the contents of the TRC it is now part of.</t>
        </section>
        <section anchor="update-rules-overview">
          <name>Update Rules - Overview</name>
          <t>The following table gives an overview of the types of TRC update, as well as the rules that must apply in regard to the updated TRC's payload information.</t>
          <t>The sections that follow provide more detailed descriptions of each rule.</t>
          <table anchor="_table-8">
            <name>Overview of the update types and corresponding rules</name>
            <thead>
              <tr>
                <th align="left">Type of TRC Update</th>
                <th align="left">Unchanged Elements</th>
                <th align="left">Changed Elements</th>
                <th align="left">Other Rules to Hold</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Both Regular AND Sensitive</td>
                <td align="left">- <tt>iD</tt> field: <tt>iSD</tt> and <tt>baseNumber</tt> <br/> - <tt>noTrustReset</tt> field</td>
                <td align="left">
                  <tt>iD</tt> field: <tt>serialNumber</tt> <bcp14>MUST</bcp14> be incremented by 1</td>
                <td align="left">
                  <tt>votes</tt> field: Number of votes (indices) =&gt; number set in the <tt>votingQuorum</tt> field of the predecessor TRC</td>
              </tr>
              <tr>
                <td align="left">Regular</td>
                <td align="left">- Quorum in the <tt>votingQuorum</tt> field<br/>- Core ASes in the <tt>coreASes</tt> field<br/>- ASes in the <tt>authoritativeASes</tt> field<br/>- Nr. and distinguished names of root &amp; voting certificates in the <tt>certificates</tt> field<br/>- Set of sensitive voting certificates in the <tt>certificates</tt> field</td>
                <td align="left"> </td>
                <td align="left">
                  <tt>votes</tt> field:<br/> - All votes <bcp14>MUST</bcp14> only refer to <em>regular</em> voting certificates in the predecessor TRC<br/>- <bcp14>MUST</bcp14> include votes of each changed regular voting certificate from the predecessor TRC<br/> <tt>signatures</tt> field:<br/> - <bcp14>MUST</bcp14> include signatures of each changed root certificate from the predecessor TRC</td>
              </tr>
              <tr>
                <td align="left">Sensitive</td>
                <td align="left">If the update does not qualify as a regular update, it is a sensitive update</td>
                <td align="left"> </td>
                <td align="left">
                  <tt>votes</tt> field: <br/> - All votes <bcp14>MUST</bcp14> only refer to <em>sensitive</em> voting certificates in the predecessor TRC</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="general-update-rules">
          <name>General Update Rules</name>
          <t>The following rules <bcp14>MUST</bcp14> hold for each updated TRC, independent of the update type:</t>
          <ul spacing="normal">
            <li>
              <t>The <tt>iSD</tt> and <tt>baseNumber</tt> in the <tt>iD</tt> field <bcp14>MUST NOT</bcp14> change (see also <xref target="id"/>).</t>
            </li>
            <li>
              <t>The <tt>serialNumber</tt> in the <tt>iD</tt> field <bcp14>MUST</bcp14> be incremented by one.</t>
            </li>
            <li>
              <t>The <tt>noTrustReset</tt> field <bcp14>MUST NOT</bcp14> change (see also <xref target="notrustreset"/>).</t>
            </li>
            <li>
              <t>The <tt>votes</tt> sequence of the updated TRC <bcp14>MUST</bcp14> only contain indices that refer to sensitive or regular voting certificates in the predecessor TRC. This guarantees that the updated TRC only contains valid votes authenticated by sensitive or regular voting certificates in the predecessor TRC. For more information, see <xref target="votes"/> and <xref target="cert"/>.</t>
            </li>
            <li>
              <t>The number of votes in the updated TRC <bcp14>MUST</bcp14> be greater than or equal to the number set in the <tt>votingQuorum</tt> field of the predecessor TRC (see <xref target="quorum"/>). The number of votes corresponds to the number of indices in the <tt>votes</tt> field of the updated TRC.</t>
            </li>
          </ul>
        </section>
        <section anchor="regular-trc-update">
          <name>Regular TRC Update</name>
          <t>A regular TRC update is a periodic re-issuance of the TRC where the entities and policies listed in the TRC remain unchanged.</t>
          <t>A TRC update qualifies as a regular update if the following rules apply in regard to the TRC's payload information.</t>
          <ul spacing="normal">
            <li>
              <t>The settings of the following fields in the updated TRC <bcp14>MUST</bcp14> remain the same compared to the predecessor TRC:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The voting quorum set in the <tt>votingQuorum</tt> field.</t>
                </li>
                <li>
                  <t>The core ASes specified in the <tt>coreASes</tt> field.</t>
                </li>
                <li>
                  <t>The authoritative ASes specified in the <tt>authoritativeASes</tt> field.</t>
                </li>
                <li>
                  <t>The number of sensitive and regular voting certificates as well as Control Plane root certificates included in the <tt>certificates</tt> field and their distinguished names.</t>
                </li>
                <li>
                  <t>The set of sensitive voting certificates specified in the <tt>certificates</tt> field.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>For every regular voting certificate that changes, the regular voting certificate in the predecessor TRC is part of the voters on the updated TRC. That is, for each changed regular voting certificate, an index in the <tt>votes</tt> field of the updated TRC <bcp14>MUST</bcp14> refer to the changed regular voting certificate in the predecessor TRC.</t>
            </li>
            <li>
              <t>For every Control Plane root certificate that changes, the updated TRC <bcp14>MUST</bcp14> include a signature created with the private key belonging to the changed Control Plane root certificate (which is part of the predecessor TRC).</t>
            </li>
            <li>
              <t>In order for a regular TRC update to be verifiable, all votes <bcp14>MUST</bcp14> be cast by <em>regular</em> voting certificates. That is, each index in the <tt>votes</tt> field of the regularly updated TRC <bcp14>MUST</bcp14> refer to a <em>regular</em> voting certificate in the <tt>certificates</tt> field of the predecessor TRC.</t>
            </li>
          </ul>
        </section>
        <section anchor="sensitive-trc-update">
          <name>Sensitive TRC Update</name>
          <t>If a TRC update does not qualify as a regular update, it is considered a sensitive update.</t>
          <ul spacing="normal">
            <li>
              <t>In order for a sensitive update to be verifiable, all votes <bcp14>MUST</bcp14> be cast by <em>sensitive</em> voting certificates. That is, each index in the <tt>votes</tt> field of the sensitively updated TRC <bcp14>MUST</bcp14> refer to a <em>sensitive</em> voting certificate in the <tt>certificates</tt> field of the predecessor TRC.</t>
            </li>
          </ul>
        </section>
        <section anchor="signing-a-trc-update">
          <name>Signing a TRC Update</name>
          <t>As described above, a set of voters <bcp14>MUST</bcp14> cast votes on the updated TRC to make it verifiable. The <tt>votingQuorum</tt> field of the predecessor TRC (see <xref target="quorum"/>) defines the required number of voters, which will represent regular or sensitive voting certificates, respectively.</t>
          <t>Furthermore, if one or more <em>new</em> certificates are added to the updated TRC, the corresponding voting representatives <bcp14>MUST</bcp14> also sign the updated TRC in order to show that they have access to the private keys listed in these fresh certificates. This is called "showing proof-of-possession" and is done by signing the TRC with the respective private key. For the distinction between changed and new certificates in a TRC update, see <xref target="change-new"/>.</t>
          <t>It is up to the ISD members to decide how the "casting a vote" procedure for updated TRCs will take place. Some ISDs make a distinction between regular and sensitive updates by dividing the regular and sensitive signing keys in different security classes, e.g. they keep the regular key in an online vault while the sensitive key would be stored offline. This way, the regular TRC update would lend itself to being automated (since the keys are accessible online) whereas the sensitive one would require manual actions to access the offline key. Other ISDs keep both regular and sensitive keys online and perform both updates automatically.</t>
        </section>
        <section anchor="trc-verification">
          <name>TRC Update Verification</name>
          <t>To verify a TRC update, the relying party <bcp14>MUST</bcp14> perform the following checks:</t>
          <ul spacing="normal">
            <li>
              <t>Check that the specified update rules as described above are respected.</t>
            </li>
            <li>
              <t>Check that all signatures are verifiable and no superfluous signatures are attached.</t>
            </li>
            <li>
              <t>In case of a regular update:
              </t>
              <ul spacing="normal">
                <li>
                  <t>check that the signatures for the changing certificates are present and verifiable, and</t>
                </li>
                <li>
                  <t>check that all votes are cast by a regular voting certificate.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>In case of a sensitive update:
              </t>
              <ul spacing="normal">
                <li>
                  <t>check that all votes are cast by a sensitive voting certificate.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>If one or more of the above checks gives a negative result, the updated TRC <bcp14>SHOULD</bcp14> be rejected.</t>
        </section>
      </section>
      <section anchor="trc-ceremony">
        <name>Initial TRC Signing Ceremony</name>
        <t>The very first base TRC of an ISD - called the initial TRC - is a special case of the base TRC. The initial TRC <bcp14>MUST</bcp14> be signed during a signing ceremony where all voting representatives of the initial TRC take part to sign the TRC and exchange their public keys. Following this, all entities within an ISD can obtain the TRC by means of a secure offline or online mechanism.</t>
        <t><xref target="initial-ceremony"/> describes a possible procedure for the signing ceremony of an ISD's initial TRC. Whilst it is up to the initial members of an ISD how to organize the signing ceremony, it recommended to implement a process in line with the ceremony described in the Appendix.</t>
      </section>
    </section>
    <section anchor="operations-cp-pki">
      <name>CP-PKI Operations</name>
      <t>This section details the procedures for deploying the CP-PKI and securing control plane communications.</t>
      <section anchor="distribution-of-trcs">
        <name>Distribution of TRCs</name>
        <section anchor="base-trc">
          <name>Base TRC</name>
          <t>Base TRCs are trust anchors and thus axiomatically trusted. All ASes within an ISD <bcp14>MUST</bcp14> be pre-loaded with the currently valid base-version TRC of their own ISD. For all specifications regarding the creation and distribution of initial/base TRCs, see <xref target="trc-ceremony"/>.</t>
        </section>
        <section anchor="trc-update-discovery">
          <name>TRC Update Discovery</name>
          <t>All non-base TRCs of an ISD are updates of the ISD's base TRC(s). The TRC update chain consists of regular and sensitive TRC updates. The specifications and rules that apply to updating a TRC are described in <xref target="update"/>.</t>
          <t>Relying parties <bcp14>MUST</bcp14> have at least one valid TRC available. Relying parties <bcp14>MUST</bcp14> discover TRC updates within the grace period defined in the updated TRC, and <bcp14>SHOULD</bcp14> discover TRC updates in a matter of minutes to hours. Additionally, any entity sending information that is secured by the Control Plane PKI <bcp14>MUST</bcp14> be able to provide all the necessary trust material to verify said information.</t>
          <t>SCION provides the following mechanisms for discovering TRC updates and fulfilling the above requirement:</t>
          <ul spacing="normal">
            <li>
              <t><em>Beaconing Process</em><br/>
The TRC version is announced in the beaconing process. Each AS <bcp14>MUST</bcp14> announce what it considers to be the latest TRC, and <bcp14>MUST</bcp14> include the hash value of the TRC contents to facilitate the discovery of discrepancies. Therefore, relying parties that are part of the beaconing process discover TRC updates passively, i.e. a core AS notices TRC updates for remote ISDs that are on the beaconing path. A non-core AS only notices TRC updates for the local ISD through the beaconing process. The creation of a new TRC <bcp14>SHOULD</bcp14> trigger the generation of new control plane messages, as the propagation of control plane messages will help other ASes rapidly discover the new TRC.</t>
            </li>
            <li>
              <t><em>Path Lookup</em><br/>
In every path segment, all ASes <bcp14>MUST</bcp14> reference the latest TRC of their ISD. Therefore, when resolving paths, every relying party will notice TRC updates, even remote ones.<br/></t>
            </li>
            <li>
              <t><em>Active Discovery</em><br/>
Any TRC can be obtained at any time from the sender of the information it secures; either in a specific version or in its latest available version. The necessary query and response is described in <xref target="I-D.dekater-scion-controlplane"/>, section "Distribution of Cryptographic Material".</t>
            </li>
          </ul>
          <t><strong>Note:</strong> The first two mechanisms above only work when there is active communication between the relying party and the ISD in question.</t>
        </section>
      </section>
      <section anchor="signing-verifying-cp-messages">
        <name> Signing and Verifying Control Plane Messages</name>
        <t>The main purpose of the Control Plane PKI is providing a mechanism to distribute and authenticate public keys that are used to verify control plane messages and information, e.g. each hop information in a path segment is signed by the respective AS. Consequently, all relying parties <bcp14>MUST</bcp14> be able to verify signatures with the help of the Control Plane PKI.</t>
        <t>The following sections specify the requirements that apply to the signing and verification of control plane messages.</t>
        <section anchor="signing-a-control-plane-message">
          <name>Signing a Control Plane Message</name>
          <t>An AS signs control plane messages with the private key that corresponds to the (valid) AS' certificate.</t>
          <t>The AS <bcp14>MUST</bcp14> attach the following information as signature metadata to ensure that a relying party can identify which certificate to use to verify the signed message:</t>
          <ul spacing="normal">
            <li>
              <t>ISD-AS number: The ISD-AS number of the signing entity. For specification details, see <xref target="isd-as-nr"/>.</t>
            </li>
            <li>
              <t>Subject key identifier: The identifier of the public key to be used to verify the message. For specification details, see <xref target="subject-key-id-ext"/>.</t>
            </li>
          </ul>
          <t>Additionally, the signer <bcp14>SHOULD</bcp14> include the following information:</t>
          <ul spacing="normal">
            <li>
              <t>Serial and base number of the latest TRC: Including this information allows relying parties to discover TRC updates and trust resets. For specification details, see <xref target="id"/>.</t>
            </li>
            <li>
              <t>Timestamp: For many messages, the time at which it was signed is useful information to ensure freshness.</t>
            </li>
          </ul>
        </section>
        <section anchor="verifying-a-control-plane-message">
          <name>Verifying a Control Plane Message</name>
          <t>To verify a received control plane message, the relying party first needs to identify the certificate needed to validate the corresponding signature on the message.</t>
          <t>AS certificates are bundled together with the corresponding issuing CA certificate into certificate chains. For efficiency, SCION distributes these certificate chains separately from the signed messages.</t>
          <t>A certificate chain is verified against the Control Plane root certificate, although the root certificate is bundled with the TRC and <strong>not</strong> in the chain. This makes it possible to extend the validity period of the root certificate and update the corresponding TRC without having to modify the certificate chain.</t>
          <t>To verify a control plane message, the relying party <bcp14>MUST</bcp14> perform the following steps:</t>
          <ol spacing="normal" type="1"><li>
              <t>Build a collection of root certificates from the latest TRC of the relevant ISD (that is, the ISD referenced in the signature metadata of the message). If the grace period (see <xref target="grace"/>) introduced by the latest TRC is still on-going, the root certificates in the second-to-latest TRC <bcp14>MUST</bcp14> also be included. For a description on how to build the correct collection of certificates, see <xref target="trc-selection"/>.</t>
            </li>
            <li>
              <t>If the signature metadata of the message contains the serial and base number of the latest TRC, the relying party <bcp14>MUST</bcp14> check that they have this latest TRC. If not, the relying party <bcp14>MUST</bcp14> request the latest TRC.</t>
            </li>
            <li>
              <t>After constructing the pool of root certificates, the relying party <bcp14>MUST</bcp14> select the certificate chain used to verify the message. The AS certificate included in this certificate chain <bcp14>MUST</bcp14> have the following properties:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The ISD-AS number in the subject of the AS certificate <bcp14>MUST</bcp14> match the ISD-AS number in the signature metadata. See also <xref target="isd-as-nr"/>.</t>
                </li>
                <li>
                  <t>The subject key identifier of the AS certificate <bcp14>MUST</bcp14> match the subject key identifier in the signature metadata. See also <xref target="subject-key-id-ext"/>.</t>
                </li>
                <li>
                  <t>The AS certificate <bcp14>MUST</bcp14> be valid at verification time, which will normally be the current time. In special cases, e.g. auditing, the time can be set to the past to check if the message was verifiable at the given time.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>After selecting a certificate chain to verify the control plane messages, the relying party <bcp14>MUST</bcp14> verify the certificate chain by:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Executing the regular X.509 verification procedure. For details, see <xref target="X.509"/>.</t>
                </li>
                <li>
                  <t>Checking that
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>all subjects of the certificates in the chain carry the same ISD number (see also <xref target="isd-as-nr"/>,</t>
                    </li>
                    <li>
                      <t>each certificate is of the correct type (see also <xref target="cert-specs"/>), and</t>
                    </li>
                    <li>
                      <t>the CA certificate validity period covers the AS certificate validity period.</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>If the verification of the certificate chain was successful, the relying party can now verify the control plane messages with the root certificates from the certificate chain.</t>
            </li>
          </ol>
          <t>If any cryptographic material is missing in the process, the relying party <bcp14>MUST</bcp14> query the originator of the message for the missing material. If it cannot be resolved, the verification process fails.</t>
          <t><strong>Important:</strong> An implication of the above procedure is that path segments <bcp14>SHOULD</bcp14> be verifiable at time of use. It is not enough to rely on path segments being verified on insert since TRC updates that change the root key can invalidate a certificate chain.</t>
        </section>
      </section>
      <section anchor="issuing-control-plane-as-certificates">
        <name>Issuing Control Plane AS Certificates</name>
        <t>The steps <bcp14>REQUIRED</bcp14> to issue a new AS certificate are the following:</t>
        <ol spacing="normal" type="1"><li>
            <t>The AS creates a new key pair and a certificate signing request (CSR) using that key pair.</t>
          </li>
          <li>
            <t>The AS sends the certificate signing request to the relevant CA within the ISD.</t>
          </li>
          <li>
            <t>The CA uses its CA key and the CSR to create the new AS certificate.</t>
          </li>
          <li>
            <t>The CA sends the AS certificate back to the AS.</t>
          </li>
        </ol>
        <t>When an AS joins an ISD, the first CSR is sent out of band to one of the CAs as part of the formalities to join the ISD. Subsequent certificate renewals <bcp14>MAY</bcp14> be automated and can leverage the control plane communication infrastructure (see <xref target="I-D.dekater-scion-controlplane"/>, section "Renewal of Cryptographic Material").</t>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <section anchor="pki-availability">
        <name>PKI Availability</name>
        <t>The Control Plane PKI relies on short-lived certificates as an alternative to revocation, as described in <xref target="substitutes-to-revocation"/>. AS certificates typically have a validity of days (see <xref target="_table-3"/>), except for the first issued AS certificate. Should an AS not be able to renew certificates, it would be cut off from the network.</t>
        <t>It is therefore recommended to deploy multiple, independent CAs within an ISD that can issue certificates to all member ASes and sustain the appropriate certificate renewal load.
ASes should then be able to quickly switch over to a backup CA to renew their certificates in time.</t>
      </section>
      <section anchor="operational-processes-for-isd-governance">
        <name>Operational Processes for ISD Governance</name>
        <t>An ISD is governed by voting ASes. In existing deployments, voting ASes may produce a regulations document to facilitate operations. Such document typically describes:</t>
        <ul spacing="normal">
          <li>
            <t>governance structure</t>
          </li>
          <li>
            <t>roles and responsibilities</t>
          </li>
          <li>
            <t>admission criteria</t>
          </li>
          <li>
            <t>processes</t>
          </li>
          <li>
            <t>protection measures for keys (e.g. use of HSMs)</t>
          </li>
          <li>
            <t>actions in case of compromise or regulations breach</t>
          </li>
        </ul>
        <t>This document describes a typical TRC signing ceremony in <xref target="initial-ceremony"/>, but further processes are out-of-scope.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>SCION fundamentally differs from a global monopolistic trust model as each ISD manages its own trust roots instead of a single global entity providing those roots. This structure gives each ISD autonomy in terms of key management and in terms of trust, and prevents the occurrence of a global kill switch affecting all ISDs at once. However, each ISD is still susceptible to compromises that could affect or halt other components (control plane and forwarding).</t>
      <t>This section discussed implication of such trust architecture, covering <em>inter</em>-AS security considerations. All <em>intra</em>-AS trust- and security aspects are out of scope.</t>
      <section anchor="compromise-of-an-isd">
        <name>Compromise of an ISD</name>
        <t>In SCION there is no central authority that could "switch off" an ISD as each relies on its own independent trust roots. Each AS within an ISD is therefore dependent on its ISD's PKI for its functioning, although the following compromises are potentially possible:</t>
        <ul spacing="normal">
          <li>
            <t>At TRC level: The private root keys of the root certificates contained in an TRC are used to sign issuing CA certificates. If one of these private root keys is compromised, the adversary could issue illegitimate issuing CA certificates which may be used in further attacks. To maliciously perform a TRC update, an attacker would need to compromise multiple voting keys, the number of which is dependent on the voting quorum set in the TRC. The higher the quorum, the more unlikely a malicious update will be.</t>
          </li>
          <li>
            <t>At CA level: The private keys of an ISD's issuing CA certificates are used to sign the AS certificates and all ASes within an ISD obtain certificates directly from the CAs. If one of the CA’s keys is compromised, an adversary could issue illegitimate AS certificates which may be used to impersonate ASes in further attacks. A compromised or misbehaving CA could also refuse to issue certificates to legitimate ASes, cutting them off the network if no alternative redundant CA is available.</t>
          </li>
          <li>
            <t>At AS level: Each AS within an ISD signs control plane messages with their AS private key. If the keys of an AS are compromised by an adversary, this adversary can illegitimately sign control plane messages including Path Construction Beacons (PCBs). This means that the adversary can manipulate the PCBs and propagate them to neighboring ASes or register/store them as path segments.</t>
          </li>
        </ul>
        <section anchor="recovery-from-compromise">
          <name>Recovery from Compromise</name>
          <t>This section deals with possible recovery from the compromises discussed in the previous paragraph.
As described in <xref target="substitutes-to-revocation"/>, there is no revocation in the Control Plane PKI.</t>
          <ul spacing="normal">
            <li>
              <t>At TRC level: If any of the root keys or voting keys contained in the TRC are compromised, the TRC <bcp14>MUST</bcp14> be updated as described in <xref target="update"/>. A trust reset is only required in the case the number of compromised keys at the same time is greater or equal than the TRC's quorum (see <xref target="quorum"/>), and a invalid update has been produced and distributed in the network.</t>
            </li>
            <li>
              <t>At CA level: If the private key related to a issuing CA certificate is compromised, the impacted CA AS <bcp14>MUST</bcp14> obtain a new CA certificate from the corresponding root AS. Issuing CA certificates are generally short lived to limit the impact of compromise. Alternatively, with a TRC update, a new root keys can also be forced, invalidating the compromised CA.</t>
            </li>
            <li>
              <t>At AS level: In the event of a key compromise of a (non-core) AS, the impacted AS needs to obtain a new certificate from its CA. This process will vary depending on internal issuance processes.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="denial-of-service-attacks">
        <name>Denial of Service Attacks</name>
        <t>The Control Plane PKI lays the foundation for the authentication procedures in SCION by providing each AS within a specific ISD with a certified key pair. These keys enable the authentication of all control plane messages - every AS and endpoint can verify all control plane messages by following the certificate chain.</t>
        <t>The relying party <bcp14>MUST</bcp14> be able to discover and obtain new or updated cryptographic material. For the control plane messages, this is simplified by the observation that the sender of a message (e.g. of a path construction beacon during path exploration or a path segment during a path lookup) always has all the cryptographic material to verify it. Thus, the receiver can always immediately obtain all the cryptographic material from the message originator.</t>
        <t>As the corresponding PKI messaging only occurs when the control plane is already communicating, these requests to obtain cryptographic material are not prone to additional denial of service attacks. We refer to the security considerations of <xref target="I-D.dekater-scion-controlplane"/> for a more detailed description of DoS vulnerabilities of control plane messages.</t>
        <t>On the other hand, this does not apply for certificate renewal. Denial of Service on the CA infrastructure or on the communication links from the individual ASes to the CA could be used by an attacker to prevent victim ASes from renewing their certificates and halting the path discovery process. This risk can be mitigated in multiple ways:</t>
        <ul spacing="normal">
          <li>
            <t>CAs only need to be accessible from ASes within the ISD, reducing the potential DoS attack surface</t>
          </li>
          <li>
            <t>relying on multiple CAs within an ISD</t>
          </li>
          <li>
            <t>creating policies and processes to renew certificates out-of-band</t>
          </li>
        </ul>
      </section>
      <section anchor="trc-distribution-and-trust-on-first-use">
        <name>TRC Distribution and Trust on First Use</name>
        <t>Base TRCs act as an ISD root of trust (see <xref target="trust-relations"/>).</t>
        <t>If an endpoint retrieves the initial TRC in-band (e.g. from a local control service or a resolution server) without prior validation, it effectively operates under a "Trust on First Use" (TOFU) assumption. Care should therefore be taken in trusting the TRC source.</t>
        <t>Should an AS be provisioned with a malicious TRC, it would not be able to communicate to other ASes in the affected ISD, thereby limiting impact of a malicious TRC.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
      <t>The ISD and SCION AS number are SCION-specific numbers. They are currently allocated by the SCION Association (see <xref target="ISD-AS-assignments"/>).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.dekater-scion-controlplane">
          <front>
            <title>SCION Control Plane</title>
            <author fullname="Corine de Kater" initials="C." surname="de Kater">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Nicola Rustignoli" initials="N." surname="Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Samuel Hitz" initials="S." surname="Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <date day="2" month="April" year="2026"/>
            <abstract>
              <t>   This document describes the Control Plane of the path-aware, inter-
   domain network architecture SCION (Scalability, Control, and
   Isolation On Next-generation networks).  A fundamental characteristic
   of SCION is that it gives path control to SCION-capable endpoints
   that can choose between multiple path options, thereby enabling the
   optimization of network paths.  The SCION Control Plane is
   responsible for discovering these paths and making them available to
   the endpoints.

   The SCION Control Plane creates and securely disseminates path
   segments between SCION Autonomous Systems (AS) which can then be
   combined into forwarding paths to transmit packets in the data plane.
   This document describes mechanisms of path exploration through
   beaconing and path registration.  In addition, it describes how
   Endpoints construct end-to-end paths by combining path segments
   obtained through a path lookup process.

   This document contains new approaches to secure path aware
   networking.  It is not an Internet Standard, has not received any
   formal review of the IETF, nor was the work developed through the
   rough consensus process.  The approaches in this work are offered to
   the community for its consideration in the further evolution of the
   Internet.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekater-scion-controlplane-17"/>
        </reference>
        <reference anchor="I-D.dekater-scion-dataplane">
          <front>
            <title>SCION Data Plane</title>
            <author fullname="Corine de Kater" initials="C." surname="de Kater">
              <organization>Independent</organization>
            </author>
            <author fullname="Nicola Rustignoli" initials="N." surname="Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Jean-Christophe Hugly" initials="J." surname="Hugly">
              <organization>Independent</organization>
            </author>
            <author fullname="Samuel Hitz" initials="S." surname="Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <date day="7" month="April" year="2026"/>
            <abstract>
              <t>   This document describes the Data Plane of SCION (Scalability,
   Control, and Isolation On Next-generation networks), a path-aware,
   inter-domain network architecture.

   Unlike IP-based forwarding, SCION embeds inter-domain forwarding
   directives in the packet header, enabling endpoints to construct and
   select end-to-end paths from segments discovered by the Control
   Plane.  The role of the Data Plane is to combine such segments into
   end-to-end paths, and to forward data according to the specified
   path.

   This document describes the SCION packet format, header structure,
   and extension headers.  It also describes the cryptographic
   mechanisms used for path authorization, processing at routers
   including a life of a packet example.

   This document contains new approaches to secure path aware
   networking.  It is not an Internet Standard, has not received any
   formal review of the IETF, nor was the work developed through the
   rough consensus process.  The approaches offered in this work are
   offered to the community for its consideration in the further
   evolution of the Internet.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekater-scion-dataplane-14"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC5480">
          <front>
            <title>Elliptic Curve Cryptography Subject Public Key Information</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="K. Yiu" initials="K." surname="Yiu"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography. This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5480"/>
          <seriesInfo name="DOI" value="10.17487/RFC5480"/>
        </reference>
        <reference anchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC5758">
          <front>
            <title>Internet X.509 Public Key Infrastructure: Additional Algorithms and Identifiers for DSA and ECDSA</title>
            <author fullname="Q. Dang" initials="Q." surname="Dang"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="K. Moriarty" initials="K." surname="Moriarty"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document updates RFC 3279 to specify algorithm identifiers and ASN.1 encoding rules for the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA) digital signatures when using SHA-224, SHA-256, SHA-384, or SHA-512 as the hashing algorithm. This specification applies to the Internet X.509 Public Key infrastructure (PKI) when digital signatures are used to sign certificates and certificate revocation lists (CRLs). This document also identifies all four SHA2 hash algorithms for use in the Internet X.509 PKI. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5758"/>
          <seriesInfo name="DOI" value="10.17487/RFC5758"/>
        </reference>
        <reference anchor="RFC9217">
          <front>
            <title>Current Open Questions in Path-Aware Networking</title>
            <author fullname="B. Trammell" initials="B." surname="Trammell"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>In contrast to the present Internet architecture, a path-aware internetworking architecture has two important properties: it exposes the properties of available Internet paths to endpoints, and it provides for endpoints and applications to use these properties to select paths through the Internet for their traffic. While this property of "path awareness" already exists in many Internet-connected networks within single domains and via administrative interfaces to the network layer, a fully path-aware internetwork expands these concepts across layers and across the Internet.</t>
              <t>This document poses questions in path-aware networking, open as of 2021, that must be answered in the design, development, and deployment of path-aware internetworks. It was originally written to frame discussions in the Path Aware Networking Research Group (PANRG), and has been published to snapshot current thinking in this space.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9217"/>
          <seriesInfo name="DOI" value="10.17487/RFC9217"/>
        </reference>
        <reference anchor="X.509" target="https://handle.itu.int/11.1002/1000/13031">
          <front>
            <title>ITU-T X.509 (10/2016) | Information technology – Open Systems Interconnection – The Directory: Public-key and attribute certificate frameworks</title>
            <author>
              <organization/>
            </author>
            <date year="2016" month="January"/>
          </front>
        </reference>
        <reference anchor="X.680" target="https://handle.itu.int/11.1002/1000/14468">
          <front>
            <title>ITU-T X.680 (02/2021) | Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization/>
            </author>
            <date year="2021" month="January"/>
          </front>
        </reference>
        <reference anchor="X.690" target="https://handle.itu.int/11.1002/1000/14472">
          <front>
            <title>ITU-T X.690 (02/2021) | Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization/>
            </author>
            <date year="2021" month="January"/>
          </front>
        </reference>
        <reference anchor="X9.62">
          <front>
            <title>ANSI X9.62-1998 | Public Key Cryptography For The Financial Services Industry: The Elliptic Curve Digital Signature Algorithm</title>
            <author>
              <organization/>
            </author>
            <date year="1998"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="ISD-AS-assignments" target="http://scion.org/registry/">
          <front>
            <title>SCION Registry</title>
            <author>
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="RFC8210">
          <front>
            <title>The Resource Public Key Infrastructure (RPKI) to Router Protocol, Version 1</title>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>In order to verifiably validate the origin Autonomous Systems and Autonomous System Paths of BGP announcements, routers need a simple but reliable mechanism to receive Resource Public Key Infrastructure (RFC 6480) prefix origin data and router keys from a trusted cache. This document describes a protocol to deliver them.</t>
              <t>This document describes version 1 of the RPKI-Router protocol. RFC 6810 describes version 0. This document updates RFC 6810.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8210"/>
          <seriesInfo name="DOI" value="10.17487/RFC8210"/>
        </reference>
        <reference anchor="BARRERA17">
          <front>
            <title>The SCION internet architecture</title>
            <author fullname="David Barrera" initials="D." surname="Barrera">
              <organization>ETH Zürich in Switzerland</organization>
            </author>
            <author fullname="Laurent Chuat" initials="L." surname="Chuat">
              <organization>ETH Zürich in Switzerland</organization>
            </author>
            <author fullname="Adrian Perrig" initials="A." surname="Perrig">
              <organization>ETH Zürich in Switzerland</organization>
            </author>
            <author fullname="Raphael M. Reischuk" initials="R." surname="Reischuk">
              <organization>ETH Zürich in Switzerland</organization>
            </author>
            <author fullname="Pawel Szalachowski" initials="P." surname="Szalachowski">
              <organization>ETH Zürich in Switzerland</organization>
            </author>
            <date month="May" year="2017"/>
          </front>
          <seriesInfo name="Communications of the ACM" value="vol. 60, no. 6, pp. 56-65"/>
          <seriesInfo name="DOI" value="10.1145/3085591"/>
          <refcontent>Association for Computing Machinery (ACM)</refcontent>
        </reference>
        <reference anchor="CHUAT22" target="https://doi.org/10.1007/978-3-031-05288-0">
          <front>
            <title>The Complete Guide to SCION</title>
            <author initials="L." surname="Chuat" fullname="Laurent Chuat">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="M." surname="Legner" fullname="Markus Legner">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Basin" fullname="David Basin">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Hausheer" fullname="David Hausheer">
              <organization>Otto von Guericke University Magdeburg</organization>
            </author>
            <author initials="S." surname="Hitz" fullname="Samuel Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <author initials="P." surname="Mueller" fullname="Peter Mueller">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2022"/>
          </front>
          <seriesInfo name="ISBN" value="978-3-031-05287-3"/>
        </reference>
      </references>
    </references>
    <?line 1230?>

<section anchor="cert-asn1">
      <name>Certificate Extensions in ASN.1 Syntax</name>
      <artwork><![CDATA[
SCION-CP-PKI-CERT-EXTENSIONS {
    iso(1) identified-organization(3) dod(6) internet(1) private(4)
    enterprise(1) scion(55324) module(0) id-scion-pki-cert-ext(101)
}

DEFINITIONS EXPLICIT TAGS ::=
BEGIN

-- Root SCION object identifier (IANA Private Enterprise Number 55324)
id-scion OBJECT IDENTIFIER ::= { 1 3 6 1 4 1 55324 }

-- SCION Control Plane PKI
id-cppki OBJECT IDENTIFIER ::= { id-scion 1 }

-- SCION ISD-AS Attribute
id-at-ia AttributeType ::= {id-scion id-cppki(1) id-at(2) 1}

-- SCION Key Purposes
id-scion-kp OBJECT IDENTIFIER ::= { id-cppki 3 }

-- Identifies a Sensitive voting certificate
id-kp-sensitive OBJECT IDENTIFIER ::= { id-scion-kp 1 }

-- Identifies a Regular voting certificate
id-kp-regular   OBJECT IDENTIFIER ::= { id-scion-kp 2 }

-- Identifies a Root certificate
id-kp-root      OBJECT IDENTIFIER ::= { id-scion-kp 3 }

END
]]></artwork>
    </section>
    <section anchor="trc-asn1">
      <name>TRC in ASN.1 Syntax</name>
      <artwork><![CDATA[
SCION-CP-PKI-TRC {
    iso(1) identified-organization(3) dod(6) internet(1) private(4)
    enterprise(1) scion(55324) module(0) trc(1)
}

DEFINITIONS EXPLICIT TAGS ::=
BEGIN

IMPORTS
    Certificate
        FROM PKIX1Explicit88 {
            iso(1) identified-organization(3) dod(6) internet(1)
            security(5) mechanisms(5) pkix(7) id-mod(0)
            id-pkix1-explicit(18)
        };

TRCValidity ::= SEQUENCE {
    notBefore          GeneralizedTime,
    notAfter           GeneralizedTime
}

TRCPayload ::= SEQUENCE {
    version            TRCFormatVersion,
    iD                 TRCID,
    validity           TRCValidity,
    gracePeriod        INTEGER,
    noTrustReset       BOOLEAN,
    votes              SEQUENCE SIZE (0..2047) OF INTEGER (0..4095),
    votingQuorum       INTEGER (1..2047),
    coreASes           SEQUENCE OF ASN,
    authoritativeASes  SEQUENCE OF ASN,
    description        UTF8String (SIZE (0..8192)),
    certificates       SEQUENCE SIZE (0..4095) OF Certificate
}

TRCFormatVersion ::= INTEGER { v1(0) }

TRCID ::= SEQUENCE {
    iSD                ISD,
    serialNumber       INTEGER (1..MAX),
    baseNumber         INTEGER (1..MAX)
}

ISD ::= INTEGER (1..65535)

ASN ::= PrintableString

END
]]></artwork>
    </section>
    <section anchor="initial-ceremony">
      <name>Signing Ceremony Initial TRC</name>
      <t>A Signing Ceremony is used to create the initial (first) Trust Root Configuration of an ISD. Each ISD may decide how to conduct this ceremony, but it is <bcp14>RECOMMENDED</bcp14> to establish a procedure similar to the one described below:</t>
      <section anchor="ceremony-participants">
        <name> Ceremony Participants</name>
        <t>The Signing Ceremony <bcp14>SHOULD</bcp14> include the following participants:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Ceremony Administrator</strong> - an individual in charge of moderating the signing process, guiding the participants through the steps, and acting as an intermediary for sharing information. The Ceremony Administrator is typically appointed by the ISD Manager or by resolution of the Voting ASes.</t>
          </li>
          <li>
            <t><strong>Voting AS Representatives</strong> - individuals representing each Voting AS who are able to create voting signatures on the TRC. They are in possession of a device with the private keys of their respective certificates in the TRC.</t>
          </li>
          <li>
            <t><strong>Witness(es)</strong> - individual(s) who have no active role in the Signing Ceremony but may stop the process and request more information if they feel its integrity may have been compromised. The Witness(es) are typically appointed by resolution of the Voting ASes.</t>
          </li>
        </ul>
        <t><strong>Note:</strong> The ISD members <bcp14>MUST</bcp14> decide on the roles of the Signing Ceremony participants in advance of Signing Ceremony, and <bcp14>MUST</bcp14> have reached agreement about the Certificate Authority (CA) ASes (that will also issue the root certificates). It is assumed that all parties are trustworthy and issues encountered during the Signing Ceremony may be assumed to be caused by honest mistakes and not by malicious intent. Hash comparison checks are included to counter mistakes and so that every participant can ensure they are operating on the same data, and the private keys of each participant never leave their machine. The Ceremony Administrator does not have to be entrusted with private keys.</t>
      </section>
      <section anchor="ceremonyprep">
        <name>Ceremony Preparations</name>
        <t>The participants <bcp14>MUST</bcp14> decide in advance on the physical location of the Signing Ceremony, the devices that will be used, and the ISD policy as follows:</t>
        <ul spacing="normal">
          <li>
            <t>ISD number - usually obtained from the SCION registry, see <xref target="id"/>;</t>
          </li>
          <li>
            <t>The description of the TRC, see <xref target="description"/>;</t>
          </li>
          <li>
            <t>Validity period of the TRC, see <xref target="validity-trc"/>;</t>
          </li>
          <li>
            <t>Grace period of the TRC (except for Base TRCs);</t>
          </li>
          <li>
            <t>Voting quorum for the TRC, see <xref target="quorum"/>;</t>
          </li>
          <li>
            <t>AS numbers of the Core ASes, see <xref target="core"/>;</t>
          </li>
          <li>
            <t>AS numbers of the Authoritative ASes, see <xref target="auth"/>;</t>
          </li>
          <li>
            <t>The list of Control Plane Root Certificates.</t>
          </li>
        </ul>
        <t>Each representative of a Voting AS <bcp14>MUST</bcp14> also create the following before the ceremony:</t>
        <ul spacing="normal">
          <li>
            <t>A sensitive voting private key and a self-signed certificate containing the corresponding public key.</t>
          </li>
          <li>
            <t>A regular voting private key and a self-signed certificate containing the corresponding public key.</t>
          </li>
        </ul>
        <t>In addition, each Certificate Authority <bcp14>MUST</bcp14> create a control plane root private key and a self-signed certificate containing the corresponding public key. A representative of the Certificate Authority need not be present at the ceremony as they do not need to sign the TRC, but they <bcp14>MUST</bcp14> provide their root certificate to be shared at the ceremony. The validity period of the certificates generated in advance <bcp14>MUST</bcp14> cover the full TRC validity period.</t>
        <t>The location <bcp14>MUST</bcp14> provide electricity and power sockets for each participant, and should provide a monitor or projector that allows the Ceremony Administrator to display proceedings.</t>
        <t>The Ceremony Administrator and Voting ASes <bcp14>MUST</bcp14> each bring to the Signing Ceremony a secure machine capable of signing and verifying TRCs and computing the SHA-512 digest of the files. For voting ASes, the machine requires access to their own sensitive and regular voting private keys.</t>
        <t>The Ceremony Administrator <bcp14>MUST</bcp14> provide or be provided with a device to exchange data between the ceremony participants.</t>
        <t>The Signing Ceremony <bcp14>SHOULD</bcp14> include a procedure to verify that all devices are secure.</t>
      </section>
      <section anchor="ceremonyprocess">
        <name> Ceremony Phases</name>
        <t>The number of Voting ASes present at the Signing Ceremony must be equal to or larger than the specified voting quorum.</t>
        <t>The signing process has four phases of data sharing, led by the Ceremony Administrator who provides instructions to the other participants:</t>
        <section anchor="phase1">
          <name>Certificate Exchange</name>
          <t>All parties share the certificates that must be part of the TRC with the Ceremony Administrator. For the Voting ASes, these are the sensitive and the regular voting certificates, and for the Certificate Authority these are the Control Plane root certificates.</t>
          <t>Each representative copies the requested certificates from their machine onto a data exchange device provided by the Ceremony Administrator that is passed between all representatives, before being returned to the Ceremony Administrator. Representatives <bcp14>MUST NOT</bcp14> copy the corresponding private keys onto the data exchange device as this invalidates the security of the ceremony.</t>
          <t>The Ceremony Administrator then checks that the validity period of each provided certificate covers the previously agreed upon TRC validity, that the signature algorithms are correct, and that the certificate type is valid (root, sensitive voting or regular voting certificate). If these parameters are correct, the Ceremony Administrator computes the SHA-512 hash value for each certificate, aggregates and bundles all the provided certificates, and finally calculates the SHA-512 hash value for the entire bundle. All hash values must be displayed to the participants.</t>
          <t>The Ceremony Administrator <bcp14>MUST</bcp14> then share the bundle with the representatives of the voting ASes who <bcp14>MUST</bcp14> validate on their machine that the hash value of their certificates and that of the bundled certificates is the same as displayed by the Ceremony Administrator.</t>
          <t>This phase concludes when every representative has confirmed the SHA-512 sums are correct. If there is any mismatch then this phase <bcp14>MUST</bcp14> be repeated.</t>
        </section>
        <section anchor="phase2">
          <name>Generation of the TRC Payload</name>
          <t>The Ceremony Administrator generates the TRC payload based on the bundled certificates and the <xref target="trcfields"/> completed in accordance with ISD policy, see <xref target="ceremonyprep"/>.</t>
          <t>For each bundled certificate, the voting representatives <bcp14>MUST</bcp14> then verify the certificate type and that the following fields contain the correct information:</t>
          <ul spacing="normal">
            <li>
              <t><tt>issuer</tt></t>
            </li>
            <li>
              <t><tt>subject</tt></t>
            </li>
            <li>
              <t><tt>validity</tt></t>
            </li>
            <li>
              <t><tt>signature</tt></t>
            </li>
          </ul>
          <t>Once the voting representatives have verified the TRC data, the Ceremony Administrator computes the DER encoding of the data according to <xref target="trc-asn1"/> and the SHA-512 hash value of the TRC payload file. The TRC payload file is then shared with the voting representatives via the data exchange device who verify the TRC payload hash value by computing this on their machine and checking it matches the one displayed by the Ceremony Administrator.</t>
          <t>This phase concludes when all voting representatives confirm that the contents of the TRC payload are correct.</t>
        </section>
        <section anchor="phase3">
          <name>TRC Signing</name>
          <t>Each voting representative attaches a signature created with their own private voting key to the TRC (payload file), using their own machine. This serves to prove possession of the private keys.</t>
          <t>This phase concludes when all voting representatives have attached their signatures to the TRC.</t>
        </section>
        <section anchor="phase4">
          <name>TRC Validation</name>
          <t>All voting representatives copy the TRC payload signed with their private voting keys to the data exchange device and return this to the Ceremony Administrator. The Ceremony Administrator assembles the final TRC by aggregating the payload data and verifying the signatures based on the certificates exchanged during phase <xref target="phase1"/>. The Ceremony Administrator then shares the assembled TRC with all participants who <bcp14>MUST</bcp14> again inspect the signatures and verify them based on the certificates exchanged in phase <xref target="phase1"/>.</t>
          <t>The Signing Ceremony is completed once when every voting representative confirms that the signatures match. All participants can then use the TRC to distribute trust anchors for the ISD.</t>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="change-log">
      <name>Change Log</name>
      <t>Changes made to drafts since ISE submission. This section is to be removed before publication.</t>
      <section numbered="false" anchor="draft-dekater-scion-pki-12">
        <name>draft-dekater-scion-pki-12</name>
        <ul spacing="normal">
          <li>
            <t>Overall review and wording polish</t>
          </li>
          <li>
            <t>Introduction: shorten and refer to -controlplane</t>
          </li>
          <li>
            <t>Consistently use "Issuing CA certificate" / root certificate"</t>
          </li>
          <li>
            <t>Sections 2 and 3 (Certificate, TRC specification): reduce number of subheadings, reword TRC field descriptions. - Clarify that TRC validity uses GeneralizedTime</t>
          </li>
          <li>
            <t>Add ASN.1 modules in the appendix for Certificate extensions and TRCs</t>
          </li>
          <li>
            <t>Tables 3-7: sharpen normative language use</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-pki-11">
        <name>draft-dekater-scion-pki-11</name>
        <ul spacing="normal">
          <li>
            <t>Signing ceremony: minor updates to align with current process</t>
          </li>
          <li>
            <t>Signature field: clarify implications of using other algorithms or curves and mention mti set may be updated in future protocol iterations</t>
          </li>
          <li>
            <t>Clarify distinction between SCION ASes and BGP ASes through the text.</t>
          </li>
          <li>
            <t>Intro: remove duplicated motivation and component description and add a reference to the same text in -controlplane</t>
          </li>
          <li>
            <t>Clarify that initial AS certificates may have a longer validity to allow enough time for deployment</t>
          </li>
          <li>
            <t>"SCION-Specific Constraints and Conditions" section: drop requirement to use "UTF8String" for all fields, allow use of GeneralizedTime to align with RFC5280</t>
          </li>
          <li>
            <t>Security considerations: move and reword section "Dependency on Certificates" to new section "Deployment Considerations"</t>
          </li>
          <li>
            <t>Security considerations: new section on TRC Distribution</t>
          </li>
          <li>
            <t>Remove informative reference to I-D.dekater-panrg-scion-overview and to Anapaya's ISD assignments, since they are taken over by SCION Association in 2026. Remove unused references to RFC5398 and RFC6996.</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-pki-10">
        <name>draft-dekater-scion-pki-10</name>
        <ul spacing="normal">
          <li>
            <t>removed ISD assignment table and replaced to reference in Control Plane draft</t>
          </li>
          <li>
            <t>Updated number assignment reference</t>
          </li>
          <li>
            <t>Signatures: mention that other algorithms that ECDSA may be used in the future</t>
          </li>
          <li>
            <t>Figures: add SVG version</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-pki-09">
        <name>draft-dekater-scion-pki-09</name>
        <ul spacing="normal">
          <li>
            <t>Signing ceremony and introduction - improved text</t>
          </li>
          <li>
            <t>Clarified why a CA must have an ISD-AS number assigned</t>
          </li>
          <li>
            <t>Mention Active Discovery as a TRC discovery mechanism</t>
          </li>
          <li>
            <t>Abstract: mention goal and that document is not an Internet Standard</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-pki-08">
        <name>draft-dekater-scion-pki-08</name>
        <ul spacing="normal">
          <li>
            <t>Fix some oversized diagrams</t>
          </li>
          <li>
            <t>Introduction text rewording</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-pki-07">
        <name>draft-dekater-scion-pki-07</name>
        <t>Minor changes:</t>
        <ul spacing="normal">
          <li>
            <t>Clarified relationship with RPKI.</t>
          </li>
          <li>
            <t>Added this changelog</t>
          </li>
          <li>
            <t>General text editing</t>
          </li>
          <li>
            <t>References: fixed ITU, ANSI, Assigned ISD-AS, fixed cross-reference to text formatting in the CP draft</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-pki-06">
        <name>draft-dekater-scion-pki-06</name>
        <t>Major changes:</t>
        <ul spacing="normal">
          <li>
            <t>Added overview of SCION components to Introduction section.</t>
          </li>
        </ul>
        <t>Minor changes:</t>
        <ul spacing="normal">
          <li>
            <t>General edits to make terminology consistent, remove duplication and rationalize text.</t>
          </li>
          <li>
            <t>Removed forward references.</t>
          </li>
          <li>
            <t>Added RFC2119 compliant terminology.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks go to Fritz Steinmann (SIX Group AG), Juan A. Garcia Prado (ETH Zurich), Russ Housley (IETF), Brian Trammell (Google), Ramon Keller (LibC Technologies), Patrick Ambord (independent), Dominik Roos (Anapaya), and Kevin Meynell (SCION Association) for reviewing this document. We are also very grateful to Adrian Perrig (ETH Zurich), for providing guidance and feedback about each aspect of SCION. Finally, we are indebted to the SCION development teams of Anapaya and ETH Zurich, for their practical knowledge and for the documentation about the CP-PKI, as well as to the authors of <xref target="CHUAT22"/> - the book is an important source of input and inspiration for this draft.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9W923YbR5Yg+s6vyKHWOgZoABIpyZZY5ZqGKMrm2JLYJO2q
7p5apQSQJLMJIFGZCVIsSb36H868zNt8y3xKf8nZ14gdkZkgJbum57BdLRLI
jMuOHft+GQ6HW3Vez7P9ZPv04Ojtm+SgWNZlMU+O5+kyS45/PNreSieTMrv2
TxwP6eNpWmcXRXm7n+TL82KrWk8WeVXl8P7tKsMPZ9kqg/+3rLe2ZsV0mS7g
01mZntfDWXYFL5fDagqPD1dX+XB3bwtmeLz1IEnLLIW5jk7OXm3DnzdFeXVR
FusVfHac1pfJ+AaeSN5kNX6TLy+Sk++3t66yW/hztp8cLWHcZVYPX+JEW9fZ
cp3twzDJ3WPAQ7zy7ZOsytJyepl8jy/RN4s0n8M3q3RZXvxDXtbno6K8oG/w
Qfjmsq5X1f7Dhzc3N6M84+8f4ltDfCC/zh7eZJOH9P7D7S1YT15frifwIsEg
rapimqc1/PqQgTJdAVj+cjR8iQ/PAVpVbWaJXxrxcKO8iF9/2AHx0WW9mG9v
baXr+rIo97eSYZLAmVX7ycEomWXJj/g4TA0/fHIHRZkDRoRfwSb3E0aLsV8N
f5cxzKZ/mWV/ocn/4WLxfjS93DJzvRklJ+uqzi+WxTy3s73Jp8U8bXx5j/mW
+fQfaJd4Anau01HyQ17/zc5ymi7W2dx8TOOPl+kqvU2T09uqzhZVMPolPPoP
KT8wAjzb2loW5QJWcQ1oliQA8FEI6infpxVep/YnZmmduq9PXh083Xv2SH99
4n/95ume/vrt02fy6/O93W/x1z+Nnj56vk8r1et8dPbz8Iy/SHq7jx7uPdr9
pp98hBtyzisulkmdTS8BuMXFbfIf//7/Jm/hvuqu+SbB6pfZlJ7FB84us+Rl
XsIndO+P15N5Ph3C5UvS5SxJ67rMJ+s6S6ZZWefnOVKI5LwEUOM9q7ZpfbBd
WJ4siFeclhcZYLci9yUMNs9Geb0e5cv64e7uaPfRo72H8P8ePdx9/OjxLm34
GwZNc8PwRdKD5/ce7e1u2PAwGU+qukynNWx5WafvkzdFzU+9BTzvjU/fjHb7
gCOrbMp7wa+K82SSVvk0WcrDdlMy6edv6smTb57xpp53ber5fTeFy06y5bSY
IWEr1/OsatnEC9rEoT52go8lvReHJ/1BcpAuC7hF6bzx/QF8T0f9Mod7ubxY
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
zQAqX299pG3t6n55BYpwMs6bwoqWZhx++THC4GPSo7A0eB9+/kDj2MAMHCcI
YnHT0dMOlh8Jzv1gPaPRqAn2GHD8jxunAZ/7nkkEn8ZE9/y5D1Z83YKf7ViB
miwJ2wJCWMbHUyf18ocf298MBDDaQMtnv+lq/3MghD+/UOySLgM/O/WWt/+b
99n2s2Gf8HNwLOq+5Zn+sc4526f+etOcGzfsP228+XU8evucLbesZfTg09/s
+ev2TxvPhzv4uuPjxmsf4ZSOnAHkY8fHzdeC+/mx4+PWRbqDbCzy665F8tDh
v+ab3+T56+hf84193sLz6+iv8E/7Fi7iALMtEr0h/q/wz+AtA8yP0V/hn1+4
QhRK/m3rw37yQIUozjj/bvuAhKV2oWsbtN8xKjD2XpNlLO/SVsSGxt6r68ea
lkm2ViykAbIbOSuMa8AZVlxCZJXNz4cakR/oY0ZnnOO6rV8tOe16zUXGe6U2
nV2jmnDhcrDi4fYpWOkMzfeL9IpfFwdf4N+L3HvOHEChBi4aSd/0driaXRcZ
mUqySkM92bVecrrFjMMlnGNLYnmNrwjecBHC4Z5J5vc2ZlCNjKHCuf9EI8FZ
41DzpIcSrgSCD9VK2O+77EESAzlEHn3AOORtR9LxiKgFQphe4pwOrxhS0hfZ
F1zWi4Y7Z+xZS31isHVgCxq2VEqSvCuxWg8UriafomnYw21kbEChB8k8htFf
lYbVSRaBG6cnb5Mbm7OdfIoUJzjzptzJkDNCsi5yKuExrihP5WBctSfaCG2O
zxdWxKtRQ+1DNtws4PJco28F521EjxM2/72DxJ1/Qzw05Ij1AQeXxXwmoc4O
sytna7cJJgSQbWOQ3uZtNTNkPLLcMxeGHr53mov3vZCV95Vk2nXZBtE4hRYv
pBH0gqbmMQDIL4eEEe2kNZqdMRBcYqySdIEudI9GGlhEKWupDy1Kpxh/45Lu
6eKlU2eDVaeE+r4VomTJwDukfuuKA4DQpd4g82T5DV28JitTPb1xIigA7BUh
Y07HijYfZ1Q24SC3Eo4gxjvOh/WJI3HolIncw1focQpp5ge9xdjkrzXzmwZR
3IffPdoFDsY9rEkAp1plGjHoDsCFkERLVMhzON22c5AHgQ3b3s/CHoeOPGpM
HXovFnt3jVrcOr3aZul0eNz6xiLuEpoyNtpgmvxqDZwZSDz8C5z+GFTj0iXn
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
QoSiJiQWp/yjnWwCzX2kCNDLLp3f9o1tSUQM5I37HUrLWu48iMebD+Kx2hU9
vdkwmzqqfEeLlOsueiptb0w0cEvlSenF6aqnMQ+RZm0uzOXdflxvoTtJp9Ho
TXvl2JuySm/nRTobCcMi4gzPf848B9bPQh1pwynCCFFv8w7pOuKmiLtH56HY
8B///j+rAIkaZSlCb1L3NpNeE6J+IX0qR6e3z50sNdPCeDrqzrpR2mkojJps
PcMUcep/QG7tqeKIWBDU7a3KF+3SmwV7WuHiLmLU7yif4Iux3ckZXCedJnOh
5PQ/smWdiIh4s/3LwmcD2uXo1tYWdW9qqYsYuZyTddUUO11EgKaKTk0StAgl
YmqrYtvzxnvsx+VrSnWC2O3hg3MDhz11tWiseoTZLTao4Ay3EoZ3UAxSa4yH
LX7Q+I7CMVrecbGMwcewjOGGn6T76w1fdX7X8TktY8fZz/d3Wpbf+bMpDqvr
u47PcRntnIvLDeChSK/7liE7v+r87mOi/eiby2iSHjSG63tW70+rChAJ7g9H
iLZ/tdd3r9nPNw2n0HBk3qzAvtcYb/NXXdN1L8PnOTzR8B89JHNGw7BUXvu9
c3luzTJJQo6MMeXuygYuH6KzHMmXjCoFGQPjQCBxwRfDVqkreMODxtM6Ew20
Zjm7W+z6fEGrfXqVtdolqSdOf3SE3FTYbpBlAgMKjZi6GKFAbGA8DZX8Pe9Q
J5GPhSbgVlerITUpLbEmMAgzIFKA4tioYWaFGlQVWipGc7PTuN7tyM8zxQbk
9a+fh8fpngfzYk5rUGUAivefqb6Mikoh0GGkCkeipsNxocWN52EiXMb/FDhD
Ik+sOWZZPwafYuiK/MXh+Bq2okcmodvvtNhuJCTaqDtuRFuvV9SD2PtZ2srY
bCjgMLhHcQvyOtmSw21Cljfk47vOXRsSsM3XSoQRInNtKNImLDWEFt8DKUw9
/83EmA2CTJcY85kijOeZmwSZDfLKZworGwWf+0s0GwSXz5Ra7hWJTsy8A5FE
uumUYDrElA1iTbcoZFbToLzRIFYacKmI3V94kUM/U7tga301VyQOpx9q79xY
FTz76TSRzgqjrpnNZgx5/8/YDE//W20m4CHNzYQb4S86Trvjhc6BIkzp5hZe
/4Qv4fM+CsCWhTRn+LhpnS053vsxE2oMSVJgewb7fpNZtazICLhPVcA1V/VL
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

-->

</rfc>
