Re: [OAUTH-WG] draft-ietf-oauth-spop-10

Hannes Tschofenig <> Wed, 18 February 2015 08:45 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 9EEF01A1A5F for <>; Wed, 18 Feb 2015 00:45:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 0cu7RKS-bYCY for <>; Wed, 18 Feb 2015 00:45:19 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 47E111A1A29 for <>; Wed, 18 Feb 2015 00:45:19 -0800 (PST)
Received: from [] ([]) by (mrgmx003) with ESMTPSA (Nemesis) id 0LeMWL-1Xlwoh0lX3-00q8fO; Wed, 18 Feb 2015 09:45:14 +0100
Message-ID: <>
Date: Wed, 18 Feb 2015 09:43:30 +0100
From: Hannes Tschofenig <>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Nat Sakimura <>
References: <> <>
In-Reply-To: <>
OpenPGP: id=4D776BC9
Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="SSFpfMuQHn3oUEBCG22MQrCu76f2eO6sl"
X-Provags-ID: V03:K0:IjSOA47LibIWmhYPF8okYzu77Eo+TVI1SHivbJGCGW3ELyzlXMa tAxpz7O+u6qqf+c2BBKhDQEO2bCXb72X1cwhrtu89gG1sfFgRs603x3K53sQrKQWHndMTW4 bGbZ5KpNylmUUAyj8N3M6APkRshyiYU0sqg/Y4mH54iz2plClTT/i5QWAIvXkDXgEIZnmox GIGPbZk4DUOZCYOuf6BgQ==
X-UI-Out-Filterresults: notjunk:1;
Archived-At: <>
Cc: "" <>,
Subject: Re: [OAUTH-WG] draft-ietf-oauth-spop-10
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: OAUTH WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 18 Feb 2015 08:45:21 -0000

Hi Nat,

thanks for the quick response.

I was hoping to see a statement like "The code verifier MUST have enough
entropy to make it impractical to guess the value." in the text rather
than the SHOULD. Given all the other statements in the draft I am not
sure what the should actually means. Under what conditions would an
implementer not provide enough entropy to make guessing impractical?


On 02/18/2015 05:13 AM, Nat Sakimura wrote:
> Hi Hannes, 
> I hereby confirm that I have submit the draft  in full conformance with the  provisions of BCP 78 and BCP 79.
> Re: Security Consideration (7.1) and section 4.1
> The first part of the 7.1 is a non-normative prose explaining that the implementers got to make sure that the code verifier is hard to guessed or modeled. In a way, this is laying out the basic security property requirment on the code verifier. 
> Then, it goes onto the implementation guideance that one need to use a cryptographic random number generator instead of relying on a rand() in some language that are  not cryptographically random to generate 32-octet sequence. The same text is in 4.1 as well. 
> We did not copy "code verifier SHOULD have enough entropy to make it impractical to guess the value" here because that looked needlessly repeating, but if you want, I have no objection in adding it to 7.1. 
> Alternatively, in 7.1, after explaining the rationale, we can just point to 4.1 for the control and implementation guidance. 
> Re: 32-octet
> We chose it because we are using SHA256 in generating the code challange.
> Having more entropy does not help us here, while having less octets increases the risk. 
> Best, 
> Nat 
> On Tue, 17 Feb 2015 17:56:33 +0100
> Hannes Tschofenig <> wrote:
>> Hi Nat, John, Naveen,
>> thanks a lot for your work on the document.
>> I still need responses to this mail to complete the shepherd writeup:
>> I definitely need the IPR confirmation.
>> It would also be helpful to have someone who implemented the
>> specification as it currently is. I asked Brian and Thorsten for
>> clarification regarding their statements that they implemented earlier
>> versions of the spec.
>> As a final remark I still believe that the text regarding the
>> randomness is still a bit inconsistent. Here are two examples:
>> 1) In the Security Consideration you write that "The security model
>> relies on the fact that the code verifier is not learned or guessed by
>> the attacker.  It is vitally important to adhere to this principle. "
>> 2) In Section 4.1 you, however, write: "NOTE: code verifier SHOULD
>> have enough entropy to make it impractical to guess the value.  It is
>> RECOMMENDED that the output of a suitable random number generator be
>> used to create a 32-octet sequence."
>> There is clearly a long way from a SHOULD have enough entropy to the
>> text in the security consideration section where you ask for 32 bytes
>> entropy.
>> It is also not clear why you ask for 32 bytes of entropy in
>> particular.
>> Ciao
>> Hannes