rfc9360xml2.original.xml | rfc9360.xml | |||
---|---|---|---|---|
<?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!DOCTYPE rfc [ | |||
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <!ENTITY nbsp " "> | |||
C.2119.xml"> | <!ENTITY zwsp "​"> | |||
<!ENTITY RFC5280 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <!ENTITY nbhy "‑"> | |||
C.5280.xml"> | <!ENTITY wj "⁠"> | |||
<!ENTITY RFC8152 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8152.xml"> | ||||
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8174.xml"> | ||||
<!ENTITY RFC8949 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8949.xml"> | ||||
<!ENTITY I-D.ietf-anima-constrained-voucher SYSTEM "https://xml2rfc.ietf.org/pub | ||||
lic/rfc/bibxml3/reference.I-D.ietf-anima-constrained-voucher.xml"> | ||||
<!ENTITY I-D.ietf-lake-edhoc SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3 | ||||
/reference.I-D.ietf-lake-edhoc.xml"> | ||||
<!ENTITY I-D.ietf-tls-dtls13 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3 | ||||
/reference.I-D.ietf-tls-dtls13.xml"> | ||||
<!ENTITY RFC2585 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.2585.xml"> | ||||
<!ENTITY RFC2634 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.2634.xml"> | ||||
<!ENTITY RFC3986 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.3986.xml"> | ||||
<!ENTITY RFC6838 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.6838.xml"> | ||||
<!ENTITY RFC8392 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8392.xml"> | ||||
<!ENTITY RFC8446 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8446.xml"> | ||||
<!ENTITY RFC8551 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8551.xml"> | ||||
<!ENTITY RFC8610 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8610.xml"> | ||||
<!ENTITY RFC8613 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8613.xml"> | ||||
]> | ]> | |||
<rfc submissionType="IETF" docName="draft-ietf-cose-x509-09" category="std" ipr= | ||||
"trust200902"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category=" | |||
<!-- Generated by id2xml 1.5.0 on 2022-11-16T00:19:45Z --> | std" consensus="true" docName="draft-ietf-cose-x509-09" number="9360" ipr="trust | |||
<?rfc strict="yes"?> | 200902" obsoletes="" updates="" xml:lang="en" symRefs="true" sortRefs="true" toc | |||
<?rfc compact="yes"?> | Include="true" version="3"> | |||
<?rfc subcompact="no"?> | ||||
<?rfc symrefs="yes"?> | <!-- xml2rfc v2v3 conversion 3.15.2 --> | |||
<?rfc sortrefs="yes"?> | <!-- Generated by id2xml 1.5.0 on 2022-11-16T00:19:45Z --> | |||
<?rfc text-list-symbols="**o+-"?> | ||||
<?rfc toc="yes"?> | ||||
<front> | <front> | |||
<title abbrev="CBOR Object Signing and Encryption (COSE">CBOR Object Sign | <title abbrev="COSE X.509">CBOR Object Signing and Encryption (COSE): Header | |||
ing and Encryption (COSE): Header parameters for carrying and referencing X.509 | Parameters for Carrying and Referencing X.509 Certificates</title> | |||
certificates</title> | <seriesInfo name="RFC" value="9360"/> | |||
<author initials="J." surname="Schaad" fullname="Jim Schaad"> | <author initials="J." surname="Schaad" fullname="Jim Schaad"> | |||
<organization>August Cellars</organization> | <organization>August Cellars</organization> | |||
<address><email>ietf@augustcellars.com</email> | </author> | |||
</address> | <date year="2023" month="February"/> | |||
</author> | ||||
<date year="2022" month="November"/> | <area>sec</area> | |||
<abstract><t> | <workgroup>cose</workgroup> | |||
The CBOR Signing And Encrypted Message (COSE) structure uses references to | ||||
<abstract> | ||||
<t> | ||||
The CBOR Object Signing and Encryption (COSE) message structure uses referenc | ||||
es to | ||||
keys in general. For some algorithms, additional properties are defined | keys in general. For some algorithms, additional properties are defined | |||
which carry parameters relating to keys as needed. The COSE Key structure | that carry parameters relating to keys as needed. The COSE Key structure | |||
is used for transporting keys outside of COSE messages. This document | is used for transporting keys outside of COSE messages. This document | |||
extends the way that keys can be identified and transported by providing | extends the way that keys can be identified and transported by providing | |||
attributes that refer to or contain X.509 certificates.</t> | attributes that refer to or contain X.509 certificates.</t> | |||
</abstract> | ||||
</abstract> | </front> | |||
</front> | <middle> | |||
<section anchor="sect-1" numbered="true" toc="default"> | ||||
<middle> | <name>Introduction</name> | |||
<section title="Introduction" anchor="sect-1"><t> | <t> | |||
In the process of writing <xref target="RFC8152"/>, the working group discuss | In the process of writing <xref target="RFC8152" format="default"/> and <xref | |||
ed X.509 | target="RFC9052" format="default"/>, the CBOR Object Signing and Encryption (CO | |||
certificates <xref target="RFC5280"/> and decided that no use cases were pres | SE) Working Group discussed X.509 | |||
ented that | certificates <xref target="RFC5280" format="default"/> and decided that no us | |||
e cases were presented that | ||||
showed a need to support certificates. Since that time, a number of cases | showed a need to support certificates. Since that time, a number of cases | |||
have been defined in which X.509 certificate support is necessary, and by | have been defined in which X.509 certificate support is necessary, and by | |||
implication, applications will need a documented and consistent way to | implication, applications will need a documented and consistent way to | |||
handle such certificates. This document defines a set of attributes that | handle such certificates. This document defines a set of attributes that | |||
will allow applications to transport and refer to X.509 certificates in a | will allow applications to transport and refer to X.509 certificates in a | |||
consistent manner.</t> | consistent manner.</t> | |||
<t> | <t> | |||
In some of these cases, a constrained device is being deployed in the | In some of these cases, a constrained device is being deployed in the | |||
context of an existing X.509 PKI: for example, | context of an existing X.509 PKI: for example, | |||
<xref target="I-D.ietf-anima-constrained-voucher"/> describes a device enroll ment solution | <xref target="Constrained-BRSKI" format="default"/> describes a device enroll ment solution | |||
that relies on the presence of a factory-installed certificate on the | that relies on the presence of a factory-installed certificate on the | |||
device. The <xref target="I-D.ietf-lake-edhoc"/> draft was also written with | device. <xref target="EDHOC" format="default"/> was also written with the id | |||
the idea | ea | |||
that long term certificates could be used to provide for authentication of | that long-term certificates could be used to provide for authentication of | |||
devices, and uses them to establish session keys. Another possible | devices and establish session keys. Another possible | |||
scenario is the use of COSE as the basis for a secure messaging | scenario is the use of COSE as the basis for a secure messaging | |||
application. This scenario assumes the presence of long term keys and a | application. This scenario assumes the presence of long-term keys and a | |||
central authentication authority. Basing such an application on public key | central authentication authority. Basing such an application on public key | |||
certificates allows it to make use of well established key management | certificates allows it to make use of well-established key management | |||
disciplines.</t> | disciplines.</t> | |||
<section title="Requirements Terminology" anchor="sect-1.1"><t> | <section anchor="sect-1.1" numbered="true" toc="default"> | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <name>Requirements Terminology</name> | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
"OPTIONAL" in this document are to be interpreted as described in BCP 14 | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they a | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
ppear in all capitals, as | "<bcp14>SHOULD NOT</bcp14>", | |||
shown here.</t> | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | ||||
</section> | are to be interpreted as described in BCP 14 | |||
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | ||||
</section> | when, they appear in all capitals, as shown here.</t> | |||
</section> | ||||
<section title="X.509 COSE Header Parameters" anchor="sect-2"><t> | </section> | |||
<section anchor="sect-2" numbered="true" toc="default"> | ||||
<name>X.509 COSE Header Parameters</name> | ||||
<t> | ||||
The use of X.509 certificates allows for an existing trust infrastructure | The use of X.509 certificates allows for an existing trust infrastructure | |||
to be used with COSE. This includes the full suite of enrollment | to be used with COSE. This includes the full suite of enrollment | |||
protocols, trust anchors, trust chaining and revocation checking that have | protocols, trust anchors, trust chaining, and revocation checking that have | |||
been defined over time by the IETF and other organizations. The key | been defined over time by the IETF and other organizations. The Concise Bina | |||
structures that have been defined in COSE currently do not support all of | ry Object Representation (CBOR) key structures <xref target="RFC8949" format="de | |||
these properties, although some may be found in COSE Web Tokens (CWT) | fault"/> that have been defined in COSE currently do not support all of | |||
<xref target="RFC8392"/>.</t> | these properties, although some may be found in CBOR Web Tokens (CWTs) | |||
<xref target="RFC8392" format="default"/>.</t> | ||||
<t> | <t> | |||
It is not necessarily expected that constrained devices themselves will | It is not necessarily expected that constrained devices themselves will | |||
evaluate and process X.509 certificates: it is perfectly reasonable for a | evaluate and process X.509 certificates: it is perfectly reasonable for a | |||
constrained device to be provisioned with a certificate that it | constrained device to be provisioned with a certificate that it | |||
subsequently provides to a relying party - along with a signature or | subsequently provides to a relying party -- along with a signature or | |||
encrypted message - on the assumption that the relying party is not a | encrypted message -- on the assumption that the relying party is not a | |||
constrained device, and is capable of performing the required certificate | constrained device and is capable of performing the required certificate | |||
evaluation and processing. It is also reasonable that a constrained device | evaluation and processing. It is also reasonable that a constrained device | |||
would have the hash of a certificate associated with a public key and be | would have the hash of a certificate associated with a public key and be | |||
configured to use a public key for that thumbprint, but without performing | configured to use a public key for that thumbprint, but without performing | |||
the certificate evaluation or even having the entire certificate. In any | the certificate evaluation or even having the entire certificate. In any | |||
case, there still needs to be an entity that is responsible for handling | case, there still needs to be an entity that is responsible for handling | |||
the possible certificate revocation.</t> | the possible certificate revocation.</t> | |||
<t> | ||||
<t> | ||||
Parties that intend to rely on the assertions made by a certificate | Parties that intend to rely on the assertions made by a certificate | |||
obtained from any of these methods still need to validate it. This | obtained from any of these methods still need to validate it. This | |||
validation can be done according to the PKIX rules in <xref target="RFC5280"/ > or by using | validation can be done according to the PKIX rules specified in <xref target= "RFC5280" format="default"/> or by using | |||
a different trust structure, such as a trusted certificate distributor for | a different trust structure, such as a trusted certificate distributor for | |||
self-signed certificates. The PKIX validation includes matching against | self-signed certificates. The PKIX validation includes matching against | |||
the trust anchors configured for the application. These rules apply when | the trust anchors configured for the application. These rules apply when | |||
the validation succeeds in a single step as well as when certificate chains | the validation succeeds in a single step as well as when certificate chains | |||
need to be built. If the application cannot establish trust in the | need to be built. If the application cannot establish trust in the | |||
certificate, the public key contained in the certificate cannot be used for | certificate, the public key contained in the certificate cannot be used for | |||
cryptographic operations.</t> | cryptographic operations.</t> | |||
<t> | ||||
<t> | The header parameters defined in this document are as follows:</t> | |||
The header parameters defined in this document are:</t> | <dl spacing="normal" newline="false"> | |||
<dt>x5bag:</dt><dd><t>This header parameter contains a bag of X.509 certifica | ||||
<t> | tes. The set | |||
x5bag: This header parameter contains a bag of X.509 certificates. The set | ||||
of certificates in this header parameter is unordered and may contain | of certificates in this header parameter is unordered and may contain | |||
self-signed certificates. Note that there could be duplicate certificates. | self-signed certificates. Note that there could be duplicate certificates. | |||
The certificate bag can contain certificates which are completely | The certificate bag can contain certificates that are completely | |||
extraneous to the message. (An example of this would be where a signed | extraneous to the message. (An example of this would be where a signed | |||
message is being used to transport a certificate containing a key agreement | message is being used to transport a certificate containing a key agreement | |||
key.) As the certificates are unordered, the party evaluating the | key.) As the certificates are unordered, the party evaluating the | |||
signature will need to be capable of building the certificate path as | signature will need to be capable of building the certificate path as | |||
necessary. That party will also have to take into account that the bag may | necessary. That party will also have to take into account that the bag may | |||
not contain the full set of certificates needed to build any particular | not contain the full set of certificates needed to build any particular | |||
chain.</t> | chain.</t> | |||
<t> | ||||
<t> | The trust mechanism <bcp14>MUST</bcp14> process any certificates in this para | |||
The trust mechanism MUST process any certificates in this parameter as | meter as | |||
untrusted input. The presence of a self-signed certificate in the | untrusted input. The presence of a self-signed certificate in the | |||
parameter MUST NOT cause the update of the set of trust anchors without | parameter <bcp14>MUST NOT</bcp14> cause the update of the set of trust anchor s without | |||
some out-of-band confirmation. As the contents of this header parameter | some out-of-band confirmation. As the contents of this header parameter | |||
are untrusted input, the header parameter can be in either the protected or | are untrusted input, the header parameter can be in either the protected or | |||
unprotected header bucket. Sending the header parameter in the unprotected | unprotected header bucket. Sending the header parameter in the unprotected | |||
header bucket allows an intermediary to remove or add certificates.</t> | header bucket allows an intermediary to remove or add certificates.</t> | |||
<t> | ||||
<t> | The end-entity certificate <bcp14>MUST</bcp14> be integrity protected by COSE | |||
The end-entity certificate MUST be integrity protected by COSE. This can | . This can, | |||
e.g. be done by sending the header parameter in the protected header, | for example, be done by sending the header parameter in the protected header, | |||
sending a x5bag in the unprotected header combined with a x5t in the | sending an 'x5bag' in the unprotected header combined with an 'x5t' in the | |||
protected header, or including the end-entity certificate in the | protected header, or including the end-entity certificate in the | |||
external_aad.</t> | external_aad.</t> | |||
<t> | ||||
<t> | ||||
This header parameter allows for a single X.509 certificate or a bag of | This header parameter allows for a single X.509 certificate or a bag of | |||
X.509 certificates to be carried in the message. | X.509 certificates to be carried in the message. | |||
</t> | ||||
<list style="symbols"> | <ul spacing="normal"> | |||
<li>If a single certificate is conveyed, it is placed in a CBOR byte str | ||||
<t>If a single certificate is conveyed, it is placed in a CBOR byte string. | ing.</li> | |||
</t> | <li>If multiple certificates are conveyed, a CBOR array of byte strings | |||
is | ||||
<t>If multiple certificates are conveyed, a CBOR array of byte strings is | used, with each certificate being in its own byte string.</li> | |||
used, with each certificate being in its own byte string.</t> | </ul> | |||
</dd> | ||||
</list> | <dt>x5chain:</dt><dd><t>This header parameter contains an ordered array of X. | |||
</t> | 509 | |||
<t> | ||||
x5chain: This header parameter contains an ordered array of X.509 | ||||
certificates. The certificates are to be ordered starting with the | certificates. The certificates are to be ordered starting with the | |||
certificate containing the end-entity key followed by the certificate which | certificate containing the end-entity key followed by the certificate that | |||
signed it and so on. There is no requirement for the entire chain to be | signed it, and so on. There is no requirement for the entire chain to be | |||
present in the element if there is reason to believe that the relying party | present in the element if there is reason to believe that the relying party | |||
already has, or can locate the missing certificates. This means that the | already has, or can locate, the missing certificates. This means that the | |||
relying party is still required to do path building, but that a candidate | relying party is still required to do path building but that a candidate | |||
path is proposed in this header parameter.</t> | path is proposed in this header parameter.</t> | |||
<t> | ||||
<t> | The trust mechanism <bcp14>MUST</bcp14> process any certificates in this para | |||
The trust mechanism MUST process any certificates in this parameter as | meter as | |||
untrusted input. The presence of a self-signed certificate in the | untrusted input. The presence of a self-signed certificate in the | |||
parameter MUST NOT cause the update of the set of trust anchors without | parameter <bcp14>MUST NOT</bcp14> cause the update of the set of trust anchor s without | |||
some out-of-band confirmation. As the contents of this header parameter | some out-of-band confirmation. As the contents of this header parameter | |||
are untrusted input, the header parameter can be in either the protected or | are untrusted input, the header parameter can be in either the protected or | |||
unprotected header bucket. Sending the header parameter in the unprotected | unprotected header bucket. Sending the header parameter in the unprotected | |||
header bucket allows an intermediary to remove or add certificates.</t> | header bucket allows an intermediary to remove or add certificates.</t> | |||
<t> | ||||
<t> | The end-entity certificate <bcp14>MUST</bcp14> be integrity protected by COSE | |||
The end-entity certificate MUST be integrity protected by COSE. This can | . This can, | |||
e.g. be done by sending the header parameter in the protected header, | for example, be done by sending the header parameter in the protected header, | |||
sending a x5chain in the unprotected header combined with a x5t in the | sending an 'x5chain' in the unprotected header combined with an 'x5t' in the | |||
protected header, or including the end-entity certificate in the | protected header, or including the end-entity certificate in the | |||
external_aad as.</t> | external_aad.</t> | |||
<t> | ||||
<t> | ||||
This header parameter allows for a single X.509 certificate or a chain of | This header parameter allows for a single X.509 certificate or a chain of | |||
X.509 certificates to be carried in the message. | X.509 certificates to be carried in the message. | |||
</t> | ||||
<list style="symbols"> | <ul spacing="normal"> | |||
<li>If a single certificate is conveyed, it is placed in a CBOR byte str | ||||
<t>If a single certificate is conveyed, it is placed in a CBOR byte string. | ing.</li> | |||
</t> | <li>If multiple certificates are conveyed, a CBOR array of byte strings | |||
is | ||||
<t>If multiple certificates are conveyed, a CBOR array of byte strings is | used, with each certificate being in its own byte string.</li> | |||
used, with each certificate being in its own byte string.</t> | </ul> | |||
</dd> | ||||
</list> | <dt>x5t:</dt><dd><t>This header parameter identifies the end-entity X.509 cer | |||
</t> | tificate by a | |||
<t> | ||||
x5t: This header parameter identifies the end-entity X.509 certificate by a | ||||
hash value (a thumbprint). The 'x5t' header parameter is represented as an | hash value (a thumbprint). The 'x5t' header parameter is represented as an | |||
array of two elements. The first element is an algorithm identifier which | array of two elements. The first element is an algorithm identifier that | |||
is an integer or a string containing the hash algorithm identifier | is an integer or a string containing the hash algorithm identifier | |||
corresponding to the Value column (integer or text string) of the algorithm | corresponding to the Value column (integer or text string) of the algorithm | |||
registered in the "COSE Algorithms" registry | registered in the "COSE Algorithms" registry | |||
<eref target="https://www.iana.org/assignments/cose/cose.xhtml#algorithms."/> | (see <eref target="https://www.iana.org/assignments/cose/" brackets="angle"/> | |||
The second | ). The second | |||
element is a binary string containing the hash value computed over the DER | element is a binary string containing the hash value computed over the | |||
encoded certificate.</t> | DER-encoded certificate.</t> | |||
<t> | ||||
<t> | ||||
As this header parameter does not provide any trust, the header parameter | As this header parameter does not provide any trust, the header parameter | |||
can be in either a protected or unprotected header bucket.</t> | can be in either a protected or unprotected header bucket.</t> | |||
<t> | ||||
<t> | The identification of the end-entity certificate <bcp14>MUST</bcp14> be integ | |||
The identification of the end-entity certificate MUST be integrity | rity | |||
protected by COSE. This can be done by sending the header parameter in the | protected by COSE. This can be done by sending the header parameter in the | |||
protected header or including the end-entity certificate in the | protected header or including the end-entity certificate in the | |||
external_aad.</t> | external_aad.</t> | |||
<t> | ||||
<t> | ||||
The 'x5t' header parameter can be used alone or together with the 'x5bag', | The 'x5t' header parameter can be used alone or together with the 'x5bag', | |||
'x5chain', or 'x5u' header parameters to provide integrity protection of | 'x5chain', or 'x5u' header parameters to provide integrity protection of | |||
the end-entity certificate.</t> | the end-entity certificate.</t> | |||
<t> | ||||
<t> | For interoperability, applications that use this header parameter <bcp14>MUST | |||
For interoperability, applications which use this header parameter MUST | </bcp14> | |||
support the hash algorithm 'SHA-256', but can use other hash algorithms. | support the hash algorithm 'SHA-256' but can use other hash algorithms. | |||
This requirement allows for different implementations to be configured to | This requirement allows for different implementations to be configured to | |||
use an interoperable algorithm, but does not preclude the use (by prior | use an interoperable algorithm, but does not preclude the use (by prior | |||
agreement) of other algorithms.</t> | agreement) of other algorithms.</t> | |||
</dd> | ||||
<t> | <dt>x5u:</dt><dd><t>This header parameter provides the ability to identify an | |||
RFC Editor please remove the following two paragraphs:</t> | X.509 | |||
certificate by a URI <xref target="RFC3986" format="default"/>. It contains | ||||
<t> | a CBOR text string. The | |||
During AD review, a question was raised about how effective the previous | ||||
statement is in terms of dealing with a MTI algorithm. There needs to be | ||||
some type of arrangement between the parties to agree that a specific hash | ||||
algorithm is going to be used in computing the thumbprint. Making it a | ||||
MUST use would make that true, but it then means that agility is going to | ||||
be very difficult.</t> | ||||
<t> | ||||
The worry is that while SHA-256 may be mandatory, if a sender supports | ||||
SHA-256 but only sends SHA-512 then the recipient which only does SHA-256 | ||||
would not be able to use the thumbprint. In that case both applications | ||||
would conform to the specification, but still not be able to inter-operate.</ | ||||
t> | ||||
<t> | ||||
x5u: This header parameter provides the ability to identify an X.509 | ||||
certificate by a URI <xref target="RFC3986"/>. It contains a CBOR text strin | ||||
g. The | ||||
referenced resource can be any of the following media types: | referenced resource can be any of the following media types: | |||
</t> | ||||
<list style="symbols"> | <ul spacing="normal"> | |||
<li>application/pkix-cert <xref target="RFC2585" format="default"/></li> | ||||
<t>application/pkix-cert <xref target="RFC2585"/></t> | <li>application/pkcs7-mime; smime-type="certs-only" <xref target="RFC855 | |||
1" format="default"/></li> | ||||
<t>application/pkcs7-mime; smime-type="certs-only" <xref target="RFC8551"/> | <li>application/cose-x509 (<xref target="sect-4.3" format="default"/>)</ | |||
</t> | li> | |||
<li>application/cose-x509; usage=chain (<xref target="sect-4.3" format=" | ||||
<t>application/cose-x509 <xref target="sect-4.3"/></t> | default"/>)</li> | |||
</ul> | ||||
<t>application/cose-x509; usage=chain <xref target="sect-4.3"/></t> | <t> | |||
</list> | ||||
</t> | ||||
<t> | ||||
When the application/cose-x509 media type is used, the data is a CBOR | When the application/cose-x509 media type is used, the data is a CBOR | |||
sequence of single-entry COSE_X509 structures (encoding "bstr"). If the | sequence of single-entry COSE_X509 structures (encoding "bstr"). If the | |||
parameter "usage" is set to "chain", this sequence indicates a certificate | parameter "usage" is set to "chain", this sequence indicates a certificate | |||
chain.</t> | chain.</t> | |||
<t> | ||||
<t> | The end-entity certificate <bcp14>MUST</bcp14> be integrity protected by COSE | |||
The end-entity certificate MUST be integrity protected by COSE. This can | . This can, | |||
e.g. be done by sending the x5u in the unprotected or protected header | for example, be done by sending the 'x5u' in the unprotected or protected hea | |||
combined with a x5t in the protected header, or including the end-entity | der | |||
combined with an 'x5t' in the protected header, or including the end-entity | ||||
certificate in the external_aad. As the end-entity certificate is | certificate in the external_aad. As the end-entity certificate is | |||
integrity protected by COSE, the URI does not need to provide any | integrity protected by COSE, the URI does not need to provide any | |||
protection.</t> | protection.</t> | |||
<t> | ||||
<t> | ||||
If a retrieved certificate does not chain to an existing trust anchor, that | If a retrieved certificate does not chain to an existing trust anchor, that | |||
certificate MUST NOT be trusted unless the URI provided integrity | certificate <bcp14>MUST NOT</bcp14> be trusted unless the URI provides integr ity | |||
protection and server authentication and the server is configured as | protection and server authentication and the server is configured as | |||
trusted to provide new trust anchors or if an out-of-band confirmation can | trusted to provide new trust anchors or if an out-of-band confirmation can | |||
be received for trusting the retrieved certificate. In case an HTTP or | be received for trusting the retrieved certificate. If an HTTP or | |||
CoAP GET request is used to retrieve a certificate, TLS <xref target="RFC8446 | Constrained Application Protocol (CoAP) GET request is used to retrieve a cer | |||
"/>, DTLS | tificate, TLS <xref target="RFC8446" format="default"/>, DTLS | |||
<xref target="I-D.ietf-tls-dtls13"/> or OSCORE <xref target="RFC8613"/> SHOUL | <xref target="RFC9147" format="default"/>, or Object Security for Constrained | |||
D be used.</t> | RESTful Environments (OSCORE) <xref target="RFC8613" format="default"/> <bcp14> | |||
SHOULD</bcp14> be used.</t> | ||||
<t> | </dd> | |||
</dl> | ||||
<t> | ||||
The header parameters are used in the following locations: | The header parameters are used in the following locations: | |||
</t> | ||||
<dl spacing="normal" newline="false"> | ||||
<dt>COSE_Signature and COSE_Sign1 objects:</dt><dd>In these objects, the | ||||
parameters identify the | ||||
certificate to be used for validating the signature.</dd> | ||||
<dt>COSE_recipient objects:</dt><dd>In this location, the parameters ide | ||||
ntify the certificate | ||||
for the recipient of the message.</dd> | ||||
</dl> | ||||
<t> | ||||
The labels assigned to each header parameter can be found in <xref target="ta | ||||
b-1"/>.</t> | ||||
<list style="symbols"> | <table anchor="tab-1"> | |||
<name>X.509 COSE Header Parameters</name> | ||||
<t>COSE_Signature and COSE_Sign1 objects: in these objects they identify th | <thead> | |||
e | <tr> | |||
certificate to be used for validating the signature.</t> | <th>Name</th> | |||
<th>Label</th> | ||||
<t>COSE_recipient objects: in this location they identify the certificate | <th>Value Type</th> | |||
for the recipient of the message.</t> | <th>Description</th> | |||
</tr> | ||||
</list> | </thead> | |||
</t> | <tbody> | |||
<tr> | ||||
<t> | <td>x5bag</td> | |||
The labels assigned to each header parameter can be found in the following | <td>32</td> | |||
table.</t> | <td>COSE_X509</td> | |||
<td>An unordered bag of X.509 certificates</td> | ||||
<!-- draft-ietf-cose-x509-09-manual.txt(301): Warning: Unexpected title: expecte | </tr> | |||
d | <tr> | |||
'Figure ...', found 'Table 1: X.509 COSE Header Parameters'. This looks like | <td>x5chain</td> | |||
a figure that has been entered as a texttable. The generated XML will need | <td>33</td> | |||
adjustment. --> | <td>COSE_X509</td> | |||
<td>An ordered chain of X.509 certificates</td> | ||||
<figure title="Table 1: X.509 COSE Header Parameters" anchor="Fig1"> | </tr> | |||
<artwork><![CDATA[ | <tr> | |||
<td>x5t</td> | ||||
+=========+=======+===============+=====================+ | <td>34</td> | |||
| Name | Label | Value Type | Description | | <td>COSE_CertHash</td> | |||
+=========+=======+===============+=====================+ | <td>Hash of an X.509 certificate</td> | |||
| x5bag | 32 | COSE_X509 | An unordered bag of | | </tr> | |||
| | | | X.509 certificates | | <tr> | |||
+---------+-------+---------------+---------------------+ | <td>x5u</td> | |||
| x5chain | 33 | COSE_X509 | An ordered chain of | | <td>35</td> | |||
| | | | X.509 certificates | | <td>uri</td> | |||
+---------+-------+---------------+---------------------+ | <td>URI pointing to an X.509 certificate</td> | |||
| x5t | 34 | COSE_CertHash | Hash of an X.509 | | </tr> | |||
| | | | certificate | | </tbody> | |||
+---------+-------+---------------+---------------------+ | </table> | |||
| x5u | 35 | uri | URI pointing to an | | ||||
| | | | X.509 certificate | | ||||
+---------+-------+---------------+---------------------+ | ||||
]]></artwork></figure> | ||||
<t> | ||||
Below is an equivalent CDDL <xref target="RFC8610"/> description of the text | ||||
above.</t> | ||||
<figure><artwork><![CDATA[ | ||||
COSE_X509 = bstr / [ 2*certs: bstr ] | ||||
COSE_CertHash = [ hashAlg: (int / tstr), hashValue: bstr ] | ||||
]]></artwork></figure> | ||||
<t>The content of the bstr are the bytes of a DER encoded certificate.</t> | ||||
</section> | <t> | |||
Below is an equivalent Concise Data Definition Language (CDDL) description | ||||
(see <xref target="RFC8610" format="default"/>) of the text above.</t> | ||||
<sourcecode name="" type="cddl"><![CDATA[ | ||||
COSE_X509 = bstr / [ 2*certs: bstr ] | ||||
COSE_CertHash = [ hashAlg: (int / tstr), hashValue: bstr ] | ||||
]]></sourcecode> | ||||
<section title="X.509 certificates and static-static ECDH" anchor="sect-3 | <t>The contents of "bstr" are the bytes of a DER-encoded certificate.</t> | |||
"><t> | </section> | |||
<section anchor="sect-3" numbered="true" toc="default"> | ||||
<name>X.509 Certificates and Static-Static ECDH</name> | ||||
<t> | ||||
The header parameters defined in the previous section are used to identify | The header parameters defined in the previous section are used to identify | |||
the recipient certificates for the ECDH key agreement algorithms. In this | the recipient certificates for the Elliptic Curve Diffie-Hellman (ECDH) key a | |||
section we define the algorithm specific parameters that are used for | greement algorithms. In this | |||
section, we define the algorithm-specific parameters that are used for | ||||
identifying or transporting the sender's key for static-static key | identifying or transporting the sender's key for static-static key | |||
agreement algorithms.</t> | agreement algorithms.</t> | |||
<t> | ||||
<t> | ||||
These attributes are defined analogously to those in the previous section. | These attributes are defined analogously to those in the previous section. | |||
There is no definition for the certificate bag, as the same attribute would | There is no definition for the certificate bag, as the same attribute would | |||
be used for both the sender and recipient certificates.</t> | be used for both the sender and recipient certificates.</t> | |||
<dl spacing="normal" newline="true"> | ||||
<t> | <dt>x5chain-sender:</dt><dd>This header parameter contains the chain of ce | |||
x5chain-sender: This header parameter contains the chain of certificates | rtificates | |||
starting with the sender's key exchange certificate. The structure is the | starting with the sender's key exchange certificate. The structure is the | |||
same as 'x5chain'.</t> | same as 'x5chain'.</dd> | |||
<dt>x5t-sender:</dt><dd>This header parameter contains the hash value for the | ||||
<t> | sender's | |||
x5t-sender: This header parameter contains the hash value for the sender's | key exchange certificate. The structure is the same as 'x5t'.</dd> | |||
key exchange certificate. The structure is the same as 'x5t'.</t> | <dt>x5u-sender:</dt><dd>This header parameter contains a URI for the sender's | |||
key | ||||
<t> | exchange certificate. The structure and processing are the same as 'x5u'.</d | |||
x5u-sender: This header parameter contains a URI for the sender's key | d> | |||
exchange certificate. The structure and processing are the same as 'x5u'.</t | </dl> | |||
> | <table anchor="tab-2"> | |||
<name>Static ECDH Algorithm Values</name> | ||||
<!-- draft-ietf-cose-x509-09-manual.txt(354): Warning: Unexpected title: | <thead> | |||
expected 'Figure ...', found 'Table 2: Static ECDH Algorithm Values'. | <tr> | |||
This looks like a figure that has been entered as a texttable. The | <th>Name</th> | |||
generated XML will need adjustment. --> | <th>Label</th> | |||
<th>Type</th> | ||||
<figure title="Static ECDH Algorithm Values" anchor="Fig2"> | <th>Algorithm</th> | |||
<artwork><![CDATA[ | <th>Description</th> | |||
+===============+=====+=============+===================+===========+ | </tr> | |||
|Name |Label|Type | Algorithm |Description| | </thead> | |||
+===============+=====+=============+===================+===========+ | <tbody> | |||
|x5t-sender |TBD |COSE_CertHash| ECDH-SS+HKDF-256, |Thumbprint | | <tr> | |||
| | | | ECDH-SS+HKDF-512, |for the | | <td>x5t-sender</td> | |||
| | | | ECDH-SS+A128KW, |sender's | | <td>-27</td> | |||
| | | | ECDH-SS+A192KW, |X.509 | | <td>COSE_CertHash</td> | |||
| | | | ECDH-SS+A256KW |certificate| | <td>ECDH-SS+HKDF-256, ECDH-SS+HKDF-512, ECDH-SS+A128KW, ECDH-SS+A192KW, EC | |||
+---------------+-----+-------------+-------------------+-----------+ | DH-SS+A256KW</td> | |||
|x5u-sender |TBD |uri | ECDH-SS+HKDF-256, |URI for the| | <td>Thumbprint for the sender's X.509 certificate</td> | |||
| | | | ECDH-SS+HKDF-512, |sender's | | </tr> | |||
| | | | ECDH-SS+A128KW, |X.509 | | <tr> | |||
| | | | ECDH-SS+A192KW, |certificate| | <td>x5u-sender</td> | |||
| | | | ECDH-SS+A256KW | | | <td>-28</td> | |||
+---------------+-----+-------------+-------------------+-----------+ | <td>uri</td> | |||
|x5chain-sender |TBD |COSE_X509 | ECDH-SS+HKDF-256, |static key | | <td>ECDH-SS+HKDF-256, ECDH-SS+HKDF-512, ECDH-SS+A128KW, ECDH-SS+A192KW, EC | |||
| | | | ECDH-SS+HKDF-512, |X.509 | | DH-SS+A256KW</td> | |||
| | | | ECDH-SS+A128KW, |certificate| | <td>URI for the sender's X.509 certificate</td> | |||
| | | | ECDH-SS+A192KW, |chain | | </tr> | |||
| | | | ECDH-SS+A256KW | | | <tr> | |||
+---------------+-----+-------------+-------------------+-----------+ | <td>x5chain-sender</td> | |||
]]></artwork></figure> | <td>-29</td> | |||
</section> | <td>COSE_X509</td> | |||
<td>ECDH-SS+HKDF-256, ECDH-SS+HKDF-512, ECDH-SS+A128KW, ECDH-SS+A192KW, EC | ||||
DH-SS+A256KW</td> | ||||
<td>static key X.509 certificate chain</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<section title="IANA Considerations" anchor="sect-4"><section title="COSE | </section> | |||
Header Parameter Registry" anchor="sect-4.1"><t> | <section anchor="sect-4" numbered="true" toc="default"> | |||
IANA is requested to register the new COSE Header parameters in Table 1 in | <name>IANA Considerations</name> | |||
<section anchor="sect-4.1" numbered="true" toc="default"> | ||||
<name>COSE Header Parameters Registry</name> | ||||
<t> | ||||
IANA has registered the new COSE Header parameters in <xref target="tab-1"/> | ||||
in | ||||
the "COSE Header Parameters" registry. The "Value Registry" field is empty | the "COSE Header Parameters" registry. The "Value Registry" field is empty | |||
for all of the items. For each item, the 'Reference' field points to this | for all of the items. For each item, the "Reference" field points to this | |||
document.</t> | document.</t> | |||
</section> | ||||
</section> | <section anchor="sect-4.2" numbered="true" toc="default"> | |||
<name>COSE Header Algorithm Parameters Registry</name> | ||||
<section title="COSE Header Algorithm Parameter Registry" anchor="sect-4. | <t> | |||
2"><t> | IANA has registered the new COSE Header Algorithm parameters in | |||
IANA is requested to register the new COSE Header Algorithm parameters in | <xref target="tab-2"/> in the "COSE Header Algorithm Parameters" registry. F | |||
Table 2 in the "COSE Header Algorithm Parameters" registry. For each item, | or each item, | |||
the 'Reference' field points to this document.</t> | the "Reference" field points to this document.</t> | |||
</section> | ||||
</section> | <section anchor="sect-4.3" numbered="true" toc="default"> | |||
<name>Media Type application/cose-x509</name> | ||||
<section title="Media Type application/cose-x509" anchor="sect-4.3"><t> | <t> | |||
When the application/cose-x509 media type is used, the data is a CBOR | When the application/cose-x509 media type is used, the data is a CBOR | |||
sequence of single-entry COSE_X509 structures (encoding "bstr"). If the | sequence of single-entry COSE_X509 structures (encoding "bstr"). If the | |||
parameter "usage" is set to "chain", this sequence indicates a certificate | parameter "usage" is set to "chain", this sequence indicates a certificate | |||
chain.</t> | chain.</t> | |||
<t> | ||||
<t> | IANA has registered the following media type <xref target="RFC6838" format="d | |||
IANA is requested to register the following media type <xref target="RFC6838" | efault"/>:</t> | |||
/>:</t> | <dl spacing="normal" newline="false"> | |||
<dt>Type name:</dt><dd><t>application</t></dd> | ||||
<t>Type name: application</t> | <dt>Subtype name:</dt><dd><t>cose-x509</t></dd> | |||
<dt>Required parameters:</dt><dd><t>N/A</t></dd> | ||||
<t>Subtype name: cose-x509</t> | <dt>Optional parameters:</dt><dd><t>usage</t> | |||
<ul spacing="normal"> | ||||
<t>Required parameters: N/A</t> | <li>Can be absent to provide no further information about the intended | |||
meaning of the order in the CBOR sequence of certificates.</li> | ||||
<t>Optional parameters: usage</t> | <li>Can be set to "chain" to indicate that the sequence of data items | |||
is to be interpreted as a certificate chain.</li> | ||||
<t><list style="symbols"> | </ul> | |||
</dd> | ||||
<t>Can be absent to provide no further information about the intended | <dt>Encoding considerations:</dt> | |||
meaning of the order in the CBOR sequence of certificates.</t> | <dd><t>binary</t></dd> | |||
<dt>Security considerations:</dt> | ||||
<t>Can be set to "chain" to indicate that the sequence of data items | <dd><t>See the Security Considerations section of RFC 9360.</t></dd> | |||
is to be interpreted as a certificate chain.</t> | <dt>Interoperability considerations:</dt> | |||
<dd><t>N/A</t></dd> | ||||
</list> | <dt>Published specification:</dt> | |||
</t> | <dd><t>RFC 9360</t></dd> | |||
<dt>Applications that use this media type:</dt> | ||||
<t> | <dd><t>Applications that employ COSE and use X.509 as a certificate typ | |||
Encoding considerations: binary</t> | e.</t></dd> | |||
<dt>Fragment identifier considerations:</dt> | ||||
<t> | <dd><t>N/A</t></dd> | |||
Security considerations: See the Security Considerations section of | <dt>Additional information:</dt><dd> | |||
RFCthis.</t> | <t><br/></t> | |||
<dl spacing="compact"> | ||||
<t> | <dt>Deprecated alias names for this type:</dt><dd>N/A</dd> | |||
Interoperability considerations: N/A</t> | <dt>Magic number(s):</dt><dd>N/A</dd> | |||
<dt>File extension(s):</dt><dd>N/A</dd> | ||||
<t> | <dt>Macintosh file type code(s):</dt><dd>N/A</dd> | |||
Published specification: RFCthis</t> | </dl> | |||
</dd> | ||||
<t> | <dt>Person & email address to contact for further information:</dt><dd | |||
Applications that use this media type: Applications that employ COSE and | ><br/>iesg@ietf.org</dd> | |||
use X.509 as a certificate type.</t> | <dt>Intended usage:</dt><dd>COMMON</dd> | |||
<dt>Restrictions on usage:</dt><dd>N/A</dd> | ||||
<t> | <dt>Author:</dt><dd>COSE WG</dd> | |||
Fragment identifier considerations: N/A | <dt>Change controller:</dt><dd>IESG</dd> | |||
</dl> | ||||
<list style="hanging" hangIndent="24"> | </section> | |||
</section> | ||||
<t hangText="Additional information: Deprecated alias names for this type: | <section anchor="sect-5" numbered="true" toc="default"> | |||
N/A"></t> | <name>Security Considerations</name> | |||
<t> | ||||
<t>Magic number(s): N/A</t> | ||||
<t>File extension(s): N/A</t> | ||||
<t>Macintosh file type code(s): N/A</t> | ||||
</list> | ||||
</t> | ||||
<t> | ||||
Person & email address to contact for further information: iesg@ietf.org | ||||
Intended usage: COMMON</t> | ||||
<t> | ||||
Restrictions on usage: N/A</t> | ||||
<t> | ||||
Author: COSE WG</t> | ||||
<t> | ||||
Change controller: IESG</t> | ||||
<t> | ||||
Provisional registration? (standards tree only): no</t> | ||||
</section> | ||||
</section> | ||||
<section title="Security Considerations" anchor="sect-5"><t> | ||||
Establishing trust in a certificate is a vital part of processing. A major | Establishing trust in a certificate is a vital part of processing. A major | |||
component of establishing trust is determining what the set of trust | component of establishing trust is determining what the set of trust | |||
anchors are for the process. A new self-signed certificate appearing on | anchors are for the process. A new self-signed certificate appearing on | |||
the client cannot be a trigger to modify the set of trust anchors, because | the client cannot be a trigger to modify the set of trust anchors, because | |||
a well-defined trust-establishment process is required. One common way for | a well-defined trust-establishment process is required. One common way for | |||
a new trust anchor to be added (or removed) from a device is by doing a new | a new trust anchor to be added to (or removed from) a device is by doing a ne w | |||
firmware upgrade.</t> | firmware upgrade.</t> | |||
<t> | ||||
<t> | ||||
In constrained systems, there is a trade-off between the order of checking | In constrained systems, there is a trade-off between the order of checking | |||
the signature and checking the certificate for validity. Validating | the signature and checking the certificate for validity. Validating | |||
certificates can require that network resources be accessed in order to get | certificates can require that network resources be accessed in order to get | |||
revocation information or retrieve certificates during path building. The | revocation information or retrieve certificates during path building. The | |||
resulting network access can consume power and network bandwidth. On the | resulting network access can consume power and network bandwidth. On the | |||
other hand, if the certificates are validated after the signature is | other hand, if the certificates are validated after the signature is | |||
validated, an oracle can potentially be built based on detecting the | validated, an oracle can potentially be built based on detecting the | |||
network resources which is only done if the signature validation passes. | network resources, which is only done if the signature validation passes. | |||
In any event, both the signature and certificate validation MUST be | In any event, both the signature validation and the certificate validation <b | |||
cp14>MUST</bcp14> be | ||||
completed successfully before acting on any requests.</t> | completed successfully before acting on any requests.</t> | |||
<t> | ||||
<t> | Unless it is known that the Certificate Authority (CA) required proof of poss | |||
Unless it is known that the CA required proof-of-possession of the | ession of the | |||
subject's private key to issue an end-entity certificate, the end-entity | subject's private key to issue an end-entity certificate, the end-entity | |||
certificate MUST be integrity protected by COSE. Without | certificate <bcp14>MUST</bcp14> be integrity protected by COSE. Without | |||
proof-of-possession, an attacker can trick the CA to issue an | proof of possession, an attacker can trick the CA into issuing an | |||
identity-misbinding certificate with someone else's "borrowed" public-key | identity-misbinding certificate with someone else's "borrowed" public key | |||
but with a different subject. A MITM attacker can then perform an | but with a different subject. An on-path attacker can then perform an | |||
identity-misbinding attack by replacing the real end-entity certificate in | identity-misbinding attack by replacing the real end-entity certificate in | |||
COSE with such an identity-misbinding certificate.</t> | COSE with such an identity-misbinding certificate.</t> | |||
<t> | ||||
<t> | ||||
End-entity X.509 certificates contain identities that a passive on-path | End-entity X.509 certificates contain identities that a passive on-path | |||
attacker eavesdropping on the conversation can use to identify and track | attacker eavesdropping on the conversation can use to identify and track | |||
the subject. COSE does not provide identity protection by itself and the | the subject. COSE does not provide identity protection by itself, and the | |||
x5t and x5u header parameters are just alternative permanent identifiers | 'x5t' and 'x5u' header parameters are just alternative permanent identifiers | |||
and can also be used to track the subject. To provide identity protection, | and can also be used to track the subject. To provide identity protection, | |||
COSE can be sent inside another security protocol providing | COSE can be sent inside another security protocol providing | |||
confidentiality.</t> | confidentiality.</t> | |||
<t> | ||||
<t> | Before using the key in a certificate, the key <bcp14>MUST</bcp14> be checked | |||
Before using the key in a certificate, the key MUST be checked against the | against the | |||
algorithm to be used and any algorithm specific checks need to be made. | algorithm to be used, and any algorithm-specific checks need to be made. | |||
These checks can include validating that points are on curves for | These checks can include validating that points are on curves for | |||
elliptical curve algorithms, and that sizes of RSA keys are of an | elliptical curve algorithms and that the sizes of RSA keys are within an acce | |||
acceptable size. The use of unvalidated keys can lead either to loss of | ptable range. The use of unvalidated keys can lead to either loss of | |||
security or excessive consumption of resources (for example using a 200K | security or excessive consumption of resources (for example, using a 200K | |||
RSA key).</t> | RSA key).</t> | |||
<t> | ||||
<t> | When processing the 'x5u' header parameter, the security considerations of | |||
When processing the x5u header parameter the security considerations of | <xref target="RFC3986" format="default"/>, and specifically those defined in | |||
<xref target="RFC3986"/> and specifically those defined in Section 7.1 of <xr | <xref target="RFC3986" sectionFormat="of" section="7.1"/>, also | |||
ef target="RFC3986"/> also | ||||
apply.</t> | apply.</t> | |||
<t> | ||||
<t> | ||||
Regardless of the source, certification path validation is an important | Regardless of the source, certification path validation is an important | |||
part of establishing trust in a certificate. Section 6 of <xref target="RFC5 280"/> | part of establishing trust in a certificate. <xref target="RFC5280" sectionF ormat="of" section="6"/> | |||
provides guidance for the path validation. The security considerations of | provides guidance for the path validation. The security considerations of | |||
<xref target="RFC5280"/> are also important for the correct usage of this doc | <xref target="RFC5280" format="default"/> are also important for the correct | |||
ument.</t> | usage of this document.</t> | |||
<t> | ||||
<t> | Protecting the integrity of the 'x5bag', 'x5chain', and 'x5t' contents by pla | |||
Protecting the integrity of the x5bag, x5chain and x5t contents by placing | cing | |||
them in the protected header bucket can help mitigate some risks of a | them in the protected header bucket can help mitigate some risks of a | |||
misbehaving certificate authority (cf. Section 5.1 of <xref target="RFC2634" | misbehaving CA (cf. <xref target="RFC2634" sectionFormat="of" section="5 | |||
/>).</t> | .1"/>).</t> | |||
<t> | ||||
<t> | ||||
The security of the algorithm used for 'x5t' does not affect the security | The security of the algorithm used for 'x5t' does not affect the security | |||
of the system as this header parameter selects which certificate that is | of the system, as this header parameter selects which certificate that is | |||
already present on the system should be used, but it does not provide any | already present on the system should be used, but it does not provide any | |||
trust.</t> | trust.</t> | |||
</section> | ||||
</middle> | ||||
<back> | ||||
</section> | <references> | |||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
119.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
280.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
152.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
174.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
949.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
052.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
</middle> | <!-- Constrained-BRSKI draft-ietf-anima-constrained-voucher (I-D Exists) | |||
"Long way" to change "Van" to "van" and fix version number --> | ||||
<reference anchor="Constrained-BRSKI"> | ||||
<front> | ||||
<title>Constrained Bootstrapping Remote Secure Key Infrastructure (BRSKI)</t | ||||
itle> | ||||
<author fullname="Michael Richardson" initials="M." surname="Richardson"> | ||||
<organization>Sandelman Software Works</organization> | ||||
</author> | ||||
<author fullname="Peter van der Stok" initials="P." surname="van der Stok"> | ||||
<organization>vanderstok consultancy</organization> | ||||
</author> | ||||
<author fullname="Panos Kampanakis" initials="P." surname="Kampanakis"> | ||||
<organization>Cisco Systems</organization> | ||||
</author> | ||||
<author fullname="Esko Dijk" initials="E." surname="Dijk"> | ||||
<organization>IoTconsultancy.nl</organization> | ||||
</author> | ||||
<date month="January" day="2" year="2023"/> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-voucher- | ||||
19"/> | ||||
</reference> | ||||
<back> | <!-- draft-ietf-lake-edhoc (Publication Requested) | |||
<references title="Normative References"> | Had to do "long way" for version # and J. Preuß Mattsson's name --> | |||
&RFC2119; | <reference anchor="EDHOC"> | |||
&RFC5280; | <front> | |||
&RFC8152; | <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title> | |||
&RFC8174; | <author fullname="Göran Selander" initials="G." surname="Selander"> | |||
&RFC8949; | <organization>Ericsson AB</organization> | |||
</references> | </author> | |||
<references title="Informative References"> | <author fullname="John Preuß Mattsson" initials="J." surname="Preuß Mattsson | |||
&I-D.ietf-anima-constrained-voucher; | "> | |||
&I-D.ietf-lake-edhoc; | <organization>Ericsson AB</organization> | |||
&I-D.ietf-tls-dtls13; | </author> | |||
&RFC2585; | <author fullname="Francesca Palombini" initials="F." surname="Palombini"> | |||
&RFC2634; | <organization>Ericsson AB</organization> | |||
&RFC3986; | </author> | |||
&RFC6838; | <date day="3" month="February" year="2023"/> | |||
&RFC8392; | </front> | |||
&RFC8446; | <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-19"/> | |||
&RFC8551; | </reference> | |||
&RFC8610; | ||||
&RFC8613; | ||||
</references> | ||||
</back> | ||||
</rfc> | <!-- draft-ietf-tls-dtls13 (RFC 9147) --> | |||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
147.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
585.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
634.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | ||||
986.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
838.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
392.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
446.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
551.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
610.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
613.xml"/> | ||||
</references> | ||||
</references> | ||||
<section anchor="acks" numbered="false" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t> | ||||
Jim Schaad passed on 3 October 2020. This document is primarily his | ||||
work. Ivaylo Petrov served as the document editor after Jim's | ||||
untimely death, mostly helping with the approval and publication | ||||
processes. Jim deserves all credit for the technical content. | ||||
</t> | ||||
</section> | ||||
</back> | ||||
</rfc> | ||||
End of changes. 73 change blocks. | ||||
497 lines changed or deleted | 462 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |