Subject: Re: [Lake] Security levels for EDHOC for formal verification

From: Göran Selander <[email-masked]>
Date: Thu, 11 Feb 2021 17:07:45 +0000

Hi,

Some minor comments.

1. There is a mix-up the methods enumeration. 

> Method 3 should be comparable with TLS 1.3 with mutual certificate based authentication. Methed 0 is a bit trickier to compare to TLS.

Should be: "Method 0 should be comparable with TLS 1.3 with mutual certificate based authentication. Method 3 is a bit trickier to compare to TLS."

> Method 0 (2* Static DH Key ) is a bit trickier.

Should be: Method 3

> The exported keys should be a bit stronger as EDHOC include message_2 and the for Static DH also the private authentication keys.

Should be: message_3

Göran

On 2021-02-11, 09:13, "Lake on behalf of John Mattsson" <[email-masked] on behalf of john.mattsson=[email-masked]> wrote:

    Hi,

    There was a request from Karthik to have specified security levels for EDHOC so that formal verification can verify or falsify the claims. This is not trivial. Below is a first try. Let's discuss if this is enough or if more or different information is needed.

    The design objectives of EDHOC has been to have approximatly the same security level as TLS when the same algorithms are used, but to have much smaller messages. Just like TLS I think the expected security level depends heavily on the chosen algorithms and the method. Method 3 should be comparable with TLS 1.3 with mutual certificate based authentication. Methed 0 is a bit trickier to compare to TLS.

    In general there should not be much difference between EDHOC and TLS 1.3 when certificate based authentication is used. The exported keys should be a bit stronger as EDHOC include message_2 and the for Static DH also the private authentication keys. The Static DH Method with 64 bit tags does not offer the same security level as TLS 1.3 with certificate-based authentication, but should offer better security than TLS 1.3 with PSK authentication and short tags.

    EDHOC can use all algorithms defined for COSE (but maybe you will restrict your work to
    the pre-defined cipher suites). Below are the relevant algorithms defined for COSE.

    EDHOC AEAD algorithm:
    ---------------------------
    AES-CCM-16-64-128
    AES-CCM-16-64-256
    AES-CCM-64-64-128
    AES-CCM-64-64-256
    AES-CCM-16-128-128
    AES-CCM-16-128-256
    AES-CCM-64-128-128
    AES-CCM-64-128-256
    A128GCM
    A192GCM
    A256GCM
    ChaCha20/Poly1305

    EDHOC hash algorithm
    ---------------------------
    SHAKE256
    SHA-512
    SHA-384
    SHAKE128
    SHA-512/256
    SHA-256
    [SHA-1 and SHA-256/64 not allowed]

    EDHOC ECDH curve
    ---------------------------
    P-256
    P-384
    P-521
    X25519
    X448
    Wei25519 (expected to be registered soon)
    [Ed25519, Ed448, secp256k1 are not allowed] 

    EDHOC signature algorithm
    ---------------------------
    ES256
    ES512
    ES384
    EdDSA
    ES256K

    EDHOC signature algorithm curve
    ---------------------------
    P-256 (ECDSA only)
    P-384 (ECDSA only)
    P-521 (ECDSA only)
    Ed25519 (EdDSA only)
    Ed448 (EdDSA only)
    secp256k1 (ECDSA only)
    [X25519, X448 are not allowed] 

    (Non-ECC signatures algorithms are supposed to be allowed as well. I think the draft needs to be updated.)

    Below are two initial ways to express the security level, one as a function of the Mehtod and algorithms. The second as a comparision with TLS 1.3. In general, EDHOC with the weakest options SHALL offer 64-bit security against on-line attacks and 128-bit security against off-line attacks. I think this aligns with TLS 1.3.

    Let me know if this is enough for the formal verification, if you need something different, or if something is missing. It would be good if somebody reviews the information is this mail.

    EDHOC security levels for different aspects
    ---------------------------

    The security level of confidenciality protection against passive attackers should be the key length of the AEAD (128, 192, or 256 bits).

    The security lebel of integrity protection and confidentiality against active attackers should be the tag length of the AEAD (64 or 128 bits)

    The authentication security in the static DH modes are determined by the  tag length of the AEAD (64 or 128 bits)

    The authentication security in the Signature Key modes are determined by the security level of the signature algorithm (128, 192, or 256 bit)

    The integrity protection of some fields are detemined by the security level of the signature algorithm (128, 192, or 256 bit).

    EDHOC security levels compared with TLS 1.3
    ---------------------------

    Method 0 (2* Signature Key ) should offer the same security level as TLS 1.3 with the same algorithms.

    0. (AES-CCM-16-64-128, SHA-256, X25519, EdDSA, Ed25519)
    1. (AES-CCM-16-128-128, SHA-256, X25519, EdDSA, Ed25519)
    4. (A128GCM, SHA-256, X25519, ES256, P-256)
    5  (A256GCM, SHA-384, P-384, ES384, P-384)

    Method 0 (2* Static DH Key ) is a bit trickier.

    0. (AES-CCM-16-64-128, SHA-256, X25519, EdDSA, 

    The authentication security level here is bounded by the 128-bit tag. Should offer at least the same security level as TLS 1.3 with PSK authentication with CCM_8, and the other algorithms the same.

    1. (AES-CCM-16-128-128, SHA-256, X25519, EdDSA, Ed25519)
    4. (A128GCM, SHA-256, X25519, ES256, P-256)

    Should both offer similar security level as TLS 1.3 with certificate authentication and the the other algorithms the same.

    5	(A256GCM, SHA-384, P-384, ES384, P-384)

    The authentication security level here is bounded by the 128-bit tag.

    Cheers,
    John

    -- 
    Lake mailing list
    [email-masked]
    https://www.ietf.org/mailman/listinfo/lake