Subject: [Ace] draft-ietf-ace-cbor-web-token-08 / draft-ietf-ace-cwt-proof-of-possession

From: Hannes Tschofenig <[email-masked]>
Date: Sun, 1 Oct 2017 11:39:58 +0200

[Chair hat off]

Hi all,

after reading draft-ietf-ace-dtls-authorize I was wondering how the RS
determines what key to use to decrypt noticed that none of the examples
in  draft-ietf-ace-cbor-web-token-08 and in
draft-ietf-ace-cwt-proof-of-possession use some form of key id to allow
finding the appropriate key.

Maybe I overlooked it or was this intentional?

Ciao
Hannes

---

From: Mike Jones <[email-masked]>
Date: Sun, 1 Oct 2017 09:46:58 +0000

Section 3.4 of https://tools.ietf.org/html/draft-ietf-ace-cwt-proof-of-possession-00 defines how to use a key ID to select the PoP key.  Section 3.1 of https://tools.ietf.org/html/rfc8152 defines using a key ID to select keys for the COSE operations.  CWT doesn't need to talk about key IDs because they inherit this functionality from COSE.

A key ID example could be added to https://tools.ietf.org/html/draft-ietf-ace-cwt-proof-of-possession if people want one.  But the functionality is already there.

Thanks for reviewing these specs!

				-- Mike

-----Original Message-----
From: Ace [mailto:[email-masked]] On Behalf Of Hannes Tschofenig
Sent: Sunday, October 1, 2017 2:40 AM
To: [email-masked]
Subject: [Ace] draft-ietf-ace-cbor-web-token-08 / draft-ietf-ace-cwt-proof-of-possession

[Chair hat off]

Hi all,

after reading draft-ietf-ace-dtls-authorize I was wondering how the RS determines what key to use to decrypt noticed that none of the examples in  draft-ietf-ace-cbor-web-token-08 and in draft-ietf-ace-cwt-proof-of-possession use some form of key id to allow finding the appropriate key.

Ciao
Hannes

_______________________________________________
Ace mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/ace

---

From: Samuel Erdtman <[email-masked]>
Date: Mon, 2 Oct 2017 10:40:29 +0200

Hi Hannes,

This is how I think it should be done.

There are two keys that needs to be identified, the key to verify the CWT
and the key to use for the DTLS handshake.

When it comes to verifying the CWT, it is the AS key that should be used. I
don´t think it is unreasonable to assume that the AS uses the key that it
agreed  on with the RS on during device configuration, i.e. the RS only
have one key for verifying that the token was issued by the trusted AS. If
RS has multiple keys associated with an AS or trusts multiple ASs then it
would be recommendable to use the COSE kid (
https://tools.ietf.org/html/rfc8152#section-3.1). It is unfortunate that we
don´t have such example in the CWT draft. I can add it if others agree.

The second key is the one bound to the token to be used in the DTLS
handshake. This is what draft-ietf-ace-cwt-proof-of-possession is all
about. There are three different options to bind a key to the CWT, the
COSE_key, the encrypted COSE key and the raw kid. In the cases where COSE
key is used I expect the kid field in that object to be used. Regarding the
examples they are still in an early stage, and this is good input.

Hope this gave some clarity.
//Samuel