Hi Jim, Thanks for comments.
On 2019-03-03, 02:44, "Jim Schaad" <[email protected]> wrote: I am responding to the review below in regards to the most recent version -06. > -----Original Message----- > > Section 3.3 - Figure 4 - Where is the 'alg' parameter defined at that level? > > See next comment. > > [GS] alg parameter included > > > Section 3.3 - I am always bothered by the fact that PSK should really be > PSS > > at this point. The secret value is no longer a key and thus does not > > necessarily have a length. There is also a problem of trying to decide > what > > the length of this value would be based on the algorithm. If the client > > offers TLS_PSK_WITH_AES_128_CCM_8 and > TLS_PSK_WITH_AES_256_CCM_8 (I may > > have gotten these wrong but the intent should be understandable) then > what > > length is the PSK supposed to be? > > I think what you are saying is that for the shared secret (k) in the > COSE_Key structure in Fig. 4, the AS needs to tell C what to do with > that shared secret? This was the intention of the alg parameter (which > has a not-so-useful value in this example). Some of what is done here makes sense and some of it makes no sense at all. Happy with the removal of the "alg" parameter in the root map. Happy with the addition of the kid parameter in the COSE_Key object since this is required for doing DTLS w/o sending the token as the identifier. I have no idea what the algorithm is doing here? This is not currently a COSE algorithm, it is a TLS algorithm and thus would not make a great deal of sense. GS: I admit this does not make sense, neither here nor in Fig. 6. The terms of what the PSK length should be would be better covered by a statement along the lines of "When offering and/or accepting a TLS cryptographic suite, the length of the PSK should be at least as long as the symmetric encryption algorithms that are offered." This may already be pointed to in the TLS documents and thus can be referenced to rather than stated explicitly. GS: 1. If the PSK is not uniformly random, the security level is not given by the length. I note in the ACE framework: "The AS generates a random symmetric PoP key." Perhaps we should add 'uniform' to this text? 2. About the proposed text, how about making it into a consideration: "Note that the security level depends both of the length of PSK and the security of the TLS cipher suite and key exchange algorithm." I didn't find any text in TLS that I could reference. When looking at the KDF option that you are providing. I don't understand why you don't just make the KDF function and the length of the secret to be derived as pre-configured properties. There is absolutely nothing that prevents this from being a 141 byte value. GS: I'm not sure exactly what is requested. * HKDF-SHA-256 is mentioned as an example of a KDF, indeed this entire part of the section is an example. Do you want to remove the example using COSE_KDF_Context entirely, or just assume that selected components are preconfigured. * I agree that keyDataLength is restrictive, should we replace that with a consideration on security levels, like the text on PSK above? I am not seeing anything in the security considerations about protecting this secret and what all will be available to an attacker in the event that this secret is leaked. Specifically, it allows for any previously recorded session to be decrypted if the KID is leaked, such as using the KID as the key identifier in the handshake protocol rather than sending across the CWT (assuming that it is encrypted). It will allow for an impersonation attack to occur in the event that the KID for a client in the event that the KID is leaked as the attacker would be able to create the same token that is passed to the client. GS: I agree that a security consideration about protecting the key derivation key is needed. But this is another key shared between AS and RS, wouldn't the security considerations be similar? I don't understand what is the meaning of "KID is leaked". > > > Section 3.3 - Figure 5 - Is this defining a new set of entries for cnf or is > > there a missing layer someplace? > > This is indeed a new set of entries. An internal discussion between the > draft authors led to the opinion that we cannot use a COSE_Key structure > in the cnf structure as this would have different semantics as intended > here. We came to the conclusion that for key derivation, listing the > required fields directly in the cnf structure is the cleanest solution. > > [GS] new layer added, called ACE_Salt. This does not seem to be what was implemented in the current draft. GS: The example in section 3.3. of using the kid to derive a shared secret removes the need for this construct. > > Section 4 - The requirement that the "kid" be in a previously issued token > > would have problems with this if you were to use the "kid" of an RPK > which > > can be constant rather than being changed on each newly created token. > > To solve this we could require that the COSE_Key structure for RS's RPK > in the AS-to-Client response must also have a kid. Section 4 does not > prevent the kid to be constant. > > > Section 5 - this seems to be a very strange place to define the new > > parameter. > > True. How about moving this parameter to Section 4? > > [GS] Change already done. This seems to have just vanished - is that want is desired? GS: Yes, it was redundant since it is included in the framework Göran _______________________________________________ Ace mailing list [email protected] https://www.ietf.org/mailman/listinfo/ace
