[jose] Deployed Code (was: Re: #23: Make crypto independent of binary encoding (base64))

Richard Barnes <rlb@ipv.sx> Thu, 13 June 2013 14:36 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 3AC8121F8ECE for <jose@ietfa.amsl.com>; Thu, 13 Jun 2013 07:36:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.083
X-Spam-Level:
X-Spam-Status: No, score=0.083 tagged_above=-999 required=5 tests=[AWL=-0.273, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RDNS_NONE=0.1, SHORT_HELO_AND_INLINE_IMAGE=0.781]
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 5FLZU6xfnNOv for <jose@ietfa.amsl.com>; Thu, 13 Jun 2013 07:36:00 -0700 (PDT)
Received: from mail-ob0-x22a.google.com (mail-ob0-x22a.google.com [IPv6:2607:f8b0:4003:c01::22a]) by ietfa.amsl.com (Postfix) with ESMTP id 630F321F9A93 for <jose@ietf.org>; Thu, 13 Jun 2013 07:35:59 -0700 (PDT)
Received: by mail-ob0-f170.google.com with SMTP id ef5so15133324obb.15 for <jose@ietf.org>; Thu, 13 Jun 2013 07:35:58 -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:date:message-id:subject:from:to:cc :content-type:x-gm-message-state; bh=BuMkka6wdfJTNKkG2ilFy1SgYk/B1IFkxZslMnvPDic=; b=pH7vmpIkAwLTAlPRXjsvHgteJG/7/G5VIi5B29pO+S5kls3wSTaxLWnTffFFckkV60 dpkKE6JJ6dyV0Tsi2CAnnpJ7efs45nYfMcK5+JLqAFwPu7foNl6jH0+/RwhHG5M7Umuu 9a+Pa1nc4/1Hc+GtgR2/DtybhgRFpoyeXgZJiPwHSFpLozr1EmEmcRP0EZbgpkb/znmx 6AIbqMd3w4OnJ5ik48qJkWui1BcJndVHnVA/9bYyWAsi4QpyxMzD2/v6kaFTtiN36uB2 yGPC0DCb+41iOVxEbbJmsiWo/sqEzS4e7TX7h3m/lPLooOspQyzBdgYQC+p/juxyAr4o iRtA==
MIME-Version: 1.0
X-Received: by 10.60.52.15 with SMTP id p15mr892901oeo.87.1371134158742; Thu, 13 Jun 2013 07:35:58 -0700 (PDT)
Received: by 10.60.84.8 with HTTP; Thu, 13 Jun 2013 07:35:58 -0700 (PDT)
X-Originating-IP: [192.1.51.101]
Date: Thu, 13 Jun 2013 10:35:58 -0400
Message-ID: <CAL02cgRLGaSGFqg6PUoz1KX+7jEjU7rwt-t7B=U0FvEqYZrU-w@mail.gmail.com>
From: Richard Barnes <rlb@ipv.sx>
To: George Fletcher <gffletch@aol.com>
Content-Type: multipart/related; boundary="001a113309ce78b9f604df0a0c2a"
X-Gm-Message-State: ALoCoQnQa1/jb4+2vNJNwg3M8S/BcmXAoMvvlacxKLZkSJKC3+me6VEnpmnLj1v6UU1xr2b3wfbQ
Cc: Mike Jones <Michael.Jones@microsoft.com>, "jose-chairs@tools.ietf.org" <jose-chairs@tools.ietf.org>, "<jose@ietf.org>" <jose@ietf.org>
Subject: [jose] Deployed Code (was: Re: #23: Make crypto independent of binary encoding (base64))
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, 13 Jun 2013 14:36:04 -0000

This would have been a nice discussion to have had 18 months ago, when we
were getting started.

I don't think it's compatible with the IETF ethos to say "Changes to this
document MUST NOT break existing code."  Otherwise, we're not doing
engineering here, we're cleaning up documentation and rubber-stamping.

What would be acceptable is to say "Changes must break cleanly with
existing code".  That is, it should be possible for a JWT implementation
to, say, process both "legacy" JWS syntax and whatever comes out of this
group.  That way, we could come to consensus on the best solution,
incorporating lessons learned from earlier work without being hindered by
them.

Would participants here consider it a acceptable for the output of this
working group to be incompatible with existing JWT implementations, as long
as it had the property that JW* objects in the new format could be clearly
distinguished from "legacy" JW* objects, so that implementations could
adapt their processing?

--Richard




On Thu, Jun 13, 2013 at 10:24 AM, George Fletcher <gffletch@aol.com> wrote:

>  +1
>
> Breaking deployed code as raised by Brian, Naveen and others is a critical
> consideration.
>
> Thanks,
> George
>
>  On 6/13/13 10:19 AM, Mike Jones wrote:
>
>  Jim and Karen, could you please do as Richard suggests and close this
> issue as “won’t fix”.****
>
> ** **
>
>                                                             Thank you,****
>
>                                                             -- Mike****
>
> ** **
>
> *From:* Richard Barnes [mailto:rlb@ipv.sx <rlb@ipv.sx>]
> *Sent:* Wednesday, June 12, 2013 1:57 PM
> *To:* jose-chairs@tools.ietf.org; Mike Jones
> *Subject:* Fwd: [jose] #23: Make crypto independent of binary encoding
> (base64)****
>
> ** **
>
> In other words: Chairs, feel free to close/wontfix :)****
>
> ** **
>
> ---------- Forwarded message ----------
> From: *Richard Barnes* <rlb@ipv.sx>
> Date: Wed, Jun 12, 2013 at 4:55 PM
> Subject: Re: [jose] #23: Make crypto independent of binary encoding
> (base64)
> To: "Matt Miller (mamille2)" <mamille2@cisco.com>
> Cc: jose issue tracker <trac+jose@trac.tools.ietf.org>, "<
> draft-ietf-jose-json-web-encryption@tools.ietf.org>" <
> draft-ietf-jose-json-web-encryption@tools.ietf.org>, "<
> michael.jones@microsoft.com>" <michael.jones@microsoft.com>, "<
> jose@ietf.org>" <jose@ietf.org>
>
> ****
>
> To be clear, I structured my message in two parts for a reason, to
> separate the analysis from the opinion.  I acknowledge that I am but one
> voice here, and I'm increasingly hearing how alone I am :)****
>
> ** **
>
> On Wed, Jun 12, 2013 at 4:23 PM, Richard Barnes <rlb@ipv.sx> wrote:****
>
>  <impartial-analysis>****
>
> So just to be clear on the trade-off the WG has to make:****
>
> ** **
>
> On the one hand: Breaking every existing JWT implementation in the world**
> **
>
> On the other hand: Eternally binding ourselves to base64 encoding, even if
> binary-safe encodings become available (CBOR, MsgPack, etc.)****
>
> </impartial-analysis >****
>
> ** **
>
> <personal-opinion>****
>
> I have some sympathy with JWT implementors.  It sucks to have to refactor
> code.  But I think we're literally talking about something like a 5-line
> patch.  And early JWT implementors knew or should have known (to use a DC
> phrase) that they were dealing with a draft spec.  As the W3C editor's
> draft template says, in big bold red print, "Implementors who are not
> taking part in the discussions are likely to find the specification
> changing out from under them in incompatible ways."****
>
> ** **
>
> As PHB pointed out in the other thread, it would be nice to use JWS and
> JWE in place of CMS one day, without the base64 hit.  We should incur the
> implementation pain now, and get the design right for the long run.  Base64
> is a hack around JSON; we should build the system so that when we no longer
> need that hack, it can go away.****
>
> </personal-opinion>****
>
> ** **
>
> --Richard****
>
> ** **
>
> ** **
>
> ** **
>
> On Wed, Jun 12, 2013 at 10:27 AM, Matt Miller (mamille2) <
> mamille2@cisco.com> wrote:****
>
> I did at first find it curious why the cryptographic operations were over
> the base64url-enccoded values, but I was also very focused on JWE, where I
> think the field separation problem is less of an issue (at least now).  For
> JWS, this would certainly cause problems without some manner of unambiguous
> field parameterization.
>
> I will note that unescaped NULL is not valid in JSON, so it could be used
> as a separator between the encoded header and the payload.  I do find it
> interesting if JOSE could more easily and efficiently support other
> encodings.  However, I think that while this is an interesting thought
> experiment, it seems we're too far down the path to seriously consider it
> unless the current state were shown to be horribly broken.
>
>
> - m&m
>
> Matt Miller < mamille2@cisco.com >
> Cisco Systems, Inc.****
>
>
> On Jun 11, 2013, at 6:01 PM, jose issue tracker <
> trac+jose@trac.tools.ietf.org> wrote:
>
> > #23: Make crypto independent of binary encoding (base64)
> >
> >
> > Comment (by michael.jones@microsoft.com):
> >
> > For both serializations, you already need the base64url encoded versions
> > of the JWS Header and the JWS Payload to preserve them in transmission,
> so
> > computing them isn't an extra burden.  In the JWS Compact Serialization,
> > you already need the concatenation of the Encoded JWS Header, a period
> > character, and the Encoded JWS Payload, so computing that concatenation
> > isn't an extra burden.  Given you already have that quantity, computing
> > the signature over it is the easiest thing for developers to do, and it's
> > been shown to work well in practice.  There's no compelling reason to
> make
> > this change.
> >
> > Even for the JSON Serialization, the only "extra" step that's required to
> > compute the signature is the concatenation with the period character - to
> > prevent shifting of data from one field to the other, as described by Jim
> > Schaad in the e-mail thread.  So this step isn't actually "extra" at all
> -
> > it's necessary.  It's also highly advantageous to use exactly the same
> > computation for both serializations, which is currently the case.
> >
> > Since there is no compelling reason to make this change, and since making
> > it could enable the "shifting" problem identified by Jim, it should not
> be
> > made.
> >
> > --
> >
> -------------------------+-------------------------------------------------
> > Reporter:  rlb@ipv.sx   |       Owner:  draft-ietf-jose-json-web-
> >     Type:  defect       |  encryption@tools.ietf.org
> > Priority:  major        |      Status:  new
> > Component:  json-web-    |   Milestone:
> >  encryption             |     Version:
> > Severity:  -            |  Resolution:
> > Keywords:               |
> >
> -------------------------+-------------------------------------------------
> >
> > Ticket URL: <http://trac.tools.ietf.org/wg/jose/trac/ticket/23#comment:2
> >
> > jose <http://tools.ietf.org/jose/>
> >****
>
> > _______________________________________________
> > jose mailing list
> > jose@ietf.org
> > https://www.ietf.org/mailman/listinfo/jose****
>
> ** **
>
>   ** **
>
> ** **
>
>
> _______________________________________________
> jose mailing listjose@ietf.orghttps://www.ietf.org/mailman/listinfo/jose
>
>
> --
> [image: George Fletcher] <http://connect.me/gffletch>
>