Re: [OAUTH-WG] Barry Leiba's Discuss on draft-ietf-oauth-spop-12: (with DISCUSS and COMMENT)

2015-06-10 Thread Nat Sakimura

Thanks Barry for the comment.

My (personal) responses inline.
John and Naveen, if you have anything to add, please chime in.



-Original Message- 
From: Barry Leiba

Sent: Tuesday, June 09, 2015 4:42 AM
To: The IESG
Cc: draft-ietf-oauth-s...@ietf.org ; oauth-cha...@ietf.org ; 
draft-ietf-oauth-spop.sheph...@ietf.org ; oauth@ietf.org ; 
draft-ietf-oauth-spop...@ietf.org
Subject: [OAUTH-WG] Barry Leiba's Discuss on draft-ietf-oauth-spop-12: 
(with DISCUSS and COMMENT)


Barry Leiba has entered the following ballot position for
draft-ietf-oauth-spop-12: Discuss

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-oauth-spop/



--
DISCUSS:
--

How does "plain" do anything at all to mitigate this attack?  Wouldn't
anyone who could snag the grant also be able to snag the code verifier as
well?  Why is "plain" even here?



You have to understand that this spec deals with a scenario that the 
communication is conducted over two segments:
(1)Unprotected: Within the machine through mechanisms like custom 
scheme.

(2)Protected: Over the network, which is protected by TLS.
The “snagging” happens over the segment (1). For example, an attacker can 
snag the grant over this segment.
However, he cannot snag code verifier because it is sent over (2), which is 
TLS protected.


--
COMMENT:
--

General:
I would think that this mechanism should never be a substitute for using
TLS, and that this document should be explicit about that, and should say
that the proper mitigation for situations where TLS can be used... is to
use TLS.  Is there a reason we should NOT say that?


OAuth (RFC6749 and RFC6750) mandates the use of TLS over the network.
PKCE inherits this property. We could mention it again here, but it is sort 
of already done by inheritance.




Putting quotation marks around "code_verifier" and "code_challenge" in
the formulas is confusing: it makes it look as if you're putting in those
strings themselves, rather than the values of the variables.  It's
probably unlikely that anyone would make that mistake, but I nevertheless
suggest removing the quotation marks when you mean to refer to the
values.


That’s the peculiarity of the current XML2TXT converter.
In XML, it is  to signify strings themselves rather than 
the values of the variables.
It renders nicely on HTML format etc., but TXT seem to have this confusing 
property.

Perhaps RFC Editor can deal with.



-- Section 2 --
I don't understand the distinction between STRING and ASCII(STRING).  Can
you please explain it?


It is a notation used by JSON Web Signature, etc.
It is making sure not to conflate the sequence of characters with sequence 
of octets of characters.




-- Section 4.3 --
If "plain" does stay, why on Earth is it the default?  Even if just for
form's sake, shouldn't S256 be the default?


It is partly historical. The draft started off there, then kept adding other 
mechanisms. There are many implementations of PKCE now but the largest 
portion of it is using “plain”. For the sake of interoperability with 
them, it needs to stay as it is written.




-- Section 4.4 --
The word "code" is used for too many things, and "Authorization Grant" is
already the right name for what we're talking about here.  I suggest that
in both the section title and body you use that term, to make it clear
what you mean by the "code".


RFC 6749 defines two types of Authorization Grant: Authorization Code and 
Implicit. In PKCE, we are specifically dealing with Authorization Code so 
replacing them with Authorization Grant loosens it up and is not desirable. 
I agree that we have been a bit lax in the use of the term “code” as an 
abbreviation of “Authorization Code”. Also, looking at the TXT 
representation of the spec, largely due to the formatting peculiarity, it is 
making them even more confusing than compared to other format. Therefore, I 
suggest the following:


- Replace all occurrence of “code” as an abbreviation of “Authorization 
Code” with “Authorization Code”.
- Capitalize the defined term “code challenge” and “code verifier” so 
that there will become “Code Challenge” and “Code Verifier” throughout.

Similarly, in Section 4.5 please say "code_verifier" rather than "secret".


Good catch. Accept.



-- Section 4.4.1 --
Please expand "PKCE", which is, at the moment, only expanded in the
document tit

[OAUTH-WG] Alissa Cooper's Discuss on draft-ietf-oauth-introspection-09: (with DISCUSS and COMMENT)

2015-06-10 Thread Alissa Cooper
Alissa Cooper has entered the following ballot position for
draft-ietf-oauth-introspection-09: Discuss

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-oauth-introspection/



--
DISCUSS:
--

= Section 2.1 =
"The endpoint MAY allow other parameters to provide further context to
   the query.  For instance, an authorization service may need to know
   the IP address of the client accessing the protected resource in
   order to determine the appropriateness of the token being presented."

How does the protected resource know whether it needs to include such
additional parameters or not? What is meant by the "appropriateness" of
the token? 

In general if we're talking about a piece of data that could be sensitive
like client IP address, it would be better for there to be specific
guidelines to direct protected resources as to when this information
needs to be sent. I note that Section 5 basically says such
considerations are out of scope, but if this specific example is to be
provided here then they seem in scope to me.

= Section 5 =
"One way to limit disclosure is to require
   authorization to call the introspection endpoint and to limit calls
   to only registered and trusted protected resource servers."

I thought Section 2.1 made authorization to call the introspection
endpoint mandatory. This makes it sound like it's optional. Which is it?


--
COMMENT:
--

= Section 1.1 =
There is no reference to RFC2119 here, which may be okay but most
documents include it if they use normative language (I think).

= Section 2 =
"The
   definition of an active token is up to the authorization server, but
   this is commonly a token that has been issued by this authorization
   server, is not expired, has not been revoked, and is within the
   purview of the protected resource making the introspection call."

Is "within the purview" a term of art for OAuth 2.0? Is there a more
specific way to describe what is meant here? Also, I note that in the
description of the "active" member in Section 2.2, this criterion is not
listed. It seems like these should be aligned.

= Section 2.2 =
"Note that in order to avoid disclosing too much of the
   authorization server's state to a third party, the authorization
   server SHOULD NOT include any additional information about an
   inactive token, including why the token is inactive."

Seems like this should be a MUST NOT unless there's some reason for
providing anything other than active set to false. Same comment applies
in Section 4.

= Section 2.3 =
It seems like there is another error condition and I'm wondering if its
handling needs to be specified. Per my question in Section 2.1, if it's
possible that the request is properly formed but is missing some
additional information that the authorization server needs to evaluate
it, should there be an error condition specified for that case?


___
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth


[OAUTH-WG] Ben Campbell's No Objection on draft-ietf-oauth-introspection-09: (with COMMENT)

2015-06-10 Thread Ben Campbell
Ben Campbell has entered the following ballot position for
draft-ietf-oauth-introspection-09: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-oauth-introspection/



--
COMMENT:
--

I concur with Alissa's discuss.  

Additional comments:

-- There is no reference to RFC 2119, but there seems to be lots of
capitalized 2119 keywords. If those are intended to have the 2119
meaning, please add the usual reference. (I assume that these are
intended as 2119 keywords for the remainder of the review.)

-- 2.1, first paragraph:

If the server MAY support GET, how does a client know to use it? Would
you expect them to try and fail?

-- 3

Is there a reason not to use a more standard IANA procedure? (I.e. let
people request registrations to IANA, and have them forward the requests
to the DE?)

--3.1, under "Name"

The MUST seems unnecessary, as that's the whole point of a registry.

-- 4:
The security considerations have a lot of restated 2119 keywords. If you
want to reinforce those here, it would be better to do so with
descriptive language, rather than having multiple occurrences of the same
normative language.  Redundant normative language is error prone,
especially for future updates.

-- 4, bullet list:


It seems odd to have 2119 keywords in a "For instance" section.

--4, 6th paragraph from end

The reference to [TLS.BCP] should probably be normative.

-- 4, last two paragraphs: 

"An authorization server offering token introspection MUST be able to
understand the token values being presented to it during this call." and
"the authorization server MUST be able to decrypt and validate the token
in order to access this information."

These seem more like statements of fact than normative language.


___
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth


[OAUTH-WG] Ben Campbell's No Objection on draft-ietf-oauth-spop-12: (with COMMENT)

2015-06-10 Thread Ben Campbell
Ben Campbell has entered the following ballot position for
draft-ietf-oauth-spop-12: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-oauth-spop/



--
COMMENT:
--

I share Barry's and Alexey's concerns about both allowing "plain" and
defaulting to it.  I have some other comments, which may overlap with the
comments from others:

Substantive:

-- section 1, pre-condition 3: "All OAuth 2.0 native app client-instances
use the same client_id.  Secrets provisioned in client binary
applications cannot be considered confidential."

Is that part of the pre-condition per-se, or a general statement? If the
former, wouldn't a potential mitigation for this attack be to ensure the
precondition doesn't occur?

-- section 1, paragraph after precondition list: "not applicable since
they rely on a per-client instance secret or aper client instance
   redirect URI."

I infer that these are not realistic? If so, it might be useful to say
why. For instance, would one way to mitigate this attack be to make sure
you have per-client secrets and redirect URIs?

-- 4.4.1, last sentence:

Does this advice change if people register new challenge methods?  That
is, what if the client supports "plain", and "foo" but not S256, where
foo is more secure than plain. Can it still use "plain"?

-- 6.2:

Does the ability to register new challenge methods introduce bid-down
attacks? (Assuming that any such method is more secure than "plain", and
that the server might not support it.)

Also, I share Barry's concern that the registration procedures require
quite a bit of special treatment from IANA.

-- 7.4:

This seems to need a normative reference to 6819.

-- 7.5: How does the guidance in section 10.8 of 6479 apply to the
code_verifier? Also, I think the last sentence requires this draft (or
some other) to update 6749.

Editorial:

-- 4.4, 2nd to last paragraph: "The server MUST NOT include the
"code_challenge" value in client requests in a form that other entities
can extract."

should "client requests" be "responses to clients"? (I assume the server
does not send client requests--or do I have the terminology wrong?)

-- 4.4.1, first paragraph:
Please expand PKCE on first mention. (It might help to declare PKCE in
the introduction.)


___
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth


[OAUTH-WG] Brian Haberman's No Objection on draft-ietf-oauth-spop-12: (with COMMENT)

2015-06-10 Thread Brian Haberman
Brian Haberman has entered the following ballot position for
draft-ietf-oauth-spop-12: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-oauth-spop/



--
COMMENT:
--

I agree with Barry's DISCUSS about "plain".  Using "plain" makes no sense
to me.


___
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth


[OAUTH-WG] Brian Haberman's No Objection on draft-ietf-oauth-introspection-09: (with COMMENT)

2015-06-10 Thread Brian Haberman
Brian Haberman has entered the following ballot position for
draft-ietf-oauth-introspection-09: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-oauth-introspection/



--
COMMENT:
--

* In Section 2.1... is the authorization service and the introspection
endpoint the same device?


___
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth


[OAUTH-WG] Benoit Claise's No Record on draft-ietf-oauth-introspection-09: (with COMMENT)

2015-06-10 Thread Benoit Claise
Benoit Claise has entered the following ballot position for
draft-ietf-oauth-introspection-09: No Record

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-oauth-introspection/



--
COMMENT:
--

Interested in the answer to Alissa's DISCUSS point 1


___
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth