<?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.30 (Ruby 3.4.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-pki-11" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="SCION CP-PKI">SCION Control Plane PKI</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-pki-11"/>
    <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="January" day="16"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 137?>

<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 where the Control Plane PKI handles cryptographic material and is the foundation of the authentication procedures in SCION. It is used by SCION's Control Plane (<xref target="I-D.dekater-scion-controlplane"/>) to authenticate and verify path information, and provisions SCION's trust model based on Isolation Domains.</t>
      <t>This document describes the trust model behind the SCION Control Plane PKI, including the specifications of the different types of certificates and the Trust Root Configuration. It also describes how to deploy the Control Plane 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 145?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>SCION is a path-aware internetworking routing architecture as described in <xref target="RFC9217"/>. It allows endpoints and applications to select paths across the network to use for traffic, based on trusted path properties. SCION is an inter-domain network architecture and is therefore not concerned with intra-domain forwarding.</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>
      <t>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>The SCION architecture was initially developed outside of the IETF by ETH Zurich with significant contributions from Anapaya Systems. It is deployed in the Swiss finance sector to provide resilient connectivity between financial institutions. The aim of this document is to document the existing protocol specification as deployed, to encourage interoperability among implementations, and to introduce new concepts that can potentially be further improved to address particular problems with the current Internet architecture.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t><strong>Control Plane PKI (CP-PKI)</strong>: The control plane PKI 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), it 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. A trust reset <bcp14>SHOULD</bcp14> only be triggered after a catastrophic event involving the loss or compromise of several important private keys.</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 outside their own trust bubble.</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 for achieving high availability, scalability, and support for heterogeneous trust. 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 digital 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 policies governing the number of signatures required for performing different types of actions. 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> - that is it enables 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>As previously mentioned, 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 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 simply 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.</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 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 152,464 L 152,512" 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,392" fill="none" stroke="black"/>
                <path d="M 200,408 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 328,464 L 328,512" fill="none" stroke="black"/>
                <path d="M 328,576 L 328,624" fill="none" stroke="black"/>
                <path d="M 376,368 L 376,392" fill="none" stroke="black"/>
                <path d="M 376,408 L 376,456" fill="none" stroke="black"/>
                <path d="M 376,512 L 376,568" fill="none" stroke="black"/>
                <path d="M 424,464 L 424,512" fill="none" stroke="black"/>
                <path d="M 424,576 L 424,624" 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 152,464 L 248,464" fill="none" stroke="black"/>
                <path d="M 328,464 L 424,464" fill="none" stroke="black"/>
                <path d="M 152,512 L 248,512" fill="none" stroke="black"/>
                <path d="M 328,512 L 424,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="188" y="484">CP</text>
                  <text x="212" y="484">CA</text>
                  <text x="364" y="484">CP</text>
                  <text x="388" y="484">CA</text>
                  <text x="200" 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 CA   |         |   CP 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 <xref target="initial-ceremony">Signing Ceremony</xref>.</t>
        <t>All ASes in SCION have the task to sign and verify control plane messages. However, certain ASes have additional roles:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Core ASes</strong>: Core ASes 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>: Only certain ASes within an ISD 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>: Authoritative ASes are those ASes in an ISD that 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 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>This section provides a detailed specification of all certificates used by the Control Plane PKI.</t>
      <section anchor="overview">
        <name>SCION Control Plane PKI Keys and Certificates - Overview</name>
        <t>There are three types of Control Plane (CP) certificates: root certificates, 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 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 CA certificates. Consequently, the public key of the Control Plane Root certificate is used to verify Control Plane 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 <em>self-signed</em> CA certificates. That is, issuer and subject of the certificate are the same entity, and the public key in the root certificate can be used to verify the root certificate's 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> <strong>maximum validity period</strong> 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-ca-certificate">
          <name>Control Plane CA Certificate</name>
          <t>The private key of the Control Plane CA is used to sign Control Plane AS certificates. Consequently, Control Plane 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 CA certificate is in a Control Plane root certificate. CA certificates do not bundle the root certificate needed to verify them. In order to verify a 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> <strong>maximum validity period</strong> of a Control Plane CA certificate is 11 days.</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> <strong>maximum validity period</strong> 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 <bcp14>MAY</bcp14> cast votes in the TRC update process. Voting certificates are X.509-style certificates.</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 state which keys <bcp14>MAY</bcp14> cast votes 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> <strong>maximum validity period</strong> of a regular voting certificate is 1 year.</t>
          </section>
          <section anchor="sensitive-voting-certificate">
            <name>Sensitive Voting Certificate</name>
            <t>Sensitive voting certificates specify which keys <bcp14>MAY</bcp14> cast votes 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> <strong>maximum validity period</strong> of a sensitive voting certificate is 5 years.</t>
            <t><strong>Note</strong>:</t>
            <ul empty="true">
              <li>
                <t>Both SCION Control Plane root certificates and Control Plane CA certificates are in fact CA certificates. That is, they can both be used to verify other certificates.</t>
                <t>One important difference between both certificate types lies in their validity period: A SCION Control Plane root certificate has a <bcp14>RECOMMENDED</bcp14> maximum validity period of one year, whereas the <bcp14>RECOMMENDED</bcp14> maximum validity period of a SCION Control Plane CA certificate is 11 days. This is because a root certificate is part of the TRC of an ISD, which itself also has a <bcp14>RECOMMENDED</bcp14> maximum validity period of one year (see <xref target="_table-2"/> below). This ensures that the TRC need not be updated all the time and is thus relatively stable.</t>
                <t>The SCION root private key and public key/certificate are used to sign and verify the Control Plane CA certificates, respectively. The control plane CA certificates are explicitly NOT part of the TRC, for reasons of security. The Control Plane CA certificates are used to verify the Control Plane AS certificates, which in turn are used to verify control plane messages. Routing is made more secure if both the SCION Control Plane CA and AS certificates can be renewed on a very regular basis. If the control plane CA and AS certificates were part of the TRC, then the TRC would have to be updated constantly, which is undesirable.</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="formal">
          <name>Certificates - Formal Overview</name>
          <t><xref target="_table-2"/> and <xref target="_table-3"/> below provide an overview of the different types of key pairs and certificates in the control plane PKI.</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 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 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 CA certificates is <bcp14>RECOMMENDED</bcp14> to enable the best possible operational procedures when performing a 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 update chain and the different types of associated certificates. Arrows show how signatures are verified; in other words, they indicate that a public key contained in a certificate or TRC can be used to verify the authenticity of another item.</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 56,736 L 56,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,736 L 152,784" fill="none" stroke="black"/>
                  <path d="M 152,832 L 152,880" 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 232,592 L 232,656" fill="none" stroke="black"/>
                  <path d="M 232,736 L 232,784" 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,736 L 328,784" 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 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 56,736 L 152,736" fill="none" stroke="black"/>
                  <path d="M 232,736 L 328,736" fill="none" stroke="black"/>
                  <path d="M 56,784 L 152,784" fill="none" stroke="black"/>
                  <path d="M 232,784 L 328,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="92" y="756">CP</text>
                    <text x="116" y="756">CA</text>
                    <text x="268" y="756">CP</text>
                    <text x="292" 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 CA   |         |   CP CA   |
      |Certificate|         |Certificate|
      +-----+-----+         +-----+-----+
            |                     |
            v                     v
      +-----------+         +-----------+
      |   CP AS   |         |   CP AS   |
      |Certificate|         |Certificate|
      +-----------+         +-----------+

]]></artwork>
            </artset>
          </figure>
        </section>
      </section>
      <section anchor="certificate-specification">
        <name>Certificate Specification</name>
        <t>Whilst the certificates used in the Control Plane PKI are X.509 v3 certificates, the SCION specification is more restrictive. This section defines these additional constraints and conditions in comparison to <xref target="RFC5280"/>.</t>
        <section anchor="basic-fields-scion-specific-constraints-and-conditions">
          <name>Basic Fields: SCION-Specific Constraints and Conditions</name>
          <t>The described fields of the Control Plane PKI certificates are relevant for each certificate regardless of the certificate type. For detailed descriptions of the full generic format of X.509 v3 certificates, see <xref target="RFC5280"/> and <xref target="X.509"/> clause 7.2.</t>
          <t><tt>TBSCertificate</tt> sequence: Contains information associated with the subject of the certificate and the CA that issued it. It includes the following fields:</t>
          <ul spacing="normal">
            <li>
              <t><tt>version</tt> field: Describes the version of the encoded certificate. It <bcp14>MUST</bcp14> be set to "v3" (as extensions are <bcp14>REQUIRED</bcp14> in SCION).</t>
            </li>
            <li>
              <t><tt>serialNumber</tt> field: 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>
            </li>
            <li>
              <t><tt>signature</tt> field: Contains the identifier for the algorithm used by the CA to sign the certificate.  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>: Currently, SCION only supports the ECDSA signature algorithm. The details can be found at: <xref target="certsign"/>.</t>
                </li>
                <li>
                  <t><strong>Additional conditions and remarks</strong>: As a consequence, the <tt>parameters</tt> field in the <tt>AlgorithmIdentifier</tt> sequence <bcp14>MUST NOT</bcp14> be used.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>issuer</tt> field: Contains the distinguished name (DN) of the entity that has issued and signed the certificate (usually a CA).  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>:      </t>
                  <ul spacing="normal">
                    <li>
                      <t>This field <bcp14>MUST</bcp14> be non-empty.</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t><strong>Additional conditions and remarks</strong>: All SCION implementations <bcp14>MUST</bcp14> support the additional SCION-specific attribute <tt>ISD-AS number</tt>. For details, see <xref target="issuer"/> and <xref target="isd-as-nr"/>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>validity</tt> field: Defines the validity period of the certificate.  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>: All certificates <bcp14>MUST</bcp14> have a well-defined expiration date. GeneralizedTime value "99991231235959Z" <bcp14>MUST</bcp14> not be used.</t>
                </li>
                <li>
                  <t><strong>Additional conditions and remarks</strong>: SCION recommends a specific maximum validity period for each type of certificate. For details, see <xref target="formal"/>. SCION implementations <bcp14>SHOULD</bcp14> adopt these values.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>subject</tt> field: Defines the entity that owns the certificate.  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>:      </t>
                  <ul spacing="normal">
                    <li>
                      <t>This field <bcp14>MUST</bcp14> be non-empty.</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t><strong>Additional conditions and remarks</strong>: The <tt>subject</tt> field is specified in the same way as the <tt>issuer</tt> field. For details, see <xref target="issuer"/> and <xref target="isd-as-nr"/>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><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>
            </li>
            <li>
              <t><tt>issuerUniqueID</tt> field: it <bcp14>MUST NOT</bcp14> be used in SCION.</t>
            </li>
            <li>
              <t><tt>subjectUniqueID</tt> field: it <bcp14>MUST NOT</bcp14> be used in SCION.</t>
            </li>
            <li>
              <t><tt>extensions</tt> sequence: Defines the extensions of the certificate. For a description of all extensions used in SCION, see <xref target="exts"/>.</t>
            </li>
          </ul>
          <section anchor="certsign">
            <name><tt>signature</tt> Field - Additional Information</name>
            <t>The <tt>signature</tt> field contains information about the signature algorithm. Current implementations use the ECDSA signature algorithm defined in <xref target="X9.62"/>.</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> Field - Additional Information</name>
            <t>The <tt>issuer</tt> field contains the distinguished name (DN) of the CA that created the certificate. <xref target="RFC5280"/>, section 4.1.2.4, describes the field's syntax and attributes. In addition to these attributes, SCION implementations <bcp14>MUST</bcp14> also support the SCION-specific attribute <tt>ISD-AS number</tt>. See <xref target="isd-as-nr"/>.</t>
            <section anchor="isd-as-nr">
              <name><tt>ISD-AS number</tt> Attribute</name>
              <t>The <tt>ISD-AS number</tt> attribute identifies the SCION ISD and AS. In the SCION open source implementation, the attribute type is <tt>id-at-ia</tt>, defined as:<br/>
                <tt>id-at-ia AttributeType ::= {id-scion id-cppki(1) id-at(2) 1}</tt></t>
              <t>where <tt>id-scion</tt> specifies the root SCION object identifier (OID).</t>
              <t><strong>Note</strong>: The root SCION object identifier (OID) for the SCION open-source implementation is the IANA Private Enterprise Number '55324':<br/>
                <tt>id-scion ::= OBJECT IDENTIFIER {1 3 6 1 4 1 55324}</tt></t>
              <t>The string representation of the <tt>ISD-AS number</tt> attribute <bcp14>MUST</bcp14> follow the text representation 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 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 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>
        <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>Currently, the following extensions are relevant for SCION:</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><strong>Important:</strong> 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> always be non-critical. However, SCION implementations <bcp14>MUST</bcp14> error out 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> always be non-critical. However, SCION implementations <bcp14>MUST</bcp14> error out 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>contentCommitment</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>keyEncipherment</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>dataEncipherment</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>keyAgreement</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>keyCertSign</tt>: The public key can be used to verify the CA signature on a control plane certificate.</t>
              </li>
              <li>
                <t><tt>cRLSign</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>encipherOnly</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>decipherOnly</tt>: Not used.</t>
              </li>
            </ul>
            <t><strong>Important:</strong> 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>If present, the <tt>keyUsage</tt> extension <bcp14>SHOULD</bcp14> be marked as "critical". That is, the <tt>critical</tt> Boolean attribute of this extension <bcp14>MUST</bcp14> be set to TRUE (the default is FALSE).</t>
            <t><strong>Note</strong>: If a certificate extension is marked "critical", the public key in the certificate <bcp14>SHOULD</bcp14> only be used for the purpose set in the critical extension.</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">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>keyUsage</tt> extension itself</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MAY</bcp14> be present (but is not required)</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>digitalSignature</tt></td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be set (1)</td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be set (2)</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be set</td>
                  <td align="left">If the extension is present, the <tt>digitalSignature</tt> attribute <bcp14>MUST NOT</bcp14> be set</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>keyCertSign</tt></td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be set</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be set</td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be set</td>
                  <td align="left">If the extension is present, the <tt>keyCertSign</tt> attribute <bcp14>MUST NOT</bcp14> be set</td>
                </tr>
              </tbody>
            </table>
            <t>(1) The root certificate <bcp14>SHOULD NOT</bcp14> be used to verify control plane messages.<br/>
(2) The CA certificate <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">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>extKeyUsage</tt> extension itself</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MAY</bcp14> be present (not required)</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</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</td>
                  <td align="left">
                    <tt>id-kp-root</tt> <bcp14>MUST</bcp14> be included. For details, see <xref target="specatt"/></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. For details, see <xref target="specatt"/><br/> Sensitive voting cert: <tt>id-kp-sensitive</tt> <bcp14>MUST</bcp14> be included. For details, see <xref target="specatt"/></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 Attributes</name>
              <t>The <tt>id-kp-root</tt>, <tt>id-kp-regular</tt>, and <tt>id-kp-sensitive</tt> attributes <bcp14>MUST</bcp14> be specified as follows:</t>
              <ul spacing="normal">
                <li>
                  <t>Root certificate:<br/> <tt>id-kp-root AttributeType ::= {id-scion id-cppki(1) id-kp(3) 3}</tt></t>
                </li>
                <li>
                  <t>Regular voting certificate:<br/> <tt>id-kp-regular AttributeType ::= {id-scion id-cppki(1) id-kp(3) 2}</tt></t>
                </li>
                <li>
                  <t>Sensitive voting certificate:<br/> <tt>id-kp-sensitive AttributeType ::= {id-scion id-cppki(1) id-kp(3) 1}</tt></t>
                </li>
              </ul>
              <t>where <tt>id-scion</tt> specifies the root SCION object identifier (OID).</t>
              <t><strong>Note</strong>: The root SCION object identifier (OID) for the SCION open-source implementation is the IANA Private Enterprise Number '55324':<br/>
                <tt>id-scion ::= OBJECT IDENTIFIER {1 3 6 1 4 1 55324}</tt></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 set to TRUE.</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">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>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</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 set to TRUE</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be set to TRUE</td>
                  <td align="left">If the extension is present, this attribute <bcp14>MUST</bcp14> be set to FALSE</td>
                  <td align="left">If the extension is present, this attribute <bcp14>MUST</bcp14> be set to FALSE</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>pathLenConstraint</tt></td>
                  <td align="left">
                    <bcp14>SHOULD</bcp14> be set to "1", <bcp14>MUST</bcp14> be marked as "critical"</td>
                  <td align="left">
                    <bcp14>SHOULD</bcp14> be set to "0" (1), <bcp14>MUST</bcp14> be marked as "critical"</td>
                  <td align="left">If the extension is present, this attribute <bcp14>MUST</bcp14> be absent.</td>
                  <td align="left">If the extension is present, this attribute <bcp14>MUST</bcp14> be absent.</td>
                </tr>
              </tbody>
            </table>
            <t>(1) Control Plane CAs can only issue end-entity certificates.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="trc-specification">
      <name>Trust Root Configuration Specification</name>
      <t>This section provides an in-depth specification of the Trust Root Configuration (TRC) file (see <xref target="trc-spec"/>). The 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>
      <section anchor="trc-spec">
        <name>TRC Specification</name>
        <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 CA 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"/>). 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="trc-format">
          <name>TRC Format</name>
          <t>The TRC defines the roots of trust of an ISD and is the basis of the ISD's Control Plane PKI. It holds the root and voting certificates of the ISD and defines the ISD's trust policy.</t>
          <section anchor="trcpayload">
            <name>TRC Schema</name>
            <t>The following code block shows the format of a TRC specification file (the payload schema):</t>
            <artwork><![CDATA[
   TRCPayload  ::=  SEQUENCE {
       version   TRCFormatVersion,
       iD        TRCID,
       validity  Validity,

       gracePeriod   INTEGER,
       noTrustReset  BOOLEAN DEFAULT FALSE,
       votes         SEQUENCE OF INTEGER (SIZE (1..255)),

       votingQuorum  INTEGER (1..255),

       coreASes           SEQUENCE OF ASN,
       authoritativeASes  SEQUENCE OF ASN,
       description        UTF8String (SIZE (0..1024)),

       certificates       SEQUENCE OF Certificate }

   TRCFormatVersion  ::=  INTEGER { v1(0) }

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

   ISD  ::=  INTEGER (1..65535)

   Validity  ::=  SEQUENCE {
       notBefore  Time,
       notAfter   Time }

   ASN  ::=  INTEGER (1..281474976710655)
]]></artwork>
            <t>The <tt>TRCPayload</tt> sequence contains the identifying information of a TRC as well as policy information for TRC updates. Furthermore, it defines the list of certificates that build the trust anchor of the ISD.</t>
            <t>For signature calculation, the data that is to be signed is encoded using ASN.1 distinguished encoding rules (DER) <xref target="X.690"/>. For more details, see <xref target="signed-format"/>.</t>
          </section>
          <section anchor="trcfields">
            <name>TRC Fields</name>
            <t>This section describes the syntax and semantics of all TRC payload fields.</t>
            <section anchor="field">
              <name><tt>version</tt> Field</name>
              <t>The <tt>version</tt> field describes the version of the TRC format specification.</t>
              <t>Currently, the version <bcp14>MUST</bcp14> always be "v1".</t>
            </section>
            <section anchor="id">
              <name><tt>iD</tt> Field</name>
              <t>The <tt>iD</tt> field specifies the unique identifier of the TRC.</t>
              <t>The identifier is a unique sequence of</t>
              <ul spacing="normal">
                <li>
                  <t>ISD number (<tt>iSD</tt> attribute),</t>
                </li>
                <li>
                  <t>base number (<tt>baseNumber</tt> attribute), and</t>
                </li>
                <li>
                  <t>TRC serial number (<tt>serialNumber</tt> attribute).</t>
                </li>
              </ul>
              <t>All numbers <bcp14>MUST</bcp14> be positive integers.</t>
              <ul spacing="normal">
                <li>
                  <t>The <strong>ISD number</strong> <bcp14>MUST</bcp14> be an integer in the inclusive range from 64 to 4094 (i.e., the numbering range for public ISDs, see <xref target="input"/>).</t>
                </li>
                <li>
                  <t>The <strong>base number</strong> 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 <bcp14>MUST</bcp14> be the case after a trust reset.</t>
                </li>
                <li>
                  <t>The <strong>serial number</strong> represents the current update cycle, counting from the initial TRC of a specific ISD.</t>
                </li>
              </ul>
              <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><strong>Example</strong><br/>
The following simple 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">Regular</td>
                    <td align="left">ISD15-B05-S07</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">
              <name><tt>validity</tt> Field</name>
              <t>The <tt>validity</tt> field defines the validity period of the TRC, which is the period of time during which the TRC is in the "valid" state. 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><strong>Note:</strong> 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 two dates, as defined in section 7.2. of <xref target="X.509"/>.</t>
              <t>In addition to this standard definition, the following constraint applies to the <tt>validity</tt> field of the TRC:</t>
              <ul spacing="normal">
                <li>
                  <t>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>
                </li>
              </ul>
            </section>
            <section anchor="grace">
              <name><tt>gracePeriod</tt> Field</name>
              <t>The <tt>gracePeriod</tt> field of a TRC specifies the period of time during which the predecessor TRC can still be considered active (the "grace period"). The grace period starts at the beginning of the validity period of the new TRC.</t>
              <t>The validity period of the predecessor TRC ends when:</t>
              <ul spacing="normal">
                <li>
                  <t>the grace period has passed;</t>
                </li>
                <li>
                  <t>the predecessor’s expiration time is reached; or</t>
                </li>
                <li>
                  <t>the successor TRC of the new TRC has been announced.</t>
                </li>
              </ul>
              <t><strong>Note:</strong> The event that happens first marks the end of the predecessor's validity period.</t>
              <t>The <tt>gracePeriod</tt> field defines the grace period as a number of seconds (positive integer).</t>
              <t>The value of the <tt>gracePeriod</tt> field in a base TRC <bcp14>MUST</bcp14> be zero. The value of the <tt>gracePeriod</tt> field in a non-base TRC <bcp14>SHOULD</bcp14> be non-zero. It <bcp14>SHOULD</bcp14> be long enough to provide sufficient overlap between the TRCs in order to facilitate interruption-free operations in the ISD. If the grace period is too short, some Control Plane AS certificates might expire before the corresponding AS can fetch an updated version from its CA.</t>
            </section>
            <section anchor="notrustreset">
              <name><tt>noTrustReset</tt> Boolean</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><strong>Important:</strong> 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><strong>Note:</strong> 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> Field</name>
              <t>The <tt>votes</tt> field contains a sequence of indices that refer to 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><strong>Note:</strong> In a base TRC, the <tt>votes</tt> sequence is empty.</t>
              <t>Every entry in the <tt>votes</tt> sequence <bcp14>MUST</bcp14> be unique.<br/>
Further restrictions on votes are discussed in <xref target="update"/>.</t>
              <t><strong>Note:</strong> The <tt>votes</tt> sequence of indices is mandatory in order to prevent stripping voting signatures from the TRC. Absence of the <tt>votes</tt> sequence makes it possible to transform a TRC with more voting signatures than the voting quorum into multiple verifiable TRCs with the same payload, but different voting signature sets. This would violate the requirement of uniqueness of a TRC.</t>
            </section>
            <section anchor="quorum">
              <name><tt>votingQuorum</tt> Field</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> Field</name>
              <t>The <tt>coreASes</tt> field contains the AS numbers of the core ASes in this ISD.</t>
              <t>Each core AS number <bcp14>MUST</bcp14> be unique in the sequence of core AS numbers. That is, each AS number <bcp14>MUST</bcp14> appear only once in the <tt>coreASes</tt> field.</t>
              <section anchor="revoking-or-assigning-core-status">
                <name>Revoking or Assigning Core Status</name>
                <ul spacing="normal">
                  <li>
                    <t>To revoke the core status of a given AS, remove the respective AS number from the sequence of AS numbers in the <tt>coreASes</tt> field.</t>
                  </li>
                  <li>
                    <t>To assign the core status to a given AS, add the respective AS number to the sequence of AS numbers in the <tt>coreASes</tt> field.</t>
                  </li>
                </ul>
                <t><strong>Important:</strong> Revoking or assigning the core status of/to an AS always requires a (sensitive) TRC update.</t>
              </section>
            </section>
            <section anchor="auth">
              <name><tt>authoritativeASes</tt> Field</name>
              <t>The <tt>authoritativeASes</tt> field contains the AS numbers of the authoritative ASes in this ISD.</t>
              <t>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>
              <ul spacing="normal">
                <li>
                  <t>Every authoritative AS <bcp14>MUST</bcp14> be a core AS and be listed in the <tt>coreASes</tt> field.</t>
                </li>
                <li>
                  <t>Each authoritative AS number <bcp14>MUST</bcp14> be unique in the sequence of authoritative AS numbers. That is, each AS number <bcp14>MUST NOT</bcp14> appear more than once in the <tt>authoritativeASes</tt> field.</t>
                </li>
              </ul>
              <section anchor="revoking-or-assigning-authoritative-status">
                <name>Revoking or Assigning Authoritative Status</name>
                <ul spacing="normal">
                  <li>
                    <t>To revoke the authoritative status of a given AS, remove the respective AS number from the sequence of AS numbers in the <tt>authoritativeASes</tt> field.</t>
                  </li>
                  <li>
                    <t>To assign the authoritative status to a given AS, add the respective AS number to the sequence of AS numbers in the <tt>authoritativeASes</tt> field.</t>
                  </li>
                </ul>
                <t><strong>Important:</strong> Revoking or assigning the authoritative status of/to an AS always requires a (sensitive) TRC update.</t>
              </section>
            </section>
            <section anchor="description">
              <name><tt>description</tt> Field</name>
              <t>The <tt>description</tt> field contains a UTF-8 encoded string that describes the ISD.</t>
              <ul spacing="normal">
                <li>
                  <t>The <tt>description</tt> field <bcp14>SHOULD NOT</bcp14> be empty.</t>
                </li>
                <li>
                  <t>The description of the ISD <bcp14>MUST</bcp14> be in English. Additionally, the <tt>description</tt> field <bcp14>MAY</bcp14> contain information in other languages.</t>
                </li>
              </ul>
            </section>
            <section anchor="cert">
              <name><tt>certificates</tt> Field</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><strong>Note</strong>: 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. That is, each certificate <bcp14>MUST NOT</bcp14> appear more than once in the <tt>certificates</tt> field.</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 <em>sensitive</em> 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 <em>regular</em> voting certificates specified in the TRC's <tt>certificates</tt> field.</t>
                </li>
              </ul>
            </section>
          </section>
        </section>
        <section anchor="signed-format">
          <name>TRC Signature Syntax</name>
          <t>A TRC contains policy information about an ISD and acts as a distribution mechanism for the trust anchors of that ISD.</t>
          <t>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>
          <section anchor="scion-specific-rules">
            <name>SCION-specific rules</name>
            <t>SCION implementations <bcp14>MUST</bcp14> fulfil 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 signing CA certificates are <strong>not</strong> 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>The following section explains how to build a trust anchor pool.</t>
          <t><strong>Note:</strong> 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>
          <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). The TRC update chain consists of regular and sensitive TRC updates, and the type of update determines the (payload) information that changes in the updated TRC.</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. To verify a TRC update, a relying party <bcp14>MUST</bcp14> perform a couple of checks which are also listed.</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><strong>Note:</strong> 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 Update</th>
                  <th align="left">Payload Updated TRC - Unchanged Elements</th>
                  <th align="left">Payload Updated TRC - Required Changes</th>
                  <th align="left">Payload Updated TRC: Other Rules to Hold</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">Both Regular AND Sensitive Updates</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 TRC Update</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/>- Must include votes of each changed regular voting certificate from the predecessor TRC<br/> <tt>signatures</tt> field:<br/> - Must include signatures of each changed root certificate from the predecessor TRC</td>
                </tr>
                <tr>
                  <td align="left">Sensitive TRC Update</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-update-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 whether the update is regular or sensitive.
                </t>
                <ul spacing="normal">
                  <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, check that all votes are cast by a sensitive voting certificate.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>In both cases, check that all signatures are verifiable, and no superfluous signatures are attached.</t>
              </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>
      <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 where the number of the ISD is chosen. The initial TRC <bcp14>MUST</bcp14> be signed during a special signing ceremony and all voting representatives of the initial TRC need to take part in this 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="deploy-cp-pki">
      <name>Deploying the CP PKI - Specifications</name>
      <t>This section provides several specifications regarding the deployment of the control plane PKI.</t>
      <section anchor="deploying-a-trc">
        <name>Deploying a TRC</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">
          <name>TRC Update</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>
          <section anchor="discover-trcupdate">
            <name>TRC Update Discovery</name>
            <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, the following requirement <bcp14>MUST</bcp14> be satisfied:</t>
            <t><strong>Requirement</strong><br/>
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>
      <section anchor="signing-verifying-cp-messages">
        <name> Signing and Verifying Control Plane Messages</name>
        <t>SCION requires that control plane messages are signed. 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. It is the minimum information a relying party requires to 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 that <bcp14>MUST</bcp14> 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>When the relying party receives a control plane message they want to verify, 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 signing 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 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="overview"/>), 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="creating-a-new-control-plane-as-certificate">
        <name>Creating a New Control Plane AS Certificate</name>
        <t>The steps <bcp14>REQUIRED</bcp14> to create 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="processes">
        <name>Processes</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 CA certificates. If one of these private root keys is compromised, the adversary could issue illegitimate 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 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 CA certificate is compromised, the impacted CA AS <bcp14>MUST</bcp14> obtain a new CA certificate from the corresponding root AS. 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 <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>ISDs usually rely on multiple CAs</t>
          </li>
          <li>
            <t>ISDs could create policies and processes to renew certificates out-of-band</t>
          </li>
        </ul>
      </section>
      <section anchor="trc-distribution">
        <name>TRC Distribution</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="4" month="December" year="2025"/>
            <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 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 from a set of possible path
   segments 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 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-controlplane-13"/>
        </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="1" month="January" year="2026"/>
            <abstract>
              <t>   This document describes the data 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.

   The SCION Control Plane is responsible for discovering these paths
   and making them available as path segments to the endpoints.  The
   role of the SCION Data Plane is to combine these path segments into
   end-to-end paths, and forward data between endpoints according to the
   specified path.  It fundamentally differs from an IP-based data plane
   in that it is _path-aware_ and interdomain forwarding directives are
   embedded in the packet header.

   This document provides a detailed specification of the SCION data
   packet format as well as the structure of the SCION header, including
   extension headers.  It also describes the life of a SCION packet
   while traversing a SCION network, followed by a specification of the
   SCION path authorization mechanisms and the packet processing at
   routers.

   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-10"/>
        </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>
        <reference anchor="SCIONLAB" target="https://ieeexplore.ieee.org/abstract/document/9259355">
          <front>
            <title>SCIONLAB - A Next-Generation Internet Testbed</title>
            <author initials="J." surname="Kown" fullname="Jonghoon Kwon">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="J." surname="García-Pardo" fullname="Juan A. García-Pardo">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="M." surname="Legner" fullname="Markus Legner">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="F." surname="Wirz" fullname="François Wirz">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="M." surname="Frei" fullname="Matthias Frei">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Hausheer" fullname="David Hausheer">
              <organization>Otto von Guericke University Magdeburg</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1400?>

<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 Trammel (Google), Ramon Keller (LibC Technologies) 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>
    <section numbered="false" anchor="deployment-testing-scionlab">
      <name>Deployment Testing: SCIONLab</name>
      <t>SCIONLab is a global research network that is available to test the SCION architecture. You can create and use your ASes using your own computation resources which allows you to gain real-world experience of deploying and managing a SCION network.</t>
      <t>More information can be found on the SCIONLab website and in the <xref target="SCIONLAB"/> paper.</t>
    </section>
    <section numbered="false" anchor="initial-ceremony">
      <name>Appendix A. 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 numbered="false" 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 numbered="false" 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"/>;</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 numbered="false" anchor="ceremonyprocess">
        <name> Ceremony Process</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 numbered="false" anchor="phase1">
          <name>Phase 1: 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>Phase 1 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 numbered="false" anchor="phase2">
          <name>Phase 2: 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="trcpayload"/> 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>Phase 2 concludes when all voting representatives confirm that the contents of the TRC payload are correct.</t>
        </section>
        <section numbered="false" anchor="phase3">
          <name>Phase 3: 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>Phase 3 concludes when all voting representatives have attached their signatures to the TRC.</t>
        </section>
        <section numbered="false" anchor="phase4">
          <name>Phase 4: 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 1. 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 1.</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-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>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y92XYbWXYg+s6viGaudYtgApCoIQfW0IYoKpOuTEkmmVUe
2qsUAIJkWAACFREgRUvy8j9cv/Rbv92n+xPdf+IvuXs8Z58TJ0BKmdV2r3Xp
cooEIs6wzz57Hkaj0U5btoviMNs9Ozp59TI7qlZtXS2y14t8VWSvf3+yu5NP
p3Vx7Z94PaKPZ3lbXFb17WFWri6qnWYzXZZNU8L7t+sCP5wX6wL+s2p3dubV
bJUv4dN5nV+0o3nxFl6uR80MHh+t35ajg4MdmOHxzhdZXhc5zHVyev5iF/68
qeq3l3W1WcNnr/P2KpvcwBPZy6LFb8rVZXb63e7O2+IW/pwfZicrGHdVtKPn
ONHOdbHaFIcwTHb3GPAQr3z3tGiKvJ5dZd/hS/TNMi8X8M06X9WXf1XW7cW4
qi/pG3wQvrlq23Vz+ODBzc3NuCz4+wf41ggfKK+LBzfF9AG9/2B3B9ZTtleb
KbxIMMibppqVeQu/PmCgzNYAlj+djJ7jwwuAVtOaWeKXxjzcuKzi1x/0QHx8
1S4Xuzs7+aa9qurDnWyUZXBmzWF2NM7mRfZ7fBymhh8+uaOqLgEjwq9gk4cZ
o8XEr4a/Kxhmsz/Niz/R5H91uXw3nl3tmLlejrPTTdOWl6tqUdrZXpazapF3
vrzHfKty9le0SzwBO9fZOPu+bP/ZznKWLzfFwnxM409W+Tq/zbOz26Ytlk0w
+hU8+lc5PzAGPNvZWVX1ElZxDWiWZQDwcQjqGd+nNV6n9BPzvM3d16cvjp4+
+uah/vrE//rV00f669dPv5Ffv3108DX++rfjpw+/PaSV6nU+Of9pdM5fZHsH
Dx88enjw1SD7ADfkgldcrbK2mF0BcKvL2+zf//X/zl7BfdVd802C1a+KGT2L
D5xfFdnzsoZP6N6/3kwX5WwEly/LV/Msb9u6nG7aIpsVdVtelEghsosaQI33
rNml9cF2YXmyIF5xXl8WgN2K3Fcw2KIYl+1mXK7aBwcH44OHDx89gP88fHDw
+OHjA9rwVwya7obhi2wPnn/08NHBlg2Pssm0aet81sKWV23+LntZtfzUK8Dz
vcnZy/HBAHBkXcx4L/hVdZFN86acZSt52G5KJv30TT158tU3vKlv+zb17X03
hcvOitWsmiNhqzeLokls4hlt4lgfO8XHsr1nx6eDYXaUryq4Rfmi8/0RfE9H
/byEe7m63JTNVTHvPPYcHvuF4PL1I4TLt+OvHoVwmbw8O+HPRwfffvsNQISR
Mfs9IONRfbtuq8s6X1/dZi+qmvD2RbnKV0AwFtlZUV+XswJRfA70BTEZHzhe
LMp1C0McbeprxHOgqfg00J+83QC/mCyA3QGdXQaIDLPv7OyUeh5CB86ejyZn
I6DQ8PYSWGATLp9J2GlxWeL8djwAVPdWKMUnplLLWw+YBHzz6IBw5tnk9PT4
dAL0IHv+6gSgOD44ePL0weOH3zx9+i3C/uj7nybnjyI44saPquV6UcBV/W5T
AnlvK6aw0aoeJY9vXpW0KJzu4cOvH3z79TejxyO4o6OHQMe+GT2kt5qiLosG
YcSzI4CevTzMwqe/Hj2mbx1Lop+R/CtU/IdxdnS1yVv3KVPyH3I4oVUbfUfk
/Pj8++zvN7ACYD3JIX8cZz8UlyvlaW7MH/P67aaJv7vfmM/HdMVW0ZDP8+ty
Hn1z7wG/zzdw3TrL5DE7X9Kwr1o4zWu48t/R2G+L7KcVoGjdlO0t7O9yXkw3
wCWTMwb8Mutlmdk2rhmP+Xqc/QivLzqbeA34V3e+ux9oJmN4va7Ly2jMybwu
81X8XWJMQvcfJs+Cq6EfIk0FUfFdO/quADxgCqpiZnYOctm0mIdX5WHyqpRF
UbxbL6oaqB38StcmFxYE92i2QTrx4NtHT799/PTp3Rfhr8fZ76ubGMH+ulpd
XlWwwt/fVJ+KYjDidyCs/q//Nx+9zut5FQ+9AWBO+p75j7tqL8bZH8s6xtMX
db76X/9PVTbhl/de5ou6KDuLbNurMm/C7/6zXt+feSt2RqNRpui5s3N+BZBU
JM3WNWhIwNSyFthHWwMTzUBSnBXrlqSDeYFsD8UM/J553X6kWHpuDaJMncM8
mxlx2T3WLwf7Y3lz7wxEkXxaLmDTQ9VPhzTRSQNKgohsfEcv/R1dsXrXDDJY
ep6tQfEb5aj4DQFAKH7PK5Dp3XOkyJUgS9Eqbq4K+G9L3DFSiDMWWZps5sUM
2MoSRXoUL3BhJYPmotqs5k7mwk/wSgPkVBJb19WsmMOEDayJ9zvOTlp8f9OA
ZDW95Q9/1UTr2Hv/fruu8fHjADm5ma+glQH2lBe3BI2s9EIkwxOWc12iCt+4
afl0l9UciD5IvrAmJH8O7s8Jhs04xhBAgRkoA4VFERmkuCphKo8ZHQDj+cwW
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
ZAQiI0zsLEnJd5OXPuBtrEdJXYCcy3sxd/Q4z315vYM8apI27ctOIz7J82qC
c+CCZQWY2mqayjLMO/zKpRsqPiahwFT0p5N29pZ6pZiVaYVm3zf6fhTqDlDe
SZ8ebadPj/4jUdLhmmNsAX4hXlGnO4ta/tFeHoLGE4ozp5dddahOLatIIogN
snefTWItd57H4+3n8VitNJ76bJlNywT6tmk51xL3JNxenGjgRDV16QPv7MzM
YKSBsIuOfHMYl+/qD1jpNB/WRoz2wqzz20WVz8mxLYHrR9VyWbaIWjAbKMfi
K2N2dwxS8hpbWye+huuVb/seXp9cAoPt+Y7YBKz1U/Z4ZA3alKEabi+QTHCL
pz/IFMHshawaS3d3dlX0fBcz0JOLUBT693/9702A+50yd6Epv/90sr0uInh0
Ggydo2RqEJI6z2L0+BQ7aW2V4Dp2M01gn2MmOfanLji1X1FbFB2NLlEvGO3S
2Eu0zttdpHTQU0DMOzzuR4ypylOHNQ64j6JQvmH/lRaZYVpQtTh2ZuwqAd4N
CyYAKskXb7JnVbUopG0fy2ha6Cwi7T4E5vz0p2N2GgIdyTcLqsf5YvLD2XFo
k4pxKiTosky/xk4BxkRFDdklqbd6qdSmJe2saZX6qva6tKIj9XjdGpnF9r9N
01UuXCCgVuBxUSNoWWFZMzDj3Zcg+3GZ3lL1TvYG+OScIFauQUd9NxwMs1ht
JB/ZJMMQT4pBjiI8OcC08ymFYQafiDlqL1muyCVLj7b8ZKmvkx8mPk0/Fz8D
K9h3VtnD/cTGEj939RPa/lz0DKwgLXNwWQwYxNE8kbOzng8Tn35QZ5V+sDfd
uKL3auAZ8CK6tNfuxHqo8d7sHQwSH1JiiCUC/PJJQkwLCdUWwt+ZRUHmOGkX
7vES+j5MbOw+qw0m712oTYd8opHDetRm+FEYRJu+rpo66cz3CWJnAwjurKXh
EifPrzpVXj5nPBchYO1GgbgNX4ySInfwhoeLp48m+GvDula/zP3pUnZ6ehW0
02L0E+eud8TftAzqkHICA2oMWNYgOv84XuYsNP888r5pkvdZYgae/3Y9aooa
DgUbkrwhJgpI1+GNVqp0JsKIq/E4UVuNsZ9ntijh858/D4/TPw/mzp61oM4C
FO8/E34dFGtFoMNIDY6EiNmpmb71PEx4JtBOa/nu82c2un68mBgFIn8x49MI
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

-->

</rfc>
