<?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.6.16 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-pki-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.14.0 -->
  <front>
    <title abbrev="SCION CPPKI">SCION Control-Plane PKI</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-pki-00"/>
    <author initials="C." surname="de Kater" fullname="Corine de Kater">
      <organization>ETH Zuerich</organization>
      <address>
        <email>corine.dekatermuehlhaeuser@inf.ethz.ch</email>
      </address>
    </author>
    <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
      <organization>ETH Zuerich</organization>
      <address>
        <email>nicola.rustignoli@inf.ethz.ch</email>
      </address>
    </author>
    <date year="2022" month="August" day="26"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document presents the trust concept and design of the SCION <em>control-plane PKI</em>, SCION's public key infrastructure model. SCION (Scalability, Control, and Isolation On Next-generation networks) is a path-aware, inter-domain network architecture. The control-plane PKI, or short CP-PKI, handles cryptographic material and lays the foundation for the authentication procedures in SCION. It is used by SCION's control plane to authenticate and verify path information, and builds the basis for SCION's special trust model based on so-called Isolation Domains.</t>
      <t>The document first describes the trust model behind SCION's control-plane PKI, and provides a short overview of the certificates, keys, and roles involved. It then continues with detailed specifications of the building blocks of SCION's control-plane PKI. The document concludes with several considerations in regard to deploying the control-plane PKI.</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>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The control-plane PKI (CP-PKI) lays the foundation for the authentication procedures in SCION. It handles all cryptographic material used in the public key infrastructure of SCION's control plane. This section first introduces the key concepts of the SCION CP-PKI, including the trust model, its core elements (certificates, keys, and roles), and their relationships. The sections after the Introduction provide detailed specifications of the building blocks of the CP-PKI.</t>
      <t><strong>Note:</strong> For more detailed information on the SCION next-generation inter-domain architecture, see <xref target="CHUAT22"/>, especially Chapter 2, as well as the IETF Internet Drafts <xref target="I-D.scion-overview"/> and <xref target="I-D.scion-components"/>.</t>
      <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>
      </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. Also, its revocation can result in a kill-switch for all the entities it certifies. 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>Trust agility (see further below);</li>
          <li>Resilience to single root of trust compromise;</li>
          <li>Multilateral governance; and</li>
          <li>Support for policy versioning and updates.</li>
        </ul>
        <t>Ideally, the trust architecture allows parties that mutually trust each other to form their own trust "union" or "domain", and to freely decide whether to trust other trust unions (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 ASes that share a uniform trust environment (i.e., a common jurisdiction). An ISD is administered by multiple ASes that form the ISD core; these are the <strong>core ASes</strong>. It is governed by a policy called the <strong>Trust Root Configuration</strong> (TRC), which is negotiated by the ISD core. The TRC 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 non-compromised 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. SCION trust model, therefore, differs from the one provided by other PKI architectures.</t>
      </section>
      <section anchor="trust-relations-within-an-isolation-domain">
        <name>Trust Relations within an Isolation Domain</name>
        <t>As already mentioned previously, the control-plane PKI, SCION's concept of trust, is organized on ISD-level. 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. A TRC is a fundamental component of an ISD's control-plane PKI. The so-called <strong>base TRC</strong> constitutes the ISD's trust anchor. It is signed during a signing ceremony 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. 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. 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 allowed by the ISD's trust policy). In this case, a new base TRC is created.</t>
        </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 first impression 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>
          <artwork><![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>
        </figure>
        <t>All certificates used in SCION's control-plane PKI are in X.509 v3 format <xref target="RFC5280"/>. 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.</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>
            <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. Each core AS in an ISD has links to other core ASes (in the same or in different ISDs).</li>
          <li>
            <strong>Certification authorities (CAs)</strong>: CAs are responsible for issuing AS certificates to other ASes and/or themselves.</li>
          <li>
            <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"; the designated ASes that hold the private keys to sign a TRC update are "voting ASes".</li>
        </ul>
        <t>All further details of the SCION control-plane PKI are specified in the following sections.</t>
      </section>
      <section anchor="trust-concept-as-a-function">
        <name>Trust Concept as a Function</name>
        <t>The SCION control-plane PKI can be seen as a function that transforms potential distrust among different parties into a mutually accepted trust contract including a trust update and reset policy as well as certificates used for authentication procedures in SCION's control plane.</t>
        <t>For the function to work, it is not necessary that the ASes of the ISD all 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 must decide about the validity period of the TRC as well as the number of votes required to update a TRC. They must also bring the required keys and certificates, the so-called root and voting keys/certificates. During the ceremony, the trusted parties decide about the number of the ISD, which must be an integer in the inclusive range between 1 and 65535.</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 are used to verify SCION's 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 in SCION's control-plane PKI. It starts with an overview of the main keys and certificates.</t>
      <section anchor="overview">
        <name>SCION Control-Plane PKI Keys and Certificates - Overview</name>
        <t>All certificates in SCION's control-plane PKI are in X.509 v3 format <xref target="RFC5280"/>. Each certificate has a <tt>subject</tt> (the entity that owns the certificate) and an <tt>issuer</tt> (the entity that signed the certificate, usually a CA). In the case of self-signed certificates, the subject and the issuer are the same entity.</t>
        <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 and a sensitive TRC update, respectively.</t>
        <t>The following list summarizes the main certificates and corresponding key pairs of SCION's control-plane PKI as well as the voting certificates and keys:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Control-Plane Root Certificates</strong> - Control-plane (CP) root certificates are used to verify control-plane CA certificates. Control-plane root certificates are embedded in TRCs, to facilitate the bootstrapping of trust.
            </t>
            <ul spacing="normal">
              <li>
                <em>CP root private key</em>: This private key is used to sign control-plane CA certificates.</li>
              <li>
                <em>CP root certificate</em>: This is the container for the public key associated with the CP root private key.</li>
              <li>
                <xref target="cp-root-cert"/> provides more details on the CP root certificates.</li>
            </ul>
          </li>
          <li>
            <t><strong>Control-Plane CA Certificates</strong> - Control-plane (CP) CA certificates are used to verify AS certificates.
            </t>
            <ul spacing="normal">
              <li>
                <em>CP CA private key</em>: This private key is used by the CA to sign AS certificates.</li>
              <li>
                <em>CP CA certificate</em>: This is the container for the public key associated with the CP CA private key.</li>
              <li>
                <xref target="cp-ca-cert"/> provides more details on the CP CA certificates.</li>
            </ul>
          </li>
          <li>
            <t><strong>Control-Plane AS Certificates</strong> - Control-plane (CP) AS certificates are used to verify control-plane messages such as path-segment construction beacons (PCB). PCBs explore network paths within an ISD.
            </t>
            <ul spacing="normal">
              <li>
                <em>CP AS private key</em>: This private key is used by an AS to sign control-plane messages.</li>
              <li>
                <em>CP AS certificate</em>: This is the container for the public key associated with the CP AS private key.</li>
              <li>
                <xref target="cp-as-cert"/> provides more details on the CP AS certificates.</li>
            </ul>
          </li>
        </ul>
        <t><strong>Note:</strong> The TRC of each ISD contains a trusted set of control-plane root certificates. 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>
        <ul spacing="normal">
          <li>
            <t><strong>Voting Certificates</strong> - Regular and sensitive voting certificates are used to verify regular and sensitive TRC updates, respectively.
            </t>
            <ul spacing="normal">
              <li>
                <em>Regular voting private key</em>: This private key is used to sign regular TRC updates. The corresponding public key is embedded in TRCs (via the regular voting certificate).</li>
              <li>
                <em>Regular voting certificate</em>: This is the container for the public key associated with the regular voting private key.</li>
              <li>
                <em>Sensitive voting private key</em>: This private key is used to sign sensitive TRC updates. The corresponding public key is embedded in TRCs (via the sensitive voting certificate).</li>
              <li>
                <em>Sensitive voting certificate</em>: This is the container for the public key associated with the sensitive voting private key.</li>
              <li>
                <xref target="cp-voting-cert"/> provides more details on the voting certificates.</li>
            </ul>
          </li>
        </ul>
        <t><xref target="_table-1"/> and <xref target="_table-2"/> below provide a formal overview of the different types of key pairs and certificates in the control-plane PKI.</t>
        <table anchor="_table-1">
          <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">PCBs, 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-2">
          <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 may be included in a TRC.<br/>
(2) Recommended maximum validity period.<br/>
(3) A validity of 11 days with 4 days overlap between two CA certificates is recommended to enable best possible operational procedures when performing a CA certificate rollover.</t>
        <t><xref target="_figure-2"/> illustrates, at a high level, the relationship between a TRC and the five types of certificates.</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>
          <artwork><![CDATA[
   +--------------------+     +--------------------+          +--------------+     +---------------+
   |       TRC 1        +---->|       TRC 2       -+------>╳  |       TRC 3  +---->|       TRC 4   |
   |  (base, initial)   |     |  (regular update)  |          | (base, trust |     | (sensitive    |
+--+--------------------+     +--------------------+------+   |     reset)   |     |     update)   |
|                                                         |   +--------------+     +---------------+
|                                                         |
+--------------------------------------------+        +---+----------------------------------------+
|             TRC 1 (base, initial)          |        |             TRC 2 (regular update)         |
|+------------------------------------------+|        |+------------------------------------------+|
||- Version       - Core ASes               ||        ||- Version       - Core ASes               ||
||- ID            - Description             ||        ||- ID            - Description             ||
||- Validity      - No Trust Reset          ||        ||- Validity      - No Trust Reset          ||
||- Grace Period  - Voting Quorum           ||        ||- Grace Period  - Voting Quorum           ||
||- ...                                     ||        ||- ...                                     ||
|+------------------------------------------+|        |+------------------------------------------+|
|+--------------------++--------------------+|        |+--------------------++--------------------+|
||Votes (cert.indices)||   Regular Voting   ||        ||Votes (cert.indices)||   Regular Voting   ||
||                    ||    Certificates    ||        ||                    ||    Certificates    ||
||    (empty)         ||                    ||        ||    (1),(2)...      ||                    ||
||                    ||+-----+ +-----+     ||        ||                    ||+-----+ +-----+     ||
||                    ||| (1) | | (2) |     ||        ||                    ||| (1) | | (2) |     ||
||                    |||C    | |C    | ... ||        ||                    |||C    | |C    | ... ||
||                    ||| reg | | reg |     ||        ||                    ||| reg | | reg |     ||
|+--------------------+|+--+--+ +--+--+     ||        |+--------------------+|+-----+ +-----+     ||
|+--------------------+|   |       |        ||        |+--------------------+|                    ||
||                    ||   |       +--------++-----+  ||                    ||                    ||
||                    ||   +----------------++-+   |  ||                    ||                    ||
||    Signatures      |+--------------------+| |   |  ||    Signatures      |+--------------------+|
||                    |+--------------------+| |   |  ||                    |+--------------------+|
||+------------------+|| Sensitive Voting   || |   |  ||+------------------+|| Sensitive Voting   ||
|||73 A9 4E AO 0D ...|||    Certificates    || |   +--+>|48 AE E4 80 DB ...|||    Certificates    ||
||+------------------+||+-----+ +-----+     || |      ||+------------------+||+-----+ +-----+     ||
||+------------------+||| (3) | | (4) |     || |      ||+------------------+||| (3) | | (4) |     ||
|||53 B7 7C 98 56 ...||||C    | |C    |     || +------+>|7E BC 75 98 25 ...||||C    | |C    |     ||
||+------------------+||| sens| | sens| ... ||        ||+------------------+||| sens| | sens| ... ||
||        ...         ||+-----+ +-----+     ||        ||        ...         ||+-----+ +-----+     ||
|+--------------------++--------------------+|        |+--------------------++--------------------+|
|+------------------------------------------+|        |+------------------------------------------+|
||          CP Root Certificates            ||        ||          CP Root Certificates            ||
||                                          ||        ||                                          ||
|| +-----+ +-----+ +-----+ +-----+          ||        || +-----+ +-----+ +-----+ +-----+          ||
|| | (5) | | (6) | | (7) | | (8) |          ||        || | (5) | | (6) | | (7) | | (8) |          ||
|| |C    | |C    | |C    | |C    |          ||        || |C    | |C    | |C    | |C    |          ||
|| | root| | root| | root| | root| .....    ||        || | root| | root| | root| | root| .....    ||
|| +-----+ +--+--+ +-----+ +--+--+          ||        || +-----+ +--+--+ +-----+ +--+--+          ||
|+------------+---------------+-------------+|        |+------------+---------------+-------------+|
+-------------+---------------+--------------+        +-------------+---------------+--------------+
              |               |                                     |               |
    +---------v-+           +-v---------+                 +---------v-+           +-v---------+
    |   CP CA   |           |   CP CA   |                 |   CP CA   |           |   CP CA   |
    |Certificate|           |Certificate|                 |Certificate|           |Certificate|
    +-----+-----+           +-----+-----+                 +-+-------+-+           +-----+-----+
          |                       |                         |       |                   |
          |                       |                         |       |                   |
          v                       v                         v       v                   v
    +-----------+           +-----------+          +-----------+ +-----------+        +-----------+
    |   CP AS   |           |   CP AS   |          |   CP AS   | |   CP AS   |        |   CP AS   |
    |Certificate|           |Certificate|          |Certificate| |Certificate|        |Certificate|
    +-----------+           +-----------+          +-----------+ +-----------+        +-----------+
]]></artwork>
        </figure>
      </section>
      <section anchor="certificate-specification">
        <name>Certificate Specification</name>
        <t>This section provides an in-depth specification of the SCION certificates. The SCION certificate specification builds on top of <xref target="RFC5280"/>, which in turn builds on top of <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>. However, the SCION specification is more restrictive.</t>
        <t>This section defines the additional constraints compared to <xref target="RFC5280"/> for each type of SCION control-plane certificate. The recommended settings for optional constraints are based on the SCION open source implementation <eref target="https://github.com/scionproto/scion/">scionproto</eref>. Adjusting the optional constraints to the requirements of a customer implementation is possible and allowed.</t>
        <section anchor="general-cert-req">
          <name>General Certificate Requirements</name>
          <t>SCION control-plane certificates are X.509 v3 certificates. Every certificate has a <tt>subject</tt>, which is the entity that owns the certificate, and an <tt>issuer</tt>, which is the entity that issued the certificate, usually a CA.</t>
          <t>The next code block shows the generic format of SCION control-plane certificates. It is followed by a description of the SCION specifics for each certificate field.</t>
          <t><strong>Note:</strong> For information regarding the full format, see <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>, clause 7.2.</t>
          <artwork><![CDATA[
   TBSCertificate ::= SEQUENCE {
       version               [0]   EXPLICIT Version DEFAULT v1,
       serialNumber                CertificateSerialNumber,
       signature                   AlgorithmIdentifier{{SupportedAlgorithms}},
       issuer                      Name,
       validity                    Validity,
       subject                     Name,
       subjectPublicKeyInfo        SubjectPublicKeyInfo,
       issuerUniqueID        [1]   IMPLICIT UniqueIdentifier OPTIONAL, -- disallowed in SCION
       subjectUniqueID       [2]   IMPLICIT UniqueIdentifier OPTIONAL, -- disallowed in SCION
       extensions            [3]   EXPLICIT Extensions OPTIONAL
   }

   Version ::= INTEGER { v1(0), v2(1), v3(2)}  -- v1, v2 are disallowed in SCION
   CertificateSerialNumber ::= INTEGER

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

   Time ::= CHOICE {
       utcTime UTCTime,
       generalizedTime GeneralizedTime
   }

   SubjectPublicKeyInfo ::= SEQUENCE {
       algorithm         AlgorithmIdentifier{{SupportedAlgorithms}},
       subjectPublicKey  BIT STRING
   }

   Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension

   Extension ::= SEQUENCE {
       extnId      OBJECT IDENTIFIER,
       critical    BOOLEAN DEFAULT FALSE,
       extnValue   OCTET STRING
                       -- contains DER encoding of ASN.1 value
                       -- corresponding to type identified by extnID
   }
]]></artwork>
          <section anchor="version-field">
            <name><tt>version</tt> Field</name>
            <t>The <tt>version</tt> field <bcp14>MUST</bcp14> be set to <tt>v3</tt> in SCION, as extensions are mandatory.</t>
          </section>
          <section anchor="serialnumber-field">
            <name> <tt>serialNumber</tt> Field</name>
            <t>The <tt>serialNumber</tt> field is used as specified in <xref target="RFC5280"/>.</t>
          </section>
          <section anchor="certificate-signature">
            <name><tt>signature</tt> Field</name>
            <t>For security reasons, SCION uses a custom list of acceptable signature algorithms. This list of acceptable signature algorithms is specified in the <tt>signature</tt> field.</t>
            <t>The list currently only contains the ECDSA signature algorithm (defined in <eref target="https://standards.globalspec.com/std/1955141/ansi-x9-62">X.962</eref>) - see the code block below. However, the list might be extended in the future.</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"/>. They are included as follows:</t>
            <artwork><![CDATA[
   sigAlg-ecdsa-SHA256      ALGORITHM         ::= { OID ecdsa-with-SHA256 }
   sigAlg-ecdsa-SHA384      ALGORITHM         ::= { OID ecdsa-with-SHA384 }
   sigAlg-ecdsa-SHA512      ALGORITHM         ::= { OID ecdsa-with-SHA512 }

   ecdsa-with-SHA256 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
       us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 2 }
   ecdsa-with-SHA384 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
       us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 3 }
   ecdsa-with-SHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
       us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 4 }
]]></artwork>
            <t><br/>
              <strong>Important:</strong> The accepted cryptographic algorithms listed in this document are the only currently accepted cryptographic algorithms. SCION implementations <bcp14>MUST</bcp14> reject cryptographic algorithms not found in the list.
<br/></t>
            <t>The only accepted curves for ECDSA are:</t>
            <ul spacing="normal">
              <li>NIST P-256 (<eref target="http://dx.doi.org/10.6028/NIST.FIPS.186-4">NISTFIPS186-4</eref>, section D.1.2.3) (named <tt>secp256r1</tt> in <xref target="RFC5480"/>)</li>
              <li>NIST P-384 (<eref target="http://dx.doi.org/10.6028/NIST.FIPS.186-4">NISTFIPS186-4</eref>, section D.1.2.4) (named <tt>secp384r1</tt> in <xref target="RFC5480"/>)</li>
              <li>NIST P-521 (<eref target="http://dx.doi.org/10.6028/NIST.FIPS.186-4">NISTFIPS186-4</eref>, section D.1.2.5) (named <tt>secp521r1</tt> in <xref target="RFC5480"/>)</li>
            </ul>
            <t>The OIDs for the above curves are:</t>
            <artwork><![CDATA[
   secp256r1 OBJECT IDENTIFIER ::= {
       iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3)
       prime(1) 7 }
   secp384r1 OBJECT IDENTIFIER ::= {
       iso(1) identified-organization(3) certicom(132) curve(0) 34 }
   secp521r1 OBJECT IDENTIFIER ::= {
       iso(1) identified-organization(3) certicom(132) curve(0) 35 }
]]></artwork>
            <t>The appropriate hash size to use when producing a signature with an ECDSA key is:</t>
            <ul spacing="normal">
              <li>ECDSA with SHA-256, for a P-256 signing key</li>
              <li>ECDSA with SHA-384, for a P-384 signing key</li>
              <li>ECDSA with SHA-512, for a P-521 signing key</li>
            </ul>
            <t><br/>
              <strong>Important:</strong> SCION implementations <bcp14>MUST</bcp14> include support for P-256, P-384, and P-521.
<br/></t>
            <section anchor="algorithmidentifier-sequence">
              <name> <tt>AlgorithmIdentifier</tt> Sequence</name>
              <t><eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref> defines the syntax of the <tt>AlgorithmIdentifier</tt> as follows:</t>
              <artwork><![CDATA[
   AlgorithmIdentifier  ::=  SEQUENCE  {
       algorithm   OBJECT IDENTIFIER,
       parameters  ANY DEFINED BY algorithm OPTIONAL
   }
]]></artwork>
              <t><strong>Note:</strong> In SCION implementations, the <tt>parameters</tt> field <bcp14>MUST</bcp14> be absent, as defined in <xref target="RFC8410"/>.</t>
              <t>In general, if the <tt>AlgorithmIdentifier</tt> in a specific SCION implementation is not defined as described above, the implementation should stop the validation process entirely and error out.</t>
            </section>
          </section>
          <section anchor="issuer">
            <name> <tt>issuer</tt> Field</name>
            <t>The <tt>issuer</tt> field contains the distinguished name (DN) of the CA that created the certificate. The <tt>issuer</tt> field <bcp14>MUST</bcp14> be non-empty.</t>
            <t><eref target="http://handle.itu.int/11.1002/1000/13030">X.501</eref> (10/2016), clause 9.2, defines the syntax for <tt>Name</tt> as follows:</t>
            <artwork><![CDATA[
   Name ::= CHOICE {
       rdnSequence RDNSequence
   }

   RDNSequence ::= SEQUENCE OF RelativeDistinguishedName

   RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue

   AttributeType ::= OBJECT IDENTIFIER

   AttributeValue ::= ANY -- DEFINED BY AttributeType
]]></artwork>
            <t>In most SCION implementations, the type (<tt>AttributeType</tt>) will be a <tt>DirectoryString</tt> type, outlined as follows:</t>
            <artwork><![CDATA[
   DirectoryString ::= CHOICE {
       teletexStrings TeletexString (SIZE (1..MAX)),
       printableString PrintableString (SIZE (1..MAX)),
       universalString UniversalString (SIZE (1..MAX)),
       utf8String UTF8String (SIZE (1..MAX)),
       bmpString BMPString (SIZE (1..MAX)),
   }
]]></artwork>
            <t>All SCION implementations <bcp14>MUST</bcp14> support the following standard attribute types:</t>
            <ul spacing="normal">
              <li>
                <tt>country</tt></li>
              <li>
                <tt>organization</tt></li>
              <li>
                <tt>organizational unit</tt></li>
              <li>
                <tt>distinguished name qualifier</tt></li>
              <li>
                <tt>state or province name</tt></li>
              <li>
                <tt>common name</tt></li>
              <li>
                <tt>serial number</tt></li>
              <li>
                <tt>ISD-AS number</tt>
                <br/></li>
            </ul>
            <t>Except for the <tt>ISD-AS number</tt> attribute, all the above attributes are defined in <xref target="RFC5280"/>.</t>
            <t>As an additional constraint compared to <xref target="RFC5280"/>, SCION implementations <bcp14>MUST</bcp14> use the <tt>UTF8String</tt> value type for all the above attributes, including the <tt>ISD-AS number</tt> attribute.</t>
            <t><strong>Note:</strong> Besides the above listed required attributes, SCION implementations may additionally also support other attributes.</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:</t>
              <artwork><![CDATA[
   id-at-ia AttributeType ::= {id-ana id-cppki(1) id-at(2) 1}
]]></artwork>
              <t>where <tt>id-ana</tt> specifies the root SCION object identifier (OID).</t>
              <t><strong>Note:</strong> The SCION open source implementation currently uses the Anapaya IANA Private Enterprise Number (55324) as root SCION object identifier (OID):<br/>
                <tt>id-ana ::= OBJECT IDENTIFIER {1 3 6 1 4 1 55324}</tt></t>
              <t>The following points apply when setting the attribute value of the <tt>ISD-AS number</tt> attribute:</t>
              <ul spacing="normal">
                <li>The string representation <bcp14>MUST</bcp14> follow the canonical formatting defined in <eref target="https://github.com/scionproto/scion/wiki/ISD-and-AS-numbering">ISD and AS numbering</eref>.</li>
                <li>The canonical string representation uses a dash separator between the ISD and AS numbers.</li>
                <li>The ISD numbers are formatted as decimal.</li>
                <li>The canonical string formatting of AS numbers in the BGP AS range (0, 2<sup>32-1</sup>) is the decimal form. Larger AS numbers, i.e., from 2<sup>32</sup> to 2<sup>48-1</sup>, use a 16-bit, colon-separated, lower-case, hex encoding with leading zeros omitted: <tt>1:0:0</tt> to <tt>ffff:ffff:ffff</tt>.</li>
              </ul>
              <t><strong>Example:</strong><br/>
AS <tt>ff00:0:110</tt> in ISD <tt>1</tt> is formatted as <tt>1-ff00:0:110</tt>.</t>
              <t>The <tt>ISD-AS number</tt> attribute <bcp14>MUST</bcp14> be present exactly once in all SCION control-plane certificates. Implementations <bcp14>MUST NOT</bcp14> create nor successfully verify certificates that do not include the ISD-AS number, or include it more than once.</t>
            </section>
          </section>
          <section anchor="cert-validity">
            <name> <tt>validity</tt> Field</name>
            <t>Section 4.1.2.5 of <xref target="RFC5280"/> defines the <tt>validity</tt> field. In addition to this definition, the following constraints apply to SCION control-plane certificates:</t>
            <ul spacing="normal">
              <li>All certificates <bcp14>MUST</bcp14> have a well-defined expiration date. SCION control-plane certificates that use the <em>99991231235959Z</em> generalized time value, instead of a well-defined expiration date, are not valid. SCION implementations <bcp14>MUST NOT</bcp14> create such certificates, and verifiers <bcp14>MUST</bcp14> error out when encountering such a certificate.</li>
              <li>The validity period of a certificate is the period of time in between the values of the <tt>notBefore</tt> and <tt>notAfter</tt> attributes. For each control-plane certificate type, this validity period must have a specific maximum value. For more information, see the following sections describing the control-plane and voting certificates:<br/><xref target="cp-root-cert"/>, <xref target="cp-ca-cert"/>, <xref target="cp-as-cert"/>, and <xref target="cp-voting-cert"/>.</li>
            </ul>
          </section>
          <section anchor="subject">
            <name> <tt>subject</tt> Field</name>
            <t>The <tt>subject</tt> field defines the entity that owns the certificate. It is specified in the same way as the <tt>issuer</tt> field (see <xref target="issuer"/>). All SCION control-plane certificates <bcp14>MUST</bcp14> have the <tt>subject</tt> field defined (with the same requirements as those for the <tt>issuer</tt> field).</t>
          </section>
          <section anchor="subjectpublickeyinfo-field">
            <name><tt>subjectPublicKeyInfo</tt> Field</name>
            <t>The <tt>subjectPublicKeyInfo</tt> field carries the public key of the subject (the entity that owns the certificate). It identifies which algorithm to use with the key.</t>
            <t>The SCION constraints in <xref target="certificate-signature"/> also apply here: The key must be a valid key for the selected curve, and the algorithm used must be included in the list of acceptable signature algorithms. The list currently only contains the ECDSA signature algorithm (defined in <eref target="https://standards.globalspec.com/std/1955141/ansi-x9-62">X.962</eref>).</t>
          </section>
          <section anchor="issueruniqueid-and-subjectuniqueid-fields">
            <name> <tt>issuerUniqueID</tt> and <tt>subjectUniqueID</tt> Fields</name>
            <t>The fields <tt>issuerUniqueID</tt> and <tt>subjectUniqueID</tt> are disallowed and thus <bcp14>MUST NOT</bcp14> be used in a SCION implementation.</t>
          </section>
          <section anchor="exts">
            <name>Extensions</name>
            <t><eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>, clause 7.2, defines the syntax of the <tt>Extensions</tt> sequence.
This section describes the extensions relevant for SCION.</t>
            <section anchor="authoritykeyidentifier-extension">
              <name> <tt>authorityKeyIdentifier</tt> Extension</name>
              <t>The <tt>authorityKeyIdentifier</tt> extension is defined in clause 9.2.2.1 of <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>.</t>
              <t>The <tt>authorityKeyIdentifier</tt> extension identifies the private key used to sign the certificate. It is defined as follows:</t>
              <artwork><![CDATA[
   authorityKeyIdentifier EXTENSION ::= {
       SYNTAX AuthorityKeyIdentifier
       IDENTIFIED BY id-ce-authorityKeyIdentifier
   }

   AuthorityKeyIdentifier ::= SEQUENCE {
       keyIdentifier             [0]   KeyIdentifier OPTIONAL,
       authorityCertIssuer       [1]   GeneralNames OPTIONAL,
       authorityCertSerialNumber [2]   CertificateSerialNumber OPTIONAL,
       ...
   }
   (WITH COMPONENTS {..., authorityCertIssuer PRESENT,
                          authorityCertSerialNumber PRESENT } |
   WITH COMPONENTS {..., authorityCertIssuer ABSENT,
                         authorityCertSerialNumber ABSENT } )

   KeyIdentifier ::= OCTET STRING
]]></artwork>
              <t>Using the <tt>keyIdentifier</tt> attribute is the preferred way to specify the <tt>authorityKeyIdentifier</tt> extension.</t>
              <t><strong>Important:</strong> SCION implementations may 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 should error out.</t>
              <t>This extension <bcp14>MUST</bcp14> always be non-critical (which is the default, see the code block displaying the generic format of SCION control-plane certificates in <xref target="general-cert-req"/>). 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 is defined in clause 9.2.2.2 of <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>, (10/2016).</t>
              <t>The <tt>subjectKeyIdentifier</tt> extension identifies the public key being certified. 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. It is defined as follows:</t>
              <artwork><![CDATA[
   subjectKeyIdentifier EXTENSION ::= {
       SYNTAX SubjectKeyIdentifier
       IDENTIFIED BY id-ce-subjectKeyIdentifier
   }

   SubjectKeyIdentifier ::= KeyIdentifier
]]></artwork>
              <t>This extension <bcp14>MUST</bcp14> always be non-critical (which is the default, see the code block displaying the generic format of SCION control-plane certificates in <xref target="general-cert-req"/>). However, SCION implementations must error out if the extension is not present.</t>
            </section>
            <section anchor="keyusage-extension">
              <name> <tt>keyUsage</tt> Extension</name>
              <t>The <tt>keyUsage</tt> extension is defined in clause 9.2.2.3 of <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>, (10/2016).</t>
              <t>The <tt>keyUsage</tt> extension identifies the intended usage of the public key in the corresponding certificate. The ASN.1 definition is as follows:</t>
              <artwork><![CDATA[
   keyUsage EXTENSION ::= {
       SYNTAX KeyUsage
       IDENTIFIED BY id-ce-keyUsage
   }

   KeyUsage ::= BIT STRING {
       digitalSignature  (0),
       contentCommitment (1),
       keyEncipherment   (2),
       dataEncipherment  (3),
       keyAgreement      (4),
       keyCertSign       (5),
       cRLSign           (6),
       encipherOnly      (7),
       decipherOnly      (8),
   }
]]></artwork>
              <t>The attributes of the <tt>keyUsage</tt> extension define the various possible ways of using the public key. The attributes have the following meaning in SCION:</t>
              <ul spacing="normal">
                <li>
                  <tt>digitalSignature</tt>: The public key can be used to verify the digital signature of a control-plane payload.</li>
                <li>
                  <tt>contentCommitment</tt>: Not used.</li>
                <li>
                  <tt>keyEncipherment</tt>: Not used.</li>
                <li>
                  <tt>dataEncipherment</tt>: Not used.</li>
                <li>
                  <tt>keyAgreement</tt>: Not used.</li>
                <li>
                  <tt>keyCertSign</tt>: The public key can be used to verify the CA signature on a control-plane certificate.</li>
                <li>
                  <tt>cRLSign</tt>: Not used.</li>
                <li>
                  <tt>encipherOnly</tt>: Not used.</li>
                <li>
                  <tt>decipherOnly</tt>: Not used.</li>
              </ul>
              <t><strong>Important:</strong> If the certificate's public key is used to verify the signature of a control-plane payload (<tt>digitalSignature</tt> attribute), it must be possible to trace back the private key used for the signature. 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>Each control-plane certificate type uses the public key differently, and consequently also specifies the attributes of the <tt>keyUsage</tt> extension differently. For more information, see the following sections describing the control-plane and voting certificates: <xref target="cp-root-cert"/>, <xref target="cp-ca-cert"/>, <xref target="cp-as-cert"/>, and <xref target="cp-voting-cert"/>.</t>
              <t>If present, the <tt>keyUsage</tt> extension should be marked as "critical". That is, the <tt>critical</tt> Boolean attribute of this extension must be set to TRUE (the default is FALSE, see the code block displaying the generic format of SCION control-plane certificates in <xref target="general-cert-req"/>).</t>
              <t><strong>Note:</strong> If a certificate extension is marked "critical", the public key in the certificate should only be used for the purpose set in the critical extension.</t>
            </section>
            <section anchor="extkeyusage-extension">
              <name> <tt>extKeyUsage</tt> Extension</name>
              <t>The <tt>extKeyUsage</tt> extension is defined in clause 9.2.2.4 of <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>.</t>
              <t>The <tt>extKeyUsage</tt> extension specifies additional usages of the public key in the certificate. It is defined as follows:</t>
              <artwork><![CDATA[
   extKeyUsage EXTENSION ::= {
       SYNTAX             SEQUENCE SIZE (1..MAX) OF KeyPurposeId
       IDENTIFIED BY      id-ce-extKeyUsage
   }

   KeyPurposeId ::= OBJECT IDENTIFIER
]]></artwork>
              <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>
                  <tt>id-kp-serverAuth</tt>: If set, the public key can be used for SCION control-plane server authentication.</li>
                <li>
                  <tt>id-kp-clientAuth</tt>: If set, the public key can be used for SCION control-plane client authentication.</li>
                <li>
                  <tt>id-kp-timeStamping</tt>: If set, the public key can be used for the verification of timestamps.</li>
              </ul>
              <t>This extension <bcp14>MUST</bcp14> be present in control-plane root-, AS- and voting certificates. It <bcp14>MAY</bcp14> be present in control-plane CA certificates. For the exact settings per certificate type, see the below sections describing the control-plane and voting certificates: <xref target="cp-root-cert"/>, <xref target="cp-ca-cert"/>, <xref target="cp-as-cert"/>, and <xref target="cp-voting-cert"/>.</t>
            </section>
            <section anchor="basicconstraints-extension">
              <name> <tt>basicConstraints</tt> Extension</name>
              <t>The <tt>basicConstraints</tt> extension is defined in clause 9.4.2.1 of <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>.</t>
              <t>The <tt>basicConstraints</tt> extension specifies whether the certificate subject may act as a CA. The ASN.1 definition for the <tt>basicConstraints</tt> extension is as follows:</t>
              <artwork><![CDATA[
   basicConstraints EXTENSION ::= {
       SYNTAX          BasicConstraintsSyntax
       IDENTIFIED BY   id-ce-basicConstraints
   }

   BasicConstraintsSyntax ::= SEQUENCE {
       cA                BOOLEAN DEFAULT FALSE,
       pathLenConstraint INTEGER(0..MAX) OPTIONAL,
   }
]]></artwork>
              <ul spacing="normal">
                <li>
                  <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.</li>
                <li>
                  <tt>pathLenConstraint</tt> attribute: This attribute is only relevant if the <tt>cA</tt> attribute is set to TRUE. It 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 allowed length of the certification path.</li>
              </ul>
              <t>The settings of the <tt>basicConstraints</tt> extension differ for each control-plane certificate type. For more information, see the below sections describing the control-plane and voting certificates: <xref target="cp-root-cert"/>, <xref target="cp-ca-cert"/>, <xref target="cp-as-cert"/>, and <xref target="cp-voting-cert"/>.</t>
            </section>
          </section>
        </section>
        <section anchor="cp-root-cert">
          <name>Control-Plane Root Certificate</name>
          <t>The control-plane root private key is used to sign control-plane CA certificates. Consequently, the control-plane root certificate with the control-plane root public key is used to verify control-plane CA certificates. So indirectly, CP root certificates determine which ASes act as CA in an ISD.</t>
          <t>In X.509 terms, CP root certificates are self-<em>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 CP root public key and proof of ownership of the private key are embedded in the Trust Root Configuration (TRC) of an Isolation Domain (ISD), via the self-signed CP root certificate. This facilitates the bootstrapping of trust within an ISD, and marks the CP root certificates as the starting point of an ISD's certificate verification path.</t>
          <t>All constraints described in <xref target="general-cert-req"/> also apply to CP root certificates.</t>
          <t>The recommended <strong>maximum validity period</strong> of a CP root certificate is: 1 year.</t>
          <section anchor="extension-constraints">
            <name> Extension Constraints</name>
            <t>The extensions of a CP root certificate differ from the general certificate requirements described previously, in the following ways.</t>
            <section anchor="keyusage-extension-1">
              <name> <tt>keyUsage</tt> Extension</name>
              <ul spacing="normal">
                <li>
                  <tt>digitalSignature</tt> attribute: This attribute <bcp14>MUST NOT</bcp14> be set (because the CP root certificate should not be used to verify control-plane messages).</li>
                <li>
                  <tt>keyCertSign</tt> attribute: This attribute <bcp14>MUST</bcp14> be set.</li>
              </ul>
            </section>
            <section anchor="extkeyusage-extension-1">
              <name> <tt>extKeyUsage</tt> Extension</name>
              <t>The <tt>extKeyUsage</tt> extension <bcp14>MUST</bcp14> be present in the CP root certificate.
It must be defined as follows:</t>
              <ul spacing="normal">
                <li>
                  <tt>id-kp-serverAuth</tt> attribute: <bcp14>MUST NOT</bcp14> be set.</li>
                <li>
                  <tt>id-kp-clientAuth</tt> attribute: <bcp14>MUST NOT</bcp14> be set.</li>
                <li>
                  <tt>id-kp-timeStamping</tt> attribute: <bcp14>MUST</bcp14> be set.</li>
              </ul>
              <t>Additionally, the <tt>id-kp-root</tt> attribute must be specified, as follows:</t>
              <artwork><![CDATA[
   id-kp-root AttributeType ::= {id-ana id-cppki(1) id-kp(3) 3}
]]></artwork>
              <t>where <tt>id-ana</tt> specifies the root SCION object identifier (OID).</t>
              <t><strong>Note:</strong> The SCION open source implementation currently uses the Anapaya IANA Private Enterprise Number (55324) as root SCION object identifier (OID): <tt>id-ana ::= OBJECT IDENTIFIER {1 3 6 1 4 1 55324}</tt></t>
            </section>
            <section anchor="basicconstraints-extension-1">
              <name> <tt>basicConstraints</tt> Extension</name>
              <t>The <tt>basicConstraints</tt> extension <bcp14>MUST</bcp14> be present in the CP root certificate.<br/>
The extension attributes must be set as follows:</t>
              <ul spacing="normal">
                <li>
                  <tt>cA</tt> attribute: <bcp14>MUST</bcp14> be set to TRUE.</li>
                <li>
                  <tt>pathLenConstraint</tt> attribute: Should be set to "1". Additionally, it must be marked as "critical", according to <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>.
<br/></li>
              </ul>
            </section>
          </section>
        </section>
        <section anchor="cp-ca-cert">
          <name>Control-Plane CA Certificate</name>
          <t>The control-plane CA private key is used to sign control-plane AS certificates. Consequently, control-plane CA certificates holding the control-plane CA public key are used to verify control-plane AS certificates.</t>
          <t>The public key needed to verify the CA certificate is in a CP 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>All constraints described in <xref target="general-cert-req"/> also apply to control-plane CA certificates.</t>
          <t>The recommended <strong>maximum validity period</strong> of a CP CA certificate is: 11 days.</t>
          <section anchor="extension-constraints-1">
            <name> Extension Constraints</name>
            <t>The extensions of a CP CA certificate differ from the general certificate requirements described previously, in the following ways.</t>
            <section anchor="keyusage-extension-2">
              <name> <tt>keyUsage</tt> Extension</name>
              <ul spacing="normal">
                <li>
                  <tt>digitalSignature</tt> attribute: This attribute <bcp14>MUST NOT</bcp14> be set (because the control-plane CA certificate should not be used to verify control-plane messages).</li>
                <li>
                  <tt>keyCertSign</tt> attribute: This attribute <bcp14>MUST</bcp14> be set.</li>
              </ul>
            </section>
            <section anchor="extkeyusage-extension-2">
              <name> <tt>extKeyUsage</tt> Extension</name>
              <t>The <tt>extKeyUsage</tt> extension <bcp14>MAY</bcp14> be present in the CP CA certificate.</t>
              <t>If the <tt>extKeyUsage</tt> extension is present in the CP CA certificate, the attributes <tt>id-kp-serverAuth</tt> and <tt>id-kp-clientAuth</tt> <bcp14>MUST NOT</bcp14> be set.</t>
            </section>
            <section anchor="basicconstraints-extension-2">
              <name> <tt>basicConstraints</tt> Extension</name>
              <t>The <tt>basicConstraints</tt> extension <bcp14>MUST</bcp14> be present in the CP CA certificate.<br/>
The extension attributes must be set as follows:</t>
              <ul spacing="normal">
                <li>
                  <tt>cA</tt> attribute: <bcp14>MUST</bcp14> be set to TRUE.</li>
                <li>
                  <tt>pathLenConstraint</tt> attribute: <bcp14>SHOULD</bcp14> be set to "0". This means that the CP CA certificate can only issue end-entity certificates. Additionally, the attribute must be marked as "critical", according to <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>.
<br/></li>
              </ul>
            </section>
          </section>
        </section>
        <section anchor="cp-as-cert">
          <name>Control-Plane AS Certificate</name>
          <t>SCION ASes sign control-plane messages, such as PCBs, 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>All constraints described in <xref target="general-cert-req"/> also apply to control-plane AS certificates.</t>
          <t>The recommended <strong>maximum validity period</strong> of a CP AS certificate is: 3 days.</t>
          <section anchor="extension-constraints-2">
            <name> Extension Constraints</name>
            <t>The extensions of a CP AS certificate differ from the general certificate requirements described previously, in the following ways.</t>
            <section anchor="keyusage-extension-3">
              <name> <tt>keyUsage</tt> Extension</name>
              <ul spacing="normal">
                <li>
                  <tt>digitalSignature</tt> attribute: This attribute <bcp14>MUST</bcp14> be set.</li>
                <li>
                  <tt>keyCertSign</tt> attribute: This attribute <bcp14>MUST NOT</bcp14> be set.</li>
              </ul>
            </section>
            <section anchor="extkeyusage-extension-3">
              <name> <tt>extKeyUsage</tt> Extension</name>
              <t>The <tt>extKeyUsage</tt> extension <bcp14>MUST</bcp14> be present in the CP AS certificate.<br/>
It must be defined as follows:</t>
              <ul spacing="normal">
                <li>
                  <tt>id-kp-serverAuth</tt> attribute: <bcp14>MUST</bcp14> be set, if the CP AS certificate is used on the server-side of a control-plane TLS session establishment.</li>
                <li>
                  <tt>id-kp-clientAuth</tt> attribute: <bcp14>MUST</bcp14> be set, if the CP AS certificate is used on the client-side of control-plane TLS session establishment.</li>
                <li>
                  <tt>id-kp-timeStamping</tt> attribute: <bcp14>MUST</bcp14> be set.</li>
              </ul>
            </section>
            <section anchor="basicconstraints-extension-3">
              <name> <tt>basicConstraints</tt> Extension</name>
              <t>Control-plane AS certificates should not include the <tt>basicConstraints</tt> extension.</t>
            </section>
          </section>
        </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 are allowed to 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.</t>
          <t>The constraints described in <xref target="general-cert-req"/> also apply to voting certificates. There is one exception: A voting certificate is not required to include the <tt>ISD-AS number</tt> attribute in its distinguished name (for more information on this attribute, see <xref target="isd-as-nr"/>).</t>
          <section anchor="reg-vote">
            <name>Regular Voting Certificate</name>
            <t>Regular voting certificates state which keys are allowed to 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 key within the certificate was used to sign the certificate. However, a regular voting certificate cannot be used to verify other certificates.</t>
            <t>The recommended <strong>maximum validity period</strong> of a regular voting certificate is: 1 year.</t>
          </section>
          <section anchor="sens-vote">
            <name>Sensitive Voting Certificate</name>
            <t>Sensitive voting certificates specify which keys are allowed to 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 key within the certificate was used to sign the certificate. However, a sensitive voting certificate cannot be used to verify other certificates.</t>
            <t>The recommended <strong>maximum validity period</strong> of a sensitive voting certificate is: 5 years.</t>
            <section anchor="extension-constraints-of-voting-certificates">
              <name>Extension Constraints of Voting Certificates</name>
              <t>The extensions of both regular and sensitive voting certificates differ from the general certificate requirements described previously, in the following ways.</t>
              <section anchor="keyusage-extension-4">
                <name> <tt>keyUsage</tt> Extension</name>
                <t>The <tt>keyUsage</tt> extension is not required in a voting certificate.<br/>
However, if this extension is present, both the <tt>digitalSignature</tt> and the <tt>keyCertSign</tt> attributes <bcp14>MUST NOT</bcp14> be set.</t>
              </section>
              <section anchor="extkeyusage-extension-4">
                <name> <tt>extKeyUsage</tt> Extension</name>
                <t>The <tt>extKeyUsage</tt> extension <bcp14>MUST</bcp14> be present in a voting certificate.<br/>
It must be defined as follows:</t>
                <ul spacing="normal">
                  <li>
                    <tt>id-kp-serverAuth</tt> attribute: <bcp14>MUST NOT</bcp14> be set.</li>
                  <li>
                    <tt>id-kp-clientAuth</tt> attribute: <bcp14>MUST NOT</bcp14> be set.</li>
                  <li>
                    <tt>id-kp-timeStamping</tt> attribute: <bcp14>MUST</bcp14> be set.</li>
                </ul>
                <t>Additionally, the <tt>id-kp-regular</tt> / <tt>id-kp-sensitive</tt> attribute <bcp14>MUST</bcp14> be set, as follows:</t>
                <ul spacing="normal">
                  <li>For a regular voting certificate:<br/>
                    <tt>id-kp-regular AttributeType ::= {id-ana id-cppki(1) id-kp(3) 1}</tt></li>
                  <li>For a sensitive voting certificate:<br/>
                    <tt>id-kp-sensitive AttributeType ::= {id-ana id-cppki(1) id-kp(3) 1}</tt></li>
                </ul>
                <t>where <tt>id-ana</tt> specifies the root SCION object identifier (OID).</t>
                <t><strong>Note:</strong> The SCION open source implementation currently uses the Anapaya IANA Private Enterprise Number (55324) as root SCION object identifier (OID): <tt>id-ana ::= OBJECT IDENTIFIER {1 3 6 1 4 1 55324}</tt></t>
              </section>
              <section anchor="basicconstraints-extension-4">
                <name> <tt>basicConstraints</tt> Extension</name>
                <t>The <tt>basicConstraints</tt> extension <bcp14>SHOULD NOT</bcp14> be part of a voting certificate.<br/>
However, if this extension is present in a voting certificate, it <bcp14>MUST</bcp14> be defined as follows:</t>
                <ul spacing="normal">
                  <li>
                    <tt>cA</tt> attribute: <bcp14>MUST</bcp14> be set to FALSE.</li>
                  <li>
                    <tt>pathLenConstraint</tt> attribute: <bcp14>MUST NOT</bcp14> be present.
<br/></li>
                </ul>
              </section>
            </section>
          </section>
        </section>
      </section>
    </section>
    <section anchor="trc-specification">
      <name>Specification of the Trust Root Configuration</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 securing the 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; <xref target="trc-ceremony"/> describes these rules.</t>
      <section anchor="trc-spec">
        <name>TRC Specification</name>
        <t>The trust root configuration (TRC) is a signed collection of <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref> v3 certificates. Additionally, the TRC contains ISD-specific policies encoded in a Cryptographic Message Syntax (CMS) <xref target="RFC5652"/> envelope.</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><strong>Note:</strong> See <xref target="cert-specs"/> for the general specifications of SCION's control-plane certificates, as well as <xref target="cp-root-cert"/> and <xref target="cp-voting-cert"/>, for the specifications of the control-plane root certificates and voting certificates, respectively.</t>
        <t>This section provides a detailed specification of the TRC. It presents the TRC format definitions and describes the TRC payload fields. The section uses the ITU-T <eref target="https://handle.itu.int/11.1002/1000/14468">X.680</eref> syntax.</t>
        <section anchor="trc-states">
          <name> TRC Types and States</name>
          <t>The following types of TRCs exist:</t>
          <ul spacing="normal">
            <li>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.</li>
            <li>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.</li>
            <li>Update: All non-base TRCs are updated TRCs. They are the product of either a regular or a sensitive update.</li>
          </ul>
          <t>A TRC can have the following states:</t>
          <ul spacing="normal">
            <li>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.</li>
            <li>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>grace</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.</li>
          </ul>
          <t><xref target="_figure-3"/>  shows the content of both a base/initial TRC and the first regularly-updated TRC based on the base TRC. All elements of the shown TRCs are specified in detail in the following subsections.</t>
          <figure anchor="_figure-3">
            <name>The TRC on the left-hand side is the initial base TRC. The TRC on the right is the product of the first regular update of the base TRC.</name>
            <artwork><![CDATA[
+--------------------------------------------+        +--------------------------------------------+
|             TRC 1 (base, initial)          |        |             TRC 2 (regular update)         |
|+------------------------------------------+|        |+------------------------------------------+|
||- Version       - Core ASes               ||        ||- Version       - Core ASes               ||
||- ID            - Description             ||        ||- ID            - Description             ||
||- Validity      - No Trust Reset          ||        ||- Validity      - No Trust Reset          ||
||- Grace Period  - Voting Quorum           ||        ||- Grace Period  - Voting Quorum           ||
||- ...                                     ||        ||- ...                                     ||
|+------------------------------------------+|        |+------------------------------------------+|
|+--------------------++--------------------+|        |+--------------------++--------------------+|
||Votes (cert.indices)||   Regular Voting   ||        ||Votes (cert.indices)||   Regular Voting   ||
||                    ||    Certificates    ||        ||                    ||    Certificates    ||
||    (empty)         ||                    ||        ||    (1),(2)...      ||                    ||
||                    ||+-----+ +-----+     ||        ||                    ||+-----+ +-----+     ||
||                    ||| (1) | | (2) |     ||        ||                    ||| (1) | | (2) |     ||
||                    |||C    | |C    | ... ||        ||                    |||C    | |C    | ... ||
||                    ||| reg | | reg |     ||        ||                    ||| reg | | reg |     ||
|+--------------------+|+--+--+ +--+--+     ||        |+--------------------+|+-----+ +-----+     ||
|+--------------------+|   |       |        ||        |+--------------------+|                    ||
||                    ||   |       +--------++-----+  ||                    ||                    ||
||                    ||   +----------------++-+   |  ||                    ||                    ||
||    Signatures      |+--------------------+| |   |  ||    Signatures      |+--------------------+|
||                    |+--------------------+| |   |  ||                    |+--------------------+|
||+------------------+|| Sensitive Voting   || |   |  ||+------------------+|| Sensitive Voting   ||
|||73 A9 4E AO 0D ...|||    Certificates    || |   +--+>|48 AE E4 80 DB ...|||    Certificates    ||
||+------------------+||+-----+ +-----+     || |      ||+------------------+||+-----+ +-----+     ||
||+------------------+||| (3) | | (4) |     || |      ||+------------------+||| (3) | | (4) |     ||
|||53 B7 7C 98 56 ...||||C    | |C    |     || +------+>|7E BC 75 98 25 ...||||C    | |C    |     ||
||+------------------+||| sens| | sens| ... ||        ||+------------------+||| sens| | sens| ... ||
||        ...         ||+-----+ +-----+     ||        ||        ...         ||+-----+ +-----+     ||
|+--------------------++--------------------+|        |+--------------------++--------------------+|
|+------------------------------------------+|        |+------------------------------------------+|
||          CP Root Certificates            ||        ||          CP Root Certificates            ||
||                                          ||        ||                                          ||
|| +-----+ +-----+ +-----+ +-----+          ||        || +-----+ +-----+ +-----+ +-----+          ||
|| | (5) | | (6) | | (7) | | (8) |          ||        || | (5) | | (6) | | (7) | | (8) |          ||
|| |C    | |C    | |C    | |C    |          ||        || |C    | |C    | |C    | |C    |          ||
|| | root| | root| | root| | root| .....    ||        || | root| | root| | root| | root| .....    ||
|| +-----+ +-----+ +-----+ +-----+          ||        || +-----+ +-----+ +-----+ +-----+          ||
|+------------------------------------------+|        |+------------------------------------------+|
+--------------------------------------------+        +--------------------------------------------+
]]></artwork>
          </figure>
        </section>
        <section anchor="trc-format">
          <name> TRC Format</name>
          <t>The trust root configuration (TRC) of an ISD defines the roots of trust of the ISD, and builds the base 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) <eref target="https://handle.itu.int/11.1002/1000/14472">X6.90</eref>. For more details, see <xref target="signed-format"/>.</t>
          </section>
          <section anchor="trc-fields">
            <name> TRC Fields</name>
            <t>This section describes the syntax and semantics of all TRC payload fields.</t>
            <section anchor="version-field-1">
              <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>ISD number (<tt>iSD</tt> attribute),</li>
                <li>base number (<tt>baseNumber</tt> attribute), and</li>
                <li>TRC serial number (<tt>serialNumber</tt> attribute).</li>
              </ul>
              <t>All numbers <bcp14>MUST</bcp14> be positive integers.</t>
              <ul spacing="normal">
                <li>The <strong>ISD number</strong> <bcp14>MUST</bcp14> be an integer in the inclusive range between 1 and 65535 (i.e., the ISD numbering range).</li>
                <li>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.</li>
                <li>The <strong>serial number</strong> represents the current update cycle, counting from the initial TRC of a specific ISD.</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. An ISD's initial TRC <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. This facilitates uniquely identifying the predecessor and successor TRC in a TRC 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 14</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-3">
                <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">ISD14-B01-S01</td>
                    <td align="left"> </td>
                  </tr>
                  <tr>
                    <td align="left">Regular</td>
                    <td align="left">ISD14-B01-S02</td>
                    <td align="left">Only the serial number is incremented.</td>
                  </tr>
                  <tr>
                    <td align="left">Regular</td>
                    <td align="left">ISD14-B01-S03</td>
                    <td align="left">Only the serial number is incremented.</td>
                  </tr>
                  <tr>
                    <td align="left">Sensitive</td>
                    <td align="left">ISD14-B01-S04</td>
                    <td align="left">Only the serial number is incremented.</td>
                  </tr>
                  <tr>
                    <td align="left">Trust reset</td>
                    <td align="left">ISD14-<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">ISD14-B05-S06</td>
                    <td align="left">Only the serial number is incremented.</td>
                  </tr>
                  <tr>
                    <td align="left">Regular</td>
                    <td align="left">ISD14-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. This 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 <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>.</t>
              <t>In addition to this standard definition, the following constraint applies to the <tt>validity</tt> field of the TRC used in SCION:</t>
              <ul spacing="normal">
                <li>All TRCs <bcp14>MUST</bcp14> have a well-defined expiration date. SCION implementations <bcp14>MUST NOT</bcp14> create TRCs that use the "99991231235959Z" generalized time value, and verifiers <bcp14>MUST</bcp14> error out when encountering such a TRC.</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>the grace period has passed,</li>
                <li>the predecessor's expiration time is reached, or</li>
                <li>the successor TRC of the new TRC has been announced.</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 should 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 CANNOT 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 optional 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.</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 <xref target="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 must 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>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.</li>
                  <li>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.</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>Every authoritative AS <bcp14>MUST</bcp14> be a core AS and be listed in the <tt>coreASes</tt> field.</li>
                <li>Each authoritative AS number <bcp14>MUST</bcp14> be unique in the sequence of authoritative AS numbers. That is, each AS number must appear only once in the <tt>authoritativeASes</tt> field.</li>
              </ul>
              <section anchor="revoking-or-assigning-authoritative-status">
                <name> Revoking or Assigning Authoritative Status</name>
                <ul spacing="normal">
                  <li>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.</li>
                  <li>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.</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>The <tt>description</tt> field <bcp14>SHOULD NOT</bcp14> be empty.</li>
                <li>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.</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 must be one of the following types:</t>
              <ul spacing="normal">
                <li>a sensitive voting certificate,</li>
                <li>a regular voting certificate, or</li>
                <li>a CP root certificate.</li>
              </ul>
              <t><strong>Note:</strong> The listing location of a certificate within the TRC corresponds with the certificate's type.</t>
              <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>The constraints on these certificates are described in <xref target="cp-root-cert"/> and <xref target="cp-voting-cert"/>, respectively. Additionally, the following constraints <bcp14>MUST</bcp14> hold for each certificate:</t>
              <ul spacing="normal">
                <li>Each certificate <bcp14>MUST</bcp14> be unique in the sequence of certificates. That is, each certificate must appear only once in the <tt>certificates</tt> field.</li>
                <li>The <tt>issuer</tt> / <tt>serialNumber</tt> pair for each certificate <bcp14>MUST</bcp14> be unique.</li>
                <li>If an ISD-AS number is present in the distinguished name of the certificate, the ISD number in the certificate <bcp14>MUST</bcp14> be equal to the ISD number of this TRC (which is defined in the <tt>iD</tt> field (see <xref target="id"/>).</li>
                <li>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.</li>
                <li>Per certificate type, every certificate distinguished name <bcp14>MUST</bcp14> be unique.</li>
              </ul>
              <t>The following must hold for the entire sequence of certificates in the <tt>certificates</tt> field:</t>
              <ul spacing="normal">
                <li>
                  <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"/>) must be smaller than or equal to the number of <em>sensitive</em> voting certificates specified in the TRC's <tt>certificates</tt> field.</li>
                <li>
                  <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"/>) must be smaller than or equal to the number of <em>regular</em> voting certificates specified in the TRC's <tt>certificates</tt> field.</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. Each TRC (payload) is digitally signed. The syntax used to sign and encapsulate the TRC payload is the Cryptographic Message Syntax (CMS), as defined in <xref target="RFC5652"/>. The signed TRC payload is of the CMS signed-data content type, as defined in Section 5 of <xref target="RFC5652"/>, and encapsulated in a CMS <tt>ContentInfo</tt> element, as defined in Section 3 of <xref target="RFC5652"/>.</t>
          <t>The following code block displays the general syntax definitions of the Cryptographic Message Syntax:</t>
          <artwork><![CDATA[
   ContentInfo ::= SEQUENCE {
       contentType ContentType,
       content [0] EXPLICIT ANY DEFINED BY contentType }

   ContentType ::= OBJECT IDENTIFIER

   SignedData  ::=  SEQUENCE {
       version               CMSVersion,
       digestAlgorithms      DigestAlgorithmIdentifiers,
       encapContentInfo      EncapsulatedContentInfo,
       certificates      [0] IMPLICIT CertificateSet OPTIONAL,
       crls              [1] IMPLICIT RevocationInfoChoices OPTIONAL,
       signerInfos           SignerInfos }

   DigestAlgorithmIdentifiers  ::=  SET OF DigestAlgorithmIdentifier

   SignerInfos  ::=  SET OF SignerInfo

   EncapsulatedContentInfo  ::=  SEQUENCE {
       eContentType      ContentType,
       eContent      [0] EXPLICIT OCTET STRING OPTIONAL }

   SignerInfo  ::=  SEQUENCE {
       version                 CMSVersion,
       sid                     SignerIdentifier,
       digestAlgorithm         DigestAlgorithmIdentifier,
       signedAttrs         [0] IMPLICIT SignedAttributes OPTIONAL,
       signatureAlgorithm      SignatureAlgorithmIdentifier,
       signature               SignatureValue,
       unsignedAttrs       [1] IMPLICIT UnsignedAttributes OPTIONAL }

   SignerIdentifier  ::=  CHOICE {
       issuerAndSerialNumber      IssuerAndSerialNumber,
       subjectKeyIdentifier   [0] SubjectKeyIdentifier }

   SignedAttributes  ::=  SET SIZE (1..MAX) OF Attribute

   UnsignedAttributes  ::=  SET SIZE (1..MAX) OF Attribute

   Attribute  ::=  SEQUENCE {
       attrType    OBJECT IDENTIFIER,
       attrValues  SET OF AttributeValue }

   AttributeValue  ::=  ANY

   SignatureValue  ::=  OCTET STRING
]]></artwork>
          <t>SCION implementations have to fulfil the following additional rules, on top of the general syntax rules from <xref target="RFC5652"/>:</t>
          <ul spacing="normal">
            <li>
              <t><tt>EncapsulatedContentInfo</tt> sequence:
              </t>
              <ul spacing="normal">
                <li>The <tt>eContentType</tt> field must be set to "id-data".</li>
                <li>The content of the <tt>eContent</tt> field must 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"/>.</li>
              </ul>
            </li>
            <li>
              <t><tt>SignedData</tt> sequence:
              </t>
              <ul spacing="normal">
                <li>The <tt>certificates</tt> field of the CMS syntax definitions <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"/>).</li>
                <li>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"/>).</li>
              </ul>
            </li>
            <li>
              <t><tt>SignerIdentifier</tt> choice:
              </t>
              <ul spacing="normal">
                <li>The type of signer identifier selected here <bcp14>MUST</bcp14> be <tt>IssuerAndSerialNumber</tt>.</li>
              </ul>
            </li>
            <li>
              <t><tt>SignerInfo</tt> sequence:
              </t>
              <ul spacing="normal">
                <li>The <tt>version</tt> field <bcp14>MUST</bcp14> be set to "1". This is because SCION uses the "IssuerAndSerialNumber" type of signer identifier (see also Section 5.3 of <xref target="RFC5652"/>).</li>
                <li>The algorithm specified in the <tt>signatureAlgorithm</tt> field <bcp14>MUST</bcp14> be one of the supported algorithms (see also <xref target="certificate-signature"/>).</li>
                <li>The <tt>digestAlgorithm</tt> is determined by the algorithm specified in the <tt>signatureAlgorithm</tt> field.</li>
              </ul>
            </li>
          </ul>
          <section anchor="trc-equality">
            <name> TRC Equality</name>
            <t>The signer infos in the signed TRC are part of an unordered set, per <xref target="RFC5652"/>. This implies that the signer infos can be reordered without affecting verification. Certain operations, however, require TRCs to be equal according to the following equality definition:</t>
            <t><strong>Two TRCs are equal, if and only if their payloads are byte equal.</strong></t>
            <t>This definition of equality is sufficient, because the TRC payload exactly defines which signatures must be attached in the signed TRC:</t>
            <ul spacing="normal">
              <li>The required 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"/>.</li>
              <li>The required signatures for new certificates are implied by the currently valid TRC payload, and, in case of a TRC update, the predecessor payload.</li>
            </ul>
          </section>
        </section>
        <section anchor="control-plane-certification-path">
          <name> Control-Plane Certification Path</name>
          <t>The certification path of a control-plane AS certificate starts in a control-plane root certificate. The control-plane root certificates for a given ISD are distributed via the TRC.</t>
          <t>To be able to validate the certification path, the relying party must build a trust anchor pool, which consists of a set of control-plane root certificates from the available TRCs. Based on this pool, the relying party can select candidate certification paths and verify them.</t>
          <section anchor="trc-selection">
            <name> Trust Anchor Pool - TRC Selection</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. 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 for which you want 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 that act as trust anchors.
        """
        # Find highest base number that has a TRC with a 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 the 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 TRCs
        # 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 that act 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. Based on the type of update, a different set of voters is necessary to create a verifiable TRC update. The type of update also determines the (payload) information that changes in the updated TRC. 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, some only apply to a regular or a sensitive TRC update, respectively.</t>
          <section anchor="change-new">
            <name> Changed or New Certificates</name>
            <t>In the context of a TRC update,</t>
            <ul spacing="normal">
              <li>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>.</li>
              <li>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.</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.<br/>
The sections that follow provide more detailed descriptions of each rule.</t>
            <table anchor="_table-4">
              <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/></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: Nr. of votes (indices) &gt;= nr. in the <tt>votingQuorum</tt> field of the predecessor TRC</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">- <tt>noTrustReset</tt> field</td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                </tr>
                <tr>
                  <td align="left">Regular TRC Update</td>
                  <td align="left">- Quorum in the <tt>votingQuorum</tt> field <br/></td>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>votes</tt> field:<br/></td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">- Core ASes in the <tt>coreASes</tt> field <br/></td>
                  <td align="left"> </td>
                  <td align="left">- All votes must only refer to <em>regular</em> voting certificates in the predecessor TRC <br/></td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">- ASes in the <tt>authoritativeASes</tt> field <br/></td>
                  <td align="left"> </td>
                  <td align="left">- Must include votes of each changed regular voting certificate from the predecessor TRC <br/></td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">- Nr. and distinguished names of root &amp; voting certificates in the <tt>certificates</tt> field <br/></td>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>signatures</tt> field:<br/></td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">- Set of sensitive voting certificates in the <tt>certificates</tt> field</td>
                  <td align="left"> </td>
                  <td align="left">- Must include signatures of each changed root certificate from the predecessor TRC</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </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/></td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left">- All votes must 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>The <tt>iSD</tt> and <tt>baseNumber</tt> in the <tt>iD</tt> field <bcp14>MUST NOT</bcp14> change (see also <xref target="id"/>).</li>
              <li>The <tt>serialNumber</tt> in the <tt>iD</tt> field <bcp14>MUST</bcp14> be incremented by one.</li>
              <li>The <tt>noTrustReset</tt> field <bcp14>MUST NOT</bcp14> change (see also <xref target="notrustreset"/>).</li>
              <li>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"/>.</li>
              <li>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.</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>The voting quorum set in the <tt>votingQuorum</tt> field.</li>
                  <li>The core ASes specified in the <tt>coreASes</tt> field.</li>
                  <li>The authoritative ASes specified in the <tt>authoritativeASes</tt> field.</li>
                  <li>The number of sensitive and regular voting certificates as well as CP root certificates included in the <tt>certificates</tt> field, and their distinguished names.</li>
                  <li>The set of sensitive voting certificates specified in the <tt>certificates</tt> field.</li>
                </ul>
              </li>
              <li>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.</li>
              <li>For every CP root certificate that changes, the CP root certificate in the predecessor TRC <bcp14>MUST</bcp14> attach a signature to the signed updated TRC.</li>
              <li>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.</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>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.</li>
            </ul>
          </section>
          <section anchor="trc-update-verification">
            <name> TRC Update Verification</name>
            <t>To verify a TRC update, the relying party must perform the following checks:</t>
            <ul spacing="normal">
              <li>Check that the specified update rules as described above are respected.</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>check that signatures for the changing certificates are present and verifiable, and</li>
                      <li>check that all votes are cast by a regular voting certificate.</li>
                    </ul>
                  </li>
                  <li>In case of a sensitive update, check that all votes are cast by a sensitive voting certificate.</li>
                </ul>
              </li>
              <li>In both cases, check that all signatures are verifiable, and no superfluous signatures are attached.</li>
            </ul>
            <t>If one or more of the above checks gives a negative result, the updated TRC should be rejected.</t>
          </section>
        </section>
      </section>
      <section anchor="trc-ceremony">
        <name> 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 must be signed during a signing ceremony--all voting representatives of the initial TRC need to take part in this signing ceremony to sign the agreed-upon TRC. As part of the ceremony, the public keys of all voters are exchanged. The TRC is then distributed throughout the ISD. All entities within an ISD can initially obtain an authentic TRC, by means of a secure off- or online mechanism.</t>
        <t><xref target="initial-ceremony"/> describes a possible procedure for the signing ceremony of an ISD's initial TRC.  It is in principle up to the initial members of an ISD how to shape the signing ceremony. However, it is recommended having a process in line with the below described ceremony.</t>
        <section anchor="non-base-trc-updates">
          <name> Non-Base TRC Updates</name>
          <t>A non-base TRC is the result of a TRC update, either regular or sensitive. Only a predefined quorum of voters needs to partake in a non-base TRC signing ceremony. This is defined in the <tt>votingQuorum</tt> field of the predecessor TRC (see <xref target="quorum"/>). Depending on the kind of update, these voters represent regular or sensitive voting certificates, respectively. Furthermore, if one or more <em>new</em> certificates are added to the updated TRC, the corresponding voting representatives must also join the signing ceremony. For the distinction between changed and new certificates in a TRC update, see <xref target="change-new"/>.</t>
          <t>During the signing ceremony of an updated TRC, it may be necessary to cast votes with both old and new keys: Voters representing regular or sensitive voting certificates already present in the predecessor TRC must cast their votes on the payload file of the updated TRC; the purpose of signing a TRC with keys contained in the previous TRC is to certify the update. Furthermore, if previously non-included voting certificates are added to the TRC, the corresponding voting representatives must show that they have access to the private keys listed in these fresh certificates. This is called "showing proof-of-possession", and done by signing the TRC with the respective private key.</t>
          <t>The ISD members decide themselves about the updating procedure. Some ISDs will make a distinction between regular and sensitive updates. These ISDs divide the regular and sensitive signing keys in different security classes and act accordingly. For example, they keep the regular key in an online vault while the sensitive key would be stored offline in cold storage. 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, however, keep both regular and sensitive keys online and perform both updates automatically.</t>
        </section>
        <section anchor="initial-ceremony">
          <name> TRC Signing Ceremony - Base TRC</name>
          <t>The following sections describe a possible signing ceremony for the first (initial) base TRC of an ISD. Although each ISD is free to decide how to shape this signing ceremony, it is recommended establishing a procedure similar to the one below.</t>
          <section anchor="ceremony-participants">
            <name> Ceremony Participants</name>
            <t>A signing ceremony includes participants from member organizations of the respective Isolation Domain.
The participants of the signing ceremony fulfil different roles:</t>
            <ul spacing="normal">
              <li>The <strong>ceremony administrator</strong> is in charge of moderating the signing process. He/she guides all participants through the steps they need to take. The ceremony administrator may also act as an intermediary between participants when they share information with each other.</li>
              <li>A <strong>voting AS representative</strong> is capable of creating voting signatures on the TRC. This means the voting representative is in possession of a device with the private keys of the respective certificates in the TRC.</li>
              <li>A <strong>witness</strong> is any person that participates in the ceremony as a passive entity. The witness has no active role in any of the steps of the ceremony, but can stop the process and inquire for more information if they feel the integrity of the process might have been compromised.</li>
            </ul>
            <t><strong>Note:</strong> It is assumed that the member organizations of the ISD have decided in advance, before the signing ceremony, on the roles of the ceremony participants. That is, they have reached agreement about the Certificate Authority (CA) ASes, the voting ASes, the representatives of the voting ASes, the ceremony administrator and the witnesses.</t>
            <t><strong>Note:</strong> For the signing ceremony, it is assumed that all parties are trustworthy. Issues encountered during the ceremony are assumed to be caused by honest mistakes, and not by malicious intent. Hash comparison checks are included to counter mistakes, such that every participant is sure that they operate on the same data. Furthermore, the private keys of each participant never leave their machine. The ceremony administrator does not have to be entrusted with private keys.</t>
          </section>
          <section anchor="ceremony-preparations">
            <name> Ceremony Preparations</name>
            <t>Prior to the ceremony, participants decide on the physical location of the ceremony, the devices that will be used during the ceremony and the policy of the ISD. Specifically, the voting entities agree on the following parameters:</t>
            <ul spacing="normal">
              <li>validity of the TRC,</li>
              <li>voting quorum,</li>
              <li>core ASes/authoritative ASes,</li>
              <li>description, and</li>
              <li>list of CP root certificates.</li>
            </ul>
            <t>When these values are agreed upon, a number of voters, equal to or larger than the specified voting quorum, needs to execute the signing ceremony. For the base TRC, all voting entities need to be present with both their sensitive and regular voting keys. The ceremony process is structured in multiple rounds of data sharing. The ceremony administrator leads the interaction and gives instructions to each participant.</t>
            <section anchor="location">
              <name> Location</name>
              <t>The location must provide electricity and enough power sockets for each participant. Furthermore, it should provide a monitor (or projector) that allows the ceremony administrator to screen cast.</t>
            </section>
            <section anchor="devices">
              <name> Devices</name>
              <t>Each party brings their own device that is provisioned with the required material, as described below.</t>
              <ul spacing="normal">
                <li>Device to exchange data. This device can either be provided by the ceremony administrator, or, if preferable, by any of the voting representatives.</li>
                <li>Ceremony administrator's device: The ceremony administrator should bring a machine that is capable of creating and verifying a TRC. Furthermore, it needs to be able to compute the SHA-512 digest (hash value) of files.</li>
                <li>Voting representative's device: The voting representative should bring a machine that is capable of signing and verifying TRCs. Thus, the machine needs to have access to all the voting private keys. Furthermore, it needs to be able to compute the SHA-512 digest (hash value) of the files. The exact binaries that are required are described in a separate document.</li>
              </ul>
              <t><strong>Important:</strong> It is very important that all devices, especially the data exchange device, are not compromised. Therefore, the ceremony should ideally include a procedure to verify that the devices are secure.</t>
            </section>
            <section anchor="preparation-steps">
              <name>Preparation Steps</name>
              <t>Each party involved in a TRC signing ceremony must go through a few steps in preparation for the ceremony. This section outlines these steps.</t>
              <section anchor="preparatory-tasks-of-the-ceremony-administrator">
                <name> Preparatory Tasks of the Ceremony Administrator</name>
                <t>In the preparation phase of the TRC Signing Ceremony, the ceremony administrator has the following tasks:</t>
                <ol spacing="normal" type="1"><li>Send out the high-level TRC Signing Ceremony description and the document describing the TRC Signing Ceremony Phases to the participants, all in digital form.</li>
                  <li>Remind all representatives of the voting ASes that they need to agree on a common TRC policy before scheduling the TRC ceremony.</li>
                  <li>Bring all digitally distributed documents as a printout for all parties that take part.</li>
                </ol>
              </section>
              <section anchor="preparatory-tasks-of-the-voting-as-representatives">
                <name> Preparatory Tasks of the Voting AS Representatives</name>
                <t>The preparatory task of the representatives of the voting ASes (short: the voters) is to generate the necessary certificates.</t>
                <t><strong>Important:</strong> Before generating the certificates, all voters need to agree on a preliminary TRC policy, in particular on the <strong>validity period of the TRC</strong>. This is necessary because all the certificates that are generated in advance must <strong>cover the full TRC validity period</strong>. The other policy values could be amended during the ceremony itself.</t>
                <t>Each representative of a voting AS must create the following keys and certificates:</t>
                <ul spacing="normal">
                  <li>A sensitive voting private key, and a certificate holding the corresponding public key.</li>
                  <li>A regular voting private key, and a certificate holding the corresponding public key.</li>
                </ul>
                <t>Each representative of an AS that will be a Certificate Authority must create the following key and certificate:</t>
                <ul spacing="normal">
                  <li>A control-plane root private key, and a certificate holding the corresponding public key.</li>
                </ul>
              </section>
            </section>
          </section>
          <section anchor="ceremony-process">
            <name> Ceremony Process</name>
            <t>The ceremony process for the initial base TRC is structured in multiple rounds of data sharing. The ceremony administrator leads the interaction and instructs each participant with what to do.</t>
            <t>The ceremony process contains the following phases:</t>
            <ul spacing="normal">
              <li>
                <xref target="phase1">Phase 1: Certificate Exchange</xref>. In the first phase of the ceremony, all voting parties share the certificates that must be part of the TRC with the ceremony administrator.</li>
              <li>
                <xref target="phase2">Phase 2: Generation of the TRC Payload</xref>. In the second phase, the ceremony administrator generates the TRC payload based on the bundled certificates and the agreed-upon ISD policy.</li>
              <li>
                <xref target="phase3">Phase 3: TRC Signing</xref>. In the third phase, each voting representative attaches the required signatures to the TRC.</li>
              <li>
                <xref target="phase4">Phase 4: TRC Validation</xref>. In the final phase of the ceremony, all voting representatives share the signed TRC with the ceremony administrator, who aggregates it in a single signed TRC document.</li>
            </ul>
            <t>A detailed description of each phase follows below.</t>
            <section anchor="phase1">
              <name> Phase 1: Certificate Exchange</name>
              <t>In Phase 1 of the signing ceremony, all parties share the certificates that must be part of the TRC with the ceremony administrator. For the representatives of the voting ASes, these are the sensitive and the regular voting certificates. For the representatives of the ASes that are also Certificate Authorities, the list of certificates must include the CP root certificate.</t>
              <t>The actual sharing happens over the data exchange device, which goes from one voting representative to the next. Each voting representative copies the requested certificates from their own machine onto the data exchange device, before forwarding the device to the next voter. The last voter returns the device to the ceremony administrator.</t>
              <t><strong>Important:</strong> Note that only the <strong>certificates</strong> must be shared during this step, <strong>not</strong> the private keys. Copying a private key by mistake invalidates the security of the ceremony.</t>
              <t>For each provided certificate, the ceremony administrator checks that its validity period covers the previously agreed-upon TRC validity, that the signature algorithms are correct, and that the certificate is of the valid type (root, sensitive voting or regular voting certificate). If the results of these checks are as expected, the ceremony administrator computes the SHA256 sum for each certificate. The ceremony administrator then aggregates and bundles the provided certificates, and calculates the hash value (SHA-512 digest) over the entire bundle. Additionally, the ceremony administrator displays all hash values on the monitor.</t>
              <t>The ceremony administrator now shares the bundle with all voters. This could happen again via the data exchange device, which goes from one voter to the next. Each voting representative verifies that the certificates they contributed have the same hash value as the displayed value on the monitor. Furthermore, all voting representatives must confirm that the hash value of the bundled certificates on their machine is equal to the value on the monitor.</t>
              <t>Phase 1 is concluded when every voting representative has confirmed that the SHA256 sums are correct.</t>
              <t><strong>Note:</strong> If there is a mismatch in any of the SHA256 sums, Phase 1 needs to be repeated.</t>
            </section>
            <section anchor="phase2">
              <name>Phase 2: Generation of the TRC Payload</name>
              <t>In Phase 2 of the ceremony, the ceremony administrator generates the TRC payload based on the bundled certificates and the agreed-upon ISD policy. The result is displayed on the monitor along with a hash value (SHA-512 digest).</t>
              <t>To be able to generate the payload, the ceremony administrator must ask the voting representatives for</t>
              <ul spacing="normal">
                <li>The ISD number of the ISD. The number (identifier, ID) of an ISD must be chosen and agreed upon by the participants during the signing ceremony of the ISD's initial TRC. The ceremony administrator needs the ISD number to specify the identifier (ID) of the initial TRC. This <tt>iD</tt> is part of the TRC payload. For more information, see <xref target="id"/>.</li>
                <li>The description of the TRC. For more information, see <xref target="description"/>.</li>
                <li>The AS numbers of the core ASes of the ISD. For more information, see <xref target="core"/>.</li>
                <li>The AS numbers of the authoritative ASes of the ISD. For more information, see <xref target="auth"/>.</li>
                <li>The voting quorum for the next TRC update. For more information, see <xref target="quorum"/>.</li>
                <li>The validity period of the new TRC. For more information, see <xref target="validity"/>.</li>
              </ul>
              <t><strong>Note:</strong> It is assumed that the voting ASes have agreed on the answers to the above questions in advance, before the signing ceremony.</t>
              <t>The ceremony administrator can now specify the TRC payload variables in the payload template file, and show the filled-in template on the monitor. When the voters have verified the data, the ceremony administrator can compute the DER encoding of the TRC data as well as the SHA256 sum of the TRC payload file. The ceremony administrator then distributes the TRC payload (via the data exchange device) to all voting representatives, who verify the payload's hash value. The voters do this by computing the hash value of the TRC payload on their machine and checking whether their value matches the one on the monitor.</t>
              <t>Phase 2 successfully concludes once every voting representative confirms that the contents of the TRC payload are correct.</t>
            </section>
            <section anchor="phase3">
              <name>Phase 3: TRC Signing</name>
              <t>In Phase 3, each voting representative attaches a signature created with each one of their private voting keys to the TRC (payload file). They do this on their own machine. The purpose of signing a TRC that contains newly introduced public keys with the corresponding private keys is to prove the possession of the private keys.</t>
              <t>Phase 3 concludes after all voting representatives have cast their votes.</t>
            </section>
            <section anchor="phase4">
              <name> Phase 4: TRC Validation</name>
              <t>In Phase 4, all voting representatives share the signed TRC with the ceremony administrator. This happens again over the data exchange device, which goes from one voter to the next. Each voting representative copies the TRC payload signed with the voter's private keys from their own machine onto the data exchange device. The last voter returns the device to the ceremony administrator, who assembles the final TRC by aggregating the payload data with the votes (signatures) cast by the voting representatives.</t>
              <t>The signed TRC is validated by inspecting its contents on the monitor and verifying the signatures based on the exchanged certificates in Phase 1. The ceremony administrator then shares the signed TRC with all participants. Each of them must then inspect it once more, and verify it based on the certificates exchanged in Phase 1. At this point, the ceremony is completed. All participants have the signed TRC, and can use it to distribute the trust anchors for their ISD.</t>
            </section>
          </section>
        </section>
      </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 must 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="trc-update-discovery">
            <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. They <bcp14>SHOULD</bcp14> discover TRC updates in a matter of minutes to hours. Regardless of the employed discovery method, the following requirement must be satisfied:</t>
            <t><strong>Requirement:</strong><br/>
Any entity sending information that is secured through the CP-PKI (be it during beaconing or path lookup) <bcp14>MUST</bcp14> be able to provide all the necessary trust material to verify said information.</t>
            <t>As it is always possible to communicate with the sender of a packet (either via path reversal or one-hop paths), this requirement avoids circular dependencies between authentication and packet forwarding.</t>
            <t>The following mechanisms for discovering TRC updates fulfil the above requirement.</t>
            <ul spacing="normal">
              <li>
                <em>Beaconing Process</em><br/>
The TRC version is announced in the beaconing process. Each AS must announce what it considers to be the latest TRC. Furthermore, each AS must 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. That is, the beacon service in a core AS notices TRC updates for remote ISDs that are on the beaconing path. The beacon service in a non-core AS only notices TRC updates for the local ISD through the beaconing
process. The creation of a new TRC should trigger the generation of new PCBs, as the propagation of PCBs will help other ASes rapidly discover the new TRC.</li>
              <li>
                <em>Path Lookup</em><br/>
In every path segment, all ASes must reference the latest TRC of their ISD. Therefore, when resolving paths, every relying party will notice TRC updates, even remote ones.<br/>
                <strong>Note:</strong> The above mechanism only works when there is an active communication between the relying party and the ISD in question.</li>
            </ul>
          </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 SCION control-plane PKI is providing a mechanism to distribute and authenticate public keys that are used to verify control-plane messages and information. For example, each hop information in a path segment is signed by the respective AS. Consequently, all relying parties must be able to verify signatures with the help of the CP-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>ISD-AS number: The ISD-AS number of the signing entity. For specification details, see <xref target="isd-as-nr"/>.</li>
            <li>Subject key identifier: The identifier of the public key that must be used to verify the message. For specification details, see <xref target="subject-key-id-ext"/>.</li>
          </ul>
          <t>Additionally, the signer <bcp14>SHOULD</bcp14> include the following information:</t>
          <ul spacing="normal">
            <li>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"/>.</li>
            <li>Timestamp: For many messages, the time at which it was signed is useful information to ensure freshness.</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. A certificate chain is verified against the CP root certificate. However, the root certificate is <strong>not</strong> bundled in the chain, but with the TRC. This 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.</t>
          <t>Now to verify a control-plane message, the relying party must perform the following steps:</t>
          <ol spacing="normal" type="1"><li>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 <xref target="grace">grace period</xref> introduced by the latest TRC is still on-going, the root certificates in the second-to-latest TRC must also be included. For a description on how to build the correct collection of certificates, see <xref target="trc-selection"/>.</li>
            <li>If the signature metadata of the message contains the serial and base number of the latest TRC, the relying party must check that they have this latest TRC. If not, the relying party must request the latest TRC.</li>
            <li>
              <t>After constructing the pool of root certificates, the relying party must select a 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>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"/>.</li>
                <li>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"/>.</li>
                <li>The AS certificate <bcp14>MUST</bcp14> be valid at verification time. Normally, this will 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.</li>
              </ul>
            </li>
            <li>
              <t>After selecting a certificate chain to verify the control-plane messages, the relying party must verify the certificate chain, by:
              </t>
              <ul spacing="normal">
                <li>Executing the regular X.509 verification procedure. For details, see <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>.</li>
                <li>
                  <t>Checking that
                  </t>
                  <ul spacing="normal">
                    <li>all subjects of the certificates in the chain carry the same ISD number (see also <xref target="subject"/>),</li>
                    <li>each certificate is of the correct type (see also <xref target="overview"/>), and</li>
                    <li>the CA certificate validity period covers the AS certificate validity period (see also <xref target="cert-validity"/>).</li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>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.</li>
          </ol>
          <t>If any cryptographic material is missing in the process, the relying party queries 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 should 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 required to create a new AS certificate are the following:</t>
        <ol spacing="normal" type="1"><li>The AS creates a new key pair and a certificate signing request (CSR) using that key pair.</li>
          <li>The AS sends the certificate signing request to the relevant CA within the ISD.</li>
          <li>The CA uses its CA key and the CSR to create the new AS certificate.</li>
          <li>The CA sends the AS certificate back to the AS.</li>
        </ol>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The entire document is about security considerations.
More details will follow in future versions of this draft.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>The PKI requires a root SCION object identifier (OID), as discussed in <xref target="isd-as-nr"/>. The SCION open source implementation currently uses the Anapaya IANA Private Enterprise Number (55324) within the root SCION object identifier (OID). Future iterations of this draft will discuss whether this or another PEN should be used and comprise more detailed IANA considerations.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <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">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <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">
              <organization/>
            </author>
            <author fullname="S. Santesson" initials="S." surname="Santesson">
              <organization/>
            </author>
            <author fullname="S. Farrell" initials="S." surname="Farrell">
              <organization/>
            </author>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <author fullname="W. Polk" initials="W." surname="Polk">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="D. Brown" initials="D." surname="Brown">
              <organization/>
            </author>
            <author fullname="K. Yiu" initials="K." surname="Yiu">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <author fullname="T. Polk" initials="T." surname="Polk">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="S. Santesson" initials="S." surname="Santesson">
              <organization/>
            </author>
            <author fullname="K. Moriarty" initials="K." surname="Moriarty">
              <organization/>
            </author>
            <author fullname="D. Brown" initials="D." surname="Brown">
              <organization/>
            </author>
            <author fullname="T. Polk" initials="T." surname="Polk">
              <organization/>
            </author>
            <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="RFC8410">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson">
              <organization/>
            </author>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for elliptic curve constructs using the curve25519 and curve448 curves.  The signature algorithms covered are Ed25519 and Ed448.  The key agreement algorithms covered are X25519 and X448. The encoding for public key, private key, and Edwards-curve Digital Signature Algorithm (EdDSA) structures is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8410"/>
          <seriesInfo name="DOI" value="10.17487/RFC8410"/>
        </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"/>
        </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="I-D.scion-overview" target="https://datatracker.ietf.org/doc/draft-dekater-panrg-scion-overview/">
          <front>
            <title>SCION Overview</title>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="I-D.scion-components" target="https://datatracker.ietf.org/doc/draft-rustignoli-panrg-scion-components/">
          <front>
            <title>SCION Components Analysis</title>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks go to Juan A. Garcia-Pardo, Francois Wirz and Jordi Subira Nieto for reviewing this document. We are also very grateful to Adrian Perrig, for providing guidance and feedback about each aspect of SCION. Finally, we are indebted to the Anapaya and ETH SCION development teams, for their practical knowledge and for the documentation about the CP PKI.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
