Hi,

I have been reviewing draft-ietf-oauth-pop-architecture-05. In ACE WG we have a 
draft that uses PoP tokens for IoT and the architectures defined here so my 
review was done with that IoT perspective. I’m a bit late with the review and 
some of the comments might already be mentioned by others.



——————

3.1. Preventing Access Token Re-Use by the Resource Server

If a symmetric key is used it’s possible to re-use the key for a resource 
server. The section talks about the importance of scopes, but I feel it should 
also mention the importance for the resource server to verify the audience 
(“aud”) claim in the token to disable missuse.

——————

The draft in ACE WG 
(https://tools.ietf.org/html/draft-seitz-ace-oauth-authz-00) relies heavily on 
this work. The main reason for this is the way PoP tokens can establish key 
material, with the help of the authorization server, on both the client and 
resource server. PoP tokens is also a very good fit for constrained IoT devices 
that can be offline and it’s also possible to use hardware key storages to 
handle asymmetric pop keys.

There could be a place for a new "Use Case" under section 3 that talks about 
scenarios where PoP keys are a really good match for offline IoT devices. I 
could help out ironing out a text for that with the help of the docs authors if 
that’s of interest.

———

s/a bogus tokens/a bogus token

——

In the document only references are made to JSON, JWT and JOSE. More exactly in 
the following two sections:


   A number of the threats listed in Section 
4<https://tools.ietf.org/html/draft-ietf-oauth-pop-architecture-05#section-4> 
demand protection of the
   access token content and a standardized solution, in form of a JSON-
   based format, is available with the JWT 
[RFC7519<https://tools.ietf.org/html/rfc7519>].




   With the JSON Web Token (JWT) [RFC7519<https://tools.ietf.org/html/rfc7519>] 
a standardized format for
   access tokens is available.  The necessary elements to bind symmetric
   or asymmetric keys to a JWT are described in
   
[I-D.ietf-oauth-proof-of-possession<https://tools.ietf.org/html/draft-ietf-oauth-pop-architecture-05#ref-I-D.ietf-oauth-proof-of-possession>].


Constrained IoT devices uses other access token and messages formats (according 
to our draft). It does not only use signed/encrypted JWT’s but also COSE 
protected CBOR Web Tokens. See 
https://tools.ietf.org/id/draft-wahlstroem-oauth-cbor-web-token-00.txt

I totally agree that JWT is the correct examples to have in this document due 
to the fact that they are RFC’s, they are well known and should be used in as 
many places as possible, but it would be good to open up for other types of 
message formats. For example like this:



   A number of the threats listed in Section 
4<https://tools.ietf.org/html/draft-ietf-oauth-pop-architecture-05#section-4> 
demand protection of the
   access token content and a standardized solution in form of, for example, a 
JSON-
   based format, is available with the JWT 
[RFC7519<https://tools.ietf.org/html/rfc7519>].



——


 For that
   purpose the client will have to authenticate the resource server
   before transmitting the access token.



I’m missing a description about how this is handled in an end-to-end security 
scenario.

———


      The resource server queries the authorization server for the
      symmetric key.  This is an approach envisioned by the token
      introspection endpoint 
[I-D.ietf-oauth-introspection<https://tools.ietf.org/html/draft-ietf-oauth-pop-architecture-05#ref-I-D.ietf-oauth-introspection>].



Not a question for this draft maybe, but in what draft is the introspection 
response claim defined? It’s not defined in 
https://tools.ietf.org/html/rfc7662#section-2.2 and I don’t know in what other 
draft it can be defined.

——

In ACE WG the draft seitz-ace-oauth-authz have a profile for an access request 
to make it work over CoAP. CoAP is the HTTP equivalent for constrained devices, 
and it has limitations, for example it can’t send large tokens in options 
(headers in "http-speak"). This means that the draft defines a way to first 
send the PoP token to an new endpoint on the resource server to establish a 
security context. Then the real request against the resource server can be done 
once the security context is established. See more details here 
https://tools.ietf.org/html/draft-seitz-ace-oauth-authz-00#section-5.2.

An open question; should a flow like that be added to the architecture section? 
That means a new section 7.5.

——

Thanks for writing this. I think it’s very important work.

/ Erik


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

Reply via email to