Re: [jose] #26: Allow for signature payload to not be base64 encoded
"Jim Schaad" <ietf@augustcellars.com> Thu, 27 June 2013 17:12 UTC
Return-Path: <ietf@augustcellars.com>
X-Original-To: jose@ietfa.amsl.com
Delivered-To: jose@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CE83721F9D69 for <jose@ietfa.amsl.com>; Thu, 27 Jun 2013 10:12:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.042
X-Spam-Level:
X-Spam-Status: No, score=-3.042 tagged_above=-999 required=5 tests=[AWL=0.557, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id H5OWYN5TOcaP for <jose@ietfa.amsl.com>; Thu, 27 Jun 2013 10:12:24 -0700 (PDT)
Received: from smtp4.pacifier.net (smtp4.pacifier.net [64.255.237.176]) by ietfa.amsl.com (Postfix) with ESMTP id 88FB221F9E76 for <jose@ietf.org>; Thu, 27 Jun 2013 10:12:21 -0700 (PDT)
Received: from Philemon (mccpool-66-89.ci.monterey.ca.us [205.155.66.89]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: jimsch@nwlink.com) by smtp4.pacifier.net (Postfix) with ESMTPSA id 3D42838F00; Thu, 27 Jun 2013 10:12:21 -0700 (PDT)
From: Jim Schaad <ietf@augustcellars.com>
To: 'Mike Jones' <Michael.Jones@microsoft.com>, 'n-sakimura' <n-sakimura@nri.co.jp>
References: <061.c2fcfec0a75d48eb8b194991ce56157e@trac.tools.ietf.org> <076.3f5d1244c042cd87bfb07814924fcbc9@trac.tools.ietf.org> <033a01ce729b$26bc3910$7434ab30$@augustcellars.com> <51CBA981.4050006@nri.co.jp> <048f01ce7355$19f05bc0$4dd11340$@augustcellars.com> <4E1F6AAD24975D4BA5B1680429673943678A0114@TK5EX14MBXC283.redmond.corp.microsoft.com>
In-Reply-To: <4E1F6AAD24975D4BA5B1680429673943678A0114@TK5EX14MBXC283.redmond.corp.microsoft.com>
Date: Thu, 27 Jun 2013 10:11:24 -0700
Message-ID: <04bf01ce7359$5ab862c0$10292840$@augustcellars.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQFbtMM0AVMbmndwUUG6vntocHGkoALWvDclApUnp/sBuDIBRgE/jA4aApzLX2SZ10WFIA==
Content-Language: en-us
Cc: jose@ietf.org, draft-ietf-jose-json-web-signature@tools.ietf.org
Subject: Re: [jose] #26: Allow for signature payload to not be base64 encoded
X-BeenThere: jose@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Javascript Object Signing and Encryption <jose.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jose>, <mailto:jose-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/jose>
List-Post: <mailto:jose@ietf.org>
List-Help: <mailto:jose-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jose>, <mailto:jose-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 27 Jun 2013 17:12:29 -0000
No, my motivation is to allow for a smaller version of the payload string. In some cases quoting it will generate a smaller string than doing the base64 conversion on the string. > -----Original Message----- > From: Mike Jones [mailto:Michael.Jones@microsoft.com] > Sent: Thursday, June 27, 2013 9:49 AM > To: Jim Schaad; 'n-sakimura' > Cc: draft-ietf-jose-json-web-signature@tools.ietf.org; jose@ietf.org > Subject: RE: [jose] #26: Allow for signature payload to not be base64 encoded > > Jim, you wrote "If I am not transporting the base64url encoded content, > because it is not in the "payload" field, then why should I need to base64 > encode it just to validate the signature. This is the alto case." > > So am I correct then, in thinking that your motivation for #26 is actually #25 - > Detached content for the ALTO use case? As John and Nat had written, this > could be handled by the specs as they are today by signing a hash of the > detached content and including a compact JWS representing that signature as > an x-alto-signature header. That doesn't require changing the signature > calculation. > > -- Mike > > -----Original Message----- > From: Jim Schaad [mailto:ietf@augustcellars.com] > Sent: Thursday, June 27, 2013 9:41 AM > To: 'n-sakimura' > Cc: draft-ietf-jose-json-web-signature@tools.ietf.org; Mike Jones; > jose@ietf.org > Subject: RE: [jose] #26: Allow for signature payload to not be base64 encoded > > Nat, > > The only thing that can be signed or encrypted is an octet string. (A slight over > generalization. GOST for example hashes an integer, tree hashes can do > strange things but a sufficiently true statement for our purposes.) > > A that being said - yes case 1 would be something you can do. Case #2 would > not be something that you can do because it is not an octet string. > > If you are looking at JavaScript, in order to hash something as an octet string it > can be one of three things. A UInt8Array, an Int8Array and, due to > convention, a string where the top byte of all of the code points in the string is > zero. > > We currently don't have an efficient way to encode the Uint8Array case, > although that might not be true if we are looking at new ECMA specifications > which apparently are adding more defined types and serialization methods for > those types. > > > -----Original Message----- > > From: n-sakimura [mailto:n-sakimura@nri.co.jp] > > Sent: Wednesday, June 26, 2013 7:55 PM > > To: Jim Schaad > > Cc: draft-ietf-jose-json-web-signature@tools.ietf.org; > > michael.jones@microsoft.com; jose@ietf.org > > Subject: Re: [jose] #26: Allow for signature payload to not be base64 > > encoded > > > > Let me understand the problem. > > > > Are you suggesting that we should be able to do something like: > > > > Case 1: > > > > {"protected":<integrity-protected shared header contents>", > > "unprotected":<non-integrity-protected shared header contents>", > > "payload":"this is a multi\nline text payload of which a line > > can be very very very long and wrapped during transmission. " > > "signatures":[ > > {"header":"<per-signature unprotected header 1 contents>", > > "signature":"<signature 1 contents>"}, > > ... > > {"header":"<per-signature unprotected header N contents>", > > "signature":"<signature N contents>"}], > > } > > > > or even > > > > Case 2: > > > > {"protected":<integrity-protected shared header contents>", > > "unprotected":<non-integrity-protected shared header contents>", > > "payload":{ > > "this":"is a json", > > "payload":"which is not base64url encoded" > > } > > "signatures":[ > > {"header":"<per-signature unprotected header 1 contents>", > > "signature":"<signature 1 contents>"}, > > ... > > {"header":"<per-signature unprotected header N contents>", > > "signature":"<signature N contents>"}], > > } > > > > Then, I am worried about allowing them because in general we would not > > know what would a transmission mechanism and user agents (including > > text > > editors) would do to them, like Mike mentioned. I do not think we > > should assume the property of the transmission mechanism in JOSE level. > > Assuming that would cause brittleness in the implementations. > > > > For detached signature, I do not understand why you would want non- > > base64url encoded payload. The application should define how to hash > > the octet stream that it wants to calculate signature over it, and we > > can just include the base64url encoded hash in the "payload". > > Why would you like to do other encoding for the hash? > > If I am not transporting the base64url encoded content, because it is not in > the "payload" field, then why should I need to base64 encode it just to > validate the signature. This is the alto case. > > Jim > > > > > -- > > Nat Sakimura (n-sakimura@nri.co.jp) > > Nomura Research Institute > > > > PLEASE READ: > > The information contained in this e-mail is confidential and intended > > for the named recipient(s) only. > > If you are not an intended recipient of this e-mail, you are hereby > > notified that any review, dissemination, distribution or duplication > > of this message is strictly prohibited. If you have received this > > message in error, please notify the sender immediately and delete your > copy from your system.
- [jose] #26: Allow for signature payload to not be… jose issue tracker
- Re: [jose] #26: Allow for signature payload to no… jose issue tracker
- Re: [jose] #26: Allow for signature payload to no… Jim Schaad
- Re: [jose] #26: Allow for signature payload to no… Mike Jones
- Re: [jose] #26: Allow for signature payload to no… John Bradley
- Re: [jose] #26: Allow for signature payload to no… n-sakimura
- Re: [jose] #26: Allow for signature payload to no… Jim Schaad
- Re: [jose] #26: Allow for signature payload to no… Jim Schaad
- Re: [jose] #26: Allow for signature payload to no… Mike Jones
- Re: [jose] #26: Allow for signature payload to no… Jim Schaad
- Re: [jose] #26: Allow for signature payload to no… Richard Barnes
- Re: [jose] #26: Allow for signature payload to no… Mike Jones
- Re: [jose] #26: Allow for signature payload to no… Dick Hardt
- Re: [jose] #26: Allow for signature payload to no… Edmund Jay
- Re: [jose] #26: Allow for signature payload to no… Matias Woloski
- Re: [jose] #26: Allow for signature payload to no… Richard Barnes
- Re: [jose] #26: Allow for signature payload to no… Richard Barnes
- Re: [jose] #26: Allow for signature payload to no… Dick Hardt
- Re: [jose] #26: Allow for signature payload to no… Mike Jones
- Re: [jose] #26: Allow for signature payload to no… Richard Barnes
- Re: [jose] #26: Allow for signature payload to no… Dick Hardt
- Re: [jose] #26: Allow for signature payload to no… Richard Barnes
- Re: [jose] #26: Allow for signature payload to no… Dick Hardt
- Re: [jose] #26: Allow for signature payload to no… Richard Barnes
- Re: [jose] #26: Allow for signature payload to no… Dick Hardt
- Re: [jose] #26: Allow for signature payload to no… John Bradley
- Re: [jose] #26: Allow for signature payload to no… Mike Jones
- Re: [jose] #26: Allow for signature payload to no… Mike Jones
- Re: [jose] #26: Allow for signature payload to no… Manger, James H
- Re: [jose] #26: Allow for signature payload to no… jose issue tracker