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.