Re: [jose] Update to Use Cases document for content without integrity protection
Mike Jones <Michael.Jones@microsoft.com> Tue, 03 September 2013 22:23 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 6405311E8147 for <jose@ietfa.amsl.com>; Tue, 3 Sep 2013 15:23:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level:
X-Spam-Status: No, score=x tagged_above=-999 required=5 tests=[]
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 kkhMDSJFPD3C for <jose@ietfa.amsl.com>; Tue, 3 Sep 2013 15:23:53 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2lp0243.outbound.protection.outlook.com [207.46.163.243]) by ietfa.amsl.com (Postfix) with ESMTP id 67D0811E8142 for <jose@ietf.org>; Tue, 3 Sep 2013 15:23:41 -0700 (PDT)
Received: from BLUPR03CA036.namprd03.prod.outlook.com (10.141.30.29) by BLUPR03MB036.namprd03.prod.outlook.com (10.255.209.148) with Microsoft SMTP Server (TLS) id 15.0.745.25; Tue, 3 Sep 2013 22:23:34 +0000
Received: from BL2FFO11FD043.protection.gbl (2a01:111:f400:7c09::25) by BLUPR03CA036.outlook.office365.com (2a01:111:e400:879::29) with Microsoft SMTP Server (TLS) id 15.0.745.25 via Frontend Transport; Tue, 3 Sep 2013 22:23:35 +0000
Received: from mail.microsoft.com (131.107.125.37) by BL2FFO11FD043.mail.protection.outlook.com (10.173.161.139) with Microsoft SMTP Server (TLS) id 15.0.755.13 via Frontend Transport; Tue, 3 Sep 2013 22:23:34 +0000
Received: from TK5EX14MBXC291.redmond.corp.microsoft.com ([169.254.2.91]) by TK5EX14HUBC101.redmond.corp.microsoft.com ([157.54.7.153]) with mapi id 14.03.0136.001; Tue, 3 Sep 2013 22:23:03 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: Richard Barnes <rlb@ipv.sx>
Thread-Topic: [jose] Update to Use Cases document for content without integrity protection
Thread-Index: Ac6o9CbWYQBQ1BD6T+e/7sjNX9I9vA==
Date: Tue, 03 Sep 2013 22:23:02 +0000
Message-ID: <4E1F6AAD24975D4BA5B16804296739436C2EB112@TK5EX14MBXC291.redmond.corp.microsoft.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.51.72]
Content-Type: multipart/mixed; boundary="_006_4E1F6AAD24975D4BA5B16804296739436C2EB112TK5EX14MBXC291r_"
MIME-Version: 1.0
X-Forefront-Antispam-Report: CIP:131.107.125.37; CTRY:US; IPV:CAL; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(189002)(199002)(24454002)(52604005)(69234005)(164054003)(377454003)(54316002)(56776001)(19300405004)(50986001)(47976001)(49866001)(47736001)(15202345003)(76482001)(55846006)(81686001)(71186001)(81542001)(81816001)(81342001)(15975445006)(74366001)(77096001)(53806001)(56816003)(568964001)(54356001)(16236675002)(59766001)(77982001)(83072001)(79102001)(512954002)(74706001)(4396001)(6806004)(76796001)(76786001)(51856001)(44976005)(19580405001)(83322001)(76176001)(74662001)(20776003)(63696002)(19580395003)(74502001)(47446002)(33656001)(31966008)(80022001)(66066001)(65816001)(69226001)(80976001)(46102001)(74876001)(552614006)(559001)(579004)(569005); DIR:OUT; SFP:; SCL:1; SRVR:BLUPR03MB036; H:mail.microsoft.com; CLIP:131.107.125.37; RD:InfoDomainNonexistent; MX:1; A:1; LANG:en;
X-O365ENT-EOP-Header: Message processed by - O365_ENT: Allow from ranges (Engineering ONLY)
X-Forefront-PRVS: 09583628E0
X-OriginatorOrg: DuplicateDomain-a84fc36a-4ed7-4e57-ab1c-3e967bcbad48.microsoft.com
Cc: Jim Schaad <ietf@augustcellars.com>, "jose@ietf.org" <jose@ietf.org>
Subject: Re: [jose] Update to Use Cases document for content without integrity protection
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: Tue, 03 Sep 2013 22:23:54 -0000
FYI, the "in some" words already occur in 5 other places in the document; I don't think these are defects there, and I don't think its use was a defect in my previous version. But nonetheless, since you objected to that wording in this case, I've reworded the text to avoid that construction.
Also, it's important that we be clear that this use case is not specific to either OAuth or OpenID Connect. That's why both are listed and why it needs to have its own section title.
The revised text follows, with source and output attached.
<section anchor="unsigned" title="Content without Integrity Protection">
<t>
OpenID Connect and an OAuth authentication specification both utilize
the ability to communicate payloads without requiring integrity protection.
In both of these cases, the payloads are JSON Web Tokens (JWTs).
In this use case, the recipient of a payload can choose to
rely on transport security rather than object security. For example,
if the payload is delivered over a TLS-protected channel, the recipient
may regard the protections provided by TLS as sufficient, so
JOSE protection would not be required.
</t>
<t>
However, even in this case, it is desirable to associate some
metadata with the payload, such as the content type,
or other application-specific metadata. In a signed or encrypted
object, these metadata values could be carried in a header with
other metadata required for signing or encryption. It would thus
simplify the design of JWTs and similar applications to have
a JOSE object representation that does not apply cryptographic
protections to its payload, but allows a header to be attached to the
payload in the same way as a signed or encrypted object.
</t>
</section>
-- Mike
From: jose-bounces@ietf.org [mailto:jose-bounces@ietf.org] On Behalf Of Richard Barnes
Sent: Tuesday, September 03, 2013 1:27 PM
To: Mike Jones
Cc: Jim Schaad; jose@ietf.org
Subject: Re: [jose] Update to Use Cases document for content without integrity protection
It's best to be concrete in this document. I would like to avoid the "in some contexts" weasel words. If you know of some other contexts, I would be glad to include them. Otherwise, we'll stick with the example we have.
--Richard
On Tue, Sep 3, 2013 at 2:23 PM, Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>> wrote:
Thanks for writing this Richard. I believe it's most of the way there. I've corrected one problem your proposed prose in the attached version, which is a lightly edited version of your text. The problem was that you made it sound like Plaintext JWSs were somehow specific to OpenID Connect, whereas they're actually already also used in contexts that are not OpenID Connect.
<section anchor="unsigned" title="Content without Integrity Protection">
<t>
In some contexts, such as for JSON Web Tokens (JWTs), there is one more requirement in
addition to the general considerations for integrity protected content. Under
some circumstances, the recipient of a payload may choose to
rely on transport security rather than object security. For example,
if the payload is delivered over a TLS-protected channel, the recipient
may regard the protections provided by TLS as sufficient, so
JOSE protection would not be required.
In this case, integrity protecting the payload is optional.
OpenID Connect has two circumstances in which content is optionally signed
and a forthcoming OAuth authentication specification uses this capability as well.
</t>
<t>
However, even in this case, it is desirable to associate some
metadata with the payload, such as the content type,
or other application-specific metadata. In a signed or encrypted
object, these metadata values could be carried in a header with
other metadata required for signing or encryption. It would thus
simplify the design of JWTs and similar applications if
there could be a JOSE object representation that does not apply cryptographic
protections to its payload, but allows a header to be attached to the
payload in the same way as a signed or encrypted object.
</t>
</section>
Thanks,
-- Mike
P.S. The attached source also updates the history section both for -05 and for the -04 edits.
From: Richard Barnes [mailto:rlb@ipv.sx<mailto:rlb@ipv.sx>]
Sent: Friday, August 30, 2013 11:57 AM
To: Jim Schaad
Cc: Mike Jones; jose@ietf.org<mailto:jose@ietf.org>
Subject: Re: [jose] Update to Use Cases document for content without integrity protection
I have added the following text to my working copy. Comments welcome.
"""
<t>
In the OpenID Connect context, there is one more requirement in
addition to the general considerations for security tokens. Under
some circumstances, the recipient of a JWT token may choose to
rely on transport security rather than object security. For example,
if a token is delivered over a TLS-protected channel, the recipient
would regard the protections provided by TLS as sufficient, so
JOSE protection would not be required.
</t>
<t>
However, even in this case, it is desirable to associate some
metadata with the JWT payload (claim set), such as the content type,
or other application-specific metadata. In a signed or encrypted
object, these metadata values could be carried in a header with
other metadata required for signing or encryption. It would thus
simplify the design of OpenID Connect and similar applications if
there could be a JOSE object type that does not apply cryptographic
protections to its payload, but allows a header to be attached to the
payload in the same way as a signed or encrypted object.
</t>
"""
On Thu, Aug 29, 2013 at 8:04 PM, Jim Schaad <ietf@augustcellars.com<mailto:ietf@augustcellars.com>> wrote:
Not ready for prime time
Under some circumstances, <If you say under some circumstances then those circumstances need to be clearly delineated>Itit is can be useful to be able to represent carry content without integrity protection but with in a way that the same kinds of information about the content that would accompanies integrity protected content can still accompany the non-integrity-protected content. The This information about the content, such as the content type value or application-specification information, is carried as header parameter values. The capability to represent non-integrity-protected content is particularly useful in situations when signing the content may be optional.
<I think given the current way you are trying to get things done, you need to have a justification for the signed and unsigned versions of the message being very similar in nature - otherwise it makes more sense to use the Richard solution of having a different structure for non-integrity protected objects.>
For instance, the The JSON Web Token (JWT) specification enables permits claims to be communicated created that are signed and/or encrypted or that carry no integrity protection. Whether integrity protection is required is dependent upon the application's requirements and the particular usage context. For instance, if If the token content is being communicated over a channel protected with TLS, the application <A description of this application would be useful. Presumably it needs to be a straight client-server model with no proxies in the middle.> may be willing to can accept unsigned content based upon a trust decision utilizing a check of the sender's TLS certificate; whereas if the content is being sent over a non-TLS channel, the application may require that the content be signed and/or encrypted. OpenID Connect has two circumstances <What are these circumstances? Are these cases which should be outlined so that we can see what is happening and why this would be secure?> in which content is optionally signed and a forthcoming OAuth authentication specification uses this capability as well<How does it use this capability? This would be especially problematic as needing a description given that the OAuth description above would require that the integrity be in existence since the token is transmitted via two untrustworthy parties.>.
From: jose-bounces@ietf.org<mailto:jose-bounces@ietf.org> [mailto:jose-bounces@ietf.org<mailto:jose-bounces@ietf.org>] On Behalf Of Mike Jones
Sent: Monday, August 26, 2013 1:22 PM
To: Richard Barnes
Cc: jose@ietf.org<mailto:jose@ietf.org>
Subject: Re: [jose] Update to Use Cases document for content without integrity protection
The attached versions address these comments - describing a way that applications can know whether integrity protection is needed, describing conveying additional information about the content in header parameters, and listing two different applications using this capability. Please revise the Use Cases draft accordingly or reply with specific requests requesting further revisions before the document is updated.
Thanks,
-- Mike
From: Richard Barnes [mailto:rlb@ipv.sx]
Sent: Wednesday, August 21, 2013 9:37 PM
To: Jim Schaad
Cc: Mike Jones; jose@ietf.org<mailto:jose@ietf.org>
Subject: Re: [jose] Update to Use Cases document for content without integrity protection
Also: Elaborating on what in the scenario tells the application that it's OK to get "none" from one recipient and not another.
As to whether this is OpenID: Where else is "alg":"none" currently used? Better to describe a specific use case.
On Wed, Aug 21, 2013 at 7:43 PM, Jim Schaad <ietf@augustcellars.com<mailto:ietf@augustcellars.com>> wrote:
That would be a good start
From: Mike Jones [mailto:Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>]
Sent: Wednesday, August 21, 2013 4:14 PM
To: Jim Schaad; 'Richard Barnes'
Cc: jose@ietf.org<mailto:jose@ietf.org>
Subject: RE: [jose] Update to Use Cases document for content without integrity protection
What additional information would you like to see be included about the use case? For instance, would you like the examples about header parameter values being included with unsigned content that John mentioned on the call?
-- Mike
From: jose-bounces@ietf.org<mailto:jose-bounces@ietf.org> [mailto:jose-bounces@ietf.org] On Behalf Of Jim Schaad
Sent: Wednesday, August 21, 2013 4:11 PM
To: Mike Jones; 'Richard Barnes'
Cc: jose@ietf.org<mailto:jose@ietf.org>
Subject: Re: [jose] Update to Use Cases document for content without integrity protection
Mike,
I don't think that is really providing the necessary justification.
From: jose-bounces@ietf.org<mailto:jose-bounces@ietf.org> [mailto:jose-bounces@ietf.org] On Behalf Of Mike Jones
Sent: Wednesday, August 21, 2013 12:00 PM
To: Richard Barnes
Cc: jose@ietf.org<mailto:jose@ietf.org>
Subject: [jose] Update to Use Cases document for content without integrity protection
Per the decision on the call yesterday that we should define a format for representing content without integrity protection, and my action item to produce Use Cases text reflecting this, my proposed text is enclosed. Richard, I've enclosed edits to -04 that accomplish this.
The additions are enclosed below:
5.9. Content without Integrity Protection
Under some circumstances, it is useful to be able to represent
Under some circumstances is not very specific. This is probably not how you want to start this. You should start this with a more specific case where this is going to be useful.
content without integrity protection in a way that the same kinds of information about the content that would accompany
This is a bit problematic with the original version of how JOSE was specified, but is now ok. However detail on what types of information are going to be useful really needs to be stated.
integrity protected content can still accompany the non-integrity-protected content. This is particularly true when signing the content may be optional.
This is a security document, it should be more detailed about why it should be optional.
For instance, the JSON Web Token (JWT) specification enables claims to be communicated that are signed and/or encrypted or that carry no integrity protection. Whether integrity protection is required is dependent upon the application's requirements and the particular usage context.
More detail - look at the small device use cases - these are much more detailed about what the use is and what the circumstances are. The more detail the easier it is for people to understand what is going on and why this is a useful case.
This also needs to have some support about why the difference between the signed and unsigned cases need to have minimal differences in the representation. Otherwise using an unsigned data structure that is specific to that purpose would be a highly justifiable way to go with this.
Jim
F8
Define a format allowing content without integrity protection to be represented.
Richard, I also commented out the reference to RFC 5083, which wasn't being used in the document. Finally, I updated the document history section, including adding the entries for the -04 edits, which had been omitted.
-- Mike
- [jose] Update to Use Cases document for content w… Mike Jones
- Re: [jose] Update to Use Cases document for conte… Richard Barnes
- Re: [jose] Update to Use Cases document for conte… Mike Jones
- Re: [jose] Update to Use Cases document for conte… Jim Schaad
- Re: [jose] Update to Use Cases document for conte… Jim Schaad
- Re: [jose] Update to Use Cases document for conte… Mike Jones
- Re: [jose] Update to Use Cases document for conte… Richard Barnes
- Re: [jose] Update to Use Cases document for conte… Mike Jones
- Re: [jose] Update to Use Cases document for conte… Jim Schaad
- Re: [jose] Update to Use Cases document for conte… Richard Barnes
- Re: [jose] Update to Use Cases document for conte… Mike Jones
- Re: [jose] Update to Use Cases document for conte… Richard Barnes
- Re: [jose] Update to Use Cases document for conte… Jim Schaad
- Re: [jose] Update to Use Cases document for conte… Mike Jones