Re: [OAUTH-WG] MAC Tokens body hash

Phillip Hunt <phil.hunt@oracle.com> Wed, 03 August 2011 02:15 UTC

Return-Path: <phil.hunt@oracle.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5A38D11E80A7 for <oauth@ietfa.amsl.com>; Tue, 2 Aug 2011 19:15:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.638
X-Spam-Level:
X-Spam-Status: No, score=-2.638 tagged_above=-999 required=5 tests=[AWL=-1.436, BAYES_00=-2.599, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=1.396]
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 rn6qYtLoXMaE for <oauth@ietfa.amsl.com>; Tue, 2 Aug 2011 19:15:18 -0700 (PDT)
Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by ietfa.amsl.com (Postfix) with ESMTP id 6D2F011E8073 for <oauth@ietf.org>; Tue, 2 Aug 2011 19:15:18 -0700 (PDT)
Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by acsinet15.oracle.com (Switch-3.4.4/Switch-3.4.4) with ESMTP id p732F1cR021786 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 3 Aug 2011 02:15:03 GMT
Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id p732F0U9009647 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 3 Aug 2011 02:15:01 GMT
Received: from abhmt109.oracle.com (abhmt109.oracle.com [141.146.116.61]) by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id p732EtLb018700; Tue, 2 Aug 2011 21:14:55 -0500
Received: from [192.168.1.67] (/24.87.204.3) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 02 Aug 2011 19:14:55 -0700
References: <90C41DD21FB7C64BB94121FBBC2E723450245F611B@P3PW5EX1MB01.EX1.SECURESERVER.NET> <B68A58A7-EE11-4CC9-971F-6A58FB88DFBA@kiva.org> <90C41DD21FB7C64BB94121FBBC2E723450245F6626@P3PW5EX1MB01.EX1.SECURESERVER.NET>
In-Reply-To: <90C41DD21FB7C64BB94121FBBC2E723450245F6626@P3PW5EX1MB01.EX1.SECURESERVER.NET>
Mime-Version: 1.0 (iPhone Mail 8L1)
Content-Transfer-Encoding: 7bit
Content-Type: multipart/alternative; boundary="Apple-Mail-1--976955230"
Message-Id: <C78EE39E-A46B-4540-85E0-280B42527A21@oracle.com>
X-Mailer: iPhone Mail (8L1)
From: Phillip Hunt <phil.hunt@oracle.com>
Date: Tue, 02 Aug 2011 19:14:51 -0700
To: Eran Hammer-Lahav <eran@hueniverse.com>
X-Source-IP: acsinet21.oracle.com [141.146.126.237]
X-Auth-Type: Internal IP
X-CT-RefId: str=0001.0A090206.4E38AF28.0018:SCFMA922111,ss=1,re=-6.300,fgs=0
Cc: Ben Adida <ben@adida.net>, OAuth WG <oauth@ietf.org>, "Adam Barth(adam@adambarth.com)" <adam@adambarth.com>
Subject: Re: [OAUTH-WG] MAC Tokens body hash
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/oauth>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Aug 2011 02:15:19 -0000


Phil

On 2011-08-02, at 18:02, Eran Hammer-Lahav <eran@hueniverse.com> wrote:

> The idea is to drop 'ext' and 'bodyhash' due to being underspecified and therefore causing more harm than good. I added 'ext' to allow for application specific data to be included in the signed content. However, the name suggests this is an extension point for future specifications. I believe authentication schemes should not be extensible in ways that affect their security or interop properties and without additional text (registry, process, etc) for the 'ext' parameter, it will cause more issues than help.
> 
> Instead of the 'ext' parameter I am suggesting the 'app' parameter which will do the same, but will be better positioned as an application-specific data. The prose will go a step further and recommend that the parameter value include a hash of the data, not the data itself. This is to ensure the parameter does not become part of the payload which is inappropriate for HTTP requests.
-1 what you describe appears to be a separate feature from ext
> 
> As for the 'bodyhash' parameter, I would like to remove it because it is underspecified (we had an actual deployment experience showing that it doesn't produce interoperable implementations due to the many HTTP body transformation applied in most frameworks). Solving this issue is not possible due to the many different types of bodies and frameworks (and clearly operating on the "raw" body doesn't work). Instead, developers can use the new 'app' parameter to accomplish that.

+1

> 
> As for the normalized string, it will be adjusted to reflect these changes when they are made, so no placeholders which will require code change. Considering this is -00, it is clearly not a stable document.
> 
> Will these changes work with your use cases?
> 
> EHL
> 
>> -----Original Message-----
>> From: Skylar Woodward [mailto:skylar@kiva.org]
>> Sent: Tuesday, August 02, 2011 4:02 PM
>> To: Eran Hammer-Lahav
>> Cc: OAuth WG; Ben Adida; 'Adam Barth (adam@adambarth.com)'
>> Subject: Re: [OAUTH-WG] MAC Tokens body hash
>> 
>> hurrah!
>> (not necessarily for losing a way to sign the body, but for simplicity and
>> avoiding some of the potential inconsistencies w/ bodyhash).
>> 
>> Is your plan to reserve an empty line 6 for the Normalized Request String
>> (which was used for bodyhash) or eliminate it, brining the total to six
>> elements?
>> 
>> skylar
>> 
>> On Jul 30, 2011, at 3:43 AM, Eran Hammer-Lahav wrote:
>> 
>>> I plan to drop support for the bodyhash parameter in the next draft based
>> on bad implementation experience. Even with simple text body, UTF
>> encoding has introduced significant issues for us. The current draft does not
>> work using simple JS code between a browser and node.js even when both
>> use the same v8 engine due to differences in the body encoding. Basically,
>> the JS string used to send a request from the browser is not the actual string
>> sent on the wire.
>>> 
>>> To fix that, we need to force UTF-8 encoding on both sides. However, that
>> is very much application specific. This will not work for non-text bodies.
>> Instead, the specification should offer a simple way to use the ext parameter
>> for such needs, including singing headers. And by offer I mean give
>> examples, but leave it application specific for now.
>>> 
>>> I am open to suggestions but so far all the solutions I came up with will
>> introduce unacceptable complexity that will basically make this work useless.
>>> 
>>> EHL
>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org
>>> https://www.ietf.org/mailman/listinfo/oauth
> 
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth