Re: [jose] #26: Allow for signature payload to not be base64 encoded
Richard Barnes <rlb@ipv.sx> Fri, 28 June 2013 22:57 UTC
Return-Path: <rlb@ipv.sx>
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 A3C6221F9D55 for <jose@ietfa.amsl.com>; Fri, 28 Jun 2013 15:57:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.976
X-Spam-Level:
X-Spam-Status: No, score=-3.976 tagged_above=-999 required=5 tests=[AWL=-1.000, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, 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 kVXodb4a18Os for <jose@ietfa.amsl.com>; Fri, 28 Jun 2013 15:57:48 -0700 (PDT)
Received: from mail-oa0-f45.google.com (mail-oa0-f45.google.com [209.85.219.45]) by ietfa.amsl.com (Postfix) with ESMTP id AFD1721F9D41 for <jose@ietf.org>; Fri, 28 Jun 2013 15:57:48 -0700 (PDT)
Received: by mail-oa0-f45.google.com with SMTP id j1so2943885oag.32 for <jose@ietf.org>; Fri, 28 Jun 2013 15:57:48 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-originating-ip:in-reply-to:references:date :message-id:subject:from:to:cc:content-type:x-gm-message-state; bh=FgKQ3kUD1oUgB9TzOrdWfKATcz4Ey0+X8aaZQeUNPyE=; b=MqOnO04V4tArV1ohr391EwEdFgpo5I3oevq2H+ANVOCHYDMgae4gst0aqKveOIuBhO qOLvCVRop+ynQblxddYeGursmrofewuVmdpGVn4yNzb7plOXRFIHEdjPEgRxBpRO9ogv FLHdw4vk1DWrIbUXKeK5xycwuKbmAP9iuNsUMFXLU+5gHoyqcZiVwKdGkwVHS8gGGYgP krO5b5WKMZyrw3xoPrNhADMYWmioNnQZ4R6C3BHpQ0EsNodLFCRN35MIRAhD8zyR0Ltn mhOGndpZj5uDWMmibHNZJh7mo96V7YOsv+i35no4MYixatRHxt5U5dUrmjP0H0bDdbGX 8XKg==
MIME-Version: 1.0
X-Received: by 10.182.142.104 with SMTP id rv8mr7344965obb.3.1372460268234; Fri, 28 Jun 2013 15:57:48 -0700 (PDT)
Received: by 10.60.26.135 with HTTP; Fri, 28 Jun 2013 15:57:48 -0700 (PDT)
X-Originating-IP: [128.89.255.96]
In-Reply-To: <CAD9ie-sZ+w_HADMTnnkTC8XRJmjZvwYOmA+AhvJGTNPhhK=Z4g@mail.gmail.com>
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> <04bf01ce7359$5ab862c0$10292840$@augustcellars.com> <CAL02cgTkUrQptGqOfQyhCembS1e3Qxw3peRFnO5QjswUW=XR-w@mail.gmail.com> <CAD9ie-sZ+w_HADMTnnkTC8XRJmjZvwYOmA+AhvJGTNPhhK=Z4g@mail.gmail.com>
Date: Fri, 28 Jun 2013 18:57:48 -0400
Message-ID: <CAL02cgQbAQ8zhumdR_uvXjhbZM0iXpfPnmgcJrMUuh4+bj11NA@mail.gmail.com>
From: Richard Barnes <rlb@ipv.sx>
To: Dick Hardt <dick.hardt@gmail.com>
Content-Type: multipart/alternative; boundary="001a11c2eaaec1bf2d04e03ece82"
X-Gm-Message-State: ALoCoQmY7Mckp464EFiFIpfgHw3d/hOtwA2H2wZpn6Qcmew/4pgV9zqxqmau/ZEsHA7xYl2taRDC
Cc: Jim Schaad <ietf@augustcellars.com>, n-sakimura <n-sakimura@nri.co.jp>, Mike Jones <Michael.Jones@microsoft.com>, "jose@ietf.org" <jose@ietf.org>, "draft-ietf-jose-json-web-signature@tools.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: Fri, 28 Jun 2013 22:57:54 -0000
Hey Dick,
I guess I should have been clearer that I was only talking about the JSON
serialization. My proposed change would have no impact on the compact
serialization. Hopefully that answers your questions about separators,
etc.; they payload would just be a normal JSON string.
--Richard
On Thu, Jun 27, 2013 at 7:56 PM, Dick Hardt <dick.hardt@gmail.com> wrote:
>
>
>
> On Thu, Jun 27, 2013 at 3:24 PM, Richard Barnes <rlb@ipv.sx> wrote:
>
>> I think there are two separable issues here, both of which Mike and I
>> probably have divergent opinions on :)
>> 1. Syntax: Should it be possible for the "payload" field JWS to be a JSON
>> string (instead of base64) when the payload is simply a UTF-8 string?
>>
>
> One of the goals of the token was that it not require encoding for it to
> be transported in a request. IE that it be safe and SIMPLE to include in an
> HTTP header or in a URL
>
>
>> 2. Crypto: Must the JWS Signing Input be base64url encoded.
>>
>> The current answers to these questions are:
>> 1. It is not possible. Payload is always base64url encoded.
>> 2. It is always base64url encoded.
>>
>> The answers should be:
>> 1. The payload should not be base64url encoded unless it cannot be
>> represented as a JSON string.
>>
>
> How does an implementation determine which parts are separated? Are '.'
> escaped? Does the implementation need to parse the JSON to determine a
> valid separator? How does it know the end of the JSON? That sounds really
> hard to implement, or I am misunderstanding what you are proposing.
>
>
>
>> 2. The JWS Signing Input should not be base64url encoded unless there is
>> a JWS Protected Header
>>
>> Neither of these are complicated changes:
>> 1. Add a "b64" header parameter that indicates that the payload is
>> base64url-encoded binary, as opposed to a UTF-8 string. Specify that this
>> parameter is on by default in compact-formatted JWS objects.
>>
>
> And how is the header separated from the payload?
>
>
>> 2. Modify the signing/verification instructions to switch based on the
>> presence of a JWS Protected Header: "If the JWS Protected Header is absent
>> or empty, then the JWS Signing Input is simply the JWS Payload (not
>> encoded). If the JWS Protected Header has a non-empty value, then the the
>> JWS Signing Input is the concatenation of the Encoded JWS Header, a period
>> ('.') character, and the Encoded JWS Payload"
>>
>> There are two reasons for these, both of which are important to make sure
>> that this spec is applicable to a broad variety of use cases:
>> 1. Compactness. As Jim notes, quoted strings are shorter than
>> base64url-encoded strings
>>
>
> The tokens are already compact enough.
>
>
>> 2. Crypto-compatibility: Avoiding base64-encoding means that there's
>> nothing JWS-specific about the signature value. So for example, you could
>> translate a JWS with no protected attributes to a CMS SignedData object
>> with no protected attributes.
>>
>
> Not a useful feature from my point of view.
>
> -- Dick
>
- [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