Jim - I have updated https://github.com/cose-wg/cose-spec/pull/161 to remove 
the two proposed changes that you disagreed with.  Unless you weren't done 
reading the pull request changes, this should now be ready to merge.

                                                       -- Mike

From: Mike Jones
Sent: Sunday, June 12, 2016 11:43 PM
To: [email protected]
Subject: WGLC comments from Mike Jones on draft-ietf-cose-msg-12

I'll say up front that this spec is much improved since the last time I did a 
full read through.  Good progress.

Substantive comments meriting working group visibility are in this note.  
Corrections to grammatical, punctuation, and consistency nits are contained in 
the accompanying GitHub pull request, 
https://github.com/cose-wg/cose-spec/pull/161, which (lightly) touches 160 
lines.

====

Document Title:
Change "CBOR Encoded Message Syntax" to "CBOR Object Signing and Encryption 
(COSE)" so that the title contains and explains the intended acronym for the 
work.

1.4.  CBOR Related Terminology
Please change "Applications can either fail processing or process messages with 
incorrect labels, however they MUST NOT create messages with incorrect labels" 
to "Applications MUST fail processing for messages with incorrect labels and 
they MUST NOT create messages with incorrect labels".  The current wording is a 
major security hole in a security specification.  Please close the hole!

Also, please consider moving this important semantic requirement to a section 
other than the terminology section, in which it is likely to be overlooked.

2.  Basic COSE Structure
Readers could be misled by the very general wording of this section into 
thinking that COSE_Key structures are COSE Messages, as defined in this 
section.  Saying explicitly that a COSE_Key is not a COSE Message would help 
eliminate this potential source of confusion.

One of the places that I was confused in this way was the text "The following 
CDDL fragment identifies all of the top level messages defined in this 
document".  And yet even though COSE_Key is a top-level data structure, it 
wasn't in the list.

3.  Header Parameters

In "Applications SHOULD perform the same checks that the labels appearing in 
the protected and unprotected headers are unique as well", change the "SHOULD" 
to "MUST".  This is the same security hole as in 1.4, which needs to be closed. 
 Then delete the then-superfluous sentence: "If the message is not rejected as 
malformed, attributes MUST be obtained from the protected bucket before they 
are obtained from the unprotected bucket."

The following sentence seems garbled or as if it's missing word(s) near 
"generic": "It uses forward references to a group definition of headers for 
generic and algorithms."  Please revise.

In the following text, I can't tell what "; Algorithm_Headers," is intended to 
mean.  Is it a comment on either the previous or subsequent line?  If so, maybe 
move it onto the line.

header_map = {
    Generic_Headers,
    ; Algorithm_Headers,
    * label => values
}

4.4.  Signing and Verification Process
In the following sentence, I can't work out what "the appropriate authorization 
is done" refers to: "In addition to performing the signature verification, one 
must also perform the appropriate checks to ensure that the key is correctly 
paired with the signing identity and that the appropriate authorization is 
done."  Please clarify.

5.3.  Encryption Algorithm for AEAD algorithms
This instruction is ambiguous because it doesn't say how the key is 
represented: "For recipients of the message, recursively perform the encryption 
algorithm for that recipient, using the encryption key as the plain text".  I 
suspect "encryption key" should be changed to "encryption key represented as a 
COSE_Key structure".  This same language also occurs in 5.4.

7.1.  COSE Key Common Parameters
Change either the order of the parameters in Table 3 or the order of their 
descriptions afterwards so that they are presented in the same order in both 
places.

11.2.  Context Information Structure
In the AlgorithmID description, it should probably say that the AlgorithmID is 
represented in the same manner as the 'alg' header parameter.

12.2.  Key Wrapping
Similarly to the ambiguity in 5.3 and 5.4, the text "The plain text to be 
encrypted is the key from next layer down" doesn't say how the key is 
represented.  In this case, I think it's a raw symmetric key that's encrypted, 
right?  Please say what it is.

A.2.  Counter Signature Without Headers
Should the "counter signature w/o headers | 9 | bstr" value in Table 27 be 
added to the appropriate registry?  If the answer is "no", please change "9" to 
"TBD".

                                                       Thanks,
                                                       -- Mike


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

Reply via email to