Re: [OAUTH-WG] Ignoring unrecognized request parameters

John Bradley <ve7jtb@ve7jtb.com> Sat, 18 February 2012 23:41 UTC

Return-Path: <ve7jtb@ve7jtb.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 BA5AA21E800F for <oauth@ietfa.amsl.com>; Sat, 18 Feb 2012 15:41:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.443
X-Spam-Level:
X-Spam-Status: No, score=-3.443 tagged_above=-999 required=5 tests=[AWL=0.155, 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 YXkHx2P-zwCp for <oauth@ietfa.amsl.com>; Sat, 18 Feb 2012 15:41:08 -0800 (PST)
Received: from mail-yw0-f44.google.com (mail-yw0-f44.google.com [209.85.213.44]) by ietfa.amsl.com (Postfix) with ESMTP id 93D5F21F8591 for <oauth@ietf.org>; Sat, 18 Feb 2012 15:41:08 -0800 (PST)
Received: by yhkk25 with SMTP id k25so2583686yhk.31 for <oauth@ietf.org>; Sat, 18 Feb 2012 15:41:08 -0800 (PST)
Received-SPF: pass (google.com: domain of ve7jtb@ve7jtb.com designates 10.100.245.4 as permitted sender) client-ip=10.100.245.4;
Authentication-Results: mr.google.com; spf=pass (google.com: domain of ve7jtb@ve7jtb.com designates 10.100.245.4 as permitted sender) smtp.mail=ve7jtb@ve7jtb.com
Received: from mr.google.com ([10.100.245.4]) by 10.100.245.4 with SMTP id s4mr320250anh.8.1329608468240 (num_hops = 1); Sat, 18 Feb 2012 15:41:08 -0800 (PST)
Received: by 10.100.245.4 with SMTP id s4mr243447anh.8.1329608466437; Sat, 18 Feb 2012 15:41:06 -0800 (PST)
Received: from [192.168.1.213] (186-107-131-167.baf.movistar.cl. [186.107.131.167]) by mx.google.com with ESMTPS id h20sm21287270ang.7.2012.02.18.15.41.03 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 18 Feb 2012 15:41:04 -0800 (PST)
Mime-Version: 1.0 (Apple Message framework v1257)
Content-Type: multipart/signed; boundary="Apple-Mail=_91152047-461F-4912-9A67-291EA3B6FDCD"; protocol="application/pkcs7-signature"; micalg="sha1"
From: John Bradley <ve7jtb@ve7jtb.com>
In-Reply-To: <CB62CAAF.12FF3%eran@hueniverse.com>
Date: Sat, 18 Feb 2012 20:41:01 -0300
Message-Id: <B02AAED0-795F-4D5A-A487-A19B6933C3B6@ve7jtb.com>
References: <CB62CAAF.12FF3%eran@hueniverse.com>
To: Eran Hammer <eran@hueniverse.com>
X-Mailer: Apple Mail (2.1257)
X-Gm-Message-State: ALoCoQkAesydXWWHTEIyj/el0IHzifvjT9+k+acOHw2FaqA1T82F3wpSPtVuBvQzMkN74YMI9By/
Cc: "oauth@ietf.org" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Ignoring unrecognized request parameters
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: Sat, 18 Feb 2012 23:41:09 -0000

It is a general problem with security protocols like SOAP, SAML, X.509.

Sometimes when you define an extension you want to be certain that the Authorization server understands it,  or you want an error.

As an example if someone did a authentication context extension (Not proposing it just an example).   They would perhaps rather have an error if the Authorization server did not understand the extension,  they could then retry without the extension if that worked for them.

This is generally dealt with by marking something as mustUnderstand in SOAP or critical in x.509.

Without that functionality (I am not asking to add it) it may be reasonable for some Authorization servers to return an error if they do not completely understand what is being sent to them.

One school of thought feels that anything you don't understand in a message could be an indication of a problem or tampering.   

I am sympathetic to the Forward compatibility argument,  however without some sort of mustUnderstand semantics it is not going to always work.

One thing that might help is an error message to indicate that it is being rejected due to unknown extensions so a client can retry.

John B. 


On 2012-02-16, at 8:01 PM, Eran Hammer wrote:

> Can you give an example where an unknown parameter being ignored can lead to security issues?
> 
> EH
> 
> 
> From: John Bradley <ve7jtb@ve7jtb.com>
> Date: Thu, 16 Feb 2012 11:55:21 -0700
> To: William Mills <wmills@yahoo-inc.com>
> Cc: "oauth@ietf.org" <oauth@ietf.org>
> Subject: Re: [OAUTH-WG] Ignoring unrecognized request parameters
> 
> If you have a generic client that works across multiple Authorization endpoints some that have extension X and others not, I can see that having the Authorization servers ignore unknown parameters is desirable.
> 
> However there are some endpoints that are not going to be able to allow unknown parameters due to there security policy.   They are often a indication of an attack.
> 
> If this remains a MUST then some endpoints will have to ignore it, and be non compliant.
> 
> I would be OK with something like "MUST ignore unknown parameters unless the endpoint is required to return an error due to local security policy."
> 
> There is probably no perfect compromise on this one.
> 
> John B.
> 
> 
> On 2012-02-16, at 3:32 PM, William Mills wrote:
> 
>> No, this is required for forward compatibility.  Implementations that send extended parameters like capability advertisements (i.e. CAPTCHA support or something) shoudl not be broken hitting older implementations.
>> 
>> From: Mike Jones <Michael.Jones@microsoft.com>
>> To: "oauth@ietf.org" <oauth@ietf.org> 
>> Sent: Thursday, February 16, 2012 10:16 AM
>> Subject: [OAUTH-WG] Ignoring unrecognized request parameters
>> 
>> In core -23, the last paragraph of section 3.1 now says:
>>  
>>                 The authorization server MUST ignore unrecognized request parameters.
>>  
>> In -22, this said:
>>  
>>                 The authorization server SHOULD ignore unrecognized request parameters.
>>  
>> In a security protocol, it seems unreasonable to require that information be ignored.  As I see it, it SHOULD be legal to return an error if unrecognized information is received.
>>  
>> Why the change?  And can we please have it changed back to SHOULD in -24?
>>  
>>                                                                 Thanks,
>>                                                                 -- Mike
>>  
>> 
>> _______________________________________________
>> 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
>