Re: [jose] Proposed resolution of header criticality issue

John Bradley <ve7jtb@ve7jtb.com> Tue, 12 March 2013 03:01 UTC

Return-Path: <ve7jtb@ve7jtb.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 61EC921F8517 for <jose@ietfa.amsl.com>; Mon, 11 Mar 2013 20:01:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.598
X-Spam-Level:
X-Spam-Status: No, score=-3.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, 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 dzJY7kyKJrlJ for <jose@ietfa.amsl.com>; Mon, 11 Mar 2013 20:01:27 -0700 (PDT)
Received: from mail-ye0-f182.google.com (mail-ye0-f182.google.com [209.85.213.182]) by ietfa.amsl.com (Postfix) with ESMTP id DCDF321F8510 for <jose@ietf.org>; Mon, 11 Mar 2013 20:01:26 -0700 (PDT)
Received: by mail-ye0-f182.google.com with SMTP id r9so765040yen.27 for <jose@ietf.org>; Mon, 11 Mar 2013 20:01:26 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:content-type:mime-version:subject:from:in-reply-to:date :cc:message-id:references:to:x-mailer:x-gm-message-state; bh=wgZ5ZWcT4dcnkSxwscTholm3ROW7TZvMAYO6vzegsx4=; b=GPKi7E/8kx+vQZL/0+92E8YBW1nTPLy8JaKoxEnawPy88unhTO2SwCpNm9VF8q0cGx reBKd6fFQaIHgD72o9KjDojq2n+ZfSD+ya0eqSvu8rBZbSjq3TM3Wg+hpCQCte8kr/mg yiEwGvoyKwqAwIuw66TO6A3QqRUi+QN8yKDENCOFn5w5xXiQQ2ctWK1PtKfMKddMulOG 3A1rZlky3crhl/Wn3fMrE9fZ+9+6L56uZW8a73cDlQxuszcyY8aNNEtNSSdGwKf6kwnG E7a3ndpXkALyZi+NrOxF7xVuidOO5gMzWHiGVK9yyslQhAcw8z3245j1ITbuPNx8bPZw mOfQ==
X-Received: by 10.236.146.39 with SMTP id q27mr7972050yhj.203.1363057285916; Mon, 11 Mar 2013 20:01:25 -0700 (PDT)
Received: from [192.168.11.16] (ip-64-134-186-130.public.wayport.net. [64.134.186.130]) by mx.google.com with ESMTPS id k45sm27572619yhd.2.2013.03.11.20.01.15 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 11 Mar 2013 20:01:24 -0700 (PDT)
Content-Type: multipart/signed; boundary="Apple-Mail=_29AC7FA9-1E71-4B95-850C-2E7EE54CAD10"; protocol="application/pkcs7-signature"; micalg="sha1"
Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\))
From: John Bradley <ve7jtb@ve7jtb.com>
In-Reply-To: <255B9BB34FB7D647A506DC292726F6E1150B786643@WSMSG3153V.srv.dir.telstra.com>
Date: Mon, 11 Mar 2013 23:01:07 -0400
Message-Id: <1D3CF454-0536-4D5D-90DF-938C73EB6BF7@ve7jtb.com>
References: <513E6A73.1090403@isoc.org> <513E774C.6090605@isoc.org> <CAHBU6ivLV+D3g-gLgBNXkkj3cSPLXkh1KXcN83ewR0Hd6a4YtA@mail.gmail.com> <255B9BB34FB7D647A506DC292726F6E1150B786643@WSMSG3153V.srv.dir.telstra.com>
To: "Manger, James H" <James.H.Manger@team.telstra.com>
X-Mailer: Apple Mail (2.1499)
X-Gm-Message-State: ALoCoQmdwVlD/LTv31GzFvsdDvpBounGguKeiNdPdsUM6B0ctYyl4H5u217ksGo/8lV5wlT6R94n
Cc: Tim Bray <tbray@textuality.com>, jose <jose@ietf.org>, Karen ODonoghue <odonoghue@isoc.org>
Subject: Re: [jose] Proposed resolution of header criticality issue
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, 12 Mar 2013 03:01:28 -0000

On 2013-03-11, at 10:48 PM, "Manger, James H" <James.H.Manger@team.telstra.com> wrote:

> I’ll add some cheers — this does look like substantial progress.
>  
> I assume the fields such as “epk”, “apu” etc that sometimes must be understood, and at other times must be ignored (depending on “alg” or “enc” value) would NOT be listed in the “crit” field as they are defined in the “base specs”.
>  
Correct

> Being in the “base specs” is the right criteria for whether a field should be listed in “crit” as long as “base specs” means: “base specifications for the particular “alg”/”enc” values”. It shouldn’t mean (and doesn’t have to mean) the base spec for the whole JOSE system.
>  

Crit is only for extensions, it is up to the extension definition to decide if the field needs to be in crit.


> P.S. “meta” might be a nicer label than “asd”.

I don't have any particular attachment to the name.   Some places things like this are called associated data, though not the places normal people go I grant you.  
Meta-data about the payload is what it is,  The current practice is to use three character names.   I am fine with met or meta (I suspect that if you are throwing crap into the envelope the single character won't kill anyone.

James if you like the solution and want it to be meta I will back you on it :)

John B.

>  
> --
> James Manger
>  
> From: jose-bounces@ietf.org [mailto:jose-bounces@ietf.org] On Behalf Of Tim Bray
> Sent: Tuesday, 12 March 2013 12:43 PM
> To: Karen ODonoghue
> Cc: jose
> Subject: Re: [jose] Proposed resolution of header criticality issue
>  
> Cue wild cheers from the peanut gallery where non-cryptographers sit.  MustIgnore is infinitely more robust and open-ended than MustUnderstand.  -T
>  
> 
> On Mon, Mar 11, 2013 at 5:31 PM, Karen O'Donoghue <odonoghue@isoc.org> wrote:
> 
> Folks,
> 
> A side meeting was held Sunday with a number of jose working group participants to try to resolve the open issue related to header criticality. The following are the proposed resolutions from the meeting. Point 5 of the proposed resolution below is actually independent of the other 4 points, and could be considered separately. This will all be discussed in Wednesday's meeting. 
> 
> In addition to the text below, there was some agreement to replace the "understand" text with something a bit more explicit like "must process". However, that text has not been rolled into the summary text below yet. 
> 
> Thank you to Jim Schaad, Mike Jones, John Bradley, Nat Sakimura, Martin Thomas, Eric Rescorla, Matt Miller, and Richard Barnes for your efforts (and my apologies if I missed someone). 
> 
> Regards, 
> Karen
> 
> 1:  Change the language “Additional members MAY be present in the JWK.  If present, they MUST be understood by implementations using them.” to “Additional members MAY be present in the JWK.  If not understood by implementations encountering them, they MUST be ignored.”  (And make the same change for JWK Set as well.)
> 
> 2:  Characterize all existing JWS and JWE header fields as either must be understood or may be ignored.  “alg”, “enc”, and “zip” must be understood.  “kid”, “x5u”, “x5c”, “x5t”, “jwk”, “jku”, “typ”, and “cty” can be ignored because while not using them may result in the inability to process some signatures or encrypted content, this will not result in a security violation – just degraded functionality.  Other fields such as “epk”, “apu”, “apv”, “epu”, and “epv” must be understood and used when “alg” or “enc” values requiring them are used, and otherwise they may be ignored.
> 
> 3.  Define a new header field that lists which additional fields not defined in the base specifications must be understood and acted upon when present.  For instance, an expiration-time extension field could be marked as must-be-understood-and-acted-upon.  One possible name for this would be “crit” (critical).  An example use, along with a hypothetical “exp” (expiration-time) field is:
> 
>   {"alg":"ES256",
>    "crit":["exp"],
>    "exp”:1363284000
>   }
> 
> 4.  All additional header fields not defined in the base specifications and not contained in the “crit” list MUST be ignored if not understood.
> 
> 5.  Define a new header field “asd” (application-specific data) whose value is a JSON structure whose contents are opaque to and ignored by JWS and JWE implementations but for which its contents MUST be provided to applications using JWS or JWE, provided that the signature/MAC validation or decryption operation succeeds.  The intended use of this field is to have a standard place to provide application-specific metadata about the payload or plaintext.
> 
>  
>  
> 
> _______________________________________________
> 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