Re: [Ace] Review of draft-selander-ace-cose-ecdhe-02
Göran Selander <goran.selander@ericsson.com> Wed, 31 August 2016 13:55 UTC
Return-Path: <goran.selander@ericsson.com>
X-Original-To: ace@ietfa.amsl.com
Delivered-To: ace@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9CA0012DCD8 for <ace@ietfa.amsl.com>; Wed, 31 Aug 2016 06:55:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.221
X-Spam-Level:
X-Spam-Status: No, score=-4.221 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9eqswGdr2hBd for <ace@ietfa.amsl.com>; Wed, 31 Aug 2016 06:55:47 -0700 (PDT)
Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2A10312DBA3 for <ace@ietf.org>; Wed, 31 Aug 2016 06:44:42 -0700 (PDT)
X-AuditID: c1b4fb2d-cf87d980000019a3-92-57c6df481ccd
Received: from ESESSHC005.ericsson.se (Unknown_Domain [153.88.183.33]) by (Symantec Mail Security) with SMTP id 60.D5.06563.84FD6C75; Wed, 31 Aug 2016 15:44:40 +0200 (CEST)
Received: from ESESSMB303.ericsson.se ([169.254.3.133]) by ESESSHC005.ericsson.se ([153.88.183.33]) with mapi id 14.03.0301.000; Wed, 31 Aug 2016 15:44:35 +0200
From: Göran Selander <goran.selander@ericsson.com>
To: Jim Schaad <ietf@augustcellars.com>, "draft-selander-ace-cose-ecdhe@tools.ietf.org" <draft-selander-ace-cose-ecdhe@tools.ietf.org>, "ace@ietf.org" <ace@ietf.org>
Thread-Topic: [Ace] Review of draft-selander-ace-cose-ecdhe-02
Thread-Index: AdHtPoYq0jj2+v67TYSluvCIdfOuggWT0pOA
Date: Wed, 31 Aug 2016 13:44:34 +0000
Message-ID: <D3EC87C8.68087%goran.selander@ericsson.com>
References: <04da01d1edd7$9898fe50$c9cafaf0$@augustcellars.com>
In-Reply-To: <04da01d1edd7$9898fe50$c9cafaf0$@augustcellars.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.6.6.160626
x-originating-ip: [153.88.183.20]
Content-Type: text/plain; charset="utf-8"
Content-ID: <5CD7C3F05D363C4B98E2D7D488AAAE81@ericsson.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRmVeSWpSXmKPExsUyM2K7oq7H/WPhBpNvy1p8/9bDbNF9w8li 9fTvbA7MHhvnTGfzWLLkJ5PHl8uf2QKYo7hsUlJzMstSi/TtErgy/rz1L+iJrvh5fRVrA+OD iC5GTg4JAROJKVs2MoPYQgLrGSXapyt1MXIB2UsYJVY8/8YOkmATcJF40PCICSQhIrCSUeL6 2ntsIAlhAVuJxS+msXQxcgAl7CQ+PIoGCYsIGEkc+d7MBGKzCKhKNP36yQJi8wpYSKw/d5sJ Ypm9xON3H8Hmcwo4SLyd/A5sJKOAmMT3U2vAapgFxCVuPZnPBHGogMSSPeeZIWxRiZeP/7GC 2KICehLPTi5mhIgrSlydvpwJ5BxmAU2J9bv0IcZYS5z58IIdwlaUmNL9kB3iHEGJkzOfsExg FJuFZNsshO5ZSLpnIemehaR7ASPrKkbR4tTi4tx0I2O91KLM5OLi/Dy9vNSSTYzAGDu45bfu DsbVrx0PMQpwMCrx8C44eTRciDWxrLgy9xCjBAezkgjv9LvHwoV4UxIrq1KL8uOLSnNSiw8x SnOwKInz+r9UDBcSSE8sSc1OTS1ILYLJMnFwSjUwzn6909DtVFzzo9pbMuLrDIPnWEv1+dx6 eWCS76OF83lLHtz4PGeZ3+WaX2fdrpy3/JnwwmLTvpr2AOUwroXTZ38S5c737nX+Vq/6JiT2 9UOvVSyRz558Ztn3qbav7k0gE5vhcnPdaYb1rw3iDhn4LrvisDA1+OLOBQcWcB0/EypoWXtG WmrrbiWW4oxEQy3mouJEACFURxOtAgAA
Archived-At: <https://mailarchive.ietf.org/arch/msg/ace/8FNXkX1P_weDDSR1HCXbc_xL5MY>
Subject: Re: [Ace] Review of draft-selander-ace-cose-ecdhe-02
X-BeenThere: ace@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Authentication and Authorization for Constrained Environments \(ace\)" <ace.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ace>, <mailto:ace-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ace/>
List-Post: <mailto:ace@ietf.org>
List-Help: <mailto:ace-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ace>, <mailto:ace-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 31 Aug 2016 13:55:51 -0000
Hi Jim, Thanks very much for good comments, replies inline. On 2016-08-04 00:37, "Ace on behalf of Jim Schaad" <ace-bounces@ietf.org on behalf of ietf@augustcellars.com> wrote: >This may be a bit scatterbrained as I did this review in several sessions >and the thoughts might not be consistent. > >1. In section #1, I would put in the fact that the derived key would only >be used for a period of time, after which a new ECDH key exchange would be >run again. Agree. > >2. It is not clear, but based on how the value of kid_ev is defined, it >might be reasonable to state that there is an expectation that generally U >will be a client and V a server. Correct, but there is also the desire to use the context for client and server switching roles, and more generally sender and listener in a group. This relates to your comments on OSCOAP. > >3. I would like to see the PSK half of the world setup so that it is not >required that the same key/kid pair be used in both directions. Using a >different key in each direction makes things cleaner for some issues. >Both >cases of the same and different pairs should be permitted. OK. > >4. I see no reason to say that what one is negotiating is a hash >function. >What you are negotiating is a "Key Agreement w/ KDF" algorithm. I don't >see >that you are using the hash function by itself anywhere. For simplicity changed to negotiation of KDF, OK? > >5. In section 2, you should give a reason for including or not including >the nonces in the protocol. Since they are optional when would they be >useful? It is explained in [RFC5869] which is referenced but we can add that. > >6. In section 2, do you expect that TCA is restricted to CEK or would MAC >algorithms be usable as well? Changed to "AEAD or MAC". > >7. In section 2, I missed where the replay parameter was included in the >COSE_Header - it seems to be in the key for party U and non-existant for >party V. The closest that one comes it the use of the message_1 signature >as AAD. Yes, replay is mainly an issue for party V. > >8. In figure 3, I would prefer to see two different traffic keys being >derived. It is not an issue in Figure 2 as that just says keying >material. >Using different keying material in each direction prevents reflection >attacks. I think we are just copying TLS 1.3 terminology here. “traffic_secret_0” is the “base key” used to derive the different client and server keys you request. > >9. In section 2.1, you talk about authentication methods but do not >discuss >authorization methods. Does this need to be built into message_1 or are >there other methods that will be functional here. May need to refer to >how >some of them might work since this will also potentially affect how the >distribution of the keys in advance works. For example, if an OAUTH token >is published to a well-known location that contains both authorization and >authentication information. Good catch. There is a story for how EDHOC works with ACE but we forgot to mention it here and make the reference: See figure 1 of https://tools.ietf.org/html/draft-seitz-ace-oscoap-profile-00 > >10. In section 3.1, I am not sure that you really want to have only a >single algorithm in this specification. I would make it more generation >in >terms of how a COSE_Key is built and then have a statement elsewhere >rather >than spread throughout the document about what algorithms are mandatory to >support. Yes, this was just to be concrete. Good proposal. > >11. In section 3.4.2 - I think that you need to have a more comprehensive >external_AAD structure that what is here. I am not sure that you should >not >AAD information from the CoAP header as well in all of the messages. This should be the entire message_1. > >12. Stupid question - Can you do a PSK in one direction and a signature in >the other? I’d like to pass that question on to CFRG. > >13. Not sure that it matters, but you have the COSE_KDF_Context structure >wrong everywhere. The partyU and partyV fields are not optional. Yes, we are re-considering the identities used. Also relates to your comment on OSCOAP. > >14. Section 3.5, I don't believe in uniquely identified kids on any >device >unless that device is going to enforce that as a true statement. That >means >that it will not allow for a key to be registered with it unless the kid >is >unique. There is nothing wrong with doing an exhaustive search of all >of >the keys with the same kid as long as the number of them is not too large. We strive for allowing a) short identifiers if there is a naming authority and b) sufficiently long random identifiers if a) is not possible. If possible we would like to avoid exhaustive search, although that would be doable. > >15. Section 3.5.3: If you are sending along a certificate, it is not >clear >to me that you need to have a kid as well. The certificate is where you >are >going to get the key from not the kid. Agree. > >16. Section 4.1 - kid_eu - Does this really need to be a counter on a per >party V basis or can it just be a counter based on the use of the >credential >that is being used to do the authentication? Yes, the latter is fine. We are considering this also in OSCOAP. > > >17. Section 5 - what happens if N_U or N_V is longer than the size of the >hash function. Good catch. This construct was intended to simply incorporate arbitrarily small nonces, as is encouraged in section 3.1 of [RFC5869]. >Also, what do you mean by the size of the hash function? Is >this the barrel size or the output size? Output size. > >18. Identity of the Parties: There is a question on what the identity >structure that is being used to grant access is for ACE. For those who >have >been in the IETF long enough, one answer would be to move back to the >world >of SPKI (Simple Public Key Infrastructure) where the key is the entity >that >is used for identifying an entity and not some other piece of information >like a text string or an address. Doing a security analysis, one might >find >that one wishes to do a binding of the identity information into the key >derivation process. If keys are the marker of identity, then this is >would >be including the keys as part of the context information thus tying the >signature and key into the resulting key. The requirement to include >identity information is probably needed more if access control is being >based on a name rather than a key however. In this case it is likely more >important that the binding processes is included in the KDF context in >some >manner. So far in EDHOC and OSCOAP the identity has been associated to the key, mainly for reasons of optimization. As mentioned above we are reconsidering this, for reasons of generality. > >19. Use of the signature/MAC for chaining of items: I did a fast review >of >how the fields of message_1 and message_2 are used in the final KDF >processing. From what I saw, there are only a couple of things that are >not >directly re-used as part of the context. These are: 1) the exact encoding >of the messages, 2) the list of key agreement algorithms, 3) the list of >TCA >algorithms, 4) kid_eu and kid_ev, and 5) the protected attributes in each >of >the messages. >Exact encoding can be addressed by using the same encoding rules that are >in >COSE - that is use of a minimal encoding size along with a stricter >statement bout checking the grammar in the processing rules. >I am not worried about the two lists of algorithms as message_1 is >authenticated and the rules should state that the returned values in >message_2 are checked against the original list. The final pair of >algorithms are either directly (TCA) or indirectly (Key agreement) >included >in the computing of the traffic keys. >The KIDs might want to be included, and doing so would allow for >generation >of different traffic keys in each direction. >The protected attributes should potentially be included in the computation >along with the keys to provide tying the identity and signatures together >in >a tighter binding. I don't know that there is an attack that can be >launched here, but this would make it that much more difficult. Seems prudent, we will consider this in the next version. Thanks Göran
- [Ace] Review of draft-selander-ace-cose-ecdhe-02 Jim Schaad
- Re: [Ace] Review of draft-selander-ace-cose-ecdhe… Göran Selander
- Re: [Ace] Review of draft-selander-ace-cose-ecdhe… Göran Selander