<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-linker-diem-adem-core-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title>An Authentic Digital, Distinctive EMblem (ADEM) - Message Format and Authorization Model</title>
    <seriesInfo name="Internet-Draft" value="draft-linker-diem-adem-core-02"/>
    <author fullname="Felix Linker">
      <organization/>
      <address>
        <email>linkerfelix@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="17"/>
    <area>Applications and Real-Time</area>
    <workgroup>Digital Emblems</workgroup>
    <abstract>
      <?line 37?>

<t>In times of armed conflict, the emblems recognized under International Humanitarian Law (IHL), such as the red cross, red crescent, and red crystal, are used to mark physical assets.
This enables, e.g., the military to identify assets that enjoy specific protections under IHL during their operations.
This draft specifies the message format and authorization model for a digital emblem, which signals that network-connected services enjoy specific protections under IHL.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://adem-wg.github.io/adem-core-spec/draft-linker-diem-adem-core.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-linker-diem-adem-core/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Digital Emblems Working Group mailing list (<eref target="mailto:diem@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/diem"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/diem/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/adem-wg/adem-core-spec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 43?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>International Humanitarian Law (IHL) awards specific protections to certain assets, in particular, medical facilities.
These protections require that assets must be respected and protected, and that assets must not be disrupted.
The distinctive emblems recognized under IHL, for example, the Red Cross, can signal an asset's status under IHL.
But naturally, these emblems are visual and are thus limited to assets with which one interacts primarily physically, e.g., buildings.
There is currently no way to signal over the network layer that a network-connected asset enjoys specific protections, which can be a channel of disruption, however.</t>
      <t>This draft addresses the above problem and specifies a message format and authorization model for the distinctive emblems so that they can be conveyed over the network layer.
Other drafts will specify how these messages will be sent and how assets will be identified as enjoying specific protections under IHL.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<dl>
        <dt><strong>Asset</strong></dt>
        <dd>
          <t>An asset is a network-connected service that enjoys the specific protections under IHL.</t>
        </dd>
        <dt><strong>Emblem</strong></dt>
        <dd>
          <t>An emblem is a message which signals that an asset enjoys specific protections under IHL.</t>
        </dd>
        <dt><strong>Emblem issuer</strong></dt>
        <dd>
          <t>An emblem issuer is an organization that issues emblems.</t>
        </dd>
        <dt><strong>Authority</strong></dt>
        <dd>
          <t>An authority is an organization that authorizes other organizations as being eligible to issue emblems.</t>
        </dd>
        <dt><strong>Endorsement</strong></dt>
        <dd>
          <t>An endorsement associates a public key with an identity, and hence, resembles the idea of a certificate.
When signed by an authority, it attests that the authorized issuer can generally issue claims of protection.</t>
        </dd>
        <dt><strong>Token</strong></dt>
        <dd>
          <t>An emblem or an endorsement.</t>
        </dd>
        <dt><strong>Organization</strong></dt>
        <dd>
          <t>An emblem issuer or authority.</t>
        </dd>
        <dt><strong>Root Key</strong></dt>
        <dd>
          <t>Organizations control root keys, which identify them cryptographically.
Any key that an organization commits to as described in <xref target="pk-distribution"/> is a root key.</t>
        </dd>
        <dt><strong>Validator</strong></dt>
        <dd>
          <t>A validator is someone who discovers and validates digital emblems.</t>
        </dd>
      </dl>
      <t>Beyond these terms, we use the terms "claim", "claim key", "claim value", and "CWT Claims Set" as defined in <xref target="RFC8392"/>, and "header parameter" as defined in <xref target="RFC9052"/>.</t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>This document specifies the digital message format and authorization model for an authentic digital, distinctive emblem recognized under IHL.
Emblems signal that one or more assets enjoy specific protections under IHL, and endorsements encode that one organization authorizes another to issue emblems.
Both emblems and endorsements are called <em>tokens</em> and encoded as signed CBOR Web Tokens (CWTs) <xref target="RFC8392"/>.
Emblems are signed by emblem issuers and endorsements are signed by emblem issuers and authorities.</t>
      <t>Endorsements also allow for authenticating public key material for verifying token signatures.
Any organization, emblem issuer or authority, is identified by a domain name and one or more root public keys, which they can use to sign endorsements.
Root keys are configured as specified in <xref target="pk-distribution"/>.
This configuration was designed so that it binds an organization's root keys to their domain name.</t>
      <t>In the following, we describe (i) how to encode public key material for the use in ADEM as COSE_Keys (<xref target="key-formats"/>), (ii) the format of tokens (<xref target="tokens"/>), (iii) how organizations must bind their root public keys to the domain name identifying them (<xref target="pk-distribution"/>), and (iv) how emblems and associated endorsements are validated (<xref target="validation"/>).</t>
      <t>This draft does not specify how tokens are presented, and how they identify which asset enjoys specific protections under IHL.
Different types of assets, e.g., a patient database and a network-connected medical device, use different network channels and digital emblems should be both conveyed over the respective channels and use identifiers for the marked assets that match these channels.</t>
      <section anchor="requirements">
        <name>Requirements</name>
        <t>ADEM was designed to provide the following requirements.
We highlight three requirements in particular that informed the writing of this draft.</t>
        <ol spacing="normal" type="1"><li>
            <t>Digital emblems should be usable for a wide range of network-connected services.
We thus encode emblems in binary, as CWTs, so that they can - in principle - be integrated into many existing, different protocols.</t>
          </li>
          <li>
            <t>The use of the distinctive emblems requires authorization by a competent authority; typically a state.
States are the ultimate authority under IHL and must be able to operate independently of one another.
Authorities thus require no further authentication, integration into root trust stores, or anything similar.
Instead, we require that authorities commit to their public key material so that they can be held accountable when issuing fraudulent endorsements (see <xref target="pk-distribution"/> and <xref target="accountability"/>).</t>
          </li>
          <li>
            <t>As explained in <xref target="I-D.ietf-diem-requirements-03"/>, the validation of digital, distinctive emblems should be undetectable.
While this draft alone cannot provide undetectable validation, we ensure that undetectable validation is not precluded.
In particular, we designed the emblem message format and authorization so that an emblem and associated endorsements can be validated mostly without follow-up queries (see also <xref target="undet-validation"/>).</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="key-formats">
      <name>Public Key Material</name>
      <t>Public keys are encoded as COSE_Key structures <xref target="RFC9052"/>.
We identify keys using key identifiers, which are 32-byte SHA-256 COSE Key Thumbprints, computed as specified in <xref target="RFC9679"/>.
To force computation and thus verification of key identifiers, COSE_Key structures <bcp14>SHOULD NOT</bcp14> contain the <tt>kid</tt> parameter (label 2).
Implementations that encode key material <bcp14>MUST NOT</bcp14> include the <tt>kid</tt> parameter, but implementations consuming key material <bcp14>SHOULD</bcp14> accept and ignore the <tt>kid</tt> parameter.</t>
      <t>Key identifiers are encoded as a CBOR byte string when used as the COSE <tt>kid</tt> header parameter or as a CWT claim value.
When a textual representation is required, key identifiers are encoded using base32 as specified in <xref target="RFC4648"/>, in lowercase and without trailing <tt>=</tt> characters.</t>
    </section>
    <section anchor="tokens">
      <name>Tokens</name>
      <section anchor="organization-identifiers">
        <name>Organization Identifiers</name>
        <t>Emblems are issued for assets by emblem issuers, which in turn are authorized by authorities.
Emblem issuers and authorities are identified by Uniform Resource Identifiers (URIs) <xref target="RFC3986"/> of the following form, which we call <em>organization identifiers</em> (OIs).
The scheme <bcp14>MUST</bcp14> be <tt>https</tt>.
The authority component <bcp14>MUST</bcp14> contain a fully qualified domain name (FQDN), which <bcp14>MUST</bcp14> be represented in all lower-case.
The path, query, and fragment components <bcp14>MUST</bcp14> be empty, and the URI <bcp14>MUST NOT</bcp14> end with a trailing slash.
Concretely, an OI has the syntax:</t>
        <artwork><![CDATA[
organization-identifier = "https://" FQDN
]]></artwork>
      </section>
      <section anchor="token-encoding">
        <name>Token Encoding</name>
        <t>Tokens <bcp14>MUST</bcp14> be encoded as CWTs <xref target="RFC8392"/> secured by a COSE_Sign1 structure <xref target="RFC9052"/>, and tokens <bcp14>MUST</bcp14> include the COSE_Sign1 CBOR tag 18.
The COSE payload <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> contain the CBOR-encoded CWT Claims Set.
External additional authenticated data <bcp14>MUST</bcp14> be the zero-length byte string.</t>
        <t>The CWT Claims Set <bcp14>MUST</bcp14> be a CBOR map.
Registered CWT claims use their integer claim keys from <xref target="RFC8392"/>; claims defined by this document use the text-string claim keys shown below.</t>
        <section anchor="common-token-fields">
          <name>Common Token Fields</name>
          <t>Both emblems and endorsements use the following protected header parameters and CWT claims.
Implementations generating tokens <bcp14>MUST NOT</bcp14> include header parameters or CWT claims beyond those referenced in this document.</t>
          <t>The COSE protected header <bcp14>MUST</bcp14> include the <tt>alg</tt> (label 1) and <tt>kid</tt> (label 4) header parameters.
The <tt>alg</tt> value identifies the signature algorithm.
The <tt>kid</tt> value <bcp14>MUST</bcp14> equal the key identifier of the verification key as specified in <xref target="key-formats"/>.</t>
          <t>The protected header <bcp14>MAY</bcp14> include the <tt>typ</tt> (label 16, see <xref target="RFC9596"/>) header parameter with the value <tt>"application/adem"</tt>.
Where clear from context, the <tt>typ</tt> parameter <bcp14>MAY</bcp14> be omitted.</t>
          <t>The COSE unprotected header <bcp14>MUST</bcp14> be empty.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Claim</th>
                <th align="left">Claim key</th>
                <th align="left">Status</th>
                <th align="left">Semantics</th>
                <th align="left">CBOR type</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>ver</tt></td>
                <td align="left">
                  <tt>"ver"</tt></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Version counter</td>
                <td align="left">uint, value 1</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>iat</tt></td>
                <td align="left">6</td>
                <td align="left">
                  <bcp14>OPTIONAL</bcp14></td>
                <td align="left">Issued-at time, as per <xref target="RFC8392"/></td>
                <td align="left">NumericDate</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>nbf</tt></td>
                <td align="left">5</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Not-before time, as per <xref target="RFC8392"/></td>
                <td align="left">NumericDate</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>exp</tt></td>
                <td align="left">4</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Expiration time, as per <xref target="RFC8392"/></td>
                <td align="left">NumericDate</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>iss</tt></td>
                <td align="left">1</td>
                <td align="left">
                  <bcp14>RECOMMENDED</bcp14></td>
                <td align="left">Organization issuing the token</td>
                <td align="left">tstr containing an OI</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>prp</tt></td>
                <td align="left">
                  <tt>"prp"</tt></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Emblem purposes</td>
                <td align="left">uint</td>
              </tr>
            </tbody>
          </table>
          <t>The token version counter <tt>ver</tt> <bcp14>MUST</bcp14> be an unsigned integer in the range 0 to 255, encoded as a CBOR unsigned integer.
This document specifies version 1.</t>
          <t>For an emblem, <tt>iss</tt> identifies the organization signaling protection; for an endorsement, it identifies the endorsing organization.</t>
          <t>The <tt>prp</tt> claim identifies the kind of emblem recognized under IHL as a bitmap and <bcp14>MUST</bcp14> be non-zero.
Each bit, as indicated below, corresponds to a particular use of emblems recognized under IHL.
Values <bcp14>MAY</bcp14> be combined, using bit-wise OR, to indicate the use of multiple emblems at the same time.
Consequently, the value of the <tt>prp</tt> field <bcp14>MUST</bcp14> be between 1 and 31.
The semantics of the <tt>prp</tt> claim differ between emblems and endorsements and will be specified later.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Value</th>
                <th align="left">Explanation</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>0b_0000_0001</tt></td>
                <td align="left">Protective use of the red cross, red crescent, or red crystal emblem to signal protection under IHL.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>0b_0000_0010</tt></td>
                <td align="left">Indicative use of the red cross, red crescent, or red crystal emblem to signal an affiliation with the International Red Cross and Red Crescent Movement.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>0b_0000_0100</tt></td>
                <td align="left">Identification of works and installations containing dangerous forces, such as dams, dykes, and nuclear electrical generating stations.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>0b_0000_1000</tt></td>
                <td align="left">Identification of civil defence organizations and their protected personnel and assets.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>0b_0001_0000</tt></td>
                <td align="left">Identification of cultural property protected under IHL.</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="emblems">
          <name>Emblems</name>
          <t>An emblem's CWT Claims Set includes the common claims defined in <xref target="common-token-fields"/> and the additional claim defined in the table below.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Claim</th>
                <th align="left">Claim key</th>
                <th align="left">Status</th>
                <th align="left">Semantics</th>
                <th align="left">CBOR type</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>assets</tt></td>
                <td align="left">
                  <tt>"assets"</tt></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Assets marked as protected</td>
                <td align="left">array</td>
              </tr>
            </tbody>
          </table>
          <t>The <tt>assets</tt> claim contains asset identifiers.
Their syntax, encoding, and matching semantics will be defined in separate drafts that specify discovery and distribution of tokens.
The asset identifier in the example below is illustrative.</t>
          <t>An emblem's <tt>prp</tt> claim specifies how the asset is marked.
For example, when the claim has value 1, it indicates that the asset is marked with the digital equivalent to the emblems of the Red Cross, Red Crescent, and Red Crystal.</t>
          <section anchor="example">
            <name>Example</name>
            <t>For example, an emblem might comprise the following protected header and CWT Claims Set, shown in CBOR diagnostic notation.</t>
            <t>Protected header:</t>
            <sourcecode type="cbor-diag"><![CDATA[
{
  / alg / 1: -36, / ES512 /
  / kid / 4: h'0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
  / typ / 16: "application/adem"
}
]]></sourcecode>
            <t>Claims Set:</t>
            <sourcecode type="cbor-diag"><![CDATA[
{
  "ver": 1,
  / nbf / 5: 1672916137,
  / exp / 4: 1675590932,
  / iss / 1: "https://example.com",
  "assets": ["example.com"],
  "prp": 1
}
]]></sourcecode>
          </section>
        </section>
        <section anchor="endorsements">
          <name>Endorsements</name>
          <t>Endorsements are encoded as signed CWTs.
Endorsements attest two statements: that a public key is affiliated with an organization, identified by an OI, and that this organization is authorized to issue emblems for their assets.
An endorsement's CWT Claims Set includes the common claims defined in <xref target="common-token-fields"/> and the additional claims defined in the table below.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Claim</th>
                <th align="left">Claim key</th>
                <th align="left">Status</th>
                <th align="left">Semantics</th>
                <th align="left">CBOR type</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>sub</tt></td>
                <td align="left">2</td>
                <td align="left">
                  <bcp14>RECOMMENDED</bcp14></td>
                <td align="left">Endorsed organization, identified by their OI</td>
                <td align="left">tstr</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>key</tt></td>
                <td align="left">
                  <tt>"key"</tt></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Endorsed organization's public key thumbprint</td>
                <td align="left">bstr</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>end</tt></td>
                <td align="left">
                  <tt>"end"</tt></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Endorsed key can endorse further</td>
                <td align="left">bool</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>log</tt></td>
                <td align="left">
                  <tt>"log"</tt></td>
                <td align="left">see below</td>
                <td align="left">Root key commitment</td>
                <td align="left">array of maps as below</td>
              </tr>
            </tbody>
          </table>
          <t>An endorsement's <tt>prp</tt> claim constrains what kind of emblems the endorsed organization may issue.
Each bit set in the <tt>prp</tt> claim gives the endorsed organization permission to issue the respective emblem.
An emblem is thus <em>valid</em> with respect to an endorsement if the bit-wise AND of the endorsement's <tt>prp</tt> claim and the emblem's <tt>prp</tt> claim is equal to the emblem's <tt>prp</tt> claim.</t>
          <t>We say that an endorsement <em>endorses</em> a token if its <tt>key</tt> claim equals the key identifier of the token's verification key, and its <tt>sub</tt> claim equals the token's <tt>iss</tt> claim.
Note that the latter includes the possibility of both <tt>sub</tt> and <tt>iss</tt> being undefined.</t>
          <t>Endorsements <bcp14>MAY</bcp14> contain the <tt>log</tt> claim.
If an endorsement was signed by a root key, it <bcp14>MUST</bcp14> include the <tt>log</tt> claim.
The <tt>log</tt> claim identifies the CT logs that contain a binding certificate for the endorsement's verification key.
The value of <tt>log</tt> is an array of CBOR maps, each of which identifies a CT log entry that commits to the organization's root signing key (see <xref target="pk-distribution"/>).
This standard supports log entries of both standard CT logs as specified in <xref target="RFC6962"/> and tiled CT logs as specified in <xref target="STATIC-CT"/>.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Entry</th>
                <th align="left">Map key</th>
                <th align="left">Status</th>
                <th align="left">Semantics</th>
                <th align="left">CBOR type</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>id</tt></td>
                <td align="left">
                  <tt>"id"</tt></td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">The CT log's ID</td>
                <td align="left">bstr</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>hash</tt></td>
                <td align="left">
                  <tt>"hash"</tt></td>
                <td align="left">see below</td>
                <td align="left">The binding certificate's leaf hash in the log</td>
                <td align="left">bstr</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>index</tt></td>
                <td align="left">
                  <tt>"index"</tt></td>
                <td align="left">see below</td>
                <td align="left">The binding certificate's log entry index in the log</td>
                <td align="left">uint</td>
              </tr>
            </tbody>
          </table>
          <t>For logs implementing <xref target="RFC6962"/>, a map in <tt>log</tt> <bcp14>MUST</bcp14> include the <tt>hash</tt> entry and <bcp14>MUST NOT</bcp14> include the <tt>index</tt> entry.
For logs implementing <xref target="STATIC-CT"/>, a map in <tt>log</tt> <bcp14>MUST</bcp14> include the <tt>index</tt> entry and <bcp14>MUST NOT</bcp14> include the <tt>hash</tt> entry.</t>
        </section>
      </section>
    </section>
    <section anchor="pk-distribution">
      <name>Public Key Commitment</name>
      <t>Organizations must undeniably link some of their public keys to their OI, and we specify a public key commitment mechanism in this section to achieve that.
Every public key an organization commits to in this way is a root public key.
An organization <bcp14>MAY</bcp14> have multiple root public keys.
For a root public key to be configured correctly, there <bcp14>MUST</bcp14> be an X.509 certificate that:</t>
      <ul spacing="normal">
        <li>
          <t><bcp14>MUST NOT</bcp14> be revoked</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> be logged in the Certificate Transparency logs <xref target="RFC6962"/> <xref target="STATIC-CT"/>
          </t>
          <ul spacing="normal">
            <li>
              <t>Note that log inclusion requires a valid certificate chain that leads to
one of the log's accepted root certificates. Clients are <bcp14>RECOMMENDED</bcp14> to verify
that this chain is valid and that none of the certificates along it have been
revoked.</t>
            </li>
          </ul>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> be valid for at least all the following domains while not considering wildcards in the certificate subject (<tt>&lt;OI&gt;</tt> is understood to be a placeholder for the domain name in the organization's OI):
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>&lt;OI&gt;</tt></t>
            </li>
            <li>
              <t>For the textual representation <tt>&lt;KID&gt;</tt> of the root public key's key identifier, as specified in <xref target="key-formats"/>: <tt>&lt;KID&gt;.adem-configuration.&lt;OI&gt;</tt></t>
            </li>
          </ul>
        </li>
      </ul>
      <!-- TODO: Transform into informative references -->
<t>We intentionally do not specify how clients should check a certificate's revocation status.
It is <bcp14>RECOMMENDED</bcp14> that clients use offline revocation checks that are provided by major browser vendors, for example, <eref target="https://wiki.mozilla.org/CA/Revocation_Checking_in_Firefox">OneCRL or CRLite by Mozilla</eref>, or <eref target="https://chromium.googlesource.com/playground/chromium-org-site/+/refs/heads/main/Home/chromium-security/crlsets.md">CRLSet by Chrome</eref>.</t>
    </section>
    <section anchor="validation">
      <name>Validation</name>
      <t>Whenever a validator receives a set of tokens, they <bcp14>SHOULD</bcp14> validate it.
Validation returns one or more of the following values and a set of OIs.
The set of OIs returned by the validation procedure encodes the OIs of endorsing organizations for which validation passed.</t>
      <ol spacing="normal" type="1"><li>
          <t><tt>INVALID</tt></t>
        </li>
        <li>
          <t><tt>SIGNED</tt></t>
        </li>
        <li>
          <t><tt>ORGANIZATIONAL</tt></t>
        </li>
        <li>
          <t><tt>ENDORSED</tt></t>
        </li>
      </ol>
      <t>Given a set of tokens and a set of public keys, validation takes the following steps.</t>
      <ol spacing="normal" type="1"><li>
          <t>For every public key, compute its key identifier as described in <xref target="key-formats"/>.</t>
        </li>
        <li>
          <t>For every token, perform the following steps:
          </t>
          <ol spacing="normal" type="1"><li>
              <t>Verify the token's signature using the public key whose key identifier computed in the previous step matches the <tt>kid</tt> header parameter.</t>
            </li>
            <li>
              <t>Verify the token's <tt>nbf</tt> and <tt>exp</tt> claims.</t>
            </li>
            <li>
              <t>Should either of the aforementioned validation steps fail, discard this token.</t>
            </li>
          </ol>
        </li>
        <li>
          <t>Identify the emblem among the remaining tokens.
The emblem is the token containing an <tt>assets</tt> claim, and it <bcp14>MUST</bcp14> be uniquely defined.
If there is not exactly one token containing an <tt>assets</tt> claim, return <tt>INVALID</tt>.
All other tokens are endorsements.</t>
        </li>
        <li>
          <t>Run the <em>signed emblem validation procedure</em> (<xref target="signed-emblems"/>; results in one of <tt>SIGNED</tt> or <tt>INVALID</tt>).</t>
        </li>
        <li>
          <t>If the previous procedure resulted in <tt>INVALID</tt> or the emblem does not include the <tt>iss</tt> claim, return the last validation procedure's result and the empty set of OIs.</t>
        </li>
        <li>
          <t>Run the <em>organizational emblem validation procedure</em> (<xref target="org-emblems"/>; results in one of <tt>ORGANIZATIONAL</tt>, <tt>INVALID</tt>).</t>
        </li>
        <li>
          <t>If the previous procedure resulted in <tt>INVALID</tt>, return <tt>INVALID</tt> and the empty set of OIs.</t>
        </li>
        <li>
          <t>Run the <em>endorsed emblem validation procedure</em> (<xref target="endorsed-emblems"/>; results in a set of OIs and one of <tt>ENDORSED</tt>, <tt>INVALID</tt>).</t>
        </li>
        <li>
          <t>If the endorsed emblem validation procedure resulted in <tt>INVALID</tt>, return <tt>SIGNED</tt>, <tt>ORGANIZATIONAL</tt> and the empty set of OIs.
Otherwise, return <tt>SIGNED</tt>, <tt>ORGANIZATIONAL</tt>, <tt>ENDORSED</tt>, and the OIs returned by the endorsed emblem validation procedure.</t>
        </li>
      </ol>
    </section>
    <section anchor="algorithms">
      <name>Algorithms</name>
      <t>Each procedure operates on its own copy of the validated token set.
Discarding endorsements within a procedure does not remove them from the inputs to subsequent procedures.</t>
      <section anchor="signed-emblems">
        <name>Signed Emblem Validation Procedure</name>
        <t>Context:</t>
        <ul spacing="normal">
          <li>
            <t>Assumptions: All input tokens' signatures, and <tt>nbf</tt> and <tt>exp</tt> claims were validated.</t>
          </li>
          <li>
            <t>Input: An emblem and a set of endorsements.</t>
          </li>
          <li>
            <t>Output: <tt>SIGNED</tt> or <tt>INVALID</tt>.</t>
          </li>
        </ul>
        <t>Algorithm:</t>
        <ol spacing="normal" type="1"><li>
            <t>Discard all endorsements including an <tt>iss</tt> claim different to the emblem's <tt>iss</tt> claim.
An omitted <tt>iss</tt> claim is different to an included <tt>iss</tt> claim and equal to an omitted <tt>iss</tt> claim.</t>
          </li>
          <li>
            <t>If no endorsements remain, return <tt>SIGNED</tt>.
Otherwise, verify that all endorsements form a consecutive chain where there is a unique root endorsement and the public key which was used to verify the emblem's signature is transitively endorsed by that root endorsement.</t>
          </li>
          <li>
            <t>Verify that all endorsements bear the claim <tt>end=true</tt> except for the endorsement endorsing the emblem's verification key, the <tt>end</tt> claim of which <bcp14>MAY</bcp14> be <tt>false</tt>.</t>
          </li>
          <li>
            <t>Verify that the emblem is valid with regard to every endorsement.</t>
          </li>
          <li>
            <t>If any of the aforementioned validation steps fail, return <tt>INVALID</tt>.
Otherwise, return <tt>SIGNED</tt>.</t>
          </li>
        </ol>
      </section>
      <section anchor="org-emblems">
        <name>Organizational Emblem Validation Procedure</name>
        <t>Context:</t>
        <ul spacing="normal">
          <li>
            <t>Assumptions: All input tokens' signatures, and <tt>nbf</tt> and <tt>exp</tt> claims were validated.
Signed emblem validation has been performed and did not return <tt>INVALID</tt>.
The emblem includes the <tt>iss</tt> claim.</t>
          </li>
          <li>
            <t>Input: An emblem and a set of endorsements.</t>
          </li>
          <li>
            <t>Output: <tt>ORGANIZATIONAL</tt> or <tt>INVALID</tt>.</t>
          </li>
        </ul>
        <t>Algorithm:</t>
        <ol spacing="normal" type="1"><li>
            <t>Discard all endorsements including an <tt>iss</tt> claim different to the emblem's <tt>iss</tt> claim.</t>
          </li>
          <li>
            <t>If either (a) no endorsements remain, or (b) the remaining endorsements do not form a linear chain, or (c) the top-most endorsement of that chain has no <tt>log</tt> protected header parameter, return <tt>INVALID</tt>.</t>
          </li>
          <li>
            <t>Verify the top-most endorsement's verification public key by using its <tt>iss</tt> claim and <tt>log</tt> header parameter as specified in <xref target="pk-distribution"/>.
If verification fails, return <tt>INVALID</tt>.
Otherwise, return <tt>ORGANIZATIONAL</tt>.</t>
          </li>
        </ol>
      </section>
      <section anchor="endorsed-emblems">
        <name>Endorsed Emblem Validation Procedure</name>
        <t>Context:</t>
        <ul spacing="normal">
          <li>
            <t>Assumptions: All input tokens' signatures, and <tt>nbf</tt> and <tt>exp</tt> claims were validated.
Organizational emblem validation has been performed and did not return <tt>INVALID</tt>.</t>
          </li>
          <li>
            <t>Input: An emblem and a set of endorsements.</t>
          </li>
          <li>
            <t>Output: <tt>ENDORSED</tt> or <tt>INVALID</tt>, and a set of OIs.</t>
          </li>
        </ul>
        <t>Algorithm:</t>
        <ol spacing="normal" type="1"><li>
            <t>Discard all endorsements with an <tt>iss</tt> claim equal to the emblem's <tt>iss</tt> claim or with an undefined <tt>iss</tt> claim.</t>
          </li>
          <li>
            <t>For every endorsement:
            </t>
            <ol spacing="normal" type="1"><li>
                <t>Verify that it endorses the top-most endorsement with the same <tt>iss</tt> claim as the emblem.</t>
              </li>
              <li>
                <t>Verify that it bears the claim <tt>end=true</tt>.</t>
              </li>
              <li>
                <t>Verify that the emblem is valid with regard to this endorsement.</t>
              </li>
              <li>
                <t>Verify the endorsement's verification public key by using its <tt>iss</tt> claim and <tt>log</tt> header parameter as specified in <xref target="pk-distribution"/>.</t>
              </li>
              <li>
                <t>Should any of the aforementioned validation steps fail, discard this endorsement.</t>
              </li>
            </ol>
          </li>
          <li>
            <t>If there are no endorsements remaining, return <tt>INVALID</tt> and the empty set of OIs.
Otherwise, return <tt>ENDORSED</tt> and the set of all <tt>iss</tt> claims of the remaining endorsements.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="interpreting-validation-results">
        <name>Interpreting Validation Results</name>
        <t>Validators <bcp14>SHOULD NOT</bcp14> accept emblems resulting only in <tt>SIGNED</tt> without authenticating their verification keys out of band.
In such cases, validators should aim to authenticate the respective public keys via other, out-of-band methods.
Signed emblems are supported for cases of emergency where an emblem issuer is able to communicate one or more public keys, but might not be able to set up a signing infrastructure linking their assets to a root key.</t>
      </section>
      <section anchor="accountability">
        <name>Accountability</name>
        <t>TODO</t>
        <section anchor="no-endorsements-without-iss">
          <name>No Endorsements without <tt>iss</tt></name>
          <t>The procedures to verify organizational or endorsed emblems as specified in <xref target="org-emblems"/> and <xref target="endorsed-emblems"/> assume that the emblem's <tt>iss</tt> claim is defined.
Practically speaking, this implies that one can only go beyond pure public key authentication (where public keys need to be authenticated out-of-band) by stating an OI.</t>
          <t>The constraints on well-configured OIs offer two beneficial security properties:</t>
          <ul spacing="normal">
            <li>
              <t>Organizations cannot equivocate their keys, i.e., they need to commit to a consistent set of keys.</t>
            </li>
            <li>
              <t>Organizations cannot deny having used certain root public keys.</t>
            </li>
          </ul>
          <t>These properties stem from organizations needing to include a hash of their key in a TLS certificate, and consequently, in certificate transparency logs.</t>
        </section>
      </section>
      <section anchor="undet-validation">
        <name>Undetectable Validation</name>
        <t>TODO</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TODO</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="STATIC-CT" target="https://github.com/C2SP/C2SP/blob/0f3fddde7d1d8bd55e42723572c4c144457c50d0/static-ct-api.md">
        <front>
          <title>The Static Certificate Transparency API</title>
          <author>
            <organization/>
          </author>
          <date year="2026" month="March" day="20"/>
        </front>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC8392">
        <front>
          <title>CBOR Web Token (CWT)</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
          <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <date month="May" year="2018"/>
          <abstract>
            <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8392"/>
        <seriesInfo name="DOI" value="10.17487/RFC8392"/>
      </reference>
      <reference anchor="RFC9052">
        <front>
          <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
          <author fullname="J. Schaad" initials="J." surname="Schaad"/>
          <date month="August" year="2022"/>
          <abstract>
            <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
            <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="96"/>
        <seriesInfo name="RFC" value="9052"/>
        <seriesInfo name="DOI" value="10.17487/RFC9052"/>
      </reference>
      <reference anchor="I-D.ietf-diem-requirements-03">
        <front>
          <title>Digital Emblems - Use Cases and Requirements</title>
          <author fullname="Rahel Fainchtein" initials="R. A." surname="Fainchtein">
            <organization>JHU/APL</organization>
          </author>
          <author fullname="Felix Linker" initials="F." surname="Linker">
         </author>
          <author fullname="Alex Rosenberg" initials="A." surname="Rosenberg">
            <organization>Veridigo</organization>
          </author>
          <author fullname="Casey Deccio" initials="C." surname="Deccio">
            <organization>Brigham Young University</organization>
          </author>
          <author fullname="Allison Mankin" initials="A." surname="Mankin">
            <organization>Packet Clearing House</organization>
          </author>
          <date day="6" month="July" year="2026"/>
          <abstract>
            <t>   Digital emblems are a means for an asset to signal to validating
   entities that it should be protected or treated in a specific way,
   using some normative framework.  This document lists the requirements
   and use cases that an architecture for digital emblems must
   accommodate.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-diem-requirements-03"/>
      </reference>
      <reference anchor="RFC9679">
        <front>
          <title>CBOR Object Signing and Encryption (COSE) Key Thumbprint</title>
          <author fullname="K. Isobe" initials="K." surname="Isobe"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <author fullname="O. Steele" initials="O." surname="Steele"/>
          <date month="December" year="2024"/>
          <abstract>
            <t>This specification defines a method for computing a hash value over a CBOR Object Signing and Encryption (COSE) Key. It specifies which fields within the COSE Key structure are included in the cryptographic hash computation, the process for creating a canonical representation of these fields, and how to hash the resulting byte sequence. The resulting hash value, referred to as a "thumbprint", can be used to identify or select the corresponding key.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9679"/>
        <seriesInfo name="DOI" value="10.17487/RFC9679"/>
      </reference>
      <reference anchor="RFC4648">
        <front>
          <title>The Base16, Base32, and Base64 Data Encodings</title>
          <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
          <date month="October" year="2006"/>
          <abstract>
            <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4648"/>
        <seriesInfo name="DOI" value="10.17487/RFC4648"/>
      </reference>
      <reference anchor="RFC3986">
        <front>
          <title>Uniform Resource Identifier (URI): Generic Syntax</title>
          <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
          <author fullname="R. Fielding" initials="R." surname="Fielding"/>
          <author fullname="L. Masinter" initials="L." surname="Masinter"/>
          <date month="January" year="2005"/>
          <abstract>
            <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="66"/>
        <seriesInfo name="RFC" value="3986"/>
        <seriesInfo name="DOI" value="10.17487/RFC3986"/>
      </reference>
      <reference anchor="RFC9596">
        <front>
          <title>CBOR Object Signing and Encryption (COSE) "typ" (type) Header Parameter</title>
          <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
          <author fullname="O. Steele" initials="O." surname="Steele"/>
          <date month="June" year="2024"/>
          <abstract>
            <t>This specification adds the equivalent of the JSON Object Signing and Encryption (JOSE) "typ" (type) header parameter to CBOR Object Signing and Encryption (COSE). This enables the benefits of explicit typing (as defined in RFC 8725, "JSON Web Token Best Current Practices") to be brought to COSE objects. The syntax of the COSE type header parameter value is the same as the existing COSE content type header parameter.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9596"/>
        <seriesInfo name="DOI" value="10.17487/RFC9596"/>
      </reference>
      <reference anchor="RFC6962">
        <front>
          <title>Certificate Transparency</title>
          <author fullname="B. Laurie" initials="B." surname="Laurie"/>
          <author fullname="A. Langley" initials="A." surname="Langley"/>
          <author fullname="E. Kasper" initials="E." surname="Kasper"/>
          <date month="June" year="2013"/>
          <abstract>
            <t>This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
            <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6962"/>
        <seriesInfo name="DOI" value="10.17487/RFC6962"/>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
