Re: [OAUTH-WG] PKCE: SHA256(WAT?)
Brian Campbell <bcampbell@pingidentity.com> Fri, 30 January 2015 13:52 UTC
Return-Path: <bcampbell@pingidentity.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CE95C1A0373 for <oauth@ietfa.amsl.com>; Fri, 30 Jan 2015 05:52:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.578
X-Spam-Level:
X-Spam-Status: No, score=-3.578 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zA0xJcUn2VfN for <oauth@ietfa.amsl.com>; Fri, 30 Jan 2015 05:52:13 -0800 (PST)
Received: from na3sys009aog131.obsmtp.com (na3sys009aog131.obsmtp.com [74.125.149.247]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 193A21A01F2 for <oauth@ietf.org>; Fri, 30 Jan 2015 05:52:12 -0800 (PST)
Received: from mail-ie0-f174.google.com ([209.85.223.174]) (using TLSv1) by na3sys009aob131.postini.com ([74.125.148.12]) with SMTP ID DSNKVMuMjHlYN8sdiumNN4PGMxgnW5z0Epe1@postini.com; Fri, 30 Jan 2015 05:52:13 PST
Received: by mail-ie0-f174.google.com with SMTP id vy18so3439068iec.5 for <oauth@ietf.org>; Fri, 30 Jan 2015 05:52:12 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=JOySFO0xRe3U63hYm4udsUTtUPVpzX71CGd/QMcB5CM=; b=i12+NZYNsn8szLB686W0Kg/scIZ1lZIEspWDkkumHz4Ve5YjF9oQhwCYUkvwt10xeU wSbXTxXR0517eQGC6nky240G9eTBjjCInEOvmZLVDHjia/qiSSkJ3SxRKyhKbjDRNeAC ASKScKi9VyMZbK33rojYRwfeiSM/20gB0XCtRamCrYWh/ixzZeMuR5llqZyBLYKYlUtf YJ/otXI+f7dO5PX+BpyWiJXcpDu6Z8VwQAUOkVw7VJir6BVG2ttiVS5apOKnb4qe9K22 fxc+i2rLdCZfaHdXMTRKkYb01bw9TCn1O2rIS2PKym91EkfkpV3GMw7SWQkbM/rFa3wY SW9g==
X-Gm-Message-State: ALoCoQm/MqLHugamaT2pmLR3E9/Mfj/3jbnvzIDIKsC5ctsZE+NHRiBFtjUtyBf5QnaFlfPSkrFgh4+uk4HCWbvzDSjlajKsAeFVcjjkt1ZcTIV9xsdlG4oPRKbf0oBAatS8nkKKjf1O
X-Received: by 10.107.149.203 with SMTP id x194mr7511361iod.12.1422625932204; Fri, 30 Jan 2015 05:52:12 -0800 (PST)
X-Received: by 10.107.149.203 with SMTP id x194mr7511349iod.12.1422625932088; Fri, 30 Jan 2015 05:52:12 -0800 (PST)
MIME-Version: 1.0
Received: by 10.64.33.75 with HTTP; Fri, 30 Jan 2015 05:51:41 -0800 (PST)
In-Reply-To: <FD9F9F2A-8B32-4A26-95CC-59C8C465A202@sakimura.org>
References: <CA+k3eCQHZJYJ3mMfdGTdO=S3VVQdU+qhjVz+QsEeobJokNSHEA@mail.gmail.com> <FD9F9F2A-8B32-4A26-95CC-59C8C465A202@sakimura.org>
From: Brian Campbell <bcampbell@pingidentity.com>
Date: Fri, 30 Jan 2015 06:51:41 -0700
Message-ID: <CA+k3eCRn0xT+_fA0G3Q3OjjH9Lq-2AfC+Mv7Gq8bYnHqH5TFDw@mail.gmail.com>
To: Nat Sakimura <sakimura@gmail.com>
Content-Type: multipart/alternative; boundary="001a1140eed654db51050ddee979"
Archived-At: <http://mailarchive.ietf.org/arch/msg/oauth/dFq4kHDDguRLmQf4ptnadc0Psug>
Cc: oauth <oauth@ietf.org>, Naveen Agarwal <naa@google.com>
Subject: Re: [OAUTH-WG] PKCE: SHA256(WAT?)
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.15
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: Fri, 30 Jan 2015 13:52:16 -0000
That's definitely an improvement (to me anyway). Checking that the rest of the document uses those notations appropriately, I think, yields a few other changes. And probably begs for the "ASCII(STRING) denotes the octets of the ASCII representation of STRING" notation/function, or something like it, to be put back in. Those changes might look like the following: In 4.1.: OLD: code_verifier = high entropy cryptographic random ASCII [RFC0020] octet sequence using the url and filename safe Alphabet [A-Z] / [a-z] / [0-9] / "-" / "_" from Sec 5 of RFC 4648 [RFC4648], with length less than 128 characters. NEW (maybe): code_verifier = high entropy cryptographically strong random STRING using the url and filename safe Alphabet [A-Z] / [a-z] / [0-9] / "-" / "_" from Sec 5 of RFC 4648 [RFC4648], with length less than 128 characters. In 4.2.: OLD: S256 "code_challenge" = BASE64URL(SHA256("code_verifier")) NEW (maybe): S256 "code_challenge" = BASE64URL(SHA256(ASCII("code_verifier"))) In 4.6.: OLD: SHA256("code_verifier" ) == BASE64URL-DECODE("code_challenge"). NEW (maybe): SHA256(ASCII("code_verifier")) == BASE64URL-DECODE("code_challenge"). On Thu, Jan 29, 2015 at 8:37 PM, Nat Sakimura (=nat) <nat@sakimura.org> wrote: > I take your point, Brian. > > In our most recent manuscript, STRING is defined inside ASCII(STRING) as > > STRING is a sequence of zero or more ASCII characters > > but it is kind of circular, and we do not seem to use ASCII(). > > What about re-writing the section like below? > > STRING denotes a sequence of zero or more ASCII [RFC0020] > <http://xml2rfc.ietf.org/cgi-bin/xml2rfc.cgi#RFC0020> characters. > > OCTETS denotes a sequence of zero or more octets. > > BASE64URL(OCTETS) denotes the base64url encoding of OCTETS, per Section 3 > <http://xml2rfc.ietf.org/cgi-bin/xml2rfc.cgi#Terminology> producing a > ASCII[RFC0020] <http://xml2rfc.ietf.org/cgi-bin/xml2rfc.cgi#RFC0020> > STRING. > > BASE64URL-DECODE(STRING) denotes the base64url decoding of STRING, per Section > 3 <http://xml2rfc.ietf.org/cgi-bin/xml2rfc.cgi#Terminology>, producing a > sequence of octets. > > SHA256(OCTETS) denotes a SHA2 256bit hash [RFC6234] > <http://xml2rfc.ietf.org/cgi-bin/xml2rfc.cgi#RFC6234> of OCTETS. > > > > > > > On Jan 30, 2015, at 08:15, Brian Campbell <bcampbell@pingidentity.com> > wrote: > > In §2 [1] we've got "SHA256(STRING) denotes a SHA2 256bit hash [RFC6234] > of STRING." > > But, in the little cow town where I come from anyway, you hash bits/octets > not character strings (BTW, "STRING" isn't defined anywhere but it's kind > of implied that it's a string of characters). > > Should it say something more like "SHA256(STRING) denotes a SHA2 256bit > hash [RFC6234] of the octets of the ASCII [RFC0020] representation of > STRING."? > > I know it's kind of pedantic but I find it kind of confusing because the > code_verifier uses the url and filename safe alphabet, which has me second > guessing if SHA256(STRING) actually means a hash of the octet produced by > base64url decoding the string. > > Maybe it's just me but, when reading the text, I find the transform > process to be much more confusing than I think it needs to be. Removing and > clarifying some things will help. I hate to suggest this but maybe an > example showing the computation steps on both ends would be helpful? > > Also "UTF8(STRING)" and "ASCII(STRING)" notations are defined in §2 but > not used anywhere. > > And §2 also says, "BASE64URL-DECODE(STRING) denotes the base64url decoding > of STRING, per Section 3, producing a UTF-8 sequence of octets." But what > is a UTF-8 sequence of octets? Isn't it just a sequence octets? The > [RFC3629] reference, I think, could be removed. > > [1] https://tools.ietf.org/html/draft-ietf-oauth-spop-06#section-2 > > > Nat Sakimura > nat@sakimura.org > > > > > >
- [OAUTH-WG] PKCE: SHA256(WAT?) Brian Campbell
- Re: [OAUTH-WG] PKCE: SHA256(WAT?) Nat Sakimura
- Re: [OAUTH-WG] PKCE: SHA256(WAT?) Brian Campbell
- Re: [OAUTH-WG] PKCE: SHA256(WAT?) Nat Sakimura
- Re: [OAUTH-WG] PKCE: SHA256(WAT?) Brian Campbell
- Re: [OAUTH-WG] PKCE: SHA256(WAT?) Mike Jones
- Re: [OAUTH-WG] PKCE: SHA256(WAT?) John Bradley
- Re: [OAUTH-WG] PKCE: SHA256(WAT?) Brian Campbell
- Re: [OAUTH-WG] PKCE: SHA256(WAT?) John Bradley
- Re: [OAUTH-WG] PKCE: SHA256(WAT?) Brian Campbell
- Re: [OAUTH-WG] PKCE: SHA256(WAT?) John Bradley