Replies inline marked “Mike>”…

From: jose [mailto:[email protected]] On Behalf Of Richard Barnes
Sent: Thursday, October 02, 2014 11:38 AM
To: Jim Schaad
Cc: [email protected]; The IESG; [email protected]; 
[email protected]
Subject: Re: [jose] Richard Barnes' Discuss on 
draft-ietf-jose-json-web-signature-33: (with DISCUSS and COMMENT)



On Thu, Oct 2, 2014 at 2:25 PM, Jim Schaad 
<[email protected]<mailto:[email protected]>> wrote:


-----Original Message-----
From: Richard Barnes [mailto:[email protected]<mailto:[email protected]>]
Sent: Wednesday, October 01, 2014 9:22 PM
To: The IESG
Cc: [email protected]<mailto:[email protected]>; 
[email protected]<mailto:[email protected]>; 
[email protected]<mailto:[email protected]>
Subject: Richard Barnes' Discuss on draft-ietf-jose-json-web-signature-33: 
(with DISCUSS and COMMENT)

Richard Barnes has entered the following ballot position for
draft-ietf-jose-json-web-signature-33: Discuss

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 http://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:
http://datatracker.ietf.org/doc/draft-ietf-jose-json-web-signature/



----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

Overall, this document is in much more solid shape than when it began.
Thanks to the WG for a lot of hard work.  I only have two remaining concerns, 
which should hopefully be easy to address.

Section 7.2.
I've had several implementors trying to use JWS in the JSON serialization ask 
why it was necessary to include a "signatures" array in cases where there's 
only one signer.  It seems like this is going to be a major barrier to 
deployment and re-use, so I would propose including the following text:

"""
In cases where the JWS has been signed by only a single signer, the 
"signatures" array will contain a single object.  In such cases, the elements 
of the single "signatures" object MAY be included at the top level of the JWS 
object.  A JSON-formatted JWS that contains a "signatures" field MUST NOT 
contain a "protected", "header", or "signature" field, and vice versa.
"""

This may also require some other changes where "signatures" is relied on, e.g., 
in Section 9 of the JWE spec.

Mike> This was previously proposed (I believe during the Denver interim 
meeting) and rejected by the working group because it complicates both 
producers and parsers by introducing an unnecessary special case.  Currently, 
by design, whether there are single or multiple signatures, the same syntax is 
used.  Your proposal would use a different syntax in the single signature case 
than in the multiple signature case.  This is likely to result in 
implementation bugs and inconsistencies.

Section 6.
"""
These Header Parameters MUST be integrity protected if the information that 
they convey is to be utilized in a trust decision.
"""
This smells really fishy to me.  What's your attack scenario?  I'm pretty 
certain that there's no way any of these fields can be altered in such a way 
that (1) the signature will validate, and (2) the recipient will accept a key 
it shouldn't.  By way of contrast, CMS doesn't sign the certificate fields, and 
the Certificate payload in TLS is only signed as a side effect of the 
protocol's verification that the remote end has been the same through the whole 
handshake (which doesn't apply here).
[JLS] There were a couple of attacks that were created for CMS based on using 
the SKI as the identifier in CMS.  There now exists a signed attribute for CMS 
to deal with this problem.   IMO the pointer the certificate probably should be 
a required signing field in CMS

Citation?

Mike> The attack scenario is trivial to describe.  If an attacker can change 
information used in a trust decision, the trust decision has no validity.  
Unless the information is integrity-protected, the attacker could change the 
non-integrity-protected portions of the JWS in an undetectable way.

Mike> For what it’s worth, Sean had us add language in a number of places that 
basically said that information is only as trustworthy as its source and the 
means by which it is obtained.  If I remember correctly, this was one of those 
places.

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

Section 2.
In the definition of "Unsecured JWS", it would be good to note that this 
requires "alg" == "none".

Mike> OK

Section 3.3.
Why doesn't this section have a JSON-encoded form as well?

Mike> Because it’s mean to be a simple introductory example to help people get 
their head around the concept – not a complete tutorial.  Other examples of 
JSON-encoded objects are found elsewhere in the document and in the cookbook.

Appendix A.5.
I would prefer if this example could be removed.  JWT is the only use case for 
Unsecured JWS right now, and there's already an example in that document.

Mike> Given that it’s important that implementers using them understand 
Unsecured JWSs, there is motivation to retain the example.  I’d be interested 
in what others in the working group think, given that there was substantial 
support for retaining this functionality when its removal was proposed.

Thanks for Appendix C.  FWIW, it has been implemented:
http://dxr.mozilla.org/mozilla-central/source/dom/crypto/CryptoBuffer.cpp#85

Mike> You’re welcome.

                                                            -- Mike
_______________________________________________
jose mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/jose

Reply via email to