rfc9528v6.txt | rfc9528.txt | |||
---|---|---|---|---|
skipping to change at line 221 ¶ | skipping to change at line 221 ¶ | |||
constrained networks are also relevant since both endpoints would | constrained networks are also relevant since both endpoints would | |||
then benefit from the lightweight properties of the protocol. EDHOC | then benefit from the lightweight properties of the protocol. EDHOC | |||
could, e.g., be run when a device connects for the first time or to | could, e.g., be run when a device connects for the first time or to | |||
establish fresh keys that are not revealed by a later compromise of | establish fresh keys that are not revealed by a later compromise of | |||
the long-term keys. | the long-term keys. | |||
1.2. Message Size Examples | 1.2. Message Size Examples | |||
Examples of EDHOC message sizes are shown in Table 1, which use | Examples of EDHOC message sizes are shown in Table 1, which use | |||
different kinds of authentication keys and COSE header parameters for | different kinds of authentication keys and COSE header parameters for | |||
identification, i.e., static Diffie-Hellman keys or signature keys, | identification, including static Diffie-Hellman keys or signature | |||
either in CWT/CCS [RFC8392] identified by a key identifier using | keys, either in CWT/CCS [RFC8392] identified by a key identifier | |||
'kid' [RFC9052] or in X.509 certificates identified by a hash value | using 'kid' [RFC9052] or in X.509 certificates identified by a hash | |||
using 'x5t' [RFC9360]. EDHOC always uses ephemeral-ephemeral key | value using 'x5t' [RFC9360]. EDHOC always uses ephemeral-ephemeral | |||
exchange. As a comparison, in the case of RPK authentication and | key exchange. As a comparison, in the case of RPK authentication and | |||
when transferred in CoAP, the EDHOC message size can be less than 1/7 | when transferred in CoAP, the EDHOC message size can be less than 1/7 | |||
of the DTLS 1.3 handshake [RFC9147] with Ephemeral Elliptic Curve | of the DTLS 1.3 handshake [RFC9147] with Ephemeral Elliptic Curve | |||
Diffie-Hellman (ECDHE) and connection ID; see [CoAP-SEC-PROT]. | Diffie-Hellman (ECDHE) and connection ID; see [CoAP-SEC-PROT]. | |||
+===========+================+================+ | +===========+================+================+ | |||
| | Static DH Keys | Signature Keys | | | | Static DH Keys | Signature Keys | | |||
+===========+==========+=====+==========+=====+ | +===========+==========+=====+==========+=====+ | |||
| | kid | x5t | kid | x5t | | | | kid | x5t | kid | x5t | | |||
+===========+==========+=====+==========+=====+ | +===========+==========+=====+==========+=====+ | |||
| message_1 | 37 | 37 | 37 | 37 | | | message_1 | 37 | 37 | 37 | 37 | | |||
skipping to change at line 281 ¶ | skipping to change at line 281 ¶ | |||
and CCS [RFC8392], and the Concise Data Definition Language (CDDL) | and CCS [RFC8392], and the Concise Data Definition Language (CDDL) | |||
[RFC8610], which is used to express CBOR data structures. Examples | [RFC8610], which is used to express CBOR data structures. Examples | |||
of CBOR and CDDL are provided in Appendix C.1. When referring to | of CBOR and CDDL are provided in Appendix C.1. When referring to | |||
CBOR, this specification always refers to Deterministically Encoded | CBOR, this specification always refers to Deterministically Encoded | |||
CBOR, as specified in Sections 4.2.1 and 4.2.2 of [RFC8949]. The | CBOR, as specified in Sections 4.2.1 and 4.2.2 of [RFC8949]. The | |||
single output from authenticated encryption (including the | single output from authenticated encryption (including the | |||
authentication tag) is called "ciphertext", following [RFC5116]. | authentication tag) is called "ciphertext", following [RFC5116]. | |||
2. EDHOC Outline | 2. EDHOC Outline | |||
EDHOC specifies different authentication methods of the ephemeral- | EDHOC supports different authentication methods of the ephemeral- | |||
ephemeral Diffie-Hellman key exchange, i.e., signature keys and | ephemeral Diffie-Hellman key exchange. This document specifies | |||
static Diffie-Hellman keys. This section outlines the signature-key- | authentication methods based on signature keys and static Diffie- | |||
based method. Further details of protocol elements and other | Hellman keys. This section outlines the signature-key-based method. | |||
authentication methods are provided in the remainder of this | Further details of protocol elements and other authentication methods | |||
document. | are provided in the remainder of this document. | |||
SIGn-and-MAc (SIGMA) is a family of theoretical protocols with a | SIGn-and-MAc (SIGMA) is a family of theoretical protocols with a | |||
number of variants [SIGMA]. Like in Internet Key Exchange Protocol | number of variants [SIGMA]. Like in Internet Key Exchange Protocol | |||
Version 2 (IKEv2) [RFC7296] and (D)TLS 1.3 [RFC8446] [RFC9147], EDHOC | Version 2 (IKEv2) [RFC7296] and (D)TLS 1.3 [RFC8446] [RFC9147], EDHOC | |||
authenticated with signature keys is built on a variant of the SIGMA | authenticated with signature keys is built on a variant of the SIGMA | |||
protocol, SIGMA-I, which provides identity protection against active | protocol, SIGMA-I, which provides identity protection against active | |||
attacks on the party initiating the protocol. Also like IKEv2, EDHOC | attacks on the party initiating the protocol. Also like IKEv2, EDHOC | |||
implements the MAC-then-Sign variant of the SIGMA-I protocol. The | implements the MAC-then-Sign variant of the SIGMA-I protocol. The | |||
message flow (excluding an optional fourth message) is shown in | message flow (excluding an optional fourth message) is shown in | |||
Figure 1. | Figure 1. | |||
skipping to change at line 1160 ¶ | skipping to change at line 1160 ¶ | |||
An example of an application profile is shown in Appendix F. | An example of an application profile is shown in Appendix F. | |||
For some parameters, like METHOD, the type of the ID_CRED field, or | For some parameters, like METHOD, the type of the ID_CRED field, or | |||
EAD, the receiver of an EDHOC message is able to verify compliance | EAD, the receiver of an EDHOC message is able to verify compliance | |||
with the application profile and, if it needs to fail because of the | with the application profile and, if it needs to fail because of the | |||
lack of compliance, to infer the reason why the EDHOC session failed. | lack of compliance, to infer the reason why the EDHOC session failed. | |||
For other encodings, like the profiling of CRED_x in the case that it | For other encodings, like the profiling of CRED_x in the case that it | |||
is not transported, it may not be possible to verify that the lack of | is not transported, it may not be possible to verify that the lack of | |||
compliance with the application profile was the reason for failure, | compliance with the application profile was the reason for failure. | |||
i.e., integrity verification in message_2 or message_3 may fail not | For example, integrity verification in message_2 or message_3 may | |||
only because of a wrong credential. For example, in case the | fail not only because of a wrong credential. For example, in case | |||
Initiator uses a public key certificate by reference (i.e., not | the Initiator uses a public key certificate by reference (i.e., not | |||
transported within the protocol), then both endpoints need to use an | transported within the protocol), then both endpoints need to use an | |||
identical data structure as CRED_I or else the integrity verification | identical data structure as CRED_I or else the integrity verification | |||
will fail. | will fail. | |||
Note that it is not necessary for the endpoints to specify a single | Note that it is not necessary for the endpoints to specify a single | |||
transport for the EDHOC messages. For example, a mix of CoAP and | transport for the EDHOC messages. For example, a mix of CoAP and | |||
HTTP may be used along the path, and this may still allow correlation | HTTP may be used along the path, and this may still allow correlation | |||
between messages. | between messages. | |||
The application profile may be dependent on the identity of the other | The application profile may be dependent on the identity of the other | |||
skipping to change at line 2478 ¶ | skipping to change at line 2478 ¶ | |||
9.3. Cipher Suites and Cryptographic Algorithms | 9.3. Cipher Suites and Cryptographic Algorithms | |||
When using a private cipher suite or registering new cipher suites, | When using a private cipher suite or registering new cipher suites, | |||
the choice of the key length used in the different algorithms needs | the choice of the key length used in the different algorithms needs | |||
to be harmonized so that a sufficient security level is maintained | to be harmonized so that a sufficient security level is maintained | |||
for authentication credentials, the EDHOC session, and the protection | for authentication credentials, the EDHOC session, and the protection | |||
of application data. The Initiator and Responder should enforce a | of application data. The Initiator and Responder should enforce a | |||
minimum security level. | minimum security level. | |||
The output size of the EDHOC hash algorithm MUST be at least 256 | The output size of the EDHOC hash algorithm MUST be at least 256 | |||
bits, i.e., the hash algorithms SHA-1 and SHA-256/64 (SHA-256 | bits. In particular, the hash algorithms SHA-1 and SHA-256/64 | |||
truncated to 64 bits) SHALL NOT be supported for use in EDHOC except | (SHA-256 truncated to 64 bits) SHALL NOT be supported for use in | |||
for certificate identification with x5t and c5t. For security | EDHOC except for certificate identification with x5t and c5t. For | |||
considerations of SHA-1, see [RFC6194]. As EDHOC integrity protects | security considerations of SHA-1, see [RFC6194]. As EDHOC integrity | |||
all the authentication credentials, the choice of hash algorithm in | protects all the authentication credentials, the choice of hash | |||
x5t and c5t does not affect security and using the same hash | algorithm in x5t and c5t does not affect security and using the same | |||
algorithm as in the cipher suite, but with as much truncation as | hash algorithm as in the cipher suite, but with as much truncation as | |||
possible, is RECOMMENDED. That is, when the EDHOC hash algorithm is | possible, is RECOMMENDED. That is, when the EDHOC hash algorithm is | |||
SHA-256, using SHA-256/64 in x5t and c5t is RECOMMENDED. The EDHOC | SHA-256, using SHA-256/64 in x5t and c5t is RECOMMENDED. The EDHOC | |||
MAC length MUST be at least 8 bytes and the tag length of the EDHOC | MAC length MUST be at least 8 bytes and the tag length of the EDHOC | |||
AEAD algorithm MUST be at least 64 bits. Note that secp256k1 is only | AEAD algorithm MUST be at least 64 bits. Note that secp256k1 is only | |||
defined for use with ECDSA and not for ECDH. Note that some COSE | defined for use with ECDSA and not for ECDH. Note that some COSE | |||
algorithms are marked as not recommended in the COSE IANA registry. | algorithms are marked as not recommended in the COSE IANA registry. | |||
9.4. Post-Quantum Considerations | 9.4. Post-Quantum Considerations | |||
As of the publication of this specification, it is unclear when or | As of the publication of this specification, it is unclear when or | |||
skipping to change at line 3492 ¶ | skipping to change at line 3492 ¶ | |||
Resource Directory", RFC 9176, DOI 10.17487/RFC9176, April | Resource Directory", RFC 9176, DOI 10.17487/RFC9176, April | |||
2022, <https://www.rfc-editor.org/info/rfc9176>. | 2022, <https://www.rfc-editor.org/info/rfc9176>. | |||
[RFC9397] Pei, M., Tschofenig, H., Thaler, D., and D. Wheeler, | [RFC9397] Pei, M., Tschofenig, H., Thaler, D., and D. Wheeler, | |||
"Trusted Execution Environment Provisioning (TEEP) | "Trusted Execution Environment Provisioning (TEEP) | |||
Architecture", RFC 9397, DOI 10.17487/RFC9397, July 2023, | Architecture", RFC 9397, DOI 10.17487/RFC9397, July 2023, | |||
<https://www.rfc-editor.org/info/rfc9397>. | <https://www.rfc-editor.org/info/rfc9397>. | |||
[RFC9529] Selander, G., Preuß Mattsson, J., Serafin, M., Tiloca, M., | [RFC9529] Selander, G., Preuß Mattsson, J., Serafin, M., Tiloca, M., | |||
and M. Vučinić, "Traces of Ephemeral Diffie-Hellman Over | and M. Vučinić, "Traces of Ephemeral Diffie-Hellman Over | |||
COSE (EDHOC)", RFC RFC9529, DOI 10.17487/RFC9529, March | COSE (EDHOC)", RFC 9529, DOI 10.17487/RFC9529, March 2024, | |||
2024, <https://www.rfc-editor.org/info/rfc9529>. | <https://www.rfc-editor.org/info/rfc9529>. | |||
[SECG] Certicom Research, "SEC 1: Elliptic Curve Cryptography", | [SECG] Certicom Research, "SEC 1: Elliptic Curve Cryptography", | |||
Standards for Efficient Cryptography, May 2009, | Standards for Efficient Cryptography, May 2009, | |||
<https://www.secg.org/sec1-v2.pdf>. | <https://www.secg.org/sec1-v2.pdf>. | |||
[SIGMA] Krawczyk, H., "SIGMA: the 'SIGn-and-MAc' Approach to | [SIGMA] Krawczyk, H., "SIGMA: the 'SIGn-and-MAc' Approach to | |||
Authenticated Diffie-Hellman and Its Use in the IKE- | Authenticated Diffie-Hellman and Its Use in the IKE- | |||
Protocols", June 2003, | Protocols", June 2003, | |||
<https://www.iacr.org/cryptodb/archive/2003/ | <https://www.iacr.org/cryptodb/archive/2003/ | |||
CRYPTO/1495/1495.pdf>. | CRYPTO/1495/1495.pdf>. | |||
End of changes. 5 change blocks. | ||||
24 lines changed or deleted | 24 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |