Re: [jose] POLL(s): header criticality

Mike Jones <Michael.Jones@microsoft.com> Wed, 06 February 2013 18:00 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 DEAA721F8A18 for <jose@ietfa.amsl.com>; Wed, 6 Feb 2013 10:00:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EQTFfBg7QviL for <jose@ietfa.amsl.com>; Wed, 6 Feb 2013 10:00:18 -0800 (PST)
Received: from na01-by2-obe.outbound.protection.outlook.com (na01-by2-obe.ptr.protection.outlook.com [207.46.100.31]) by ietfa.amsl.com (Postfix) with ESMTP id 2DE6821F8A14 for <jose@ietf.org>; Wed, 6 Feb 2013 10:00:17 -0800 (PST)
Received: from BY2FFO11FD015.protection.gbl (10.1.15.200) by BY2FFO11HUB023.protection.gbl (10.1.14.110) with Microsoft SMTP Server (TLS) id 15.0.609.9; Wed, 6 Feb 2013 18:00:16 +0000
Received: from TK5EX14MLTC104.redmond.corp.microsoft.com (131.107.125.37) by BY2FFO11FD015.mail.protection.outlook.com (10.1.14.131) with Microsoft SMTP Server (TLS) id 15.0.609.9 via Frontend Transport; Wed, 6 Feb 2013 18:00:15 +0000
Received: from TK5EX14MBXC284.redmond.corp.microsoft.com ([169.254.1.132]) by TK5EX14MLTC104.redmond.corp.microsoft.com ([157.54.79.159]) with mapi id 14.02.0318.003; Wed, 6 Feb 2013 17:59:44 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: Dick Hardt <dick.hardt@gmail.com>, "odonoghue@isoc.org" <odonoghue@isoc.org>, "jose@ietf.org" <jose@ietf.org>
Thread-Topic: [jose] POLL(s): header criticality
Thread-Index: AQHOAua+D+q84ufpKkeM13mXQx76+5htEeMAgAAKcICAAAMU8A==
Date: Wed, 6 Feb 2013 17:59:42 +0000
Message-ID: <4E1F6AAD24975D4BA5B168042967394367417AFA@TK5EX14MBXC284.redmond.corp.microsoft.com>
References: <510FCA42.5000704@isoc.org> <77177F76-6BC1-467A-8771-F2E1B7AEC7B4@gmail.com> <D86D2308-21CE-463D-B83E-72AAFA0C634B@gmail.com>
In-Reply-To: <D86D2308-21CE-463D-B83E-72AAFA0C634B@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.51.37]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Forefront-Antispam-Report: CIP:131.107.125.37; CTRY:US; IPV:CAL; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(24454001)(199002)(189002)(164054002)(377454001)(13464002)(51704002)(47736001)(55846006)(74502001)(16406001)(5343635001)(51856001)(4396001)(47776003)(76482001)(5343655001)(50986001)(46102001)(47976001)(65816001)(54316002)(63696002)(23726001)(56816002)(54356001)(47446002)(53806001)(33656001)(20776003)(77982001)(56776001)(59766001)(49866001)(79102001)(50466001)(31966008)(74662001)(46406002)(44976002)(80022001); DIR:OUT; SFP:; SCL:1; SRVR:BY2FFO11HUB023; H:TK5EX14MLTC104.redmond.corp.microsoft.com; RD:InfoDomainNonexistent; A:1; MX:1; LANG:en;
X-OriginatorOrg: microsoft.onmicrosoft.com
X-Forefront-PRVS: 0749DC2CE6
Subject: Re: [jose] POLL(s): header criticality
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: Wed, 06 Feb 2013 18:00:19 -0000

For what it's worth, I believe that Dick's proposed syntax, where the may-be-ignored-if-not-understood header fields are in JSON object under a specific member of the header, is compatible with the intent of the wording of "A - Define a header field that explicitly lists the fields that may be safely ignored if not understood".  He's proposing to actually put the values of those additional header fields under a defined header field, rather than using a syntax like this one:

    {"alg":"ES256",
     "ign":["notes"],
     "notes":" this property can be ignored"
    }

He's right that it's cleaner JSON.  The counter-argument is that then some header fields are in the top-level JSON object and some are not, which is an asymmetry.  I could personally live with either syntax for ignorable header fields.  A working group discussion on which syntax people prefer seems like it would be useful.

				Cheers,
				-- Mike

-----Original Message-----
From: jose-bounces@ietf.org [mailto:jose-bounces@ietf.org] On Behalf Of Dick Hardt
Sent: Wednesday, February 06, 2013 9:41 AM
To: odonoghue@isoc.org; jose@ietf.org
Subject: Re: [jose] POLL(s): header criticality

I misunderstood the Third Poll options.

I was thinking that all properties to be ignored would be a property of the header object. ie. all ignorable properties are sub property of a "ignorable" property.

eg. all "ign" properties can be ignored

{ "alg": "ES256"
, "ign": 
	{  "notes":"this property can be ignored" } }


So I am voting C for the third poll, a different option.

btw: I continue to be surprised that we are using JSON and only doing name/value pairs.

-- Dick

On Feb 6, 2013, at 9:03 AM, Dick Hardt <dick.hardt@gmail.com> wrote:

> FIRST POLL: Yes
> 
> SECOND POLL: YES
> 
> THIRD POLL: B
> 
> On Feb 4, 2013, at 6:48 AM, Karen O'Donoghue <odonoghue@isoc.org> wrote:
> 
>> Folks,
>> 
>> I am wrestling with how to help drive consensus on the topic of criticality of headers. For background, please review the current specification text, the minutes to the Atlanta meeting (IETF85), and the mailing list (especially the discussion in December with (Subj: Whether implementations must understand all JOSE header fields)). We need to come to closure on this issue in order to progress the specifications.
>> 
>> As a tool to gather further information on determining a way forward, the following polls have been created. Please respond before 11 February 2013.
>> 
>> Thanks,
>> Karen
>> 
>> *******************
>> FIRST POLL: Should all header fields be critical for implementations to understand?
>> 
>> YES - All header fields must continue to be understood by implementations or the input must be rejected.
>> 
>> NO - A means of listing that specific header fields may be safely ignored should be defined.
>> 
>> ********************
>> SECOND POLL: Should the result of the first poll be "YES", should text like the following be added? "Implementation Note: The requirement to understand all header fields is a requirement on the system as a whole - not on any particular level of library software. For instance, a JOSE library could process the headers that it understands and then leave the processing of the rest of them up to the application. For those headers that the JOSE library didn't understand, the responsibility for fulfilling the 'MUST understand' requirement for the remaining headers would then fall to the application."
>> 
>> YES - Add the text clarifying that the "MUST understand" requirement is a requirement on the system as a whole - not specifically on JOSE libraries.
>> 
>> NO - Don't add the clarifying text.
>> 
>> ************************
>> THIRD POLL: Should the result of the first poll be "NO", which syntax would you prefer for designating the header fields that may be ignored if not understood?
>> 
>> A - Define a header field that explicitly lists the fields that may be safely ignored if not understood.
>> 
>> B - Introduce a second header, where implementations must understand all fields in the first but they may ignore not-understood fields in the second.
>> 
>> C - Other??? (Please specify in detail.) 
>> _______________________________________________
>> 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