Re: [jose] Should we keep or remove the JOSE JWS and JWE MIME types?

Mike Jones <Michael.Jones@microsoft.com> Thu, 20 June 2013 18:17 UTC

Return-Path: <Michael.Jones@microsoft.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 9E7A121F9C12 for <jose@ietfa.amsl.com>; Thu, 20 Jun 2013 11:17:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.136
X-Spam-Level:
X-Spam-Status: No, score=-2.136 tagged_above=-999 required=5 tests=[AWL=-0.269, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_33=0.6, SARE_UNSUB18=0.131]
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 vK03Pb3w8kpB for <jose@ietfa.amsl.com>; Thu, 20 Jun 2013 11:17:28 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2lp0210.outbound.protection.outlook.com [207.46.163.210]) by ietfa.amsl.com (Postfix) with ESMTP id 0FBCE21F9C0C for <jose@ietf.org>; Thu, 20 Jun 2013 11:17:27 -0700 (PDT)
Received: from BN1BFFO11FD012.protection.gbl (10.58.52.203) by BN1AFFO11HUB039.protection.gbl (10.58.52.150) with Microsoft SMTP Server (TLS) id 15.0.707.0; Thu, 20 Jun 2013 17:47:11 +0000
Received: from TK5EX14HUBC105.redmond.corp.microsoft.com (131.107.125.37) by BN1BFFO11FD012.mail.protection.outlook.com (10.58.53.72) with Microsoft SMTP Server (TLS) id 15.0.707.0 via Frontend Transport; Thu, 20 Jun 2013 17:47:11 +0000
Received: from TK5EX14MBXC283.redmond.corp.microsoft.com ([169.254.2.25]) by TK5EX14HUBC105.redmond.corp.microsoft.com ([157.54.80.48]) with mapi id 14.03.0136.001; Thu, 20 Jun 2013 17:47:05 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: "Matt Miller (mamille2)" <mamille2@cisco.com>, Richard Barnes <rlb@ipv.sx>
Thread-Topic: [jose] Should we keep or remove the JOSE JWS and JWE MIME types?
Thread-Index: Ac5si+PCJyNtJjwFQ3SCQ8Y9W8ChrQBPRl+AAAAPBOAAAzZugAABhYSAAABQGPA=
Date: Thu, 20 Jun 2013 17:47:04 +0000
Message-ID: <4E1F6AAD24975D4BA5B16804296739436787993E@TK5EX14MBXC283.redmond.corp.microsoft.com>
References: <4E1F6AAD24975D4BA5B1680429673943678735D4@TK5EX14MBXC283.redmond.corp.microsoft.com> <CAL02cgQUpbYLatgiaXa8T9oMMi+sA5KxEiocETLTEDXskTtqDQ@mail.gmail.com> <4E1F6AAD24975D4BA5B1680429673943678794EF@TK5EX14MBXC283.redmond.corp.microsoft.com> <CAL02cgSui3q4co4sCRBZCsA_wEgSNUFx8v0jsx+H_2z761VN=Q@mail.gmail.com> <BF7E36B9C495A6468E8EC573603ED9411528DA68@xmb-aln-x11.cisco.com>
In-Reply-To: <BF7E36B9C495A6468E8EC573603ED9411528DA68@xmb-aln-x11.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.51.32]
Content-Type: multipart/alternative; boundary="_000_4E1F6AAD24975D4BA5B16804296739436787993ETK5EX14MBXC283r_"
MIME-Version: 1.0
X-Forefront-Antispam-Report: CIP:131.107.125.37; CTRY:US; IPV:CAL; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(51704005)(189002)(199002)(51444003)(13464003)(24454002)(377454003)(66066001)(6806003)(65816001)(76786001)(74876001)(19300405003)(74706001)(33656001)(16406001)(4396001)(74366001)(71186001)(81342001)(69226001)(54356001)(51856001)(63696002)(77982001)(59766001)(79102001)(55846006)(47446002)(50986001)(80022001)(512954002)(47976001)(20776003)(74502001)(54316002)(46102001)(56776001)(77096001)(31966008)(56816003)(47736001)(49866001)(74662001)(81542001)(53806001)(76482001)(76796001)(15202345003)(16236675002)(217873001); DIR:OUT; SFP:; SCL:1; SRVR:BN1AFFO11HUB039; H:TK5EX14HUBC105.redmond.corp.microsoft.com; CLIP:131.107.125.37; RD:InfoDomainNonexistent; MX:1; A:1; LANG:en;
X-OriginatorOrg: microsoft.onmicrosoft.com
X-O365ENT-EOP-Header: Message processed by - O365_ENT: Allow from ranges (Engineering ONLY)
X-Forefront-PRVS: 08831F51DC
Cc: "jose@ietf.org" <jose@ietf.org>
Subject: Re: [jose] Should we keep or remove the JOSE JWS and JWE MIME types?
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, 20 Jun 2013 18:17:33 -0000

Editorially, if we do decide to add application/jose and application/jose+json MIME types, I would register them in draft-ietf-jose-json-web-signature, just like other registry content shared between JWS and JWE, such as the JSON Web Signature and Encryption Header Parameters Registry<http://tools.ietf.org/html/draft-ietf-jose-json-web-signature-11#page-18>.

                                                            -- Mike



-----Original Message-----
From: Matt Miller (mamille2) [mailto:mamille2@cisco.com]
Sent: Thursday, June 20, 2013 10:33 AM
To: Richard Barnes
Cc: Mike Jones; jose@ietf.org
Subject: Re: [jose] Should we keep or remove the JOSE JWS and JWE MIME types?



I just want to say that I think having a media type is important and useful.  It might not be important and useful for JWT or OAuth or OpenID-Connect, but I can think of many applications that would make use of them if at all possible.



I personally don't care if it's a generic media type or individual application/jwe and application/jws.  However, I think a generic media type would require a separate document; trying to fit this into the one shared document (JWA) seems wrong.





- m&m



Matt Miller < mamille2@cisco.com<mailto:mamille2@cisco.com> >

Cisco Systems, Inc.



PS: I've found +json useful for other things, because I do have applications that present in different formats (right now that's usually +xml).  While there's not a simple corollary with XML-based concepts, I think there will be corollaries in the future (e.g., CBOR).  Having them now means we're not painted into a corner if (when) we look at JOSE2 and support for binary representations.



On Jun 20, 2013, at 10:49 AM, Richard Barnes <rlb@ipv.sx<mailto:rlb@ipv.sx>>

wrote:



> That algorithm is part of the story, but it's incomplete.  What we need is

> an algorithm that starts with an arbitrary octet string and sorts by

> JWS/JWE and serialization.  An outline of the flow chart:

>

> 1. If content parses as valid JSON

> 1.*. Parse JSON

> 1.1. Iontains a "ciphertext" field -> JWE + JSON

> 1.2. Contains a "payload" field -> JWS + JSON

> 1.3. Else fail

> 2. Else if content matches the regex "^[a-zA-Z0-9_.-]*$"

> 2.*. Split on "."

> 2.1. If 5 components -> JWE + compact

> 2.2. If 3 components -> JWS + compact

> 2.3. Else fail

> 3. Else fail

>

> There's also the question of which document this goes in.  It would be a

> natural thing for a combined JWS+JWE document, but we don't have one of

> those :(

>

>

>

>

> On Thu, Jun 20, 2013 at 11:19 AM, Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>>wrote:

>

>> There is a defined algorithm to distinguish between the JWS and JWE

>> objects in the third paragraph of

>> http://tools.ietf.org/html/draft-ietf-jose-json-web-encryption-11#section-4

>> .****

>>

>> ** **

>>

>>                                                            -- Mike****

>>

>> ** **

>>

>> *From:* Richard Barnes [mailto:rlb@ipv.sx]

>> *Sent:* Thursday, June 20, 2013 8:15 AM

>> *To:* Mike Jones

>> *Cc:* jose@ietf.org<mailto:jose@ietf.org>

>>

>> *Subject:* Re: [jose] Should we keep or remove the JOSE JWS and JWE MIME

>> types?****

>>

>> ** **

>>

>> Multiplexing JWE and JWS under a single JOSE media type only makes sense

>> if there's a defined algorithm to demux them.  So if you want to do this,

>> you would need to write down the algorithm.****

>>

>> ** **

>>

>> Personally, it seems simpler and clearer to me to just have the four

>> current types, so that you know which type of object you're dealing with,

>> and in what serialization, without having to do content sniffing.****

>>

>> ** **

>>

>> On Tue, Jun 18, 2013 at 9:26 PM, Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>>

>> wrote:****

>>

>> The JWS and JWE documents currently define these MIME types for the

>> convenience of applications that may want to use them:****

>>

>>                application/jws****

>>

>>                application/jws+json****

>>

>>                application/jwe****

>>

>>                application/jwe+json****

>>

>> ****

>>

>> That being said, I'm not aware of any uses of these by applications at

>> present.  Thus, I think that makes it fair game to ask whether we want to

>> keep them or remove them - in which case, if applications ever needed them,

>> they could define them later.****

>>

>> ****

>>

>> Another dimension of this question for JWS and JWE is that it's not clear

>> that the four types application/jws, application/jws+json, application/jwe,

>> and application/jwe+json are even the right ones.  It might be more useful

>> to have generic application/jose and application/jose+json types, which

>> could hold either JWS or JWE objects respectively using the compact or JSON

>> serializations (although I'm not advocating adding them at this time).****

>>

>> ****

>>

>> Having different JWS versus JWE MIME types apparently did contribute to at

>> least Dick's confusion about the purpose of the "typ" field, so deleting

>> them could help eliminate this possibility of confusion in the future.

>> Thus, I'm increasingly convinced we should get rid of the JWS and JWE types

>> and leave it up to applications to define the types they need, when they

>> need them.****

>>

>> ****

>>

>> Do people have use cases for these four MIME types now or should we leave

>> them to future specs to define, if needed?****

>>

>> ****

>>

>>                                                                -- Mike***

>> *

>>

>> ****

>>

>> P.S.  For completeness, I'll add that the JWK document also defines these

>> MIME types:****

>>

>>                application/jwk+json****

>>

>>                application/jwk-set+json****

>>

>> ****

>>

>> There are already clear use cases for these types, so I'm not advocating

>> deleting them, but wanted to call that out explicitly.  For instance, when

>> retrieving a JWK Set document referenced by a "jku" header parameter, I

>> believe that the result should use the application/jwk-set+json type.  (In

>> fact, I'll add this to the specs, unless there are any objections.)

>> Likewise, draft-miller-jose-jwe-protected-jwk-02 already uses

>> application/jwk+json.  Both could also be as "cty" values when encrypting

>> JWKs and JWK Sets, in contexts where that that would be useful.****

>>

>> ****

>>

>>

>> _______________________________________________

>> jose mailing list

>> jose@ietf.org<mailto:jose@ietf.org>

>> https://www.ietf.org/mailman/listinfo/jose****

>>

>> ** **

>>

> _______________________________________________

> jose mailing list

> jose@ietf.org<mailto:jose@ietf.org>

> https://www.ietf.org/mailman/listinfo/jose