<?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  (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tiloca-ace-authcred-dtls-profile-02" category="std" consensus="true" submissionType="IETF" updates="9202" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="Authentication Credentials DTLS profile">Additional Formats of Authentication Credentials for the Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
    <seriesInfo name="Internet-Draft" value="draft-tiloca-ace-authcred-dtls-profile-02"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="J" surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="08"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document updates the Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE). In particular, it specifies the use of additional formats of authentication credentials for establishing a DTLS session, when peer authentication is based on asymmetric cryptography. Therefore, this document updates RFC 9202. What is defined in this document is seamlessly applicable also if the profile uses Transport Layer Security (TLS) instead, as defined in RFC 9430.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
  Authentication and Authorization for Constrained Environments Working Group mailing list (ace@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://gitlab.com/crimson84/draft-tiloca-ace-authcred-dtls-profile"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>The Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/> defines an architecture to enforce access control for constrained devices. A Client (C) requests an evidence of granted permissions from an Authorization Server (AS) in the form of an access token, then uploads the access token to the target Resource Server (RS), and finally accesses protected resources at RS according to what is specified in the access token.</t>
      <t>The framework has as main building blocks the OAuth 2.0 framework <xref target="RFC6749"/>, the Constrained Application Protocol (CoAP) <xref target="RFC7252"/> for message transfer, CBOR <xref target="RFC8949"/> for compact encoding, and COSE <xref target="RFC9052"/><xref target="RFC9053"/> for self-contained protection of access tokens.</t>
      <t>Separate profile documents define in detail how the participants in the ACE architecture communicate, especially as to the security protocols that they use. In particular, the ACE profile defined in <xref target="RFC9202"/> specifies how Datagram Transport Layer Security (DTLS) <xref target="RFC6347"/><xref target="RFC9147"/> is used to protect communications with transport-layer security in the ACE architecture. The profile has also been extended in <xref target="RFC9430"/>, in order to allow the alternative use of Transport Layer Security (TLS) <xref target="RFC8446"/> when CoAP is transported over TCP or WebSockets <xref target="RFC8323"/>.</t>
      <t>The DTLS profile <xref target="RFC9202"/> allows C and RS to establish a DTLS session with peer authentication based on symmetric or asymmetric cryptography. For the latter case, the profile defines an RPK mode (see <xref section="3.2" sectionFormat="of" target="RFC9202"/>), where authentication relies on the public keys of the two peers as raw public keys <xref target="RFC7250"/>.</t>
      <t>That is, C specifies its public key to the AS when requesting an access token, and the AS provides such public key to the target RS as included in the issued access token. Upon issuing the access token, the AS also provides C with the public key of RS. Then, C and RS use their asymmetric keys when performing the DTLS handshake, as defined in <xref target="RFC7250"/>.</t>
      <t>Per <xref target="RFC9202"/>, the DTLS profile admits only a COSE Key object <xref target="RFC9052"/> as the format of authentication credentials to use for transporting the public keys of C and RS, as raw public keys. However, it is desirable to enable additional types of authentication credentials, as enhanced raw public keys or as public certificates.</t>
      <t>This document enables such additional formats, by defining how the public keys of C and RS can be specified as CBOR Web Token (CWT) Claims Sets (CCSs) <xref target="RFC8392"/>, or X.509 certificates <xref target="RFC5280"/>, or C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. In particular, this document updates <xref target="RFC9202"/> as follows.</t>
      <ul spacing="normal">
        <li>
          <t>It extends the RPK mode defined in <xref section="3.2" sectionFormat="of" target="RFC9202"/>, by enabling the use of CCSs to transport the raw public keys of C and RS (see <xref target="sec-rpk-mode"/>).  </t>
          <t>
[ TODO: Further extend the RPK mode, by admitting the transport of COSE Keys by reference, using the CWT Confirmation Method 'ckt' defined in https://datatracker.ietf.org/doc/html/draft-ietf-cose-key-thumbprint ]</t>
        </li>
        <li>
          <t>It defines a new certificate mode, which enables the transport of the public keys of C and RS as X.509 or C509 certificates (see <xref target="sec-cert-mode"/>).  </t>
          <t>
[ TODO: Further extend the Certificate mode, by admitting the transport of certificates by reference, using the CWT Confirmation Methods "x5t", "x5u", "c5t", and "c5u" defined in https://datatracker.ietf.org/doc/html/draft-ietf-ace-edhoc-oscore-profile ]</t>
        </li>
      </ul>
      <t>When using the updated RPK mode, the raw public keys of C and RS do not have to be of the same type. That is, it is possible to have both public keys as a COSE Key object or as a CCS, or instead one as a COSE Key object while the other one as a CCS.</t>
      <t>When using the certificate mode, the certificates of C and RS do not have to be of the same type. That is, it is possible to have both as X.509 certificates, or both as C509 certificates, or one as an X.509 certificate while the other one as a C509 certificate.</t>
      <t>Also, the RPK mode and the certificate mode can be combined. That is, it is possible that one of the two authentication credentials is a certificate, while the other one is a raw public key.</t>
      <t>When using the formats introduced in this document, authentication credentials are transported by means of the CWT Confirmation Methods "kccs", "x5bag", "x5chain", "c5b", and "c5c", which are defined in <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>.</t>
      <t>What is defined in this document is seamlessly applicable if TLS is used instead, as defined in <xref target="RFC9430"/>.</t>
      <section anchor="terminology">
        <name>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>
        <t>Readers are expected to be familiar with the terms and concepts described in the ACE framework for Authentication and Authorization <xref target="RFC9200"/><xref target="RFC9201"/> and its DTLS profile <xref target="RFC9202"/>, as well as with terms and concepts related to CBOR Web Tokens (CWTs) <xref target="RFC8392"/> and CWT Confirmation Methods <xref target="RFC8747"/>.</t>
        <t>The terminology for entities in the considered architecture is defined in OAuth 2.0 <xref target="RFC6749"/>. In particular, this includes Client (C), Resource Server (RS), and Authorization Server (AS).</t>
        <t>Readers are also expected to be familiar with the terms and concepts related to CoAP <xref target="RFC7252"/>, CBOR <xref target="RFC8949"/>, CDDL <xref target="RFC8610"/>, COSE <xref target="RFC9052"/><xref target="RFC9053"/>, the DTLS protocol suite <xref target="RFC6347"/><xref target="RFC9147"/>, and the use of raw public keys in DTLS <xref target="RFC7250"/>.</t>
        <t>Note that the term "endpoint" is used here following its OAuth definition, aimed at denoting resources such as /token and /introspect at the AS, and /authz-info at RS. This document does not use the CoAP definition of "endpoint", which is "An entity participating in the CoAP protocol."</t>
        <t>This document also refers to the term "authentication credential", which denotes the information associated with an entity, including that entity's public key and parameters associated with the public key. Examples of authentication credentials are CWT Claims Sets (CCSs) <xref target="RFC8392"/>, X.509 certificates <xref target="RFC5280"/>, and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
        <t>Examples throughout this document are expressed in CBOR diagnostic notation as defined in <xref section="8" sectionFormat="of" target="RFC8949"/> and <xref section="G" sectionFormat="of" target="RFC8610"/>. Diagnostic notation comments are often used to provide a textual representation of the numeric parameter names and values.</t>
        <t>In the CBOR diagnostic notation used in this document, constructs of the form e'SOME_NAME' are replaced by the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. For example, {e'x5chain' : h'3081...cb02'} stands for {5 : h'3081...cb02'}.</t>
        <t>Note to RFC Editor: Please delete the paragraph immediately preceding this note. Also, in the CBOR diagnostic notation used in this document, please replace the constructs of the form e'SOME_NAME' with the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. Finally, please delete this note.</t>
      </section>
    </section>
    <section anchor="sec-rpk-mode">
      <name>Updates to the RPK Mode</name>
      <t>This section updates the RPK mode defined in <xref section="3.2" sectionFormat="of" target="RFC9202"/>, by defining how the raw public key of C and RS can be transported as a CCS <xref target="RFC8392"/>, instead of as a COSE Key object <xref target="RFC9052"/>. Note that only the differences from <xref target="RFC9202"/> are compiled below.</t>
      <t>If the raw public key of C is transported as a CCS, then the following applies.</t>
      <ul spacing="normal">
        <li>
          <t>The payload of the Access Token Request (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>) is as defined in <xref section="3.2.1" sectionFormat="of" target="RFC9202"/>, with the difference that the "req_cnf" parameter <xref target="RFC9201"/> <bcp14>MUST</bcp14> specify a "kccs" structure, with value a CCS specifying the public key of C that has to be bound to the access token.  </t>
          <t>
In particular, the CCS <bcp14>MUST</bcp14> include the "cnf" claim specifying the public key of C as a COSE Key object, <bcp14>SHOULD</bcp14> include the "sub" claim specifying the subject name of C associated with the public key of C, and <bcp14>MAY</bcp14> include additional claims.</t>
        </li>
        <li>
          <t>The content of the access token that the AS provides to C in the Access Token Response (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>) is as defined in <xref section="3.2.1" sectionFormat="of" target="RFC9202"/>, with the difference that the "cnf" claim of the access token <bcp14>MUST</bcp14> specify a "kccs" structure, with value a CCS specifying the public key of C that is bound to the access token.  </t>
          <t>
In particular, the CCS <bcp14>MUST</bcp14> include the "cnf" claim specifying the public key of C as a COSE Key object, <bcp14>SHOULD</bcp14> include the "sub" claim specifying the subject name of C associated with the public key of C, and <bcp14>MAY</bcp14> include additional claims.</t>
        </li>
      </ul>
      <t>If the raw public key of RS is transported as a CCS, then the following applies.</t>
      <ul spacing="normal">
        <li>
          <t>The payload of the Access Token Response is as defined in <xref section="3.2.1" sectionFormat="of" target="RFC9202"/>, with the difference that the "rs_cnf" parameter <xref target="RFC9201"/> <bcp14>MUST</bcp14> specify a "kccs" structure, with value a CCS specifying the public key of RS.  </t>
          <t>
In particular, the CCS <bcp14>MUST</bcp14> include the "cnf" claim specifying the public key of RS as a COSE Key object, <bcp14>SHOULD</bcp14> include the "sub" claim specifying the subject name of RS associated with the public key of RS, and <bcp14>MAY</bcp14> include additional claims.</t>
        </li>
      </ul>
      <t>For the "req_cnf" parameter of the Access Token Request, the "rs_cnf" parameter of the Access Token Response, and the "cnf" claim of the access token, the Confirmation Method "kccs" structure and its identifier are defined in <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>.</t>
      <t>It is not required that both public keys are transported as a CCS. That is, one of the two authentication credentials can be a CCS, while the other one can be a COSE Key object as per <xref section="3.2" sectionFormat="of" target="RFC9202"/>.</t>
      <t><xref target="fig-example-C-to-AS-ccs"/> shows an example of Access Token Request from C to the AS.</t>
      <figure anchor="fig-example-C-to-AS-ccs">
        <name>Access Token Request Example for RPK Mode, with the Public Key of C Transported as a CCS within "req_cnf"</name>
        <artwork><![CDATA[
   POST coaps://as.example.com/token
   Content-Format: application/ace+cbor
   Payload:
   {
     / grant_type / 33 : 2 / client_credentials /,
     / audience /    5 : "tempSensor4711",
     / req_cnf /     4 : {
       e'kccs' : {
         / sub / 2 : "42-50-31-FF-EF-37-32-39",
         / cnf / 8 : {
           / COSE_Key / 1 : {
             / kty /    1 : 2 / EC2 /,
             / crv /   -1 : 1 / P-256 /,
             / x /     -2 : h'd7cc072de2205bdc1537a543d53c60a6
                              acb62eccd890c7fa27c9e354089bbe13',
             / y /     -3 : h'f95e1d4b851a2cc80fff87d8e23f22af
                              b725d535e515d020731e79a3b4e47120'
           }
         }
       }
     }
   }
]]></artwork>
      </figure>
      <t><xref target="fig-example-AS-to-C-ccs"/> shows an example of Access Token Response from the AS to C.</t>
      <figure anchor="fig-example-AS-to-C-ccs">
        <name>Access Token Response Example for RPK Mode, with the Public Key of RS Transported as a CCS within "rs_cnf"</name>
        <artwork><![CDATA[
   2.01 Created
   Content-Format: application/ace+cbor
   Max-Age: 3560
   Payload:
   {
     / access_token / 1 : b64'SlAV32hk'/...
      (remainder of CWT omitted for brevity;
      CWT contains the client's RPK in the cnf claim)/,
     / expires_in /   2 : 3600,
     / rs_cnf /      41 : {
       e'kccs' : {
         / sub / 2 : "AA-BB-CC-00-01-02-03-04",
         / cnf / 8 : {
           / COSE_Key / 1 : {
             / kty /  1 : 2 / EC2 /,
             / crv / -1 : 1 / P-256 /,
             / x /   -2 : h'bbc34960526ea4d32e940cad2a234148
                            ddc21791a12afbcbac93622046dd44f0',
             / y /   -3 : h'4519e257236b2a0ce2023f0931f1f386
                            ca7afda64fcde0108c224c51eabf6072'
           }
         }
       }
     }
   }
]]></artwork>
      </figure>
    </section>
    <section anchor="sec-cert-mode">
      <name>Certificate Mode</name>
      <t>This section defines a new certificate mode of the DTLS profile, which enables the transport of the public keys of C and RS as public certificates.</t>
      <t>Compared to the RPK mode defined in <xref section="3.2" sectionFormat="of" target="RFC9202"/> and extended in <xref target="sec-rpk-mode"/> of this document, the certificate mode displays the following differences.</t>
      <ul spacing="normal">
        <li>
          <t>The authentication credential of C and/or RS is a public certificate, i.e., an X.509 certificate <xref target="RFC5280"/> or a C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The CWT Confirmation Methods "x5chain", "x5bag", "c5c", and "c5b" defined in <xref target="I-D.ietf-ace-edhoc-oscore-profile"/> are used to transport such authentication credentials.</t>
        </li>
        <li>
          <t>If the authentication credential AUTH_CRED_C of C is a public certificate, then the following applies.  </t>
          <ul spacing="normal">
            <li>
              <t>The "req_cnf" parameter <xref target="RFC9201"/> of the Access Token Request (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>) specifies AUTH_CRED_C as follows.      </t>
              <ul spacing="normal">
                <li>
                  <t>If AUTH_CRED_C is an X.509 certificate, the "req_cnf" parameter <bcp14>MUST</bcp14> specify an "x5chain" or "x5bag" structure, in case AUTH_CRED_C is conveyed in a certificate chain or in a certificate bag, respectively.</t>
                </li>
                <li>
                  <t>If AUTH_CRED_C is a C509 certificate, the "req_cnf" parameter <bcp14>MUST</bcp14> specify a "c5c" or "c5b" structure, in case AUTH_CRED_C is conveyed in a certificate chain or in a certificate bag, respectively.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>The "cnf" claim of the access token that the AS provides to C in the Access Token Response (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>) specifies AUTH_CRED_C as follows.      </t>
              <ul spacing="normal">
                <li>
                  <t>If AUTH_CRED_C is an X.509 certificate, the "cnf" claim <bcp14>MUST</bcp14> specify an "x5chain" or "x5bag" structure, in case AUTH_CRED_C is conveyed in a certificate chain or in a certificate bag, respectively.</t>
                </li>
                <li>
                  <t>If AUTH_CRED_C is a C509 certificate, the "cnf" claim <bcp14>MUST</bcp14> specify a "c5c" or "c5b" structure, in case AUTH_CRED_C is conveyed in a certificate chain or in a certificate bag, respectively.</t>
                </li>
              </ul>
            </li>
          </ul>
        </li>
        <li>
          <t>If the authentication credential AUTH_CRED_RS of RS is a public certificate, then the following applies.  </t>
          <ul spacing="normal">
            <li>
              <t>The "rs_cnf" parameter <xref target="RFC9201"/> of the Access Token Response specifies AUTH_CRED_RS as follows.      </t>
              <ul spacing="normal">
                <li>
                  <t>If AUTH_CRED_RS is an X.509 certificate, the "rs_cnf" parameter <bcp14>MUST</bcp14> specify an "x5chain" or "x5bag" structure, in case AUTH_CRED_RS is conveyed in a certificate chain or in a certificate bag, respectively.</t>
                </li>
                <li>
                  <t>If AUTH_CRED_RS is a C509 certificate, the "rs_cnf" parameter <bcp14>MUST</bcp14> specify a "c5c" or "c5b" structure, in case AUTH_CRED_RS is conveyed in a certificate chain or in a certificate bag, respectively.</t>
                </li>
              </ul>
            </li>
          </ul>
        </li>
      </ul>
      <t>For the "req_cnf" parameter of the Access Token Request, the "rs_cnf" parameter of the Access Token Response, and the "cnf" claim of the access token, the Confirmation Method "c5c" and "c5b" structures and their identifiers are defined in <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>.</t>
      <t>When using either of the structures "x5chain", "x5bag", "c5c", and "c5b", i.e., either a chain or a bag of certificates, the specified authentication credential is just the end entity X.509 or C509 certificate.</t>
      <t>As per <xref target="RFC6347"/> and <xref target="RFC9147"/>, a public certificate is specified in the Certificate message of the DTLS handshake. For X.509 certificates, the TLS Certificate Type is "X509", as defined in <xref target="RFC6091"/>. For C509 certificates, the TLS certificate type is "C509 Certificate", as defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      <t>It is not required that AUTH_CRED_C and AUTH_CRED_RS are both X.509 certificates or both C509 certificates.</t>
      <t>Also, one of the two authentication credentials can be a public certificate, while the other one can be a raw public key. This is consistent with the admitted, combined use of raw public keys and certificates, as discussed in <xref section="5.3" sectionFormat="of" target="RFC7250"/>.</t>
      <t><xref target="fig-example-C-to-AS-x509"/> shows an example of Access Token Request from C to the AS. In the example, C specifies its authentication credential by means of an "x5chain" structure, including only its own X.509 certificate.</t>
      <figure anchor="fig-example-C-to-AS-x509">
        <name>Access Token Request Example for Certificate Mode with an X.509 Certificate as Authentication Credential of C and Transported within "req_cnf"</name>
        <artwork><![CDATA[
   POST coaps://as.example.com/token
   Content-Format: application/ace+cbor
   Payload:
   {
     / grant_type / 33 : 2 / client_credentials /,
     / audience /    5 : "tempSensor4711",
     / req_cnf /     4 : {
            e'x5chain' : h'3081ee3081a1a003020102020462319ec430
                           0506032b6570301d311b301906035504030c
                           124544484f4320526f6f7420456432353531
                           39301e170d3232303331363038323433365a
                           170d3239313233313233303030305a302231
                           20301e06035504030c174544484f43205265
                           73706f6e6465722045643235353139302a30
                           0506032b6570032100a1db47b95184854ad1
                           2a0c1a354e418aace33aa0f2c662c00b3ac5
                           5de92f9359300506032b6570034100b723bc
                           01eab0928e8b2b6c98de19cc3823d46e7d69
                           87b032478fecfaf14537a1af14cc8be829c6
                           b73044101837eb4abc949565d86dce51cfae
                           52ab82c152cb02'
     }
   }
]]></artwork>
      </figure>
      <t><xref target="fig-example-AS-to-C-x509"/> shows an example of Access Token Response from the AS to C. In the example, the AS specifies the authentication credential of RS by means of an "x5chain" structure, including only the X.509 certificate of RS.</t>
      <figure anchor="fig-example-AS-to-C-x509">
        <name>Access Token Response Example for Certificate Mode with an X.509 Certificate as Authentication Credential of RS and Transported within "rs_cnf"</name>
        <artwork><![CDATA[
   2.01 Created
   Content-Format: application/ace+cbor
   Max-Age: 3560
   Payload:
   {
     / access_token / 1 : b64'SlAV32hk'/...
      (remainder of CWT omitted for brevity;
      CWT contains the client's X.509 certificate in the cnf claim)/,
     / expires_in /   2 : 3600,
     / rs_cnf /      41 : {
       e'x5chain' : h'3081ee3081a1a003020102020462319ea030
                      0506032b6570301d311b301906035504030c
                      124544484f4320526f6f7420456432353531
                      39301e170d3232303331363038323430305a
                      170d3239313233313233303030305a302231
                      20301e06035504030c174544484f4320496e
                      69746961746f722045643235353139302a30
                      0506032b6570032100ed06a8ae61a829ba5f
                      a54525c9d07f48dd44a302f43e0f23d8cc20
                      b73085141e300506032b6570034100521241
                      d8b3a770996bcfc9b9ead4e7e0a1c0db353a
                      3bdf2910b39275ae48b756015981850d27db
                      6734e37f67212267dd05eeff27b9e7a813fa
                      574b72a00b430b'
     }
   }
]]></artwork>
      </figure>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations from <xref target="RFC9200"/> and <xref target="RFC9202"/> apply to this document as well.</t>
      <t>When using public certificates as authentication credentials, the security considerations from <xref section="C.2" sectionFormat="of" target="RFC8446"/> apply.</t>
      <t>When using X.509 certificates as authentication credentials, the security considerations from <xref target="RFC5280"/>, <xref target="RFC6818"/>, <xref target="RFC8398"/>, and <xref target="RFC8399"/> apply.</t>
      <t>When using C509 certificates as authentication credentials, the security considerations from <xref target="I-D.ietf-cose-cbor-encoded-cert"/> apply.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no actions for IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and all certificates
   compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA
   eUICC, and CA/Browser Forum Baseline Requirements profiles.  When
   used to re-encode DER encoded X.509 certificates, the CBOR encoding
   can in many cases reduce the size of RFC 7925 profiled certificates
   with over 50% while also significantly reducing memory and code size
   compared to ASN.1.  The CBOR encoded structure can alternatively be
   signed directly ("natively signed"), which does not require re-
   encoding for the signature to be verified.  The document also
   specifies C509 Certificate Signing Requests, C509 COSE headers, a
   C509 TLS certificate type, and a C509 file format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-09"/>
        </reference>
        <reference anchor="I-D.ietf-ace-edhoc-oscore-profile">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC) and Object Security for Constrained Environments (OSCORE) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  It
   utilizes Ephemeral Diffie-Hellman Over COSE (EDHOC) for achieving
   mutual authentication between an ACE-OAuth Client and Resource
   Server, and it binds an authentication credential of the Client to an
   ACE-OAuth access token.  EDHOC also establishes an Object Security
   for Constrained RESTful Environments (OSCORE) Security Context, which
   is used to secure communications when accessing protected resources
   according to the authorization information indicated in the access
   token.  This profile can be used to delegate management of
   authorization information from a resource-constrained server to a
   trusted host with less severe limitations regarding processing power
   and memory.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-04"/>
        </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="RFC6347">
          <front>
            <title>Datagram Transport Layer Security Version 1.2</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="January" year="2012"/>
            <abstract>
              <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol. The DTLS protocol provides communications privacy for datagram protocols. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees. Datagram semantics of the underlying transport are preserved by the DTLS protocol. This document updates DTLS 1.0 to work with TLS version 1.2. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6347"/>
          <seriesInfo name="DOI" value="10.17487/RFC6347"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC6818">
          <front>
            <title>Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="P. Yee" initials="P." surname="Yee"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document updates RFC 5280, the "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile". This document changes the set of acceptable encoding methods for the explicitText field of the user notice policy qualifier and clarifies the rules for converting internationalized domain name labels to ASCII. This document also provides some clarifications on the use of self-signed certificates, trust anchors, and some updated security considerations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6818"/>
          <seriesInfo name="DOI" value="10.17487/RFC6818"/>
        </reference>
        <reference anchor="RFC7250">
          <front>
            <title>Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="P. Wouters" initials="P." role="editor" surname="Wouters"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="J. Gilmore" initials="J." surname="Gilmore"/>
            <author fullname="S. Weiler" initials="S." surname="Weiler"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>This document specifies a new certificate type and two TLS extensions for exchanging raw public keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS). The new certificate type allows raw public keys to be used for authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7250"/>
          <seriesInfo name="DOI" value="10.17487/RFC7250"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8323">
          <front>
            <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="S. Lemay" initials="S." surname="Lemay"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
            <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
            <date month="February" year="2018"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP. The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
              <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports. It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8323"/>
          <seriesInfo name="DOI" value="10.17487/RFC8323"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8398">
          <front>
            <title>Internationalized Email Addresses in X.509 Certificates</title>
            <author fullname="A. Melnikov" initials="A." role="editor" surname="Melnikov"/>
            <author fullname="W. Chuang" initials="W." role="editor" surname="Chuang"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This document defines a new name form for inclusion in the otherName field of an X.509 Subject Alternative Name and Issuer Alternative Name extension that allows a certificate subject to be associated with an internationalized email address.</t>
              <t>This document updates RFC 5280.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8398"/>
          <seriesInfo name="DOI" value="10.17487/RFC8398"/>
        </reference>
        <reference anchor="RFC8399">
          <front>
            <title>Internationalization Updates to RFC 5280</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>The updates to RFC 5280 described in this document provide alignment with the 2008 specification for Internationalized Domain Names (IDNs) and add support for internationalized email addresses in X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8399"/>
          <seriesInfo name="DOI" value="10.17487/RFC8399"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9201">
          <front>
            <title>Additional OAuth Parameters for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines new parameters and encodings for the OAuth 2.0 token and introspection endpoints when used with the framework for Authentication and Authorization for Constrained Environments (ACE). These are used to express the proof-of-possession (PoP) key the client wishes to use, the PoP key that the authorization server has selected, and the PoP key the resource server uses to authenticate to the client.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9201"/>
          <seriesInfo name="DOI" value="10.17487/RFC9201"/>
        </reference>
        <reference anchor="RFC9202">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="S. Gerdes" initials="S." surname="Gerdes"/>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a profile of the Authentication and Authorization for Constrained Environments (ACE) framework that allows constrained servers to delegate client authentication and authorization. The protocol relies on DTLS version 1.2 or later for communication security between entities in a constrained network using either raw public keys or pre-shared keys. A resource-constrained server can use this protocol to delegate management of authorization information to a trusted host with less-severe limitations regarding processing power and memory.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9202"/>
          <seriesInfo name="DOI" value="10.17487/RFC9202"/>
        </reference>
        <reference anchor="RFC9430">
          <front>
            <title>Extension of the Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE) to Transport Layer Security (TLS)</title>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document updates "Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)" (RFC 9202) by specifying that the profile applies to TLS as well as DTLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9430"/>
          <seriesInfo name="DOI" value="10.17487/RFC9430"/>
        </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>
        <name>Informative References</name>
        <reference anchor="RFC6091">
          <front>
            <title>Using OpenPGP Keys for Transport Layer Security (TLS) Authentication</title>
            <author fullname="N. Mavrogiannopoulos" initials="N." surname="Mavrogiannopoulos"/>
            <author fullname="D. Gillmor" initials="D." surname="Gillmor"/>
            <date month="February" year="2011"/>
            <abstract>
              <t>This memo defines Transport Layer Security (TLS) extensions and associated semantics that allow clients and servers to negotiate the use of OpenPGP certificates for a TLS session, and specifies how to transport OpenPGP certificates via TLS. It also defines the registry for non-X.509 certificate types. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6091"/>
          <seriesInfo name="DOI" value="10.17487/RFC6091"/>
        </reference>
      </references>
    </references>
    <section anchor="ssec-example-hybrid">
      <name>Examples with Hybrid Settings</name>
      <t>This section provides additional examples where, within the same ACE execution workflow, C and RS use different formats of raw public keys (see <xref target="ssec-example-hybrid-1"/>), or different formats of certificates (see <xref target="ssec-example-hybrid-2"/>), or a combination of the RPK mode and certificate mode (see <xref target="ssec-example-hybrid-3"/>).</t>
      <section anchor="ssec-example-hybrid-1">
        <name>RPK Mode (Raw Public Keys of Different Formats)</name>
        <t>TBD</t>
      </section>
      <section anchor="ssec-example-hybrid-2">
        <name>Certificate Mode (Certificates of Different Formats)</name>
        <t>TBD</t>
      </section>
      <section anchor="ssec-example-hybrid-3">
        <name>Combination of RPK Mode and Certificate Mode</name>
        <t>TBD</t>
      </section>
    </section>
    <section anchor="sec-cddl-model" removeInRFC="true">
      <name>CDDL Model</name>
      <figure anchor="fig-cddl-model">
        <name>CDDL model</name>
        <artwork type="CDDL" align="left"><![CDATA[
; CWT Confirmation Methods
x5chain = 5
kccs = 14
]]></artwork>
      </figure>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Rikard Höglund"/> and <contact fullname="Göran Selander"/> for their comments and feedback.</t>
      <t>This work was supported by the Sweden's Innovation Agency VINNOVA within the EUREKA CELTIC-NEXT project CYPRESS; and by the H2020 project SIFIS-Home (Grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
i13HfEtYAAA=

-->

</rfc>
