<?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.29 (Ruby 3.4.4) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<?rfc toc_levels="4"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-pkix-key-attestation-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="PKIX Evidence for Remote Attestation of HSMs">PKIX Evidence for Remote Attestation of Hardware Security Modules</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-pkix-key-attestation-02"/>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road - Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <author initials="J.-P." surname="Fiset" fullname="Jean-Pierre Fiset">
      <organization abbrev="Crypto4A">Crypto4A Inc.</organization>
      <address>
        <postal>
          <street>1550A Laperriere Ave</street>
          <city>Ottawa, Ontario</city>
          <code>K1Z 7T2</code>
          <country>Canada</country>
        </postal>
        <email>jp@crypto4a.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <author initials="M." surname="Wiseman" fullname="Monty Wiseman">
      <organization/>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>mwiseman@computer.org</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Intel Corporation</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="10"/>
    <area>Security</area>
    <workgroup>RATS</workgroup>
    <keyword>Internet-Draft</keyword>
    <keyword>RATS</keyword>
    <keyword>PKIX</keyword>
    <keyword>HSM</keyword>
    <abstract>
      <?line 145?>

<t>This document specifies a vendor-agnostic format for evidence produced and verified within a PKIX context.
The evidence produced this way includes claims collected about a cryptographic module
and elements found within it such as cryptographic keys.</t>
      <t>One scenario envisaged is that the state information about the cryptographic module can be securely presented
to a remote operator or auditor in a vendor-agnostic verifiable format.
A more complex scenario would be to submit this evidence to a Certification Authority to aid in determining
whether the storage properties of this key meet the requirements of a given certificate profile.</t>
      <t>This specification also offers a format for requesting a cryptographic module to produce evidence tailored for expected use.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-rats-wg.github.io/key-attestation/draft-ietf-rats-pkix-key-attestation.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-rats-pkix-key-attestation/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        RATS Working Group mailing list (<eref target="mailto:rats@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/wg/rats/about/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/rats/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-rats-wg/key-attestation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 158?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This specification defines a format to transmit Evidence from an Attester to a Verifier within a PKIX
environment. This environment refers to the components generally used to support PKI applications
such as Certification Authorities and their clients, or more generally that rely upon X.509 certificates.
As outlined in <xref target="terminology"/>, this specification uses a necessary mixture of RATS and PKI terminology
in order to map concepts between the two domains.</t>
      <t>Within this specification, the concepts found in the Remote Attestation Procedures (RATS <xref target="RFC9334"/>) are
mapped to the PKIX environment. There are many other specifications that are based on the RATS architecture
which offer formats to carry evidence. This specification deals with peculiar aspects of the PKIX environment
which make the existing evidence formats inappropriate:</t>
      <ul spacing="normal">
        <li>
          <t>ASN.1 is the preferred encoding format in this environment. X.509 certificates (<xref target="RFC5280"/>) are used
widely within this environment and the majority of tools are designed to support ASN.1. There are
many specialized devices (Hardware Security Modules) that are inflexible in adopting other formats because
of internal constraints or validation difficulties. This specification defines the format in ASN.1 to ease the
adoption within the community.</t>
        </li>
        <li>
          <t>The claims reported within the generated Evidence is generally a small subset of all possible claims about
the Target Environment. The claims relate to elements such as "platform" and "keys" which are more numerous than
what a Verifier requires for a specific function. This specification provides the means to moderate the information
disseminated as part of the generated Evidence.</t>
        </li>
      </ul>
      <t>This specification also aims at providing an extensible framework to encode within Evidence claims other than
the one proposed in this document. This allows implementations to introduce new claims and their associated
semantics to the Evidence produced.</t>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <t>This section covers use cases that motivated the development of this specification.</t>
      <section anchor="remote-audit-of-a-hardware-security-module-hsm">
        <name>Remote audit of a Hardware Security Module (HSM)</name>
        <t>There are situations where it is necessary to verify the current running state of an HSM as part of operational or
auditing procedures. For example, there are devices that are certified to work in an environment only if certain
versions of the firmware are loaded or only if user keys are protected with specific policies.</t>
        <t>The Evidence format offered by this specification allows a platform to report its firmware level along with
other collected claims necessary in critical deployments.</t>
      </section>
      <section anchor="key-import-and-hsm-clustering">
        <name>Key import and HSM clustering</name>
        <t>Consider that an HSM is being added to a logical HSM cluster. Part of the onboarding process could involve
the newly-added HSM providing proof of its running state, for example that it is a genuine device from
the same manufacturer as the existing clustered HSMs, firmware patch level, FIPS mode, etc.
It could also be required to provide attestation of any system-level keys required for secure establishment
of cluster communication. In this scenario, the Verifier and Relying Party will be the other HSMs in the cluster
deciding whether or not to admit the new HSM.</t>
        <t>A related scenario is when performing a key export-import across HSMs.
If the key is being imported with certain properties, for example an environment running in FIPS mode at
FIPS Level 3, and the key is set to certain protection properties such as Non-Exportable and Dual-Control,
then the HSM might wish to verify that the key was previously stored under the same properties.
This specification provides an Evidence format with sufficient details to support this type of
implementation across HSM vendors.</t>
        <t>These scenarios motivate the design requirements to have an ASN.1 based Evidence format and a data model that
more closely matches typical HSM architecture since, as shown in both scenarios,
an HSM is acting as Verifier and Relying Party.</t>
      </section>
      <section anchor="attesting-subject-of-a-certificate-issuance">
        <name>Attesting subject of a certificate issuance</name>
        <t>Prior to a Certification Authority (CA) issuing a certificate on behalf of a subject, a number of procedures
are required to verify that the subject of the certificate is associated with the key that is certified.
In some cases, such as issuing a code signing certificate <xref target="CNSA2.0"/> <xref target="CSBR"/>, a CA must ensure that
the subject key is located in a Hardware Security Module (HSM).</t>
        <t>The Evidence format offered by this specification is designed to carry the information necessary for a CA to
assess the location of the subject key along a number of commonly-required attributes. More specifically, a CA could
determine which HSM was used to generate the subject key, whether this device adheres
to certain jurisdiction policies (such as FIPS mode) and the constraints applied to the key (such as whether is it extractable).</t>
        <t>For relatively simple HSM devices, storage properties such as "extractable" may always be false for all keys
since the devices are not capable of key export and so the attestation could be essentially a hard-coded template asserting these
immutable attributes. However, more complex HSM devices require a more complex evidence format that encompasses the
mutability of these attributes.</t>
        <t>Also, a client requesting a key attestation might wish to scope-down the content of the produced Evidence as
the HSM contains much more information than that which is relevant to the transaction.
The inability to scope-down the generated Evidence could, in some scenarios, constitute a privacy violation.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Conventions and Terminology</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?>

<t>This specification uses a necessary mixture of RATS and PKI terminology
in order to map concepts between the two domains.</t>
      <t>The reader is assumed to be familiar with the vocabulary and concepts
defined in the RATS architecture (<xref target="RFC9334"/>) such as Attester,
Relying Party, Verifier.</t>
      <t>The reader is assumed to be familiar with common vocabulary and concepts
defined in <xref target="RFC5280"/> such as certificate, signature, attribute, verifier.</t>
      <t>In order to avoid confusion, this document generally
capitalizes RATS terms such as Attester, Relying Party, and Claim.
Therefore, for example, a "Verifier"
should be assumed to be an entity that checks the validity of Evidence as per <xref target="RFC9334"/>,
whereas a "verifier" could be a more general reference to a PKI entity that checks
the validity of an X.509 certificate or other digital signature as per <xref target="RFC5280"/>.</t>
      <t>The following terms are used in this document:</t>
      <dl newline="true">
        <dt>Attestation Key (AK):</dt>
        <dd>
          <t>Cryptographic key controlled solely by the Attester and used only for the purpose
of producing Evidence. In other words, it is used to digitally sign the claims collected by
the Attester.</t>
        </dd>
        <dt>Attestation Service (AttS):</dt>
        <dd>
          <t>A logical module within the HSM that is responsible for generating Evidence compatible with the
format outlined in this specification. It collects claims from the platform and uses the Attestation
Key to digitally sign the collection.</t>
        </dd>
        <dt>Attester:</dt>
        <dd>
          <t>The term Attester respects the definition offered in <xref target="RFC9334"/>. In this specification, it
is also interchangeable with "platform" or "HSM".</t>
        </dd>
        <dt>Evidence:</dt>
        <dd>
          <t>The term Evidence respects the definition offered in <xref target="RFC9334"/>. In this specification, it
refers to claims, encoded according to the format defined within this document, and signed using
the Attestation Key.</t>
        </dd>
        <dt>Hardware Security Module (HSM):</dt>
        <dd>
          <t>A physical computing device that safeguards and manages secrets, such as cryptographic keys,
and performs cryptographic operations based on those secrets.
This specification takes a broad definition of what counts as an HSM to include smartcards,
USB tokens, TPMs, cryptographic co-processors (PCI cards) and "enterprise-grade" or "cloud-service grade" HSMs
(possibly rack mounted). In this specification, it is interchangeable with "platform" or "Attester".</t>
        </dd>
        <dt>Key Attestation:</dt>
        <dd>
          <t>Process of producing Evidence containing claims pertaining to user keys found within an HSM. In
general, the claims include enough information about a user key and its hosting platform to allow
a Relying Party to make judicious decisions about the key, such as whether to issue a certificate for the key.</t>
        </dd>
        <dt>RATS:</dt>
        <dd>
          <t>Remote ATtestation procedureS. In this document, refers to the RATS Architecture as introduced
in <xref target="RFC9334"/>. RATS and RATS Architecture are used interchangeably.</t>
        </dd>
        <dt>Platform:</dt>
        <dd>
          <t>The module or device that embodies the Attester. In this specification, it is interchangeable with
"Attester" or "HSM".</t>
        </dd>
        <dt>Platform Attestation:</dt>
        <dd>
          <t>Evidence containing claims pertaining to attributes associated with the platform itself. In general, the claims include
enough information about the platform to allow a Relying Party to make judicious decisions about the
platform, such as those carried out during audit reviews.</t>
        </dd>
        <dt>Presenter:</dt>
        <dd>
          <t>Role that facilitates communication between the Attester and the Verifier. The
Presenter initiates the operation of generating evidence at the Attester and
passes the generated evidence to the Verifier. In the case of HSMs, the Presenter
is responsible of selecting the claims that are part of the generated evidence.</t>
        </dd>
        <dt>Trust Anchor:</dt>
        <dd>
          <t>As defined in <xref target="RFC6024"/> and <xref target="RFC9019"/>, a Trust Anchor
"represents an authoritative entity via a public key and
associated data. The public key is used to verify digital
signatures, and the associated data is used to constrain the types
of information for which the trust anchor is authoritative." The
Trust Anchor may be a certificate, a raw public key, or other
structure, as appropriate.</t>
        </dd>
        <dt>Trusted Platform Module (TPM):</dt>
        <dd>
          <t>A tamper-resistant processor generally located on a computer's motherboard used to enhance attestation
functions for the hosting platform. TPMs are very specialized Hardware Security Modules and generally use
other protocols (than the one presented in this specification) to transmit evidence.</t>
        </dd>
        <dt>User Key:</dt>
        <dd>
          <t>A user key consists of a key hosted by an HSM (the platform) and intended to be used by a client
of the HSM. Other terms used for a user key are "application key", "client key" or "operational key".
The access and operations on a user key is controlled by the HSM.</t>
        </dd>
      </dl>
      <section anchor="claims-and-measurements-in-pkix-evidence">
        <name>Claims and measurements in PKIX Evidence</name>
        <t><xref target="RFC9334"/> states that Evidence is made up of claims and that a claim is "a piece of
asserted information, often in the form of a name/value pair". The RATS Architecture also mentions
the concept of "measurements" that "can describe a variety of attributes of system components, such
as hardware, firmware, BIOS, software, etc., and how they are hardened."</t>
        <t>Some HSMs have a large amount of memory and can therefore contain a substantial amount of elements that
can be observed independently by the Attestation Service. Each of those elements, in turn, can contain a
number of measurable attributes.</t>
        <t>A certain level of complexity arises as multiple elements of the same class can be observed while generating
Evidence. In that case, the "name" of the claim must also include the "address" of the element.</t>
        <t>To that end, in this specification, the claims are organized as tuples of "entity", "attribute" and "value":</t>
        <ul spacing="normal">
          <li>
            <t>the entity represents the encapsulation of an element as a set of attributes;</t>
          </li>
          <li>
            <t>the attribute represents one property of the entity, which can be repeated to other entities of the
same class; and,</t>
          </li>
          <li>
            <t>the value is the actual measurement performed by the Attestation Service.</t>
          </li>
        </ul>
        <t>Therefore, each entity is a collection of claims, where the "name/value" pair represents one attribute
and its measured value for an entity.</t>
        <t>The grouping of claims into entities facilitates the comprehension of a large addressable space into
elements recognizable by the user. More importantly, it curtails the produced Evidence to portions of the
Target Environment that relate to the needs of the Verifier. See <xref target="sec-cons-privacy"/>.</t>
      </section>
      <section anchor="sec-ak-chain">
        <name>Attestation Key Certificate Chain</name>
        <t>The data format in this specification represents PKIX evidence and
requires third-party endorsement in order to establish trust. Part of this
endorsement is a trust anchor that chains to the HSM's attestation key (AK)
which signs the evidence. In practice the trust anchor will usually be a
manufacturing CA belonging to the device vendor which proves
that the device is genuine and not counterfeit. The trust anchor can also belong
to the device operator as would be the case when the AK certificate is replaced
as part of onboarding the device into a new operational network.</t>
        <t>The AK certificate that signs the evidence <bcp14>MUST</bcp14> have the Extended Key Usage
<tt>id-kp-attest</tt>, as defined in <xref target="I-D.jpfiset-lamps-attestationkey-eku"/>, set.</t>
        <t>Note that the data format specified in <xref target="sec-data-model"/> allows for zero, one, or multiple
'SignatureBlock's, so a single evidence statement could be un-protected, or could be endorsed by multiple
AK chains leading to different trust anchors. See <xref target="sec-verif-proc"/> for a discussion of handling multiple SignatureBlocks.</t>
      </section>
    </section>
    <section anchor="sec-info-model">
      <name>Information Model</name>
      <t>The PKIX Evidence format is composed of two main sections:</t>
      <ul spacing="normal">
        <li>
          <t>A claim description section which describes the information transmitted as Evidence.</t>
        </li>
        <li>
          <t>A signature section where one or more digital signatures are offered to prove the origin of the
claims and maintain their integrity.</t>
        </li>
      </ul>
      <t>The details of the signature section is left to the data model. The remainder of this section
deals with the way the information is organized to form the claims.</t>
      <t>The claims are organized into a set of entities to help with the organization and comprehension
of the information. Entities are elements observed in the Target Environment by the Attester.
Each entity, in turn, is associated with a set of attributes.</t>
      <t>Therefore, the Claim description section is a set of entities and each entity is composed
of a set of attributes.</t>
      <section anchor="entity">
        <name>Entity</name>
        <t>An entity is a logical construct that refers to a portion of the Target Environment's state. It is
addressable via an identifier such as a UUID or a handle (as expressed in <xref target="PKCS11"/>). In general, an
entity refers to a component recognized by users of the HSM, such as a key or the platform itself.</t>
        <t>An entity is composed of a type, the entity type, and a set of attributes. The entity type
describes the class of the entity while its attributes define its state.</t>
        <t>An entity <bcp14>MUST</bcp14> be reported at most once in a claim description. The claim description can
have multiple entities of the same type (for example reporting multiple keys), but each
entity <bcp14>MUST</bcp14> relate to different portions of the Target Environment.</t>
        <t>It is possible for two entities to be quite similar such as in a situation where a key is imported
twice in a HSM. In this case, the two related entities could have similar attributes. However, they
are treated as different entities as they are addressed differently.</t>
        <t>The number of entities reported in a claim description, and their respective type, is
left to the implementer. For a simple device where there is only one key, the list of
reported entities could be fixed. For larger and more complex devices, the list of
reported entities should be tailored to the demands of the Presenter.</t>
        <t>In particular, note that the nonce attribute contained with the Transaction entity is optional,
and therefore it is possible that an extremely simple device that holds one static key
could have its key attestation object generated at manufacture time and injected
statically into the device and act as a kind of certificate, instead of
being generated on-demand. This model would essentially
off-board the Target Environment to be part of the manufacturing infrastructure.</t>
      </section>
      <section anchor="entity-type">
        <name>Entity Type</name>
        <t>An entity is defined by its type. This specification defines three entity types:</t>
        <ul spacing="normal">
          <li>
            <t>Platform : This entity holds attributes relating to the state of the platform, or device,
where the Attester is located. Entities of this type hold attributes that are global
in nature within the Target Environment.</t>
          </li>
          <li>
            <t>Key : The entities of this type represent a cryptographic key protected within the
Target Environment and hold attributes relating to that key.</t>
          </li>
          <li>
            <t>Transaction : This entity is logical in nature since it is associated with attributes
that are not found in the Target Environment. The attributes found in this entity relate
to the current request for Evidence such as a nonce to support freshness.</t>
          </li>
        </ul>
        <t>Although this document defines a short list of entity types, this list is extensible
to allow implementers to report on entities found in their implementation and not
covered by this specification. By using an Object Identifier (OID) for specifying entity types
and attribute types, this format is inherently extensible;
implementers of this specification <bcp14>MAY</bcp14> define new custom or proprietary entity types and
place them alongside the standardized entities, or define new attribute types
and place them inside standardized entities.</t>
        <t>Verifiers <bcp14>SHOULD</bcp14> ignore and skip over
unrecognized entity or attribute types and continue processing normally.
In other words, if a given Evidence would have been acceptable without the
unrecognized entities or attributes, then it <bcp14>SHOULD</bcp14> still be acceptable with them.</t>
      </section>
      <section anchor="attribute-and-attribute-type">
        <name>Attribute and Attribute Type</name>
        <t>Each attribute found in an entity is composed of the attribute type and value.
Each attribute describes a portion of the state of the associated entity. For example,
a platform entity could have an attribute which indicates the firmware version currently running.
Another example is a key entity with an attribute that reports whether the key is extractable
or not.</t>
        <t>A value provided by an attribute is to be interpreted within the context
of its entity and in relation to the attribute type.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that an attribute type be defined for a specific entity type, to reduce
confusion when it comes to interpretation of the value. In other words, an attribute type <bcp14>SHOULD
NOT</bcp14> be used by multiple entity types. For example, if a concept of "revision" is applicable to a platform
and a key, the attribute for one entity type (platform revision) should have a different identifier
than the one for the other entity type (key revision).</t>
        <t>The nature of the value (boolean, integer, string, bytes) is dependent on the attribute type.</t>
        <t>This specification defines a limited set of attribute types. However, the list is extensible
through the IANA registration process or private OID allocation, enabling implementers to
report additional attributes not covered by this specification.</t>
        <t>The number of attributes reported within an entity, and their respective type, is
left to the implementer. For a simple device, the reported list of attributes for an entity
might be fixed. However, for larger and more complex devices, the list of reported attributes
should be tailored to the demands of the Presenter.</t>
        <t>Some attributes <bcp14>MAY</bcp14> be repeated within an entity while others <bcp14>MUST NOT</bcp14>. For example, for a
platform entity, there can only be one "firmware version" attribute. Therefore, the associated attribute
<bcp14>MUST NOT</bcp14> be repeated as it may lead to confusion. However, an attribute relating to
a "ak-spki" <bcp14>MAY</bcp14> be repeated, each attribute describing a different attesting key.
Therefore, the definition of an attribute specifies whether or not multiple copies of that
attribute are allowed.</t>
        <t>If a Verifier encounters, within a single entity, multiple copies of an attribute specified as
"Multiple Allowed: No", it <bcp14>MUST</bcp14> reject the evidence as malformed.</t>
        <t>If a Verifier encounters, within the context of an entity, a repeated attribute for a type where
multiple attributes are allowed, it <bcp14>MUST</bcp14> treat each one as an independent attribute and <bcp14>MUST NOT</bcp14>
consider later ones to overwrite the previous one.</t>
      </section>
    </section>
    <section anchor="sec-data-model">
      <name>Data Model</name>
      <t>This section describes the data model associated with PKIX Evidence. For ease of
deployment within the target ecosystem, ASN.1 definitions and DER encoding
are used. A complete ASN.1 module is provided in <xref target="sec-asn1-mod"/>.</t>
      <t>The top-level structures, as ASN.1 snippets, are:</t>
      <sourcecode type="asn.1"><![CDATA[
PkixEvidence ::= SEQUENCE {
    tbs                           TbsPkixEvidence,
    signatures                    SEQUENCE SIZE (0..MAX) OF SignatureBlock,
    intermediateCertificates  [0] SEQUENCE OF Certificate OPTIONAL
                                  -- As defined in RFC 5280
}

TbsPkixEvidence ::= SEQUENCE {
    version INTEGER,
    reportedEntities SEQUENCE SIZE (1..MAX) OF ReportedEntity
}

SignatureBlock ::= SEQUENCE {
   sid                  SignerIdentifier,
   signatureAlgorithm   AlgorithmIdentifier,
   signatureValue       OCTET STRING
}

SignerIdentifier ::= SEQUENCE {
   keyId                [0] EXPLICIT OCTET STRING OPTIONAL,
   subjectKeyIdentifier [1] EXPLICIT SubjectPublicKeyInfo OPTIONAL,
                            -- As defined in RFC 5280
   certificate          [2] EXPLICIT Certificate OPTIONAL
                            -- As defined in RFC 5280
}
]]></sourcecode>
      <t>A <tt>PkixEvidence</tt> message is composed of a protected section known as the To-Be-Signed (TBS) section where the evidence
reported by the HSM is assembled. The integrity of the TBS section is ensured with one or multiple cryptographic signatures
over the content of this section. There is a provision to carry X.509 certificates supporting each signature.
The SEQUENCE OF <tt>SignatureBlock</tt> allows for both multi-algorithm protection and for counter-signatures
of the evidence.
In an effort to keep the evidence format simple, distinguishing between these two cases is left up to Verifier policy,
potentially by making use of the certificates that accompany each signature.</t>
      <t>This design also does not prevent an attacker from removing, adding or re-ordering signatures without leaving evidence.
This is discussed as part of the security considerations in <xref target="sec-detached-sigs"/>.</t>
      <t>The TBS section is composed of a version number, to ensure future extensibility, and a sequence of reported entities.
For compliance with this specification, <tt>TbsPkixEvidence.version</tt> <bcp14>MUST</bcp14> be <tt>1</tt>.
This envelope format is not extensible; future specifications which make compatibility-breaking changes <bcp14>MUST</bcp14> increment the version number.</t>
      <t>A <tt>SignatureBlock</tt> is included for each signature submitted against the TBS section. The <tt>SignatureBlock</tt> includes
the signature algorithm (signatureAlgorithm) and the signature itself (signatureValue). It also includes
information to identify the authority that provided the signature which is the structure <tt>SignerIdentifier</tt> (sid).
The signer identifier includes a combination of X.509 certificate, SubjectPublicKeyInfo (SPKI) and/or
key identifier (keyId). It is expected that a X.509 certificate will be generally used, as it provides the public key needed
to verify the signature and clearly identifies the subject that provided the signature. The SPKI and keyId are allowed
to support environments where X.509 certificates are not used.</t>
      <t>The optional certificates provided in <tt>PkixEvidence.intermediateCertificates</tt> enable the insertion
of X.509 certificates to support trusting the signatures found in signature blocks. This information is intended to provide
the certificates required by the Verifier to verify the endorsement on the certificates included
with the signatures. <tt>intermediateCertificates</tt> <bcp14>MAY</bcp14> include any or all intermediate CA certificates needed to build paths (excluding trust anchors). Order is not significant.</t>
      <t>As described in <xref target="sec-info-model"/>, the <tt>TbsPkixEvidence</tt> is a set of entities. Each entity
is associated with a type that defines its class. The entity types are represented by object identifiers
(OIDs). The following ASN.1 definition defines the structures associated with entities:</t>
      <sourcecode type="asn.1"><![CDATA[
ReportedEntity ::= SEQUENCE {
    entityType         OBJECT IDENTIFIER,
    reportedAttributes SEQUENCE SIZE (1..MAX) OF ReportedAttribute
}

id-pkix-evidence                    OBJECT IDENTIFIER ::= { 1 2 3 999 }
id-pkix-evidence-entity-type        OBJECT IDENTIFIER ::= { id-pkix-evidence 0 }
id-pkix-evidence-entity-transaction OBJECT IDENTIFIER ::= { id-pkix-evidence-entity-type 0 }
id-pkix-evidence-entity-platform    OBJECT IDENTIFIER ::= { id-pkix-evidence-entity-type 1 }
id-pkix-evidence-entity-key         OBJECT IDENTIFIER ::= { id-pkix-evidence-entity-type 2 }
]]></sourcecode>
      <t>In turn, entities are composed of attributes. Each attribute is composed of a type and a value.
The attribute types are represented by object identifiers (OIDs). The
following ASN.1 definition defines the structures associated with attributes:</t>
      <sourcecode type="asn.1"><![CDATA[
ReportedAttribute ::= SEQUENCE {
    attributeType      OBJECT IDENTIFIER,
    value              AttributeValue OPTIONAL
}

AttributeValue ::= CHOICE {
   bytes       [0] IMPLICIT OCTET STRING,
   utf8String  [1] IMPLICIT UTF8String,
   bool        [2] IMPLICIT BOOLEAN,
   time        [3] IMPLICIT GeneralizedTime,
   int         [4] IMPLICIT INTEGER,
   oid         [5] IMPLICIT OBJECT IDENTIFIER
}
]]></sourcecode>
      <t>The attributes <bcp14>SHOULD</bcp14> be associated with a single entity type. Therefore, it is encouraged
to define attribute types grouped with their respective entity type.</t>
      <t>The type of an attribute value is dictated by the attribute type. When an attribute type is defined, the
definition must include the type of the value, its semantic and interpretation.</t>
      <t>The remainder of this section describes the entity types and their associated attributes.</t>
      <section anchor="platform-entity">
        <name>Platform Entity</name>
        <t>A platform entity reports information about the device where the Evidence is generated and is
composed of a set of attributes that are global to the Target Environment.
It is associated with the type identifier <tt>id-pkix-evidence-entity-platform</tt>.</t>
        <t>A platform entity, if provided, <bcp14>MUST</bcp14> be included only once within the reported entities. If a
Verifier encounters multiple entities of type <tt>id-pkix-evidence-entity-platform</tt>, it <bcp14>MUST</bcp14>
reject the Evidence as malformed.</t>
        <t>The following table lists the attributes for a platform entity (platform attributes) defined
within this specification. In cases where the attribute is borrowed from another specification,
the "Reference" column refers to the specification where the semantics
for the attribute value can be found.
Attributes defined in this specification have further details below.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Attribute</th>
              <th align="left">AttributeValue</th>
              <th align="left">Reference</th>
              <th align="left">Multiple?</th>
              <th align="left">OID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">vendor</td>
              <td align="left">utf8String</td>
              <td align="left">RFCthis</td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-vendor</td>
            </tr>
            <tr>
              <td align="left">oemid</td>
              <td align="left">bytes</td>
              <td align="left">
                <xref target="RFC9711"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-oemid</td>
            </tr>
            <tr>
              <td align="left">hwmodel</td>
              <td align="left">bytes</td>
              <td align="left">
                <xref target="RFC9711"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-hwmodel</td>
            </tr>
            <tr>
              <td align="left">hwversion</td>
              <td align="left">utf8String</td>
              <td align="left">
                <xref target="RFC9711"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-hwversion</td>
            </tr>
            <tr>
              <td align="left">hwserial</td>
              <td align="left">utf8String</td>
              <td align="left">RFCthis</td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-hwserial</td>
            </tr>
            <tr>
              <td align="left">swname</td>
              <td align="left">utf8String</td>
              <td align="left">
                <xref target="RFC9711"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-swname</td>
            </tr>
            <tr>
              <td align="left">swversion</td>
              <td align="left">utf8String</td>
              <td align="left">
                <xref target="RFC9711"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-swversion</td>
            </tr>
            <tr>
              <td align="left">dbgstat</td>
              <td align="left">int</td>
              <td align="left">
                <xref target="RFC9711"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-debugstat</td>
            </tr>
            <tr>
              <td align="left">uptime</td>
              <td align="left">int</td>
              <td align="left">
                <xref target="RFC9711"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-uptime</td>
            </tr>
            <tr>
              <td align="left">bootcount</td>
              <td align="left">int</td>
              <td align="left">
                <xref target="RFC9711"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-bootcount</td>
            </tr>
            <tr>
              <td align="left">fipsboot</td>
              <td align="left">bool</td>
              <td align="left">
                <xref target="FIPS140-3"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-fipsboot</td>
            </tr>
            <tr>
              <td align="left">fipsver</td>
              <td align="left">utf8String</td>
              <td align="left">
                <xref target="FIPS140-3"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-fipsver</td>
            </tr>
            <tr>
              <td align="left">fipslevel</td>
              <td align="left">int</td>
              <td align="left">
                <xref target="FIPS140-3"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-fipslevel</td>
            </tr>
            <tr>
              <td align="left">fipsmodule</td>
              <td align="left">utf8String</td>
              <td align="left">
                <xref target="FIPS140-3"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-platform-fipsmodule</td>
            </tr>
          </tbody>
        </table>
        <t>Each attribute defined in the table above is described in the following sub-sections.</t>
        <section anchor="vendor">
          <name>vendor</name>
          <t>A human-readable string that reports the name of the device's manufacturer. If the device is submitted to
FIPS validation, this string should correspond to the vendor field of the submission.</t>
        </section>
        <section anchor="oemid-hwmodel-hwversion-swname-swversion-dbgstat-uptime-bootcount">
          <name>oemid, hwmodel, hwversion, swname, swversion, dbgstat, uptime, bootcount</name>
          <t>These attributes are defined in <xref target="RFC9711"/> and reused in this specification for interoperability. Small
descriptions are offered for each to ease the reading of this specification. In case of confusion between the
description offered here and the one in <xref target="RFC9711"/>, the definition offered in the latter shall prevail.</t>
          <t>The attribute "oemid" uniquely identifies the Original Equipment Manufacturer (OEM) of the HSM. This is a
sequence of bytes and is not meant to be a human readable string.</t>
          <t>The attribute "hwmodel" differentiates models, products, and variants manufactured by a particular OEM. A model
must be unique within a given "oemid". This is a sequence of bytes and is not meant to be a human readable string.</t>
          <t>The attribute "hwversion" is a text string reporting the version of the hardware. This attribute must be
interpreted along with the attribute "hwmodel".</t>
          <t>The attribute "swname" is a text string reporting the name of the firmware running on the platform.</t>
          <t>The attribute "swversion" differentiates between the various revisions of a firmware offered for the platform. This
is a string that is expected to be human readable.</t>
          <t>The attribute "dbgstat" refers to the state of the debug facilities offered by the HSM. This is an integer
value describing the current state as described in <xref target="RFC9711"/>.</t>
          <t>The attribute "uptime" reports the number of seconds that have elapsed since the HSM was last booted.</t>
          <t>The attribute "bootcount" reports the number of times the HSM was booted.</t>
        </section>
        <section anchor="hwserial">
          <name>hwserial</name>
          <t>A human-readable string that reports the serial number of the hardware module. This serial number often matches the number engraved
on the case or on an applied sticker.</t>
        </section>
        <section anchor="fipsboot-fipsver-fipslevel-and-fipsmodule">
          <name>fipsboot, fipsver, fipslevel and fipsmodule</name>
          <t>FIPS 140-3 CMVP validation places stringent requirements on the mode of operation of the device and the cryptography offered by the module, including only enabling FIPS-approved algorithms, certain requirements on entropy sources, and extensive start-up self-tests. FIPS 140-3 offers compliance levels 1 through 4 with increasingly strict requirements. Many HSMs include a configuration setting that allows the device to be taken out of FIPS mode and thus enable additional functionality or performance, and some offer configuration settings to change between compliance levels.</t>
          <t>The boolean attribute <tt>fipsboot</tt> indicates whether the device is currently operating in FIPS mode. When the attribute value is "true", the HSM is running in compliance with the
FIPS 140 restrictions. Among other restrictions, it means that only FIPS-approved algorithms are available. If the value of this attribute is "false", then the HSM is not
restricted to the behavior limited by compliance.</t>
          <t>The textual attribute <tt>fipsver</tt> indicates the version of the FIPS CMVP specification with which the device's operational mode is compliant. At the time of writing, the strings "FIPS 140-2" or "FIPS 140-3" <bcp14>SHOULD</bcp14> be used.</t>
          <t>The integer attribute <tt>fipslevel</tt> indicates the compliance level to which the device is currently operating and <bcp14>MUST</bcp14> only be 1, 2, 3, or 4. The <tt>fipslevel</tt> attribute has no meaning if <tt>fipsboot</tt> is absent or <tt>false</tt>.</t>
          <t>The attribute <tt>fipsmodule</tt> is a textual field used to represent the name of the module that was submitted to CMVP for validation. The information derived by combining this attribute with the vendor name shall
be sufficient to find the associated records in the CMVP database.</t>
          <t>The FIPS status information in PKIX Evidence indicates only the mode of operation of the device and is not authoritative of its validation status.
This information is available on the NIST CMVP website or by contacting the device vendor.
As an example, some devices may have the option to enable FIPS mode in configuration even if the vendor has not submitted this model for validation. As another example, a device may be running in a mode consistent with FIPS Level 3 but the device was only validated and certified to Level 2.
A Relying Party wishing to know the validation status of the device <bcp14>MUST</bcp14> couple the device state information contained in the Evidence with a valid FIPS CMVP certificate for the device.</t>
        </section>
      </section>
      <section anchor="key-entity">
        <name>Key Entity</name>
        <t>A key entity is associated with the type <tt>id-pkix-evidence-entity-key</tt>. Each instance of a
key entity represents a different addressable key found in the Target Environment. There can
be multiple key entities found in a claim description, but each reported key entity <bcp14>MUST</bcp14>
describe a different key. Two key entities may represent the same underlying cryptographic key
(keys with the exact same value) but they must be different portions of the Target Environment's
state.</t>
        <t>A key entity is composed of a set of attributes relating to the cryptographic key. At
minimum, a key entity <bcp14>MUST</bcp14> report the attribute "identifier" to uniquely identify this cryptographic
key from any others found in the same Target Environment.</t>
        <t>A Verifier that encounters a claim description with multiple key entities referring to the
same addressable key <bcp14>MUST</bcp14> reject the Evidence.</t>
        <t>The following table lists the attributes for a key entity defined
within this specification. The "Reference" column refers to the specification where the semantics
for the attribute value can be found.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Attribute</th>
              <th align="left">AttributeValue</th>
              <th align="left">Reference</th>
              <th align="left">Multiple?</th>
              <th align="left">OID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">identifier</td>
              <td align="left">utf8String</td>
              <td align="left">RFCthis</td>
              <td align="left">Yes</td>
              <td align="left">id-pkix-evidence-attribute-key-identifier</td>
            </tr>
            <tr>
              <td align="left">spki</td>
              <td align="left">bytes</td>
              <td align="left">RFCthis</td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-key-spki</td>
            </tr>
            <tr>
              <td align="left">extractable</td>
              <td align="left">bool</td>
              <td align="left">
                <xref target="PKCS11"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-key-extractable</td>
            </tr>
            <tr>
              <td align="left">sensitive</td>
              <td align="left">bool</td>
              <td align="left">
                <xref target="PKCS11"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-key-sensitive</td>
            </tr>
            <tr>
              <td align="left">never-extractable</td>
              <td align="left">bool</td>
              <td align="left">
                <xref target="PKCS11"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-key-never-extractable</td>
            </tr>
            <tr>
              <td align="left">local</td>
              <td align="left">bool</td>
              <td align="left">
                <xref target="PKCS11"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-key-local</td>
            </tr>
            <tr>
              <td align="left">expiry</td>
              <td align="left">time</td>
              <td align="left">RFCthis</td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-key-expiry</td>
            </tr>
            <tr>
              <td align="left">purpose</td>
              <td align="left">bytes</td>
              <td align="left">RFCthis</td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-key-purpose</td>
            </tr>
          </tbody>
        </table>
        <t>An attestation key might be visible to a client of the device and be reported along with other cryptographic keys. Therefore,
it is acceptable to include a key entity providing claims about an attestation key like any other cryptographic key. An
implementation <bcp14>MAY</bcp14> reject the generation of PKIX Evidence if it relates to an attestation key.</t>
        <section anchor="identifier">
          <name>identifier</name>
          <t>A human-readable string that uniquely identifies the cryptographic key. This value often contains
a UUID but could also have a numeric value expressed as text or any other textual description.</t>
          <t>This attribute <bcp14>MAY</bcp14> be repeated as some environments have more than one way to refer to a
cryptographic key.</t>
        </section>
        <section anchor="spki">
          <name>spki</name>
          <t>The value of this attribute contains the DER-encoded field SubjectPublicKeyInfo (see <xref target="RFC5280"/>) associated with the cryptographic
key.</t>
        </section>
        <section anchor="extractable-sensitive-never-extractable-local">
          <name>extractable, sensitive, never-extractable, local</name>
          <t>These attributes are defined in <xref target="PKCS11"/> and reused in this specification for interoperability. Small
descriptions are offered for each to ease the reading of this specification. In case of confusion between the
description offered here and the one in <xref target="PKCS11"/>, the definition offered in the latter shall prevail.</t>
          <t>The attribute "extractable" indicates that the key can be exported from the HSM. Corresponds directly to the attribute CKA_EXTRACTABLE
found in PKCS#11.</t>
          <t>The attribute "sensitive" indicates that the key cannot leave the HSM in plaintext. Corresponds directly to the attribute CKA_SENSITIVE
found in PKCS#11.</t>
          <t>The attribute "never-extractable" indicates if the key was never extractable from the HSM throughout the life of the key. Corresponds
directly to the attribute CKA_NEVER_EXTRACTABLE found in PKCS#11.</t>
          <t>The attribute "local" indicates whether the key was generated locally or imported. Corresponds directly to the attribute CKA_LOCAL
found in PKCS#11.</t>
        </section>
        <section anchor="expiry">
          <name>expiry</name>
          <t>Reports a time after which the key is not to be used. The device <bcp14>MAY</bcp14> enforce this policy based on its internal clock.</t>
          <t>Note that security considerations should be taken relating to HSMs and their internal clocks. See <xref target="sec-cons-hsm-timestamps"/>.</t>
        </section>
        <section anchor="purpose">
          <name>purpose</name>
          <t>Reports the key capabilities associated with the subject key. Since multiple capabilities can be associated with a single key,
the value of this attribute is a list of capabilities, each reported as an object identifier (OID).</t>
          <t>The value of this attribute is the DER encoding of the following structure:</t>
          <sourcecode type="asn.1"><![CDATA[
<CODE STARTS>

PkixEvidenceKeyCapabilities ::= SEQUENCE OF OBJECT IDENTIFIER

<CODE ENDS>

]]></sourcecode>
          <t>The following table describes the key capabilities defined in this specification. The key capabilities offered are based on key
attributes provided by PKCS#11. Each capability is assigned an object identifier (OID).</t>
          <table>
            <thead>
              <tr>
                <th align="left">Capability</th>
                <th align="left">PKCS#11</th>
                <th align="left">OID</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">encrypt</td>
                <td align="left">CKA_ENCRYPT</td>
                <td align="left">id-pkix-evidence-key-capability-encrypt</td>
              </tr>
              <tr>
                <td align="left">decrypt</td>
                <td align="left">CKA_DECRYPT</td>
                <td align="left">id-pkix-evidence-key-capability-decrypt</td>
              </tr>
              <tr>
                <td align="left">wrap</td>
                <td align="left">CKA_WRAP</td>
                <td align="left">id-pkix-evidence-key-capability-wrap</td>
              </tr>
              <tr>
                <td align="left">unwrap</td>
                <td align="left">CKA_UNWRAP</td>
                <td align="left">id-pkix-evidence-key-capability-unwrap</td>
              </tr>
              <tr>
                <td align="left">sign</td>
                <td align="left">CKA_SIGN</td>
                <td align="left">id-pkix-evidence-key-capability-sign</td>
              </tr>
              <tr>
                <td align="left">sign-recover</td>
                <td align="left">CKA_SIGN_RECOVER</td>
                <td align="left">id-pkix-evidence-key-capability-sign-recover</td>
              </tr>
              <tr>
                <td align="left">verify</td>
                <td align="left">CKA_VERIFY</td>
                <td align="left">id-pkix-evidence-key-capability-verify</td>
              </tr>
              <tr>
                <td align="left">verify-recover</td>
                <td align="left">CKA_VERIFY_RECOVER</td>
                <td align="left">id-pkix-evidence-key-capability-verify-recover</td>
              </tr>
              <tr>
                <td align="left">derive</td>
                <td align="left">CKA_DERIVE</td>
                <td align="left">id-pkix-evidence-key-capability-derive</td>
              </tr>
            </tbody>
          </table>
          <t>The use of an object identifier to report a capability allows third parties to extend this list to support
implementations that have other key capabilities.</t>
        </section>
      </section>
      <section anchor="transaction-entity">
        <name>Transaction Entity</name>
        <t>A transaction entity is associated with the type <tt>id-pkix-evidence-entity-transaction</tt>. This is
a logical entity and does not relate to an element found in the Target Environment. Instead, it
groups together attributes that relate to the request of generating the Evidence.</t>
        <t>For example, it is possible to include a "nonce" as part of the request to produce Evidence. This
nonce is repeated as part of the Evidence to prove
the freshness of the claims. This "nonce" is not related to any element in the Target Environment
and the transaction entity is used to gather those values into attributes.</t>
        <t>A transaction entity, if provided, <bcp14>MUST</bcp14> be included only once within the reported entities. If a
Verifier encounters multiple entities of type <tt>id-pkix-evidence-entity-transaction</tt>, it <bcp14>MUST</bcp14>
reject the Evidence.</t>
        <t>The following table lists the attributes for a transaction entity defined
within this specification. The "Reference" column refers to the specification where the semantics
for the attribute value can be found.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Attribute</th>
              <th align="left">AttributeValue</th>
              <th align="left">Reference</th>
              <th align="left">Multiple?</th>
              <th align="left">OID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">nonce</td>
              <td align="left">bytes</td>
              <td align="left">
                <xref target="RFC9711"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-transaction-nonce</td>
            </tr>
            <tr>
              <td align="left">timestamp</td>
              <td align="left">time</td>
              <td align="left">
                <xref target="RFC9711"/></td>
              <td align="left">No</td>
              <td align="left">id-pkix-evidence-attribute-transaction-timestamp</td>
            </tr>
            <tr>
              <td align="left">ak-spki</td>
              <td align="left">bytes</td>
              <td align="left">RFCthis</td>
              <td align="left">Yes</td>
              <td align="left">id-pkix-evidence-attribute-transaction-ak-spki</td>
            </tr>
          </tbody>
        </table>
        <section anchor="nonce">
          <name>nonce</name>
          <t>The attribute "nonce" is used to provide "freshness" quality as to the claims provided in the PkixEvidence message. A Presenter requesting a PkixEvidence message <bcp14>MAY</bcp14> provide a nonce value as part of the request. This nonce value, if provided, <bcp14>SHOULD</bcp14> be repeated in the generated Evidence as an attribute within the transaction entity. Unlike EAT, only a single <tt>transaction.nonce</tt> is permitted to simplify verifier logic and reduce ambiguity.</t>
          <t>This is similar to the attribute "eat_nonce" as defined in <xref target="RFC9711"/>. According to that specification, this attribute may be specified multiple times with
different values. However, within the scope of this specification, the "nonce" value can be specified only once within a transaction.</t>
        </section>
        <section anchor="timestamp">
          <name>timestamp</name>
          <t>The time at which the PKIX Evidence was generated, according to the internal system clock of the Attester. This is similar to the
"iat" claim in <xref target="RFC9711"/>.</t>
          <t>Note that security considerations should be taken relating to the evaluation of timestamps generated by HSMs. See <xref target="sec-cons-hsm-timestamps"/>.</t>
        </section>
        <section anchor="ak-spki">
          <name>ak-spki</name>
          <t>This field contains the encoded Subject Public Key Information (SPKI) for the attestation key used to sign the evidence. The definition
and encoding for SPKIs are defined in X.509 certificates (<xref target="RFC5280"/>).</t>
          <t>This transaction attribute is used to bind the content of the evidence with the key(s) used to sign that evidence. The importance
of this binding is discussed in <xref target="sec-detached-sigs"/>.</t>
        </section>
      </section>
      <section anchor="sec-additional-attr-types">
        <name>Additional Entity and Attribute Types</name>
        <t>It is expected that HSM vendors will register additional Entity and Attribute types by assigning OIDs from their own proprietary OID arcs to hold data describing additional proprietary key properties.</t>
        <t>When new entity and attribute types are used, documentation similar to the one produced in this specification <bcp14>SHOULD</bcp14> be distributed to
explain the meaning of the types and the frequency that values can be provided.</t>
        <t>See <xref target="sec-req-processing"/>, <xref target="sec-req-verification"/> and <xref target="sec-cons-verifier"/> for handling of unrecognized custom types.</t>
      </section>
      <section anchor="encoding">
        <name>Encoding</name>
        <t>A PkixEvidence is to be DER encoded <xref target="X.690"/>.</t>
        <t>If a textual representation is required, then the DER encoding <bcp14>MAY</bcp14> be subsequently encoded into Standard Base64 as defined in <xref target="RFC4648"/>.</t>
        <t>PEM-like representations are also allowed where a MIME-compliant Base64 transformation of the DER encoding is used, provided that the
header label is "EVIDENCE". For example:</t>
        <artwork><![CDATA[
-----BEGIN EVIDENCE-----
(...)
-----END EVIDENCE-----
]]></artwork>
      </section>
    </section>
    <section anchor="sec-verif-proc">
      <name>Signing and Verification Procedures</name>
      <t>The <tt>SignatureBlock.signatureValue</tt> signs over the DER-encoded to-be-signed evidence data
<tt>PkixEvidence.tbs</tt> and <bcp14>MUST</bcp14> be validated with the subject public key of the leaf
X.509 certificate contained in the <tt>SignerIdentifier.certificate</tt>. Verifiers <bcp14>MAY</bcp14> also use
<tt>PkixEvidence.intermediateCertificates</tt> to build a certification path to a trust anchor.</t>
      <t>Note that a PkixEvidence <bcp14>MAY</bcp14> contain zero or more SignatureBlocks.
A PkixEvidence with zero SignatureBlocks is unsigned and unprotected; Verifiers <bcp14>MUST</bcp14> treat it as untrusted and <bcp14>MUST NOT</bcp14> rely on its claims.</t>
      <t>More than one SignatureBlock <bcp14>MAY</bcp14> be used to convey a number of different semantics.
For example, the HSM's Attesting Service might hold multiple Attestation Keys on different cryptographic
algorithms in order to provide algorithm redundancy in the case that one algorithm becomes cryptographically broken. In this case a Verifier would be expected to validate all SignatureBlocks. Alternatively, the HSM's Attesting Service may hold multiple Attestation Keys (or multiple X.509 certificates for the same key) from multiple operational environments to which it belongs. In this case a Verifier would be expected to only validate the SignatureBlock corresponding to its own environment. Alternatively, multiple SignatureBlocks could be used to convey counter-signatures from external parties, in which case the Verifier will need to be equipped with environment-specific verification logic. Multiple of these cases, and potentially others, could be supported by a single PkixEvidence object.</t>
      <t>Note that each SignatureBlock is a fully detached signature over the tbs content with no binding between the signed content and the SignatureBlocks, or between SignatureBlocks, meaning that a third-party can add a
counter-signature of the evidence after the fact, or an attacker can remove a SignatureBlock without leaving any artifact. See <xref target="sec-detached-sigs"/> for further discussion.</t>
      <t>If any <tt>transaction.ak-spki</tt> attributes are present, the Verifier <bcp14>SHOULD</bcp14> verify that each <tt>SignerIdentifier</tt>’s SubjectPublicKeyInfo (or the SPKI of its <tt>certificate</tt>) matches at least one <tt>ak-spki</tt> value.</t>
    </section>
    <section anchor="sec-reqs">
      <name>Attestation Requests</name>
      <t>This section is informative in nature and implementers of this specification do not need to adhere to it. The aim of this section is
to provide a standard interface between a Presenter and an HSM producing PKIX evidence. The authors hope that this standard interface will
yield interoperable tools between offerings from different vendors.</t>
      <t>The interface presented in this section might be too complex for manufacturers of HSMs with limited capabilities such as smartcards
or personal ID tokens. For devices with limited capabilities, a fixed PKIX evidence endorsed by the vendor might be installed
during manufacturing. Other approaches for constrained HSMs might be to report entities and attributes that are fixed or offer limited
variations.</t>
      <t>On the other hand, an enterprise-grade HSM with the capability to hold a large number of private keys is expected to be capable of generating
PKIX evidence catered to the specific constraints imposed by a Verifier and without exposing extraneous information. The aim of the request
interface is to provide the means to select and report specific information in the PKIX evidence.</t>
      <t>This section introduces the role of "Presenter" as shown in <xref target="fig-arch"/>. The Presenter is the role that initiates the generation of PKIX
evidence. Since HSMs are generally servers (client/server relationship) or peripherals (controller/peripheral relationship), a Presenter is
required to launch the process of creating the PKIX evidence and capturing it to forward it to the Verifier.</t>
      <figure anchor="fig-arch">
        <name>Architecture</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="464" width="392" viewBox="0 0 392 464" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,336" fill="none" stroke="black"/>
              <path d="M 48,416 L 48,448" fill="none" stroke="black"/>
              <path d="M 64,80 L 64,160" fill="none" stroke="black"/>
              <path d="M 64,240 L 64,288" fill="none" stroke="black"/>
              <path d="M 112,296 L 112,408" fill="none" stroke="black"/>
              <path d="M 128,160 L 128,232" fill="none" stroke="black"/>
              <path d="M 136,288 L 136,408" fill="none" stroke="black"/>
              <path d="M 184,416 L 184,448" fill="none" stroke="black"/>
              <path d="M 216,80 L 216,160" fill="none" stroke="black"/>
              <path d="M 216,240 L 216,288" fill="none" stroke="black"/>
              <path d="M 248,32 L 248,336" fill="none" stroke="black"/>
              <path d="M 280,416 L 280,448" fill="none" stroke="black"/>
              <path d="M 384,416 L 384,448" fill="none" stroke="black"/>
              <path d="M 8,32 L 248,32" fill="none" stroke="black"/>
              <path d="M 64,80 L 216,80" fill="none" stroke="black"/>
              <path d="M 64,160 L 216,160" fill="none" stroke="black"/>
              <path d="M 64,240 L 216,240" fill="none" stroke="black"/>
              <path d="M 64,288 L 216,288" fill="none" stroke="black"/>
              <path d="M 8,336 L 248,336" fill="none" stroke="black"/>
              <path d="M 48,416 L 184,416" fill="none" stroke="black"/>
              <path d="M 280,416 L 384,416" fill="none" stroke="black"/>
              <path d="M 192,432 L 272,432" fill="none" stroke="black"/>
              <path d="M 48,448 L 184,448" fill="none" stroke="black"/>
              <path d="M 280,448 L 384,448" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="280,432 268,426.4 268,437.6" fill="black" transform="rotate(0,272,432)"/>
              <polygon class="arrowhead" points="144,408 132,402.4 132,413.6" fill="black" transform="rotate(90,136,408)"/>
              <polygon class="arrowhead" points="136,232 124,226.4 124,237.6" fill="black" transform="rotate(90,128,232)"/>
              <polygon class="arrowhead" points="120,296 108,290.4 108,301.6" fill="black" transform="rotate(270,112,296)"/>
              <g class="text">
                <text x="60" y="52">Attester</text>
                <text x="120" y="52">(HSM)</text>
                <text x="100" y="100">Target</text>
                <text x="120" y="116">Environment</text>
                <text x="112" y="132">(Entities</text>
                <text x="160" y="132">&amp;</text>
                <text x="128" y="148">attributes)</text>
                <text x="168" y="196">Collect</text>
                <text x="164" y="212">Claims</text>
                <text x="120" y="260">Attestation</text>
                <text x="104" y="276">Service</text>
                <text x="56" y="372">Attestation</text>
                <text x="180" y="372">PKIX</text>
                <text x="40" y="388">Request</text>
                <text x="196" y="388">Evidence</text>
                <text x="120" y="436">Presenter</text>
                <text x="332" y="436">Verifier</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+-----------------------------+
|  Attester (HSM)             |
|                             |
|      +------------------+   |
|      | Target           |   |
|      | Environment      |   |
|      | (Entities &      |   |
|      |  attributes)     |   |
|      +-------+----------+   |
|              |              |
|              | Collect      |
|              | Claims       |
|              v              |
|      +------------------+   |
|      | Attestation      |   |
|      | Service          |   |
|      +--------+---------+   |
|            ^  |             |
|            |  |             |
+------------+--+-------------+
             |  |
 Attestation |  |   PKIX
 Request     |  |   Evidence
             |  v
     +----------------+           +------------+
     |    Presenter   |---------->|  Verifier  |
     +----------------+           +------------+
]]></artwork>
        </artset>
      </figure>
      <t>An Attestation Request (request) is assembled by the Presenter and submitted to the HSM. The HSM parses the request and produces PKIX evidence
which is returned to the Presenter for distribution.</t>
      <t>In the previous figure, the HSM is represented as being composed of an attestation service and a Target Environment. This representation is offered
as a simplified view and implementations are not required to adhere to this separation of concerns.</t>
      <t>The aim of the figure is to depict the position of the Presenter as an intermediate role between the Attester (in this case the HSM) and the Verifier.
The role of "Presenter" is privileged as it controls the Evidence being generated by the Attester. However, the role is not "trusted" as
the Verifier does not have to take into account the participation of the Presenter as part of the function of appraising the Evidence.</t>
      <t>The attestation request, shown in the figure, consists of a structure <tt>TbsPkixEvidence</tt> containing one <tt>ReportedEntity</tt> for each entity expected to
be included in the evidence produced by the HSM.</t>
      <t>Each instance of <tt>ReportedEntity</tt> included in the request is referred to as a request entity. A request entity contains a number of instances
of <tt>ReportedAttribute</tt> known as request attributes. The collection of request entities and request attributes represent the information desired
by the Presenter.</t>
      <t>In most cases the value of a request attribute should be left unspecified by the Presenter. In the process of generating
the evidence, the values of the desired attributes are observed by the Attestation Service within the HSM and reported accordingly. For the purpose
of creating a request, the Presenter does not specify the value of the requested attributes and leaves them empty. This is possible because the definition of
the structure <tt>ReportedAttribute</tt> specifies the element <tt>value</tt> as optional.</t>
      <t>On the other hand, there are circumstances where the value of a request attribute should be provided by the Presenter. For example, when a particular
cryptographic key is to be included in the evidence, the request must include a key entity with one of the "identifier" attributes set to the value
corresponding to the desired key.</t>
      <t>Some instances of <tt>ReportedEntity</tt>, such as those representing the platform or the transaction, do not need identifiers as the associated elements are
implicit in nature. Custom entity types might need selection during an attestation request and related documentation should specify how this is
achieved.</t>
      <t>The instance of <tt>TbsPkixEvidence</tt> is unsigned and does not provide any means to maintain integrity when communicated from the Presenter to the HSM.
These details are left to the implementer. However, it is worth pointing out that the structure offered by <tt>PkixEvidence</tt> could be reused by an
implementer to provide those capabilities, as described in <xref target="sec-cons-auth-the-presenter"/>.</t>
      <section anchor="request-attributes-with-specified-values">
        <name>Request Attributes with Specified Values</name>
        <t>This section deals with the request attributes specified in this document where a value should be provided by a Presenter. In other words, this
section defines all request attributes that should set in the structure <tt>ReportedAttribute</tt>. Request attributes not covered in this sub-section
should not have a specified value (left empty).</t>
        <t>Since this section is non-normative, implementers may deviate from those recommendations.</t>
        <section anchor="key-identifiers">
          <name>Key Identifiers</name>
          <t>A Presenter may choose to select which cryptographic keys are reported as part of the PKIX evidence. For each selected cryptographic key,
the Presenter includes a request entity of type <tt>id-pkix-evidence-entity-key</tt>. Among the request attributes for this entity, the
Presenter includes one attribute with the type <tt>id-pkix-evidence-attribute-key-identifier</tt>. The value of this attribute should be
set to the utf8String that represents the identifier for the specific key.</t>
          <t>An HSM receiving an attestation request which selects a key via this approach <bcp14>SHOULD</bcp14> fail the transaction if it cannot find the cryptographic
key associated with the specified identifier.</t>
        </section>
        <section anchor="nonce-1">
          <name>Nonce</name>
          <t>A Presenter may choose to include a nonce as part of the attestation request. When producing the PKIX evidence, the HSM repeats the
nonce that was provided as part of the request.</t>
          <t>When providing a nonce, a Presenter includes, in the attestation request, an entity of type <tt>id-pkix-evidence-entity-transaction</tt>
with an attribute of type <tt>id-pkix-evidence-attribute-transaction-nonce</tt>. This attribute is set with the value of the
nonce as "bytes".</t>
        </section>
        <section anchor="custom-key-selection">
          <name>Custom Key Selection</name>
          <t>An implementer might desire to select multiple cryptographic keys based on a shared attribute. A possible approach
is to include a single request entity of type <tt>id-pkix-evidence-entity-key</tt> including an attribute with a set value. This attribute
would not be related to the key identifier as this is unique to each key. A HSM supporting this scheme could select all the cryptographic
keys matching the specified attribute and report them in the PKIX evidence.</t>
          <t>This is a departure from the base request interface, as multiple key entities are reported from a single request entity.</t>
          <t>More elaborate selection schemes can be envisaged where multiple request attributes specifying values would be tested against cryptographic keys.
Whether these attributes are combined in a logical "and" or in a logical "or" would need to be specified by the implementer.</t>
        </section>
        <section anchor="custom-transaction-entity-attributes">
          <name>Custom Transaction Entity Attributes</name>
          <t>The extensibility offered by the proposed request interface allows an implementer to add custom attributes to the transaction entity in
order to influence the way that the evidence generation is performed.</t>
          <t>In such an approach, a new custom attribute for request entities of type "transaction" is defined. Then, an
attribute of that type is included in the attestation request (as part of the transaction entity) while specifying a value. This value
is considered by the HSM while generating the PKIX evidence.</t>
        </section>
      </section>
      <section anchor="reporting-of-attestation-keys">
        <name>Reporting of Attestation Keys</name>
        <t>There is a provision for the Attester to report the Attestation Key(s) used during the generation of the evidence. To this end,
the transaction attribute "ak-spki" is used.</t>
        <t>A Presenter invokes this provision by submitting an attestation request with a transaction attribute of type "ak-spki" with a
non-specified value (left empty).</t>
        <t>In this case, the Attester adds a transaction attribute of type "ak-spki" for each Attestation Key used to sign the evidence. The
value of this attribute is an octet string (bytes) which is the encoding of the Subject Public Key Information (SPKI) associated
with the Attestation Key. Details on SPKIs and their encoding can be found in X.509 certificates (<xref target="RFC5280"/>).</t>
        <t>This reporting effectively binds the signature blocks to the content (see <xref target="sec-detached-sigs"/>).</t>
      </section>
      <section anchor="sec-req-processing">
        <name>Processing an Attestation Request</name>
        <t>This sub-section deals with the rules that should be considered when an Attester (the HSM) processes a request to generate
Evidence. This section is non-normative and implementers <bcp14>MAY</bcp14> choose to not follow these recommendations.</t>
        <t>These recommendations apply to any attestation request schemes and are not restricted solely to the request interface proposed
here.</t>
        <t>An Attester <bcp14>SHOULD</bcp14> fail an attestation request if it contains an unrecognized entity type. This is to ensure that all the semantics expected
by the Presenter are fully understood by the Attester.</t>
        <t>An Attester <bcp14>MUST</bcp14> fail an attestation request if it contains a request attribute of an unrecognized type with a specified a value (not
empty). This represents a situation where the Presenter is selecting specific information that is not understood by the Attester.</t>
        <t>An Attester <bcp14>SHOULD</bcp14> ignore unrecognized attribute types in an attestation request. In this situation, the Attester <bcp14>SHOULD NOT</bcp14> include
the attribute as part of the response. This guidance is to increase the likelihood of interoperability between tools of various
vendors.</t>
        <t>An Attester <bcp14>MUST NOT</bcp14> include entities and attributes in the generated evidence if these entities and attributes were
not specified as part of the request. This is to give the Presenter the control on what information is disclosed by the Attester.</t>
        <t>An Attester <bcp14>MUST</bcp14> fail an attestation request if the Presenter does not have the appropriate access rights to the entities included
in the request.</t>
      </section>
      <section anchor="sec-req-verification">
        <name>Verification by Presenter</name>
        <t>This sub-section deals with the rules that should be considered when a Presenter receives PKIX evidence from the Attester (the HSM)
prior to distribution. This section is non-normative and implementers <bcp14>MAY</bcp14> choose to not follow these recommendations.</t>
        <t>These recommendations apply to any PKIX evidence and are not restricted solely to evidence generated from the proposed request interface.</t>
        <t>A Presenter <bcp14>MUST</bcp14> review the evidence produced by an Attester for fitness prior to distribution.</t>
        <t>A Presenter <bcp14>MUST NOT</bcp14> disclose evidence if it contains information it
cannot parse. This restriction applies to entity types and attributes type. This is
to ensure that the information provided by the Attester can be evaluated by the
Presenter.</t>
        <t>A Presenter <bcp14>MUST NOT</bcp14> disclose evidence if it contains entities others
than the ones that were requested of the Attester. This is to ensure that only the
selected entities are exposed to the Verifier.</t>
        <t>A Presenter <bcp14>MUST NOT</bcp14> disclose evidence if it contains an entity with an attribute
that was not requested of the Attester. This is to ensure that only the selected
information is disclosed to the Verifier.</t>
        <t>Further privacy concerns are discussed in <xref target="sec-cons-privacy"/>.</t>
      </section>
    </section>
    <section anchor="sec-asn1-mod">
      <name>ASN.1 Module</name>
      <sourcecode type="asn.1"><![CDATA[
<CODE STARTS>

=============== NOTE: '\' line wrapping per RFC 8792 ================

PKIX-Evidence-2025
      { iso(1) identified-organization(3) dod(6) internet(1) 
        security(5) mechanisms(5) pkix(7) id-mod(0) 
        id-mod-pkix-evidence-2025(TBDMOD) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN

PkixEvidence ::= SEQUENCE {
    tbs                           TbsPkixEvidence,
    signatures                    SEQUENCE SIZE (0..MAX) OF \
                                                      SignatureBlock,
    intermediateCertificates  [0] SEQUENCE OF Certificate OPTIONAL
                                  -- As defined in RFC 5280
}

TbsPkixEvidence ::= SEQUENCE {
    version INTEGER,
    reportedEntities SEQUENCE SIZE (1..MAX) OF ReportedEntity
}

ReportedEntity ::= SEQUENCE {
    entityType         OBJECT IDENTIFIER,
    reportedAttributes SEQUENCE SIZE (1..MAX) OF ReportedAttribute
}

ReportedAttribute ::= SEQUENCE {
    attributeType      OBJECT IDENTIFIER,
    value              AttributeValue OPTIONAL
}

AttributeValue ::= CHOICE {
   bytes       [0] OCTET STRING,
   utf8String  [1] UTF8String,
   bool        [2] BOOLEAN,
   time        [3] GeneralizedTime,
   int         [4] INTEGER,
   oid         [5] OBJECT IDENTIFIER,
   null        [6] NULL
}

SignatureBlock ::= SEQUENCE {
   sid                  SignerIdentifier,
   signatureAlgorithm   AlgorithmIdentifier,
   signatureValue       OCTET STRING
}

SignerIdentifier ::= SEQUENCE {
   keyId                [0] EXPLICIT OCTET STRING OPTIONAL,
   subjectKeyIdentifier [1] EXPLICIT SubjectPublicKeyInfo OPTIONAL,
                            -- As defined in RFC 5280
   certificate          [2] EXPLICIT Certificate OPTIONAL
                            -- As defined in RFC 5280
}

PkixEvidenceKeyCapabilities ::= SEQUENCE OF OBJECT IDENTIFIER

id-pkix-evidence OBJECT IDENTIFIER ::= { 1 2 3 999 }

id-pkix-evidence-entity-type        OBJECT IDENTIFIER ::= { id-pkix-\
                                                         evidence 0 }
id-pkix-evidence-entity-transaction OBJECT IDENTIFIER ::= { id-pkix-\
                                             evidence-entity-type 0 }
id-pkix-evidence-entity-platform    OBJECT IDENTIFIER ::= { id-pkix-\
                                             evidence-entity-type 1 }
id-pkix-evidence-entity-key         OBJECT IDENTIFIER ::= { id-pkix-\
                                             evidence-entity-type 2 }

id-pkix-evidence-attribute-type OBJECT IDENTIFIER ::= { id-pkix-\
                                                         evidence 1 }

id-pkix-evidence-attribute-transaction           OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-attribute-type 0 }
id-pkix-evidence-attribute-transaction-nonce     OBJECT IDENTIFIER :\
                      := { id-pkix-evidence-attribute-transaction 0 }
id-pkix-evidence-attribute-transaction-timestamp OBJECT IDENTIFIER :\
                      := { id-pkix-evidence-attribute-transaction 1 }
id-pkix-evidence-attribute-transaction-ak-spki   OBJECT IDENTIFIER :\
                      := { id-pkix-evidence-attribute-transaction 2 }

id-pkix-evidence-attribute-platform            OBJECT IDENTIFIER ::\
                              = { id-pkix-evidence-attribute-type 1 }
id-pkix-evidence-attribute-platform-vendor     OBJECT IDENTIFIER ::\
                          = { id-pkix-evidence-attribute-platform 0 }
id-pkix-evidence-attribute-platform-oemid      OBJECT IDENTIFIER ::\
                          = { id-pkix-evidence-attribute-platform 1 }
id-pkix-evidence-attribute-platform-hwmodel    OBJECT IDENTIFIER ::\
                          = { id-pkix-evidence-attribute-platform 2 }
id-pkix-evidence-attribute-platform-hwversion  OBJECT IDENTIFIER ::\
                          = { id-pkix-evidence-attribute-platform 3 }
id-pkix-evidence-attribute-platform-hwserial   OBJECT IDENTIFIER ::\
                          = { id-pkix-evidence-attribute-platform 4 }
id-pkix-evidence-attribute-platform-swname     OBJECT IDENTIFIER ::\
                          = { id-pkix-evidence-attribute-platform 5 }
id-pkix-evidence-attribute-platform-swversion  OBJECT IDENTIFIER ::\
                          = { id-pkix-evidence-attribute-platform 6 }
id-pkix-evidence-attribute-platform-debugstat  OBJECT IDENTIFIER ::\
                          = { id-pkix-evidence-attribute-platform 7 }
id-pkix-evidence-attribute-platform-uptime     OBJECT IDENTIFIER ::\
                          = { id-pkix-evidence-attribute-platform 8 }
id-pkix-evidence-attribute-platform-bootcount  OBJECT IDENTIFIER ::\
                          = { id-pkix-evidence-attribute-platform 9 }
id-pkix-evidence-attribute-platform-usermods   OBJECT IDENTIFIER ::\
                         = { id-pkix-evidence-attribute-platform 10 }
id-pkix-evidence-attribute-platform-fipsboot   OBJECT IDENTIFIER ::\
                         = { id-pkix-evidence-attribute-platform 11 }
id-pkix-evidence-attribute-platform-fipsver    OBJECT IDENTIFIER ::\
                         = { id-pkix-evidence-attribute-platform 12 }
id-pkix-evidence-attribute-platform-fipslevel  OBJECT IDENTIFIER ::\
                         = { id-pkix-evidence-attribute-platform 13 }
id-pkix-evidence-attribute-platform-fipsmodule OBJECT IDENTIFIER ::\
                         = { id-pkix-evidence-attribute-platform 14 }


id-pkix-evidence-attribute-key                   OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-attribute-type 2 }
id-pkix-evidence-attribute-key-identifier        OBJECT IDENTIFIER :\
                              := { id-pkix-evidence-attribute-key 0 }
id-pkix-evidence-attribute-key-spki              OBJECT IDENTIFIER :\
                              := { id-pkix-evidence-attribute-key 1 }
id-pkix-evidence-attribute-key-extractable       OBJECT IDENTIFIER :\
                              := { id-pkix-evidence-attribute-key 2 }
id-pkix-evidence-attribute-key-sensitive         OBJECT IDENTIFIER :\
                              := { id-pkix-evidence-attribute-key 3 }
id-pkix-evidence-attribute-key-never-extractable OBJECT IDENTIFIER :\
                              := { id-pkix-evidence-attribute-key 4 }
id-pkix-evidence-attribute-key-local             OBJECT IDENTIFIER :\
                              := { id-pkix-evidence-attribute-key 5 }
id-pkix-evidence-attribute-key-expiry            OBJECT IDENTIFIER :\
                              := { id-pkix-evidence-attribute-key 6 }
id-pkix-evidence-attribute-key-purpose           OBJECT IDENTIFIER :\
                              := { id-pkix-evidence-attribute-key 7 }


id-pkix-evidence-key-capability                  OBJECT IDENTIFIER :\
                                            := { id-pkix-evidence 2 }
id-pkix-evidence-key-capability-encrypt          OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-key-capability 0 }
id-pkix-evidence-key-capability-decrypt          OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-key-capability 1 }
id-pkix-evidence-key-capability-wrap             OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-key-capability 2 }
id-pkix-evidence-key-capability-unwrap           OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-key-capability 3 }
id-pkix-evidence-key-capability-sign             OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-key-capability 4 }
id-pkix-evidence-key-capability-sign-recover     OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-key-capability 5 }
id-pkix-evidence-key-capability-verify           OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-key-capability 6 }
id-pkix-evidence-key-capability-verify-recover   OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-key-capability 7 }
id-pkix-evidence-key-capability-derive           OBJECT IDENTIFIER :\
                             := { id-pkix-evidence-key-capability 8 }

END

<CODE ENDS>

]]></sourcecode>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>Please replace "RFCthis" with the RFC number assigned to this document.</t>
      <t>The following OIDs are defined in this document and will require IANA registration under the assigned arc:</t>
      <ul spacing="normal">
        <li>
          <t><tt>id-pkix-evidence</tt></t>
        </li>
        <li>
          <t><tt>id-pkix-evidence-entity-type</tt></t>
        </li>
        <li>
          <t><tt>id-pkix-evidence-entity-transaction</tt></t>
        </li>
        <li>
          <t><tt>id-pkix-evidence-entity-platform</tt></t>
        </li>
        <li>
          <t><tt>id-pkix-evidence-entity-key</tt></t>
        </li>
        <li>
          <t>Attribute OIDs referenced in the Platform, Key, and Transaction tables (e.g., <tt>id-pkix-evidence-attribute-platform-*</tt>, <tt>id-pkix-evidence-attribute-key-*</tt>, <tt>id-pkix-evidence-attribute-transaction-*</tt>).</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="sec-cons-verifier">
        <name>Policies relating to Verifier and Relying Party</name>
        <t>The generation of PKIX evidence by an HSM is to provide sufficient information to
a Verifier and a Relying Party to appraise the Target Environment (the HSM) and make
decisions based on this appraisal.</t>
        <t>The Appraisal Policy associated with the Verifier influences the generation of the Attestation
Results. Those results, in turn, are consumed by the Relying Party to make decisions about
the HSM, which might be based on a set of rules and policies. Therefore, the interpretation of
PKIX evidence may greatly influence the outcome of some decisions.</t>
        <t>A Verifier <bcp14>MAY</bcp14> reject a PKIX evidence if it lacks required attributes per the Verifier's
appraisal policy. For example, if a Relying Party mandates a FIPS-certified device,
it <bcp14>SHOULD</bcp14> reject evidence lacking sufficient information to verify the device's FIPS
certification status.</t>
        <t>If a Verifier encounters an attribute with an unrecognized attribute type, it <bcp14>MAY</bcp14> ignore it and
treat it as extraneous information. By ignoring an attribute, the Verifier may accept PKIX evidence
that would be deemed malformed to a Verifier with different policies. However, this approach
fosters a higher likelihood of achieving interoperability.</t>
      </section>
      <section anchor="sec-cons-simple">
        <name>Simple to Implement</name>
        <t>The nature of attestation requires the Attestation Service to be implemented in an extremely
privileged position within the HSM so that it can collect measurements of both the hardware
environment and the user keys being attested. For many HSM architectures, this will
place the Attestation Service inside the "security kernel" and potentially subject to FIPS 140-3
or Common Criteria validation and change control. For both security and compliance reasons
there is incentive for the generation and parsing logic to be simple and easy to implement
correctly. Additionally, when the data formats contained in this specification are parsed
within an HSM boundary -- that would be parsing a request entity, or parsing an attestation
produced by a different HSM -- implementers <bcp14>SHOULD</bcp14> opt for simple logic that rejects any
data that does not match the expected format, instead of attempting to be flexible.</t>
        <t>In particular, the Attestation Service <bcp14>SHOULD</bcp14> generate the PKIX evidence from scratch and
avoid copying any content from the request. The Attestation Service <bcp14>MUST</bcp14> generate PKIX evidence
only from attributes and values that are observed by the service.</t>
      </section>
      <section anchor="sec-detached-sigs">
        <name>Detached Signatures</name>
        <t>The construction of the evidence structure (<tt>PkixEvidence</tt>) includes a collection of signature
blocks that are not explicitly bound to the content. This approach was influenced by the following
motivations:</t>
        <ul spacing="normal">
          <li>
            <t>Multiple simultaneous signature blocks are desired to support hybrid environments where
multiple keys using different cryptographic algorithms are required to support appraisal
policies.</t>
          </li>
          <li>
            <t>Provide the ability to add counter-signatures without having to define an envelop scheme.</t>
          </li>
        </ul>
        <t>The concept of counter-signatures is important for environments where a number of heterogeneous
devices are deployed. In those environments, it is possible for a trusted actor, intermediary between
the Attester and the Verifier, to validate the original signature(s) and apply its own afterwards.</t>
        <t>The ability to add signature blocks to the evidence after the original generation by the Attester leads
to the unfortunate situation where signature blocks can also be removed without leaving any trace.
Therefore, the signature blocks can be deemed as "detachable" or "stapled".</t>
        <t>Manipulation of the evidence after it was generated can lead to undesired outcomes at the Verifier.</t>
        <t>Therefore, Verifiers <bcp14>MUST</bcp14> be designed to accept evidence based on their appraisal policies, regardless
of the presence or absence of certain signature(s). Consequently, Verifiers <bcp14>MUST NOT</bcp14> make any inferences
based on a missing signature, as the signature could have been removed in transit.</t>
        <t>This specification provides the transaction attribute "ak-spki" to effectively bind the content with
the signature blocks that were generated by the Attester. When this attribute is provided, it reports
the SPKI of one of the attestation keys used by the Attester to produce the evidence. This attribute
is repeated for each of the attestation keys used by the Attester.</t>
      </section>
      <section anchor="sec-cons-privacy">
        <name>Privacy</name>
        <t>Some HSMs have the capacity of supporting cryptographic keys controlled by separate entities referred to as "tenants", and when the HSM is used in that mode
it is referred to as a multi-tenant configuration.</t>
        <t>For example, an enterprise-grade HSM in a large multi-tenant cloud service could host TLS keys fronting multiple un-related web domains. Providing evidence for
attesting attributes of any one of the keys would involve a Presenter that could potentially access any of the hosted keys.
In such a case, privacy violations could occur if the Presenter was to disclose information that does not relate to the subject key.</t>
        <t>Implementers <bcp14>SHOULD</bcp14> be careful to avoid over-disclosure of information, for example by authenticating the Presenter as described in <xref target="sec-cons-auth-the-presenter"/> and only returning results for keys and environments for which it is authorized.
In absence of an existing mechanism for authenticating and authorizing administrative connections to the HSM, the attestation request <bcp14>MAY</bcp14> be authenticated by embedding the TbsPkixEvidence of the request inside a PkixEvidence signed with a certificate belonging to the Presenter.</t>
        <t>Furthermore, enterprise and cloud-services grade HSMs <bcp14>SHOULD</bcp14> support the full set of attestation request functionality described in <xref target="sec-reqs"/> so that Presenters can fine-tune the content of a PKIX evidence such that it is appropriate for the intended Verifier.</t>
      </section>
      <section anchor="sec-cons-auth-the-presenter">
        <name>Authenticating and Authorizing the Presenter</name>
        <t>The Presenter represents a privileged role within the architecture of this specification as it gets to learn about the existence of user keys and their protection properties, as well as details of the platform.
The Presenter is in the position of deciding how much information to disclose to the Verifier, and to request a suitably redacted evidence from the HSM.</t>
        <t>For personal cryptographic tokens it might be appropriate for the attestation request interface to be un-authenticated. However, for enterprise and cloud-services grade HSMs the Presenter <bcp14>SHOULD</bcp14> be authenticated using the HSM's native authentication mechanism. The details are HSM-specific and are thus left up to the implementer. However, it is <bcp14>RECOMMENDED</bcp14> to implement an authorization framework similar to the following.</t>
        <t>A Presenter <bcp14>SHOULD</bcp14> be allowed to request evidence for any user keys which it is allowed to use.
For example, a TLS application that is correctly authenticated to the HSM in order to use its TLS keys <bcp14>SHOULD</bcp14> be able to request evidence of those same keys without needing to perform any additional authentication or requiring any additional roles or permissions.
HSMs that wish to allow a Presenter to request evidence of keys which is not allowed to use, for example for the purposes of displaying HSM status information on an administrative console or UI, <bcp14>SHOULD</bcp14> have a "Attestation Requester" role or permission and <bcp14>SHOULD</bcp14> enforce the HSM's native access controls such that the Presenter can only retrieve evidence for keys for which it has read access.</t>
        <t>In the absence of an existing mechanism for authenticating and authorizing administrative connections to the HSM, the attestation request <bcp14>MAY</bcp14> be authenticated by embedding the <tt>TbsPkixEvidence</tt> of the request inside a <tt>PkixEvidence</tt> signed with a certificate belonging to the Presenter.</t>
      </section>
      <section anchor="proof-of-possession-of-user-keys">
        <name>Proof-of-Possession of User Keys</name>
        <t>With asymmetric keys within a Public Key Infrastructure (PKI) it is common to require a key holder to prove that they are in control of the private key by using it. This is called "proof-of-possession (PoP)". This specification intentionally does not provide a mechanism for PoP of user keys and relies on the Presenter, Verifier, and Relying Party trusting the Attester to correctly report the cryptographic keys that it is holding.</t>
        <t>It would be trivial to add a PoP Key Attribute that uses the attested user key to sign over, for example, the Transaction Entity. However, this approach leads to undesired consequences, as explained
below.</t>
        <t>First, a user key intended for TLS, as an example, <bcp14>SHOULD</bcp14> only be used with the TLS protocol. Introducing a signature oracle whereby the TLS application key is used to sign PKIX evidence could lead to cross-protocol attacks.
In this example, an attacker could submit a "nonce" value which is in fact not random but is crafted in such a way as to appear as a valid message in some other protocol context or exploit some other weakness in the signature algorithm.</t>
        <t>Second, the Presenter who has connected to the HSM to request PKIX evidence may have permissions to view the requested application keys but not permission to use them, as in the case where the Presenter is an administrative UI displaying HSM status information to an systems administrator or auditor.</t>
        <t>Requiring the Attestation Service to use the attested application keys could, in some architectures, require the Attestation Service to resolve complex access control logic and handle complex error conditions for each requested key, which violates the "simple to implement" design principle outlined in <xref target="sec-cons-simple"/>. More discussion of authenticating the Presenter can be found in <xref target="sec-cons-auth-the-presenter"/>.</t>
      </section>
      <section anchor="sec-cons-hsm-timestamps">
        <name>Timestamps and HSMs</name>
        <t>It is common for HSMs to have an inaccurate system clock. Most clocks have a natural drift and must be corrected periodically. HSMs, like any other devices,
are subject to these issues.</t>
        <t>There are many situations where HSMs can not naturally correct their internal system clocks. For example, consider a HSM hosting a trust anchor and usually kept offline
and booted up infrequently in a network without a reliable time management service. Another example is a smart card which boots up only when held against an NFC reader.</t>
        <t>When a timestamp generated from a HSM is evaluated, the expected behavior of the system clock <bcp14>SHOULD</bcp14> be considered.</t>
        <t>More specifically, the timestamp <bcp14>SHOULD NOT</bcp14> be relied on for establishing the freshness of the evidence generated by a HSM. Instead, Verifiers <bcp14>SHOULD</bcp14> rely on other provisions
such as the "nonce" attribute of the "transaction" entity, introduced this specification.</t>
        <t>Furthermore, the internal system clock of HSMs <bcp14>SHOULD NOT</bcp14> be relied on to enforce expiration policies.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </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="X680" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information technology — ASN.1: Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="X690" target="https://www.itu.int/rec/T-REC-X.690">
          <front>
            <title>Information technology — ASN.1 encoding rules: BER, CER, DER</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PKCS11" target="https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/cs01/pkcs11-spec-v3.1-cs01.html">
          <front>
            <title>PKCS #11 Specification Version 3.1</title>
            <author initials="D." surname="Bong" fullname="Dieter Bong">
              <organization/>
            </author>
            <author initials="T." surname="Cox" fullname="Tony Cox">
              <organization/>
            </author>
            <author>
              <organization>OASIS PKCS 11 TC</organization>
            </author>
            <date year="2022" month="August" day="11"/>
          </front>
        </reference>
        <reference anchor="FIPS140-3" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-3.pdf">
          <front>
            <title>Security Requirements for Cryptographic Modules</title>
            <author>
              <organization>NIST, Information Technology Laboratory</organization>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="FIPS" value="140-3"/>
        </reference>
        <reference anchor="X.690" target="https://www.itu.int/rec/T-REC-X.690">
          <front>
            <title>Information technology -- ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
          <seriesInfo name="ISO/IEC" value="8825-1:2021"/>
        </reference>
        <reference anchor="I-D.jpfiset-lamps-attestationkey-eku">
          <front>
            <title>Extended Key Usage (EKU) for X.509 Certificates associated with Attestation Keys</title>
            <author fullname="Jean-Pierre Fiset" initials="J." surname="Fiset">
              <organization>Crypto4A Inc.</organization>
            </author>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Monty Wiseman" initials="M." surname="Wiseman">
         </author>
            <date day="5" month="August" year="2025"/>
            <abstract>
              <t>   As described in RFC5280, key usages are specified in X.509
   certificates using the certificate extensions "Key Usage" and
   "Extended Key Usage".  This document defines an Extended Key Usage
   (EKU) relating to keys that are dedicated to the purpose of signing
   attestation evidence as introduced in RFC9334.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jpfiset-lamps-attestationkey-eku-00"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2986">
          <front>
            <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2986"/>
          <seriesInfo name="DOI" value="10.17487/RFC2986"/>
        </reference>
        <reference anchor="RFC6024">
          <front>
            <title>Trust Anchor Management Requirements</title>
            <author fullname="R. Reddy" initials="R." surname="Reddy"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>A trust anchor represents an authoritative entity via a public key and associated data. The public key is used to verify digital signatures, and the associated data is used to constrain the types of information for which the trust anchor is authoritative. A relying party uses trust anchors to determine if a digitally signed object is valid by verifying a digital signature using the trust anchor's public key, and by enforcing the constraints expressed in the associated data for the trust anchor. This document describes some of the problems associated with the lack of a standard trust anchor management mechanism and defines requirements for data formats and push-based protocols designed to address these problems. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6024"/>
          <seriesInfo name="DOI" value="10.17487/RFC6024"/>
        </reference>
        <reference anchor="RFC9019">
          <front>
            <title>A Firmware Update Architecture for Internet of Things</title>
            <author fullname="B. Moran" initials="B." surname="Moran"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="M. Meriac" initials="M." surname="Meriac"/>
            <date month="April" year="2021"/>
            <abstract>
              <t>Vulnerabilities in Internet of Things (IoT) devices have raised the need for a reliable and secure firmware update mechanism suitable for devices with resource constraints. Incorporating such an update mechanism is a fundamental requirement for fixing vulnerabilities, but it also enables other important capabilities such as updating configuration settings and adding new functionality.</t>
              <t>In addition to the definition of terminology and an architecture, this document provides the motivation for the standardization of a manifest format as a transport-agnostic means for describing and protecting firmware updates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9019"/>
          <seriesInfo name="DOI" value="10.17487/RFC9019"/>
        </reference>
        <reference anchor="RFC4211">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Certificate Request Message Format (CRMF) syntax and semantics. This syntax is used to convey a request for a certificate to a Certification Authority (CA), possibly via a Registration Authority (RA), for the purposes of X.509 certificate production. The request will typically include a public key and the associated registration information. This document does not define a certificate request protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4211"/>
          <seriesInfo name="DOI" value="10.17487/RFC4211"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-csr-attestation">
          <front>
            <title>Use of Remote Attestation with Certification Signing Requests</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Monty Wiseman" initials="M." surname="Wiseman">
         </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel Corporation</organization>
            </author>
            <date day="5" month="October" year="2025"/>
            <abstract>
              <t>   A PKI end entity requesting a certificate from a Certification
   Authority (CA) may wish to offer trustworthy claims about the
   platform generating the certification request and the environment
   associated with the corresponding private key, such as whether the
   private key resides on a hardware security module.

   This specification defines an attribute and an extension that allow
   for conveyance of RATS conceptual messages (see Section 8 of
   [RFC9334], such as Evidence, Endorsements and Attestation Results, in
   Certificate Signing Requests (CSRs), such as PKCS#10 or Certificate
   Request Message Format (CRMF) payloads.  This provides an elegant and
   automatable mechanism for transporting attestation data to a
   Certification Authority.

   Including Evidence, Endorsements and Attestation Results along with a
   CSR can help to improve the assessment of the security posture for
   the private key, and can help the Certification Authority to assess
   whether it satisfies the requested certificate profile.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-21"/>
        </reference>
        <reference anchor="I-D.fossati-tls-attestation">
          <front>
            <title>Using Attestation in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <author fullname="Paul Howard" initials="P." surname="Howard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Ionuț Mihalcea" initials="I." surname="Mihalcea">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Arto Niemi" initials="A." surname="Niemi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="30" month="April" year="2025"/>
            <abstract>
              <t>   The TLS handshake protocol allows authentication of one or both peers
   using static, long-term credentials.  In some cases, it is also
   desirable to ensure that the peer runtime environment is in a secure
   state.  Such an assurance can be achieved using attestation which is
   a process by which an entity produces evidence about itself that
   another party can use to appraise whether that entity is found in a
   secure state.  This document describes a series of protocol
   extensions to the TLS 1.3 handshake that enables the binding of the
   TLS authentication key to a remote attestation session.  This enables
   an entity capable of producing attestation evidence, such as a
   confidential workload running in a Trusted Execution Environment
   (TEE), or an IoT device that is trying to authenticate itself to a
   network access point, to present a more comprehensive set of security
   metrics to its peer.  These extensions have been designed to allow
   the peers to use any attestation technology, in any remote
   attestation topology, and mutually.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fossati-tls-attestation-09"/>
        </reference>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="29" month="September" year="2025"/>
            <abstract>
              <t>   The Conceptual Messages introduced by the RATS Architecture (RFC9334)
   are protocol-agnostic data units that are conveyed between RATS roles
   during remote attestation procedures.  Conceptual Messages describe
   the meaning and function of such data units within RATS data flows
   without specifying a wire format, encoding, transport mechanism, or
   processing details.  The initial set of Conceptual Messages is
   defined in Section 8 of RFC9334 and includes Evidence, Attestation
   Results, Endorsements, Reference Values, and Appraisal Policies.

   This document introduces the Conceptual Message Wrapper (CMW) that
   provides a common structure to encapsulate these messages.  It
   defines a dedicated CBOR tag, corresponding JSON Web Token (JWT) and
   CBOR Web Token (CWT) claims, and an X.509 extension.

   This allows CMWs to be used in CBOR-based protocols, web APIs using
   JWTs and CWTs, and PKIX artifacts like X.509 certificates.
   Additionally, the draft defines a media type and a CoAP content
   format to transport CMWs over protocols like HTTP, MIME, and CoAP.

   The goal is to improve the interoperability and flexibility of remote
   attestation protocols.  By introducing a shared message format like
   the CMW, we can consistently support different attestation message
   types, evolve message serialization formats without breaking
   compatibility, and avoid having to redefine how messages are handled
   in each protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-18"/>
        </reference>
        <reference anchor="CNSA2.0" target="https://media.defense.gov/2022/Sep/07/2003071834/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS_.PDF">
          <front>
            <title>Commercial National Security Algorithm Suite 2.0</title>
            <author>
              <organization>National Security Agency</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CSBR" target="https://cabforum.org/working-groups/code-signing/documents/">
          <front>
            <title>Baseline Requirements for the Issuance and Management of Publicly-Trusted Code Signing Certificates Version 3.8.0</title>
            <author>
              <organization>CA/Browser Forum</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 1440?>

<section anchor="samples">
      <name>Samples</name>
      <t>A reference implementation of this specification can be found at https://github.com/ietf-rats-wg/key-attestation</t>
      <t>It produces the following sample evidence:</t>
      <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

PkixAttestation:
 tbs=TbsPkixAttestation:
  version=2
  reportedEntities=SequenceOf:
   ReportedEntity:
    entityType=1.2.3.999.0.0
    reportedAttributes=SequenceOf:
     ReportedAttribute:
      attributeType=1.2.3.999.1.0.0
      value=AttributeValue:
       bytes=0102030405


   ReportedEntity:
    entityType=1.2.3.999.0.1
    reportedAttributes=SequenceOf:
     ReportedAttribute:
      attributeType=1.2.3.999.1.1.1
      value=AttributeValue:
       utf8String=HSM-123

     ReportedAttribute:
      attributeType=1.2.3.999.1.1.2
      value=AttributeValue:
       bool=True

     ReportedAttribute:
      attributeType=1.2.3.999.1.1.3
      value=AttributeValue:
       utf8String=Model ABC

     ReportedAttribute:
      attributeType=1.2.3.999.1.1.4
      value=AttributeValue:
       utf8String=3.1.9


   ReportedEntity:
    entityType=1.2.3.999.0.2
    reportedAttributes=SequenceOf:
     ReportedAttribute:
      attributeType=1.2.3.999.1.2.0
      value=AttributeValue:
       utf8String=26d765d8-1afd-4dfb-a290-cf867ddecfa1

     ReportedAttribute:
      attributeType=1.2.3.999.1.2.3
      value=AttributeValue:
       bool=False

     ReportedAttribute:
      attributeType=1.2.3.999.1.2.1
      value=AttributeValue:
       bytes=\
0x3059301306072a8648ce3d020106082a8648ce3d03010703420004422548f88fb7\
82ffb5eca3744452c72a1e558fbd6f73be5e48e93232cc45c5b16c4cd10c4cb8d5b8\
                     a17139e94882c8992572993425f41419ab7e90a42a494272


   ReportedEntity:
    entityType=1.2.3.999.0.2
    reportedAttributes=SequenceOf:
     ReportedAttribute:
      attributeType=1.2.3.999.1.2.0
      value=AttributeValue:
       utf8String=49a96ace-e39a-4fd2-bec1-13165a99621c

     ReportedAttribute:
      attributeType=1.2.3.999.1.2.3
      value=AttributeValue:
       bool=True

     ReportedAttribute:
      attributeType=1.2.3.999.1.2.1
      value=AttributeValue:
       bytes=\
0x3059301306072a8648ce3d020106082a8648ce3d03010703420004422548f88fb7\
82ffb5eca3744452c72a1e558fbd6f73be5e48e93232cc45c5b16c4cd10c4cb8d5b8\
                     a17139e94882c8992572993425f41419ab7e90a42a494272


   ReportedEntity:
    entityType=1.2.3.888.0
    reportedAttributes=SequenceOf:
     ReportedAttribute:
      attributeType=1.2.3.888.1
      value=AttributeValue:
       utf8String=partition 1




 signatures=SequenceOf:
  SignatureBlock:
   certChain=SequenceOf:
    Certificate:
     tbsCertificate=TBSCertificate:
      version=v3
      serialNumber=510501933685942792810365453374472870755160518925
      signature=AlgorithmIdentifier:
       algorithm=1.2.840.113549.1.1.11
       parameters=0x0500

      issuer=Name:
       rdnSequence=RDNSequence:
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.10
          value=0x0c0449455446
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.11
          value=0x0c0452415453
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.3
          value=0x0c06414b20525341


      validity=Validity:
       notBefore=Time:
        utcTime=250117171303Z

       notAfter=Time:
        generalTime=20520604171303Z


      subject=Name:
       rdnSequence=RDNSequence:
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.10
          value=0x0c0449455446
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.11
          value=0x0c0452415453
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.3
          value=0x0c06414b20525341


      subjectPublicKeyInfo=SubjectPublicKeyInfo:
       algorithm=AlgorithmIdentifier:
        algorithm=1.2.840.113549.1.1.1
        parameters=0x0500

       subjectPublicKey=\
31795268810366627125468059984427145931784542919710733587190808152893\
60654221420809632888307722560713639336279560999760196831203900125133\
94283491012035327260476464503011428823183377093983165744076471996900\
00689245113739552615279534528145776090813314822312012607567736073057\
93682071373309092884909267211093730030075556179780800043813483945804\
36738524537229696496092020939452353934949121386913422195643653009653\
87743701570507112064401758218314760153081271981340812350365663466513\
62085332653425242470699284103365281746135463231612931259782554282056\
96678423183426464574470371256093994768443364562065834165394264792211\
                               64971369788464727307915820767918489601

      extensions=Extensions:
       Extension:
        extnID=2.5.29.14
        critical=False
        extnValue=0x04148919595e0ef169f5cbbd47e134fce298cc693091
       Extension:
        extnID=2.5.29.35
        critical=False
        extnValue=0x301680148919595e0ef169f5cbbd47e134fce298cc693091
       Extension:
        extnID=2.5.29.19
        critical=True
        extnValue=0x30030101ff


     signatureAlgorithm=AlgorithmIdentifier:
      algorithm=1.2.840.113549.1.1.11
      parameters=0x0500

     signature=\
12977775424631768289542539102653382982431795551146145281750189553757\
94098257281326442898298599774059587807702785399451577511675203096385\
84696515487658087752698572711677485127950179162848670513028844653157\
51010913658016640170608413935780119349866986170148033301955753116984\
04127127390775654478023156464686042499902099074552338362298011520044\
62601031731035006478387581976102385523490530645254202408261935533953\
78873725256584269666918504793674497748455574822238022085054752185687\
44080765533772482185333268815846037955490610541772066517564837183282\
59395770398747304427903377260041058781683759981231103319933488336293\
                                                                25492

   signatureAlgorithm=AlgorithmIdentifier:
    algorithm=1.2.840.113549.1.1.10
    parameters=RSASSA_PSS_params:
     hashAlgorithm=AlgorithmIdentifier:
      algorithm=2.16.840.1.101.3.4.2.1

     maskGenAlgorithm=AlgorithmIdentifier:
      algorithm=1.2.840.113549.1.1.8

     saltLength=20
     trailerField=1


   signatureValue=\
0xab7fd2b0f854daa4e867fd16955cd3b9910e93b70c7403cfa8077f04193909d14e\
c6bed859b67476c84cc2c28842b9a087d5c39e11ca95f6961d272d97297cb6ed3c06\
2717696b032f4bf1f0f41ac20ae9706a8a4c17845ae2512950774173737010d6692c\
b726d1ab3a022092efcf27f0dd875b62e4df546814186f9e744cc34cf0778c877c57\
1d006be094aa683a5f66d6816d22dba104334163020c62d81903c41d353eaba94212\
47fc354fd3288a01921d93014100960324c3122feebfffc1007c83e98136e1b1fca1\
15835b9e67fa9056f290208fb99e1c8144839a5e13ccb1217dceeecc253fc7785bc8\
                               308382e052ffb867b40a0cd593176ed6ddc7b0
  SignatureBlock:
   certChain=SequenceOf:
    Certificate:
     tbsCertificate=TBSCertificate:
      version=v3
      serialNumber=43752118382009037811618748949928339462896457144
      signature=AlgorithmIdentifier:
       algorithm=1.2.840.10045.4.3.2

      issuer=Name:
       rdnSequence=RDNSequence:
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.10
          value=0x0c0449455446
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.11
          value=0x0c0452415453
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.3
          value=0x0c07414b2050323536


      validity=Validity:
       notBefore=Time:
        utcTime=250117171428Z

       notAfter=Time:
        generalTime=20520604171428Z


      subject=Name:
       rdnSequence=RDNSequence:
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.10
          value=0x0c0449455446
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.11
          value=0x0c0452415453
        RelativeDistinguishedName:
         AttributeTypeAndValue:
          type=2.5.4.3
          value=0x0c07414b2050323536


      subjectPublicKeyInfo=SubjectPublicKeyInfo:
       algorithm=AlgorithmIdentifier:
        algorithm=1.2.840.10045.2.1
        parameters=0x06082a8648ce3d030107

       subjectPublicKey=\
57095560233504924588952816185508037812996307929249104847846164660564\
88839712339087758567046283628572504126189755002031148112756265577433\
                                                  3675293173915140722

      extensions=Extensions:
       Extension:
        extnID=2.5.29.14
        critical=False
        extnValue=0x04145b70a79817f79ff637d2f7e3dc446c2109d7bbd4
       Extension:
        extnID=2.5.29.35
        critical=False
        extnValue=0x301680145b70a79817f79ff637d2f7e3dc446c2109d7bbd4
       Extension:
        extnID=2.5.29.19
        critical=True
        extnValue=0x30030101ff


     signatureAlgorithm=AlgorithmIdentifier:
      algorithm=1.2.840.10045.4.3.2

     signature=\
18216751979714603574557504315480141511553297913673112867639918069266\
48218048839904015520407896430131032024244860880583649829667093244967\
                                  82518079519267269438816178719668437

   signatureAlgorithm=AlgorithmIdentifier:
    algorithm=1.2.840.10045.2.1
    parameters=0x06082a8648ce3d030107

   signatureValue=\
0x3046022100e416af2483667e73345ee297e563cf1639e41ab9bdcd01f98872fddb\
101e779d022100d06c6e1054292640eea1873230a399af0936760cbfc8023a8a2874\
                                                           f9c5fc5ba8



DER Base64:
MIIIszCCAgsCAQIwggIEMCEGBioDh2cAADAXMBUGByoDh2cBAAAECjAxMDIwMzA0MDUw\
VAYGKgOHZwABMEowEgYHKgOHZwEBAQwHSFNNLTEyMzAMBgcqA4dnAQECAQH/\
MBQGByoDh2cBAQMMCU1vZGVsIEFCQzAQBgcqA4dnAQEEDAUzLjEuOTCBsgYGKgOHZwAC\
MIGnMC8GByoDh2cBAgAMJDI2ZDc2NWQ4LTFhZmQtNGRmYi1hMjkwLWNmODY3ZGRlY2Zh\
MTAMBgcqA4dnAQIDAQEAMGYGByoDh2cBAgEEWzBZMBMGByqGSM49AgEGCCqGSM49AwEH\
A0IABEIlSPiPt4L/teyjdERSxyoeVY+9b3O+\
XkjpMjLMRcWxbEzRDEy41bihcTnpSILImSVymTQl9BQZq36QpCpJQnIwgbIGBioDh2cA\
AjCBpzAvBgcqA4dnAQIADCQ0OWE5NmFjZS1lMzlhLTRmZDItYmVjMS0xMzE2NWE5OTYy\
MWMwDAYHKgOHZwECAwEB/\
zBmBgcqA4dnAQIBBFswWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARCJUj4j7eC/\
7Xso3REUscqHlWPvW9zvl5I6TIyzEXFsWxM0QxMuNW4oXE56UiCyJklcpk0JfQUGat+\
kKQqSUJyMB8GBSoDhngAMBYwFAYFKgOGeAEMC3BhcnRpdGlvbiAxMIIGoDCCBHowggNF\
MIIDQTCCAimgAwIBAgIUWWuyy9RGarWD+\
k6k4ZswYmQ7cQ0wDQYJKoZIhvcNAQELBQAwLzENMAsGA1UECgwESUVURjENMAsGA1UEC\
wwEUkFUUzEPMA0GA1UEAwwGQUsgUlNBMCAXDTI1MDExNzE3MTMwM1oYDzIwNTIwNjA0M\
TcxMzAzWjAvMQ0wCwYDVQQKDARJRVRGMQ0wCwYDVQQLDARSQVRTMQ8wDQYDVQQDDAZBS\
yBSU0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCw+\
egZQ6eumJKq3hfKfED4dE/tL4FI5sjqont9ABVI+\
1GSqyi1bFBgsRjM0THllIdMbKmJtWwnKW8J+5OgNN8y6Xxv8JmM/\
Y5vQt2lis0fqXmG8UTz0VTWdlAXXmhUs6lSADvAaIe4RVrCsZ97L3ZQTryY7JRVcbB4k\
hUN3Gp0yg+801SXzoFTTa+UGIRLE66jH51aa5VXu99hnv1OiH8tQrjdi8mH6uG/\
icq4XuIeNWMF32wHqIOOPvQcWV3M5D2vxJEj702Ku6k9OQXkAo17qRSEonWW4HtLbtmS\
8He1JNPc/n3dVUm+\
fM6NoDXPoLP7j55G9zKyqGtGAWXAj1MTAgMBAAGjUzBRMB0GA1UdDgQWBBSJGVleDvFp\
9cu9R+E0/OKYzGkwkTAfBgNVHSMEGDAWgBSJGVleDvFp9cu9R+E0/\
OKYzGkwkTAPBgNVHRMBAf8EBTADAQH/\
MA0GCSqGSIb3DQEBCwUAA4IBAQBmzcTIPYhVNtMdrOb9ee9qYADlTuQl1y1mdrDPcC+\
zmwZuwKLJu89hvxmFdDrVNc6QsNKnH0fWtMZxU5UQTrqW2Wf0jLY3bjfJkCmTQahOK8X\
D3oQqfXVKCe+MGFUSh71BUXc4FIQzMJ6phG+5qiCqsD9BL/gFXf4ao+BI4SQhVWi6FR+\
JOBMxd91DYDyYr6NfddAbzaW7iDoVEWR1pvQAZbycWfv1KIY6ne2yQ0dSedOqIE9Odjq\
i2QkW4kD7qXRLYKcMPqe1SPao2xoS2Kz8SIdoLInLu7Cb3QC7n/\
oEbiK4JIVD29giMpudJ8gbBLLjwDrCls0yA+ng8n/\
wkki0MCsGCSqGSIb3DQEBCjAeoA0wCwYJYIZIAWUDBAIBoQ0wCwYJKoZIhvcNAQEIBII\
BAKt/0rD4VNqk6Gf9FpVc07mRDpO3DHQDz6gHfwQZOQnRTsa+\
2Fm2dHbITMLCiEK5oIfVw54RypX2lh0nLZcpfLbtPAYnF2lrAy9L8fD0GsIK6XBqikwX\
hFriUSlQd0Fzc3AQ1mkstybRqzoCIJLvzyfw3YdbYuTfVGgUGG+\
edEzDTPB3jId8Vx0Aa+CUqmg6X2bWgW0i26EEM0FjAgxi2BkDxB01PqupQhJH/\
DVP0yiKAZIdkwFBAJYDJMMSL+6//\
8EAfIPpgTbhsfyhFYNbnmf6kFbykCCPuZ4cgUSDml4TzLEhfc7uzCU/x3hbyDCDguBS/\
7hntAoM1ZMXbtbdx7AwggIeMIIBuzCCAbcwggFdoAMCAQICFAep6a/8hKR/\
Xf8D7fMOi6OQH5W4MAoGCCqGSM49BAMCMDAxDTALBgNVBAoMBElFVEYxDTALBgNVBAsM\
BFJBVFMxEDAOBgNVBAMMB0FLIFAyNTYwIBcNMjUwMTE3MTcxNDI4WhgPMjA1MjA2MDQx\
NzE0MjhaMDAxDTALBgNVBAoMBElFVEYxDTALBgNVBAsMBFJBVFMxEDAOBgNVBAMMB0FL\
IFAyNTYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARCJUj4j7eC/\
7Xso3REUscqHlWPvW9zvl5I6TIyzEXFsWxM0QxMuNW4oXE56UiCyJklcpk0JfQUGat+\
kKQqSUJyo1MwUTAdBgNVHQ4EFgQUW3CnmBf3n/\
Y30vfj3ERsIQnXu9QwHwYDVR0jBBgwFoAUW3CnmBf3n/\
Y30vfj3ERsIQnXu9QwDwYDVR0TAQH/BAUwAwEB/\
zAKBggqhkjOPQQDAgNIADBFAiEAkH8Erj/\
TLNoEfJIvokEEDVmhH5f7UQHdrrCyQWEhJegCICRsy/1Vqjo3qg/WrHospwcB2PaHYy+\
FnH79mznqO7jVMBMGByqGSM49AgEGCCqGSM49AwEHBEgwRgIhAOQWrySDZn5zNF7il+\
VjzxY55Bq5vc0B+Yhy/dsQHnedAiEA0GxuEFQpJkDuoYcyMKOZrwk2dgy/yAI6iih0+\
                                                              cX8W6g=
]]></artwork>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This specification is the work of a design team created by the chairs
of the RATS working group. This specification has been developed
based on discussions in that design team and also with great amounts of
input taken from discussions on the RATS mailing list.</t>
      <t>We would like to thank Jeff Andersen for the review comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
ptYfdpKEM4fePP0DSFN/2I3ga/2jU/3SqLZ6jWqtUW1XO3Wv2252/bARwHWv
wSdd4xN4qNqpNpr1arXabNbrrWZ32u1OJ50fnW59Op20Qt9rdJrNZqvuw0i1
sNWCb4P2tNOYhK2w2Q17jXqj7vvNlt+a1Np+0w9qVfjvpBu0Jt0taSperVNr
9MJes9ut+91er97q1Hs9gKI1bdaatZ436YS9qtese81es96p/1dHxGbP67U9
zPho9LxycxrUy5PQr5VrjVq75fV67XrN/+cg4h8jXv+Nhw/Gw263+1SsHod+
LIek2FYuzeTgj1HRMwONXW/whSyGtz8DrSEHuFEET8wK8pTx4cvx3ij/jBKt
riXicgWbEwoTfNmqVVvVWq/RaHdbuO29erdWbbRbzVYDUaBT73aqnVar1q62
at2eqtqqVvSyoKSh2hNlBqLN7DZBlqk1Wk0hd8htxVhgb4GxiiAmfQFwquLS
sAaavDyBb9WYSbCUG/Py/OBE/q6+R4srGWYO2O6/AZUlDKwhjNqXeNL9ZWAf
Je4sYkC90qo0K7Wq8TmjAEDpw83pNVutZrP9dDPXtszcqjdreEJPNnOjeOI2
XNRJvdqqtxrNmuPoaxEFcCFfvhO/qEFBdd6jWMGXaC3Rc23WPn7wsg6oB1QB
6EK18b1jvNXHYMXMS6xVzvlFgAGIWlO9KtGSbRj/jTH/2hiTFhQSfVlUXbSA
ktxFb+4hOOqxrQQnBxkw1kat02vV212ii+12vVMDhtnuArPtdYF7dmpNYLu1
TrfZatZ7tV4HeGuj0ep2ar1qt9qtterdXuNHp10Fmlqv14Dpdqu9dqMOjKVR
7XSA+wK7rjXaDaTBQH/hT+D/nTYQ5Xa3UQOlsVetwpS1BowCFLrbaPZqVfy8
1QAuCZeg0262my3k6jA6MNdGrQu0u1PtNXpdlHmAjFfhGQCo14axQFSotoGU
N1uwN51GrwWLAyhh5gagSReW04HZAXiYsdbs1usIRA0m6rTanU4D/gVBA0SF
HrCMOoIOy4XHgXF0m/hPu1Ov1WByeAxgQubRasMWdmAzUN5owLjNbgNuQrfa
hN1tdxpdwM5WA7YC4Gs3ezB5HaSWHj5Th1WCjNCDNddrjW67By/DLsIuNYFJ
wfA9+C+ILZ1Os9Gp1lodOM1ODQBuw6JrnVa3DptRa+J2wtPdGhxXDwHAXxst
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
neO9t3r8t8fH+xe16++P3qXDweH+26/9t8Ybg4P+xdc3nweb0/H+XnqpZt2H
UYZHy+P9rh7psn/83cGw/v2BXz95/7b5Znw4+37xdn1ydL74GNVmx5+vbt68
P1mcHnxsfH90Pv9Y/34Go4xNCIcHMGf/+OijMepg8P7r3vfHe8fw2c9Ho+Nm
Dz472t8Xv98MXv3o9KvD/t5gOB+dRWfr5pvn6/D2czA4H325jcN3H7/tTRqn
3/7ofLj6vDr+/Ob43H//ZTL4en4wuG3WJtHMHy9Xo+Gb4WL07nYxfjvv7b39
/udG++1qf/Xd2yWc0WSozgfm+ry/t/ravzag7h/sv62evh+0ThaHn78f1ebH
X+ezN+PzxfcHw/XHxbvPx6Pql+OvA9iXQet0/PEW1v3++Oagr05tH9axB0fz
dW9hjLu3d5jevB/3x/jZ7Orz6Rl+dnkpfj/e27s52e/3z/e/u/jc/NwJ92GE
zoc0bpwPLlL/51fz92fX73tfr+etYXs8vP06+HCYvv9yXH375Xhz8r4Zfxi0
2hfR/u13V3N/dVX9bvr24shbw05dvX778+jiu9vjPTjfEax8CYe79/HmsP/x
ECA+CvuAtI29mb88XwVH8+tJBBg6HB7FB/v7e69iwOqTQ8SQ4cHbMeB6tLjs
3wzhLIcX799vbm9750de8v4AJ2pfNb9Pbz4u3nb8t9Wbg7cfv3sdfz+cXfsn
gAlv9t72b958HZwc99Ojfu1isH95MxhdvLs4/2x89qNzczO4uDq8uPg6ODvu
V+nT/s3N0duL9PJifrJ3vN//cDAe1o4PBl9Ovg4ax+Pjm+Na/PHg6/DmZAz/
/wz36kdn7MMZ9b++/9y/PgZY9m8+Hrx7+/b1Qf/8u/N350fGZ2/gs9Hbd+fj
47ddhBk/Ozjof783+tG53RtdVAewA4MIYdkfAZ4OJ42Dt3gzL/r95nDv4KaP
37/ux7Anb/dvYB/Cy+/ftsPN4rvXPzdm09fTwUEzGDxfv2keDlvp55/j5brX
33s3hCdrR6Ofb6Pa5HDvMj3/fFwdv5rPh8Hx5PXiu/X7m+Xr993vvm2dXp6c
dG/bH75cd79bHANWfGxdv13X51Fanf78YXHUvRh/rb4bvw/m/Q8fFrOLtD0f
9Q+u+94wbJ6/S/bT73udN43v346T248dWL0/2Wte/ejMLk4aR6vq7eW3wOJG
H77Gh+Ox9+3F0fD8zaDd/vyqVfO81rsPm15vtryunUavuuu3yecg6i5etTdH
AEbk/9z8sBmGJ++PDxv1m1c/D09Pz67f+u/fNY5bB/XrL98NPneq9deb9lXv
9O2Hq35c6/x8PhrEy/fvm6/WbybrBWxx91VY++7kzH++bATvLhawKdPj9kl8
8OEsfnPW+dxqHfW+vgZasT7qv//Q/1wDGnN5DJT06PPF173z4z3CkODg8u37
vb3Rd0fv5uHB9eHqR6fnb3rn3w6qz09ff/x6dHVzNe5P9y5P3r0aHQ+ODvrv
L42n1bM/OvrpM3oaZuhPu4O9MdByprcZPNi/YTwASrv46o+HZx9n707Wx0Fy
OumFYe/nj/2D+Xjzdl67rS2C5ODM34clfl3cfL+5ef3mu023N7v+sjgMDpJ3
J377bXryevmqOn2/Pv7+y0XrAs7s5/f199Pq5zcfG5PP0++u9oGmebPT190P
PzoHjfjtz9MP717vh98eHx1ejGb/XzFn0qwqDobh/fkVZ29Vi6igi14kBDQI
Ksgg1t0wTzIfZfj1HTjDPV11e6jqRS9YiAlfCMn3vRT1vOwC6leXrDNlkEWm
jHazdRVzVYO2UJqHwjVY2cUM4tVFiQwzZgSVjEU8Qbnztgtkod6qmSOpusAZ
bJONUWHwproonwq4Ob1rBs/FAVtM7tO9QnkX3ztVmN+evKQii4FWUnOVIra6
qpJ1cOVz5S8uZ7ugu+JCH4bNBXuFhHPpwXLOUuHYnMxlwTvxYSViA9HbMJbL
hyduQgdKUtKimrs3VA9mebgZm7ZpGlMy1/x57hPgF2DayaKFbxiYOoIAw+J9
d3/PPhhi/OMFgsPbnKrRyjhWKbMLtkJpkDeyTEXlaYn2ChqYcB+0yu2k5KrW
2GR6aCGjvb2DNVniYv6wLnBgtOuV2pdX+h5RuXRzy4Cs5TOwcoG+16DfSpsA
UbsGH5grrOK0JY8qEupYv9wVjxIGdwmURZY2b72jVkPBYVF6Dn3QLi3PsR5a
YOxCfbcb84jHD0g7w2WCvY3RUcCecXqVhcyVdszQpGKa4XmZEhIQdjENU9RB
anGuHqUSieNSRcaZ6uMDuGEvbQUIRAuJsnyRZsyc/LvhQYDPZag5URP0kWAd
nTwLmFRw+pTjzo/byg31C8ruK22Q+Chw2cfA6fNuGTk94lD4gJexQkX5Gyjk
xU2+Om+O17FjNsQ+qRbwMSojxyW/Ba8A8qiQOAH4JWPPN9FBJZ2vwQaxgXyK
mZOyX5srGRRfWgCSHjICHdKANO5ESKJA/i4YvPXtXENSPRREaAhyR+TN6f2s
TNKCIGEB9EfNIrXKPcqJ3sraWC3c7ojwyozCs5yABTloGSndjxdSSyg5iex/
E/OvIv54+Yz5f9b5YiG3uga8KX8pK14IFd1ccnkGg+W4lawl9QySJa82WMlJ
ficSc6yEKpWQYbZCAf6hNXpvrY35EAK9/VQ74PDzLhUEwiORUlAAMQ/S/Yav
E9JGk44FH4j4WaREjRpZtF8HrK7svbrmesXkI9EPOcypTT9fGFVSLKtwbtb7
oilbF9Jne2/15EaFfM9usyGvTmxi/J2WhHzYqiGOwEkx6/6Cbvl6OApsfCcX
MZKhs9ZrWK2fLgVnVtTPvUbZ5743jpjadQ9eUEoxRY/Ccnv5cLrVbUp7YT/v
AWbiOKJm//XTknvdmEz4+6f5OnDTvGjvvveO/jS/9O+K39GJCR+azFA+sLQ3
387Iu7X/3WnLjey4/rIwU4F2mfqNyERYF4/yl0zyCENOjmKePxkDjkDspzXZ
T5at+fKN+h5/otdH07mJeZ2Mm1/tbDQQHOGclzgvR88SO/Xzd7ro+/U+AOZp
lJkd3yez1LgZbcxM/4MrnrCxiQuz8/RV9IPgFYz2742ff9kS1P4EYY6A2ziJ
v738AaFldn7EcAEA

-->

</rfc>
