Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When does the Compliance requirements apply? #238

Closed
emanjon opened this issue Jan 29, 2022 · 1 comment
Closed

When does the Compliance requirements apply? #238

emanjon opened this issue Jan 29, 2022 · 1 comment

Comments

@emanjon
Copy link
Collaborator

emanjon commented Jan 29, 2022

Compliance requirements has some positive effects but also many negative.

  • Constrained devices might be required to support things (takes up storage) they never use.
  • Weaknesses might be found in cryptographic algorithms. Implementation then have to chose between being compliant or insecure.

TLS 1.3 has softened the compliance requirements compared to TLS 1.2 (COSE does not have any at all). TLS 1.3 (RFC8446) use the following sentence

" In the absence of an application profile standard specifying
otherwise:
"

This might (likely?) be a good sentence for EDHOC as well.

emanjon added a commit that referenced this issue Jan 29, 2022
When does the Compliance requirements apply #238
@emanjon emanjon changed the title When does the Compliance requirements apply When does the Compliance requirements apply? Jan 31, 2022
@gselander
Copy link
Collaborator

gselander commented Feb 7, 2022

Other comments, in addition to the proposal in PR #239 (see above):

  1. TLS text for convenience:

In the absence of an application profile standard specifying otherwise:

A TLS-compliant application MUST implement the TLS_AES_128_GCM_SHA256 cipher suite and SHOULD implement the TLS_AES_256_GCM_SHA384 and TLS_CHACHA20_POLY1305_SHA256 cipher suites.

A TLS-compliant application MUST support digital signatures with rsa_pkcs1_sha256 (for certificates), rsa_pss_rsae_sha256 (for CertificateVerify and certificates), and ecdsa_secp256r1_sha256. A TLS-compliant application MUST support key exchange with secp256r1 (NIST P-256) and SHOULD support key exchange with X25519.

  1. Corresponding EDHOC may be:

"In the absence of an applicability template specifying otherwise:"

  1. With an initial sentence as in 2. or PR 239, the current text on cipher suites may be considerably simplified (since it is anyway up to the application), for example:

OLD
For many constrained IoT devices it is problematic to support several crypto primitives. Existing devices can be expected to support either ECDSA or EdDSA. Cipher suites 0 (AES-CCM-16-64-128, SHA-256, 8, X25519, EdDSA, AES-CCM-16-64-128, SHA-256) and 1 (AES-CCM-16-128-128, SHA-256, 16, X25519, EdDSA, AES-CCM-16-64-128, SHA-256) only differ in size of the MAC length, so supporting one or both of these is no essential difference. Similarly for cipher suites 2 (AES-CCM-16-64-128, SHA-256, 8, P-256, ES256, AES-CCM-16-64-128, SHA-256) and 3 (AES-CCM-16-128-128, SHA-256, 16, P-256, ES256, AES-CCM-16-64-128, SHA-256). To enable as much interoperability as possible, less constrained devices SHOULD implement all four cipher suites 0-3. Constrained endpoints SHOULD implement cipher suites 0 and 1, or cipher suites 2 and 3. Implementations only need to implement the algorithms needed for their supported methods.

NEW
Cipher suites 2 (AES-CCM-16-64-128, SHA-256, 8, P-256, ES256, AES-CCM-16-64-128, SHA-256) and 3 (AES-CCM-16-128-128, SHA-256, 16, P-256, ES256, AES-CCM-16-64-128, SHA-256) only differ in size of the MAC length, so supporting one or both of these is no essential difference.
An EDHOC-compliant implementation MUST implement cipher suite 2 and 3. Implementations only need to implement the algorithms needed for their supported methods.

emanjon added a commit that referenced this issue Feb 22, 2022
…ments-apply-#238

Compliance requirements update #238
@emanjon emanjon closed this as completed Feb 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants