- From: Anders Rundgren <anders.rundgren.net@gmail.com>
- Date: Sun, 01 Sep 2013 06:56:44 +0200
- To: noloader@gmail.com
- CC: "public-webcrypto-comments@w3.org" <public-webcrypto-comments@w3.org>
On 2013-08-31 21:30, Jeffrey Walton wrote: > Hi Anders, > > I think these are personal nits, so take them with a grain of salt. Hi Jeffrey, I hope you don't mind me putting all your questions in a single response. The naked truth is that I was a total JSON newbie just weeks ago and did some assumptions that turned out to be dead-wrong. I "thought" that JSON properties were comparable to XML elements and yes, there _are_ parsers that can deal with multiple instances of the same property and maintain strict sequences as well. But the JSON experts told me (mostly in a nice way) that this would be a bad foundation for a new system. So JSON properties are rather like XML attributes. I got that now :-) :-) So lets focus on the details... Properties and Sorting ====================== Parsed messages should not depend on any particular order of properties. Canonicalization must therefore do this step. This "new" constraint didn't exactly kill the system, a single flag and line did the trick: for (String property : sort ? new TreeSet<String> (object.properties.keySet ()).descendingSet () : object.properties.keySet ()) { } Detached Signatures =================== JCS (JSON Clear-text Signature) was only designed to cope with JSON-based messaging. I takes a committee to "improve" a system so that it covers everything. Version ======= Good idea, it's there now! I have cleaned-up the document considerably based on the input I got. I think that most if not all of your issues should be covered now. Cheer Anders https://openkeystore.googlecode.com/svn/resources/trunk/docs/Enveloped-JSON-Signatures.pdf > >> Canonicalization: >> - Sort properties > So, does that mean I reject anything that is not sorted? I'm happy to > do so if that's the rules. > > If properties must be sorted, then I will process a message as so: > "properties must be sorted; these are not sorted; its not a well > formed message; reject". > >> "Now": "2013-08-30T07:56:08+02:00", >> "ID": "lADU_sO067Wlgoo52-9L", >> "STRINGS": ["One","Two","Three"], >> "EscapeMe": "A\\\n\"", >> "Intra": 78, > These are on the same level, but not sorted. I would reject this message. > > If people are going to following it as if its a suggestion, then you > might as well leave it out. > >> "SignatureValue": "MEYCIQCCAxLBoPw5h8hW4M...L5t0XscOTPWXE67c1SCT" > I would prefer something that acts more like a detached signature. > MessageSignature could be the tuple {MessageId, SignatureValue}, with > MessageId acting like a [untrusted] hint. > > But again, this is just my personal preference. > > Jeff > > On Sat, Aug 31, 2013 at 2:57 PM, Anders Rundgren > <anders.rundgren.net@gmail.com> wrote: >> Hi, >> Based on the _extremely_ useful feedback received, I have decided to update the proposed clear-text JSON Signature scheme. >> >> Canonicalization: >> - Remove whitespace >> - Unescape "strings" >> - Sort properties >> >> Signature scope: a JSON Signature signs the object (including possible child objects) it is declared in. >> >> That is, the final XML DSig "leftover", the awkward Reference has been shelved. >> I expect the resulting code to be even shorter than today :-) >> >> { >> "@context": "http://example.com/test-signature", >> "Now": "2013-08-30T07:56:08+02:00", >> "ID": "lADU_sO067Wlgoo52-9L", >> "STRINGS": ["One","Two","Three"], >> "EscapeMe": "A\\\n\"", >> "Intra": 78, >> "Signature": >> { >> "SignatureInfo": >> { >> "Algorithm": "http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256", >> "KeyInfo": >> { >> "SignatureCertificate": >> { >> "Issuer": "CN=Demo Sub CA,DC=webpki,DC=org", >> "SerialNumber": 1377713637130, >> "Subject": "CN=example.com,O=Example Organization,C=US" >> }, >> "X509CertificatePath": >> [ >> "MIIClzCCAX+gAwIBAgIG...RBYG3uk9W/uNIHdoyQn19w==" >> ] >> } >> }, >> "SignatureValue": "MEYCIQCCAxLBoPw5h8hW4M...L5t0XscOTPWXE67c1SCT" >> }, >> } >> >> The sample shows the new KeyGen2 message structure which has been derived from JSON-LD (@context) >> >> https://openkeystore.googlecode.com/svn/resources/trunk/docs/Enveloped-JSON-Signatures.pdf
Received on Sunday, 1 September 2013 04:57:17 UTC