-----Original Message-----
From: Robert Wilton via Datatracker <[email protected]> 
Sent: Tuesday, June 9, 2020 11:16 AM
To: The IESG <[email protected]>
Cc: [email protected]; [email protected]; 
[email protected]; Matthew Miller <[email protected]>; 
[email protected]
Subject: Robert Wilton's No Objection on draft-ietf-cose-rfc8152bis-algs-09: 
(with COMMENT)

Robert Wilton has entered the following ballot position for
draft-ietf-cose-rfc8152bis-algs-09: No Objection

When responding, please keep the subject line intact and reply to all email 
addresses included in the To and CC lines. (Feel free to cut this introductory 
paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-cose-rfc8152bis-algs/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Hi,

I've only reviewed the diff against RFC8152.   The vast majority of this
document seemed to have only minimal changes and looked fine from what I could 
see.

A few minor comments that may help improve the document:

Abstract

   Concise Binary Object Representation (CBOR) is a data format designed
   for small code size and small message size.  There is a need for the
   ability to have basic security services defined for this data format.
   This document defines the CBOR Object Signing and Encryption (COSE)
   protocol.  This specification describes how to create and process
   signatures, message authentication codes, and encryption using CBOR
   for serialization.  COSE additionally describes how to represent
   cryptographic keys using CBOR.

   In this specification the conventions for the use of a number of
   cryptographic algorithms with COSE.

First sentence of the second paragraph doesn't quite scan, and I wasn't 
convinced that the first paragraph is necessarily correct/accurate after the 
document split (in particular the "This document" and "This specification"
bits).
[JLS] Fixed in reply to Roman's comment.

Section 7.2

   x:   This contains the public key.  The byte string contains the
        public key as defined by the algorithm.  (For X25591, internally
        it is a little-endian integer.)

   d:   This contains the private key.

One minor thing that I noted, is that you define that the public key is defined 
by the algorithm, but don't say the same thing for the private key.  If you 
change this, then you might want to check other references to "private key" as 
well.
[JLS] Under normal circumstances I would have omitted the definition of the 
public key from that text.  The problem is that there has been a lot of issues 
with this because it is the reverse of what is normally done.  Almost all 
integers are normally big-endian in cryptograph, and thus I am highlighting a 
single case where it is not.  I will also point to the existence of 
https://tools.ietf.org/html/draft-ietf-lwig-curve-representations-09 which uses 
the same curve under a different representation and done the big-endian 
encoding.  

8.  COSE Capabilities

   The concept is being pulled forward and defined now for
   COSE.

Perhaps rephrase this to: "This document defines the same concept for COSE."
[JLS] That is better than the wording from Roman - updated to use this.

8.  COSE Capabilities

   The algorithm identifier is not part of the capabilities data as it
   should already be part of message structure.  There is a presumption
   in the way that this is laid out is that the algorithm identifier
   itself is not needed to be a part of this as it is specified in a
   different location.

I found the second sentence somewhat unclear and could probably be wordsmithed, 
in particular does "this" refer to the capabilities data or the message 
structure.
[JLS] This has already been changed in response to Roman.

8.  COSE Capabilities

   Two different types of capabilities are defined: capabilities for
   algorithms and capabilities for key structures.  Once defined by
   registration with IANA, the list of capabilities is immutable.  If it
   is later found that a new capability is needed for a key type or an
   algorithm, it will require that a new code point be assigned to deal
   with that.  As a general rule, the capabilities are going to map to
   algorithm-specific header parameters or key parameters, but they do
   not need to do so.  An example of this is the HSS-LMS key
   capabilities defined below where the hash algorithm used is included.

Defining the capabilities list as immutable seemed like a misnomer to me 
because a new IANA registration would mutate the list.  Perhaps this sentence, 
and the one following it, could be removed?
[JLS] The whole object is that once registered with IANA, it will never be 
changed even by IANA.  Thus I believe that the word immutable seems to be 
correct.  If this is changed then existing signatures will fail and key 
derivation functions will generate different results.

   The capability structure is an array of values, the order being
   dependent on the specific algorithm or key.  For an algorithm, the
   first element should always be a key type value, but the items that
   are specific to a key should not be included in the algorithm
   capabilities.  This means that if one wishes to enumerate all of the
   capabilities for a device which implements ECDH, it requires multiple
   pairs of capability structures (algorithm, key) to deal with the
   different key types and curves that are supported.  For a key, the
   first element should also be a key type value.  While this means that
   this value will be duplicated if both an algorithm and key capability
   are used, the key type is needed in order to understand the rest of
   the values.

Should you be using RFC 2119 language here?  And should " key should not be 
included" be "MUST NOT"?
[JLS] Responded to this point in Roman's comments.

For the ECDH case, does that mean that the "algorithm" entry will be duplicated 
with different "key" entries?  If so, would it help clarify to explicitly state 
this?
[JLS] Would pointing to the second and third examples in section 8.3 along with 
some explanatory text?

Jim

Thanks,
Rob



_______________________________________________
COSE mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/cose

Reply via email to