Hi Nat,
At present, I do not support the adoption of this document as a WG
document since the different techniques
that are being proposed have severe problems:
* When the JWT contains a jwk , jwkt#s256 or jwe, the method is
ineffective in case of a collusion between two users (ABC attack).
* When the JWT contains a x5t#s256, the JWT is linked to a hash value
of a certificate included in the JWT.
The server then knows a unique identifier of the user. Such a method
allows an easy linkage between all the accounts
of a given user on different resource servers, even when the JWT
only contains non-directly identifiable attributes.
Hence, it does not respect 'privacy by design' principles.
In addition, if a fixed value is being used for the audience restriction
parameter, e.g. a URL of the server, then the authorization server
can easily know where the access tokens will be used and thus it will be
in a position to act as Big Brother.
You may however continue to progress this document as an individual
contribution.
Denis
PS. I will not subscribe to bitbucket.org because I don't agree with the
conditions of this site.
Hi Denis,
Thanks.
Is it possible to file these separately at
https://bitbucket.org/Nat/oauth-rjwtprof/issues?status=new&status=open so
that each issue can be closed separately? (You need to login to
bitbucket to do so.) Pull request would be nice, too, but we are going
to do a bit of surgery on the spec as of now, so it might be wise to
wait till after that to avoid conflicts.
Also, it is not yet a WG document so please support it become one.
Best,
Nat Sakimura
On Wed, Mar 22, 2017 at 5:15 AM Denis <[email protected]
<mailto:[email protected]>> wrote:
Hi Nat,
I have several comments on draft-sakimura-oauth-jpop-01 related to
security or privacy.
1.The abstract states:
Only the party in possession of a corresponding cryptographic key
with the Jpop token can use it to get access
to the associated resources unlike in the case of the bearer token
described in [RFC6750] where any party
in possession of the access token can access the resource.
This is incorrect.
Replace with:
Any party able to use a corresponding private cryptographic key
with the Jpop token can use it to get access
to the associated resources unlike in the case of the bearer token
described in [RFC6750] where any party
in possession of the access token can access the resource.
2.In section 3, the text states:
audThe identifier of the resource server.
According to the content of RFC 7800:
The "aud" (audience) claim identifies the recipients that the JWT
is intended for. The interpretation of audience values is
application specific.
Replace with:
audThe recipients that the JWT is intended for (the interpretation
of audience values is application specific).
3.In section 3, the text states:
cnfThe confirmation method.
Their semantics are defined in [RFC7519] and [RFC7800]
This is incorrect: cnf is neither defined in [RFC7519] nor in
[RFC7800].
4.In section 6.2, the text states:
For this, the following steps are taken:
1.The client prepares a nonce.
2.The client creates JWS compact serialization over the nonce
JSON Web Token Claims are listed at:
https://www.iana.org/assignments/jwt/jwt.xhtml
"nonce" has not been defined by the IANA, but is mentioned in
OpenID Connect Core 1.0 incorporating errata set 1. It is
described as :
nonce
String value used to associate a Client session with an ID Token,
and to mitigate replay attacks. The value is passed through
unmodified from the Authentication Request to the ID Token. If
present in the ID Token, Clients MUST verify that the nonce
Claim Value is equal to the value of the nonceparameter sent in
the Authentication Request. If present in the Authentication Request,
Authorization Servers MUST include a nonceClaim in the ID Token
with the Claim Value being the nonce value sent in the
Authentication Request.
Authorization Servers SHOULD perform no other processing on
noncevalues used. The noncevalue is a case sensitive string.
I have several observations:
a)there is some difficulty to mandate the use of a parameter that
is not registered by IANA.
b)the further processing of the nonce is not indicated in the text
c) The last sentence from the above description states:
"Authorization Servers SHOULD perform no other processing on
noncevalues used"
There is a practical problem with such a sentence since
Authorization Servers would need to remember nonces for ever.
Either that sentence should be deleted or the nonce shall be only
used with a UTC time parameter included in the Authentication Request.
In any case, the definition of a nonce as specified in OpenID
Connect Core 1.0 incorporating errata set 1 should not be used and
another parameter
(e.g. rdn for random) should be defined and registered by IANA and
used in combination with a UTC time parameter included in the
Authentication Request.
In this way, only the rdn received during the last X minutes will
need to be remembered by the Authorization Servers.
5.The title of section 9.1 is: "Certificate validation"
Change the title of this section into :
"9.1. Common Name Constrained Token"
6.In section 9.1, the text states:
The "cn" JWT confirmation method relies its security property on the
X.509 client certificate authentication.
Replace with:
The "cn" JWT confirmation method relies its security property by
the inclusion of the Common Name (CN)
that is part of the Distinguished Name (DN) of an X.509
certificate. The JWT is linked to the common name
included in the certificate. Such a method is not privacy friendly
since it allows an easy linkage between
all the accounts of a given user on different resource servers.
7.Add a new section 9.2 to deal with the case of the cid.
Proposed text:
9.2. Client ID Constrained Token
The "cid" JWT confirmation method relies its security property on
the assumption that the cid legitimately
used by one server cannot be used by another user. It also relies
on the assumption that the authentication data
associated with "cid" combined with the "iss" will only be used by
the legitimate user. This method is ineffective
in case of a collusion between two users, since one user can
perform all the computations needed by the other user.
8.In section 9.2, the text states:
The client’s secret key must be kept securely. Otherwise, the
notion of PoP breaks down.
The PKIX group from the IETF is using the vocabulary private key /
public key when asymmetric cryptography is being used
and secret key when symmetric algorithms are being used (let us
call a spade a spade).
However, keeping a client's private key securely is not the right
wording either. If the key is kept securely in a secure element
(e.g. smart card), this is not enough, since the holder of the
secure element may use this key for himself ... or worse for the
benefit of someone else.
Proposed change :
9.3. Key Constrained Token
This method has four variants.
When the JWT contains a jwk, the JWT confirmation method relies
its security property on the assumption that the private key
associated with the public key contained in the access token will
only be used by the legitimate user. In order to avoid an easy linkage
between user's accounts, this method presents the advantage that
the key pair can be changed for every JWT. However, this method
is ineffective in case of a collusion between two users, since one
user can perform all the computations needed by the other user.
When the JWT contains a jwkt#s256, the server must have a prior
knowledge of the public key and the method relies its security
property
on the assumption that the private key associated with the public
key contained in the access token will only be used by the
legitimate user.
Hence, this method is ineffective in case of a collusion between
two users, since one user can perform all the computations needed
by the other user.
When the JWT contains a x5t#s256, the server must have a prior
knowledge of the public key certificate. The JWT is then linked to
a hash value
of a certificate included in the JWT. The server knows a unique
identifier of the user. Such a method is not privacy friendly
since it allows
an easy linkage between all the accounts of a given user on
different resource servers.
When the JWT contains a jwe, the JWT confirmation method relies
its security property on the assumption that the secret key included
in the JWT will only be used by the legitimate user. In order to
avoid an easy linkage between user's accounts, this method presents
the advantage that the secret key can be changed for every JWT.
However, this method is ineffective in case of a collusion between
two users,
since one user can perform all the computations needed by the
other user.
9.The text states in section 9.3:
9.3.Audi_a_nce Restriction
When using the signature method the client must specify to the AS
the aud it intends to send the token to, so that it can be
included in the AT.
A malicious RS could receive a AT with no aud or a logical
audience and then replay the AT and jws-on-nonce to the actual server.
Proposed change in order to address privacy concerns :
9.4.Audi_e_nce Restriction
When using the signature method, the client must specify to the AS
the aud it intends to send the token to, so that it can be
included in the AT.
RFC 7800 states that the interpretation of audience values is
application specific. If a fixed value is being used, e.g. a URL
of the server,
then the authorization server can easily know where the access
tokens will be used and thus is in a position to act as Big Brother.
It is thus recommended to use a different value in the aud claims
for each access token that contains no semantics in it but that
the resource server
can easily recognize.//
If a malicious RS receives an AT with no aud or a logical audience
in it then it can replay the AT and jws-on-nonce to another server.
Denis
HI Chairs,
I would also like to ask 5 min. on Monday (as I cannot be on
Friday) for
The OAuth 2.0 Authorization Framework: JWT Pop Token Usage [1].
[1] https://tools.ietf.org/html/draft-sakimura-oauth-jpop-01
It is capturing strong and rather urgent demands from the
financial sector and would be great if it can be considered in
the WG.
Best,
Nat Sakimura
On Tue, Mar 21, 2017 at 10:28 PM Antonio Sanso <[email protected]
<mailto:[email protected]>> wrote:
hi Torsten,
good one. I personally I am looking forward to see this
particular document find its way.
IMHO this is something much needed.
regards
antonio
On Mar 21, 2017, at 2:08 PM, Torsten Lodderstedt
<[email protected] <mailto:[email protected]>> wrote:
Hi Chairs,
I would like to request 5 minutes on Monday to briefly
present the status of the security document. This is mainly
to raise awareness in the group since I didn’t get that much
input on it since Seoul.
kind regards,
Torsten.
Am 18.03.2017 um 01:52 schrieb Mike Jones
<[email protected]
<mailto:[email protected]>>:
Hi Chairs,
I'd like to request that the following presentations be
added to the agenda:
OAuth Token Exchange (draft-ietf-oauth-token-exchange) -
Mike Jones - 15 minutes
OAuth Authorization Server Metadata
(draft-ietf-oauth-discovery) - Mike Jones - 15 minutes
I'd also talked with Brian Campbell and I think he wants to
lead this discussion, in part based on his implementation
experience:
OAuth Token Binding (draft-ietf-oauth-token-binding) -
Brian Campbell - 30 minutes
(Brian may suggest a different amount of time)
I agree that William Dennis should present about the OAuth
Device Flow (draft-ietf-oauth-device-flow).
For completeness, I don't think a presentation is needed
about OAuth AMR Values (draft-ietf-oauth-amr-values)
because it's now completed its IESG review.
I'll look forward to seeing many of you in just over a week!
-- Mike
-----Original Message-----
From: OAuth [mailto:[email protected]] On Behalf Of
"IETF Secretariat"
Sent: Friday, March 3, 2017 3:55 PM
To: [email protected] <mailto:[email protected]>;
[email protected] <mailto:[email protected]>
Cc: [email protected] <mailto:[email protected]>
Subject: [OAUTH-WG] oauth - Requested sessions have been
scheduled for IETF 98
Dear Stephanie McCammon,
The session(s) that you have requested have been scheduled.
Below is the scheduled session information followed by the
original request.
oauth Session 1 (2:30:00)
Friday, Morning Session I 0900-1130
Room Name: Zurich C size: 100
---------------------------------------------
oauth Session 2 (1:00:00)
Monday, Afternoon Session III 1710-1810
Room Name: Zurich C size: 100
---------------------------------------------
Request Information:
---------------------------------------------------------
Working Group Name: Web Authorization Protocol Area Name:
Security Area Session Requester: Stephanie McCammon
Number of Sessions: 2
Length of Session(s): 2.5 Hours, 1 Hour Number of
Attendees: 50 Conflicts to Avoid:
First Priority: saag core tls tokbind
People who must be present:
Hannes Tschofenig
Kathleen Moriarty
Derek Atkins
Resources Requested:
Projector in room
Special Requests:
Please avoid conflict with sec area BoFs.
---------------------------------------------------------
_______________________________________________
OAuth mailing list
[email protected] <mailto:[email protected]>
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Foauth&data=02%7C01%7C%7C254d07b9729a4cfc8dd408d4705b73a2%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636256985463058106&sdata=FYIqTvgn1%2Fpjyqw%2BtGhDWgiB0G0ATuL30ap%2B3bLX6aQ%3D&reserved=0
_______________________________________________
OAuth mailing list
[email protected] <mailto:[email protected]>
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Foauth&data=02%7C01%7C%7C254d07b9729a4cfc8dd408d4705b73a2%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636256985463058106&sdata=FYIqTvgn1%2Fpjyqw%2BtGhDWgiB0G0ATuL30ap%2B3bLX6aQ%3D&reserved=0
_______________________________________________
OAuth mailing list
[email protected] <mailto:[email protected]>
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Foauth&data=02%7C01%7C%7C254d07b9729a4cfc8dd408d4705b73a2%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636256985463068122&sdata=5CIJnWs2VdLM9FUWt%2FWlOxIilp5N2vfr7b9elwhL%2BA4%3D&reserved=0
_______________________________________________
OAuth mailing list
[email protected] <mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/oauth
--
Nat Sakimura
Chairman of the Board, OpenID Foundation
_______________________________________________
OAuth mailing list
[email protected] <mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
[email protected] <mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/oauth
--
Nat Sakimura
Chairman of the Board, OpenID Foundation
_______________________________________________
OAuth mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/oauth