Re: [jose] Fwd: New Version Notification for draft-barnes-jose-jsms-00.txt

Breno de Medeiros <breno@google.com> Sat, 16 June 2012 00:22 UTC

Return-Path: <breno@google.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 7FC6721F84A5 for <jose@ietfa.amsl.com>; Fri, 15 Jun 2012 17:22:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.977
X-Spam-Level:
X-Spam-Status: No, score=-102.977 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
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 KKVCA-2JxP3w for <jose@ietfa.amsl.com>; Fri, 15 Jun 2012 17:22:48 -0700 (PDT)
Received: from mail-ob0-f172.google.com (mail-ob0-f172.google.com [209.85.214.172]) by ietfa.amsl.com (Postfix) with ESMTP id 357BE21F8472 for <jose@ietf.org>; Fri, 15 Jun 2012 17:22:48 -0700 (PDT)
Received: by obbwc20 with SMTP id wc20so3939616obb.31 for <jose@ietf.org>; Fri, 15 Jun 2012 17:22:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding:x-system-of-record; bh=ewDxIw3nt8h/1hURak8a5Qz28kJOoFGM9mgzAnuxzrA=; b=JP2tkmlzd8L6ZvQhxrTykmY3zAJZ5gm2u4e9Knj0WVy8pC5aH7fJ4MzFtbWWt1nnVn h/IItnTOXBOhBFy4ZFuVEw4/vxZD8stpCA9Mg/Po9MDHOvNjUXK76xyKf2HIulohF/YM vZBrmmywx9lhzBMfM1oJmzLJvNxp88y4HQ8lPO9/HthAtLUSE/4aBQFI2EQBBxbaC44H FY2PurEY1InfbBW5vh8Xrhw8HvqHFrj3UdS5VH/07U60zm2oD49K4pSj3Ur0TSs/150m Zke8V8x0zVU0QjjPgjtqhoBDXHVKY18zuAYnkKaJG0ggRl3n4ABuQSHdRCmpb1nl5s3S vDTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding:x-system-of-record :x-gm-message-state; bh=ewDxIw3nt8h/1hURak8a5Qz28kJOoFGM9mgzAnuxzrA=; b=bt53wW3NydoEZlmvG81nZgu2/PCI2mkdcH82smqcgZN7T+/6FGZ3lcP0IG6b4ga4sI jGlDtIDcO9b0XRssn0Tul87ky3yiQ2+nlDYVbBV6QS23niIm3VeWpFAJ6j+XnTjsXHsd xl15xY4Fv95YyJIhXA14OMRmhW/6LLn0/ZlWU5f8TJoji1mLfaF35xBpqzirLWsJxslR Enj/yejUEzXzoSN1q7N5NXKS2t2sBspI0jOzCtuU+GZj3iqrJuHh8LNarQVk1AU0xDEl hmb9nfDfWGtICgXEHaRL1wuriSVVfPU/IiRI5FmJL25Muy9tRxywAfp07s2v9GM4lngx 9w3Q==
Received: by 10.50.169.38 with SMTP id ab6mr3571790igc.46.1339806167562; Fri, 15 Jun 2012 17:22:47 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.50.169.38 with SMTP id ab6mr3571782igc.46.1339806167384; Fri, 15 Jun 2012 17:22:47 -0700 (PDT)
Received: by 10.231.17.194 with HTTP; Fri, 15 Jun 2012 17:22:47 -0700 (PDT)
In-Reply-To: <4E1F6AAD24975D4BA5B168042967394366551A9E@TK5EX14MBXC283.redmond.corp.microsoft.com>
References: <4E1F6AAD24975D4BA5B16804296739436654F786@TK5EX14MBXC283.redmond.corp.microsoft.com> <9025B64C-7B95-40F5-BE44-51A40E3A5001@bbn.com> <4E1F6AAD24975D4BA5B168042967394366551A9E@TK5EX14MBXC283.redmond.corp.microsoft.com>
Date: Fri, 15 Jun 2012 17:22:47 -0700
Message-ID: <CAAJ++qEzsxLJRHhrd126eWEH55BiaY7qDOgr6zG_XeffxTM61Q@mail.gmail.com>
From: Breno de Medeiros <breno@google.com>
To: Mike Jones <Michael.Jones@microsoft.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
X-System-Of-Record: true
X-Gm-Message-State: ALoCoQmif57qXEBbeXORsy+rG7Jd5lbJtt2bEpGCC1PvlQK65wrcnW272p+SaR8H7sSl3fD5WkUtR5NOCjYjJm+kBMvLtfVE/5uM1XtLqA9uxKFAUYho9/UyzM2sBQ5tlsVgL3s7V/bFFypmx3o/u4yN0o6J98xMpNusGdE7fUnUlSUPAWppUFQ=
Cc: "Richard L. Barnes" <rbarnes@bbn.com>, "jose@ietf.org" <jose@ietf.org>
Subject: Re: [jose] Fwd: New Version Notification for draft-barnes-jose-jsms-00.txt
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: Sat, 16 Jun 2012 00:22:49 -0000

On Fri, Jun 15, 2012 at 5:07 PM, Mike Jones <Michael.Jones@microsoft.com> wrote:
> Hi Richard,
>
> Since your message has been kicking around in the back of my mind, I'll add one more data point on the "Not being JSON" comment.  As the designers of JWT and the resulting JOSE specs saw it, there were two clear choices to able to sign/encrypt JSON data structures:
>
> (1)  Define a canonicalization algorithm and always operate on the canonical forms
> (2)  Base64 encode a representation of the data structure to preserve the precise representation
>
> XML Canonicalization has proven to be a horror, leading to more interoperability problems than any other aspect of XMLDSIG, XMLENC, SAML, or WS-*.

All our experience with signatures says that defining new
canonicalization mechanisms should be avoided at all costs. Not only
they lead to expensive interoperability issues, they may lead to
frequent security issues.

>
> We chose #2. :-)
>
>                                -- Mike
>
> -----Original Message-----
> From: Mike Jones
> Sent: Friday, June 15, 2012 3:32 PM
> To: 'Richard L. Barnes'
> Cc: jose@ietf.org
> Subject: RE: [jose] Fwd: New Version Notification for draft-barnes-jose-jsms-00.txt
>
> Fair enough.  I'll briefly respond to each in turn.  Before doing so, I'll say that I'm writing in the spirit of trying to increase mutual understanding and consensus, rather than taking the point of view that the status quo is the only reasonable outcome.
>
> -- Not being JSON
>
> This was by design, so that the results are URL-safe.  This is required, for instance, for them to be used as OAuth Bearer Tokens.  At the request of the working group, closely related pure-JSON drafts were also published.  See:
>
> http://tools.ietf.org/html/draft-jones-json-web-signature-json-serialization-01 and
> http://tools.ietf.org/html/draft-jones-json-web-encryption-json-serialization-01
>
> Use them if you prefer if they better suit your use cases.  They could be adopted as working group documents, if there's interest.
>
> -- Not supporting multiple recipients
>
> The JSON serialization drafts above do, again, in response to use cases presented by the working group.
>
> -- Lacking clear distinctions between signing and MAC
>
> Functionally, these are very similar operations, at least from an implementation perspective, so it's not clear that making a clear distinction would help either developers or adoption in any practical way.  They achieve overlapping, but admittedly sometimes different goals.  I believe that developers can be trusted to use the algorithms that achieve their applications' goals without making a hard distinction between the two.  But I'd be interested in hearing your thoughts on why you believe a brighter-line distinction might be useful or necessary.
>
> -- Lacking clear processing instructions for different key establishment modalities
>
> This seems like an area where the existing drafts could be refined to add descriptions for additional establishment modalities, possibly based upon your ideas and descriptions, should the working group decide to do so.  What additional modalities do you have use cases for that you believe are not achievable or straightforward with the existing drafts?  The existing modalities supported are largely those that existing developers had told us they needed and draw both from the precursor draft-jones-json-web-* documents and draft-rescorla-jsms.
>
> Bear in mind that the balance that the current drafts try to strike is keeping the Mandatory to Implement (MTI) feature footprint small enough that developers, including Web developers, are likely to adopt the specs, while still providing enough functionality to make them generally useful.  As in any balance, it's often possible to shift things a bit and still maintain the balance, but I'd like people to keep the ubiquitous adoption goal front-and-center when proposing additional functionality.
>
> Ubiquitous deployment and usefulness trump theoretical completeness.  (Just look at XMLDSIG and XMLENC to understand that!)
>
> -- Lack of clear typing of objects
>
> Most JSON documents aren't clearly typed; instead, developers and implementations understand from context what the meaning of each field is.  XML is clearly typed, but developers are voting with their feet by moving to JSON.
>
> What practical advantages resulting from overlaying a typing infrastructure on JSON do you believe are worth the potential costs of doing so?  BTW, I'm not opposed to having a JSON schema description of the JOSE JSON data structures like JSMS did in http://tools.ietf.org/html/draft-rescorla-jsms-00#appendix-A, but I'll remark that this an informative tool, not a normative one.
>
> -- Lack of versioning for future extensibility
>
> An optional version field could be added if the working group desires, however the last time the working group discussed it, they decided not to do so.  Rather, specs like this effectively become "versioned" when revised in a way that new fields are added.  If you understand the new fields, you support that new version.  (Note that this is independent of whether there is a version number field, which according to some participants in the previous discussion, they regarded as therefore being redundant information.)
>
> I'm not religious about not having a version number field, but often "less is more".
>
>                                Best wishes,
>                                -- Mike
>
> -----Original Message-----
> From: Richard L. Barnes [mailto:rbarnes@bbn.com]
> Sent: Friday, June 15, 2012 3:00 PM
> To: Mike Jones
> Cc: jose@ietf.org
> Subject: Re: [jose] Fwd: New Version Notification for draft-barnes-jose-jsms-00.txt
>
> Ok, so maybe I should have phrased my lead-in differently.  IMO, the current JW* specs are deficient in several ways, e.g.:
> -- Not being JSON
> -- Not supporting multiple recipients
> -- Lacking clear distinctions between signing and MAC
> -- Lacking clear processing instructions for different key establishment modalities
> -- Lack of clear typing of objects
> -- Lack of versioning for future extensibility
>
> Looking at the current specs, it didn't seem to me that it would be simple to adapt them to address these deficiencies.  So I just did a re-write.  If you think they can be addressed within the current framework, please explain.  I just found it simpler to start from whole cloth.
>
> Cheers,
> --Richard
>
>
>
> On Jun 15, 2012, at 5:43 PM, Mike Jones wrote:
>
>> Hi Richard,
>>
>> If you're puzzled by specific design decisions in the JOSE documents, I encourage you to ask about them on the list.  The documents have significant history going back to mid-2010 when convergence discussions started among people with four different JSON signing & encryption proposals.  JWT and the current JOSE specs and implementations are the result.  I realize that not all the JOSE participants were part of those discussions from the beginning (although many were) and so teasing out the rationale for specific decisions might help people better understand the choices made, and hopefully thereby increase consensus behind the eventual working group choices.
>>
>> If the list that you're puzzled by is the bulleted list below, maybe we can start a discussion on that basis.
>>
>>                               Best wishes,
>>                               -- Mike
>>
>> -----Original Message-----
>> From: jose-bounces@ietf.org [mailto:jose-bounces@ietf.org] On Behalf
>> Of Richard L. Barnes
>> Sent: Friday, June 15, 2012 2:08 PM
>> To: jose@ietf.org
>> Subject: [jose] Fwd: New Version Notification for
>> draft-barnes-jose-jsms-00.txt
>>
>> Dear JOSE WG,
>>
>> Like Mr. Manger, once I finally got around to doing a thorough review of the JW* specs, I was kind of puzzled by some of the design decisions.  So I also went through and wrote an alternative format, this time taking a more of a cue from CMS.  A link to the document is below.
>>
>> Summary of differences:
>>
>>   o  JSMS is pure JSON, whereas in JWE and JWS only the header
>>      parameters are represented in JSON.
>>
>>   o  JSMS allows for full algorithm agility in key agreement, while JWE
>>      only allows ECDH-ES.
>>
>>   o  JSMS supports multiple recipients for EncryptedData and
>>      AuthenticatedData objects via the inclusion of multiple WrappedKey
>>      objects.  Sending a JWE to multiple recipients requires re-
>>      encryption of the entire object for each recipient.
>>
>>   o  The signature and MAC functions of the JWS object are separated
>>      into SignedData and AuthenticatedData JSMS objects.
>>
>>   o  JSMS parameters are not integrity-protected, as they are in JWE
>>      and JWS.
>>
>>   o  The "typ" and "zip" parameters are not defined in JSMS, but could
>>      be added without significant change.
>>
>>   o  JSMS requires that recipients MUST ignore unknown header
>>      parameters, in order to facilitate extensibility.
>>
>> I've also thrown together an initial JavaScript implementation (based on NodeJS for some python crypto glue), which is on github:
>> <https://github.com/bifurcation/jsms>
>>
>> Comments are very welcome.
>>
>> Thanks,
>> --Richard
>>
>>
>>
>> Begin forwarded message:
>>
>>> From: internet-drafts@ietf.org
>>> Subject: New Version Notification for draft-barnes-jose-jsms-00.txt
>>> Date: June 15, 2012 4:56:09 PM EDT
>>> To: rbarnes@bbn.com
>>>
>>>
>>> A new version of I-D, draft-barnes-jose-jsms-00.txt has been
>>> successfully submitted by Richard Barnes and posted to the IETF
>>> repository.
>>>
>>> Filename:     draft-barnes-jose-jsms
>>> Revision:     00
>>> Title:                JavaScript Message Security Format
>>> Creation date:        2012-06-15
>>> WG ID:                Individual Submission
>>> Number of pages: 25
>>> URL:             http://www.ietf.org/internet-drafts/draft-barnes-jose-jsms-00.txt
>>> Status:          http://datatracker.ietf.org/doc/draft-barnes-jose-jsms
>>> Htmlized:        http://tools.ietf.org/html/draft-barnes-jose-jsms-00
>>>
>>>
>>> Abstract:
>>>  Many applications require the ability to send cryptographically
>>> secured messages.  While the IETF has defined a number of formats for
>>> such messages (e.g.  CMS) those formats use encodings which are not
>>> easy to use in modern applications.  This document describes the
>>> JavaScript Message Security format (JSMS), a new cryptographic
>>> message format which is based on JavaScript Object Notation (JSON)
>>> and thus is easy for many applications to generate and parse.
>>>
>>>
>>>
>>>
>>> The IETF Secretariat
>>
>> _______________________________________________
>> jose mailing list
>> jose@ietf.org
>> https://www.ietf.org/mailman/listinfo/jose
>>
>>
>> _______________________________________________
>> jose mailing list
>> jose@ietf.org
>> https://www.ietf.org/mailman/listinfo/jose
>
>
>
> _______________________________________________
> jose mailing list
> jose@ietf.org
> https://www.ietf.org/mailman/listinfo/jose



-- 
--Breno