OAuth P. Hunt, Ed. Internet-Draft Oracle Corporation Intended status: Informational J. Richer Expires:March 28,April 21, 2016 W. Mills P. Mishra Oracle Corporation H. Tschofenig ARM LimitedSeptember 25,October 19, 2015 OAuth 2.0 Proof-of-Possession (PoP) Security Architecturedraft-ietf-oauth-pop-architecture-03.txtdraft-ietf-oauth-pop-architecture-04.txt Abstract The OAuth 2.0 bearer token specification, as defined in RFC 6750, allows any party in possession of a bearer token (a "bearer") to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens must to be protected from disclosure in transit and at rest. Some scenarios demand additional security protection whereby a client needs to demonstrate possession of cryptographic keying material when accessing a protected resource. This document motivates the development of the OAuth 2.0 proof-of-possession security mechanism. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire onMarch 28,April 21, 2016. Copyright Notice Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . .32 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Preventing Access Token Re-Use by the Resource Server . .43 3.2. TLS Channel Binding Support . . . . . . . . . . . . . . . 4 3.3. Access to a Non-TLS Protected Resource . . . . . . . . . 4 3.4. Offering Application Layer End-to-End Security . . . . . 5 4. Security and Privacy Threats . . . . . . . . . . . . . . . . 5 5.Requirements . . . . . . . . . . . . . . . . . . . . . . . . 6 6.Threat Mitigation . . . . . . . . . . . . . . . . . . . . . .10 6.1.6 5.1. Confidentiality Protection . . . . . . . . . . . . . . .11 6.2.7 5.2. Sender Constraint . . . . . . . . . . . . . . . . . . . .11 6.3.7 5.3. Key Confirmation . . . . . . . . . . . . . . . . . . . .12 6.4.8 5.4. Summary . . . . . . . . . . . . . . . . . . . . . . . . .13 7.9 6. Architecture . . . . . . . . . . . . . . . . . . . . . . . .14 7.1. Client and Authorization Server Interaction . . . . . . . 14 7.1.1. Symmetric Keys . . . . . . . . . . . . . . . . . . . 14 7.1.2. Asymmetric Keys . . . . . . . . . . . . . . . . . . . 16 7.2. Client and Resource Server Interaction . . . . . .10 7. Requirements . . .17 7.3. Resource and Authorization Server Interaction (Token Introspection). . . . . . . . . . . . . . . . . . . . .1815 8. Security Considerations . . . . . . . . . . . . . . . . . . .1918 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 11.1. Normative References . . . . . . . . . . . . . . . . . . 19 11.2. Informative References . . . . . . . . . . . . . . . . .2019 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 1. IntroductionTheAt the time of writing the OAuth 2.0 protocol family ([RFC6749], [RFC6750], and [RFC6819]) offer a singletoken type known as the "bearer" tokenstandardized security mechanism to access protectedresources.resources, namely the bearer token. RFC 6750 [RFC6750] specifies the bearer token mechanism and defines it as follows: "A security token with the property that any party in possession of the token (a "bearer") can use the token in any way that any other party in possession of it can. Using a bearer token does not require a bearer to prove possession of cryptographic key material." The bearer token meets the security needs of a number of use cases the OAuth 2.0 protocol had originally been designed for. There are, however, other scenarios that require stronger security properties and ask for active participation of the OAuth client in form of cryptographic computations when presenting an access token to a resource server. This document outlines additional use cases requiring stronger security protection in Section 3, identifies threats in Section 4, proposes different ways to mitigate those threats in Section6,5, outlines an architecture for a solution that builds on top of the existing OAuth 2.0 framework in Section7,6, and concludes with a requirements list in Section5.7. 2. Terminology The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and 'OPTIONAL' in this specification are to be interpreted as described in [RFC2119], with the important qualification that, unless otherwise stated, these terms apply to the design of the protocol, not its implementation or application. 3. Use Cases The main use case that motivatesimprovement upon "bearer"better-than-bearer token security is the desire of resource servers to obtain additional assurance that the client is indeed authorized to present an access token. The expectation is that the use of additional credentials (symmetric or asymmetric keying material) will encourage developers to take additional precautions when transferring and storing access token in combination with these credentials. Additional use cases listed below provide further requirements for the solution development. Note that a single solution does not necessarily need to offer support for all use cases. 3.1. Preventing Access Token Re-Use by the Resource ServerInImagine a scenario where a resource server that receives a valid accesstoken, the resource server thentoken re-uses it with other resource server. The reason for re-use may be malicious or may well be legitimate. In a legitimatecase, the intent is to supportuse case consider chaining of computations whereby a resource server needs to consult other third party resource servers to completeathe requested operation. In both cases it may be assumed that the scope of the access token is sufficiently large that it allows such are-use.re- use. For example, imagine a case where a company operates email services as well as picture sharing services and that company had decided to issue access tokens with a scope that allows access to both services. With this use case the desire is to prevent such access token re-use. This also implies that the legitimate use cases require additional enhancements for request chaining. 3.2. TLS Channel Binding Support In this use case we consider the scenario where an OAuth 2.0 request to a protected resource is secured using TLS but the client and the resource server demand that the underlying TLS exchange is bound to additional application layer security to prevent cases where the TLS connection is terminated at a TLS intermediary, which splits the TLS connection into two separate connections. In this use case additional informationshould beis conveyed to the resource server to ensure that no entity entity has tampered with the TLS connection. 3.3. Access to a Non-TLS Protected Resource This use case is for a web client that needs to access a resource that makes data available (such as videos) without offering integrity and confidentiality protection using TLS. Still, the initial resource request using OAuth, which includes the access token, must be protected against various threats (e.g., token replay, token modification). While it is possible to utilize bearer tokens in this scenario with TLS protection when the request to the protected resource is made, as described in [RFC6750], there may be the desire to avoid using TLS between the client and the resource server at all. In such a case the bearer token approach is not possible since it relies on TLS for ensuring integrity and confidentiality protection of the access token exchange since otherwise replay attacks are possible: First, an eavesdropper may steal an access token andpresentrepresent it at a different resource server. Second, an eavesdropper may steal an access token and replay it against the same resource server at a later point in time. In both cases, if the attack is successful, the adversary gets access to the resource owners data or may perform an operation selected by the adversary (e.g., sending a message). Note that the adversary may obtain the access token (if the recommendations in [RFC6749] and [RFC6750] are not followed) using a number of ways, including eavesdropping the communication on the wireless link. Consequently, the important assumption in this use case is that a resource server does not have TLS support and the security solution should work in such a scenario. Furthermore, it may not be necessary to provide authentication of the resource server towards the client. 3.4. Offering Application Layer End-to-End Security In Web deployments resource servers are often placed behind load balancers, which are deployed by the same organization that operates the resource servers. These load balancers may terminate the TLS connection setup and HTTP traffic is transmittedwithout TLS protectionin the clear from the load balancer to the resource server. With application layer security in addition to the underlying TLS security it is possible to allow application servers to perform cryptographic verification on an end-to-end basis. The key aspect in this use case is therefore to offer end-to-end security in the presence of load balancers via application layer security. Enterprise networks also deploy proxies that inspect traffic and thereby break TLS. 4. Security and Privacy Threats The following list presents several common threats against protocols utilizing some form oftoken.tokens. This list of threats is based on NIST Special Publication 800-63 [NIST800-63]. We exclude a discussion of threats related to any form of identity proofing and authentication of the resource owner to the authorization server since these procedures are not part of the OAuth 2.0 protocol specification itself. Token manufacture/modification: An attacker may generate a bogus tokens or modify the token content (such as authentication or attribute statements) of an existing token, causing resource server to grant inappropriate access to the client. For example, an attacker may modify the token to extend the validity period. A client may modify the token to have access to information that they should not be able to view. Token disclosure: Tokens may contain personal data, such as real name, age or birthday, payment information, etc. Token redirect: An attacker uses the token generated for consumption by the resource server to obtain access to another resource server. Token reuse: An attacker attempts to use a token that has already been used once with a resource server. The attacker may be an eavesdropper who observes the communication exchange or, worse, one of the communication end points. A client may, for example, leak access tokens because it cannot keep secrets confidential. A client may alsoreusere-use access tokens for some other resource servers. Finally, a resource server may use a token it had obtained from a client and use it with another resource server that the client interacts with. A resource server, offering relatively unimportant application services, may attempt to use an access token obtained from a client to access a high-value service, such as a payment service, on behalf of the client using the same access token. Token repudiation: Token repudiation refers to a property whereby a resource server is given an assurance that the authorization server cannot deny to have created a token for the client. 5.Requirements RFC 4962 [RFC4962] gives useful guidelines for designersThreat Mitigation A large range ofauthentication and key management protocols. While RFC 4962 was written withthreats can be mitigated by protecting theAAA framework used for network access authentication in mindcontent of theoffered suggestions are usefultoken, for example using a digital signature or a keyed message digest. Alternatively, thedesigncontent ofother key management systems as well. The following requirements list applies OAuth 2.0 terminology totherequirements outlined in RFC 4962. These requirements include Cryptographic Algorithm Independent: The key management protocol MUST be cryptographic algorithm independent. Strong, fresh session keys: Session keys MUSTtoken could bestrong and fresh. Each session deserves an independent session key, i.e., one that is generated specifically forpassed by reference rather than by value (requiring a separate message exchange to resolve theintended use. In context of OAuth this meansreference to the token content). To simplify the subsequent description we assume thatkeying materialthe token itself iscreated in such a way that can only be useddigitally signed by thecombination of a client instance, protected resource,authorization server and therefore cannot be modified. To deal with token redirect it is important for the authorizationscope. Limit Key Scope: Followingserver to include theprincipleidentifier ofleast privilege, parties MUST NOT have access to keying material that isthe intended recipient - the resource server. A resource server must notneededbe allowed toperform their role. Any protocolaccept access tokens thatis used to establish session keys MUST specify the scopeare not meant forsession keys, clearly identifying the partiesits consumption. To provide protection against token disclosure two approaches are possible, namely (a) not towhominclude sensitive information inside thesession key is available. Replay Detection Mechanism: The key management protocol exchanges MUST be replay protected. Replay protection allows a protocol message recipienttoken or (b) todiscard any message that was recorded during a previous legitimate dialogueensure confidentiality protection. The latter approach requires at least the communication interaction between the client andpresentedthe authorization server as well asthough it belonged tothecurrent dialogue. Authenticate All Parties: Each party in the key management protocol MUST be authenticated to the other parties with whom they communicate. Authentication mechanisms MUST maintaininteraction between theconfidentiality of any secret values used inclient and theauthentication process. Secrets MUST NOT be sentresource server toanother party withoutexperience confidentiality protection.Authorization: Client and resource server authorization MUSTAs an example, TLS with a ciphersuite that offers confidentiality protection has to beperformed. These entities MUST demonstrate possession ofapplied (which is currently true for all ciphersuites, except for one). Encrypting theappropriate keying material, without disclosing it. Authorizationtoken content itself isREQUIRED wheneveranother alternative. In our scenario the authorization server would, for example, encrypt the token content with aclient interactssymmetric key shared withan authorizationthe resource server.Authorization checking prevents an elevation of privilege attack. Keying MaterialTo deal with token reuse more choices are available. 5.1. Confidentialityand Integrity: While preserving algorithm independence,Protection In this approach confidentialityand integrity of all keying material MUST be maintained. Confirm Cryptographic Algorithm Selection: The selectionprotection of the"best" cryptographic algorithms SHOULD be securely confirmed. The mechanism SHOULD detect attempted roll- back attacks. Uniquely Named Keys: Key management proposals require a robust key naming scheme, particularly where key cachingexchange issupported. The key name provides a way to referprovided on the communication interfaces between the client and the resource server, and between the client and the authorization server. No eavesdropper on the wire is able to observe the token exchange. Consequently, akey inreplay by aprotocol so that itthird party isclear to all parties which key is being referenced. Objectsnot possible. An authorization server wants to ensure thatcannot be named cannot be managed. All keys MUST be uniquely named,it only hands out tokens to clients it has authenticated first andthe key name MUST NOT directly or indirectly disclose the keying material. Prevent the Domino Effect: Compromisewho are authorized. For this purpose, authentication ofa single client MUST NOT compromise keying material held by any otherthe clientwithinto thesystem, including session keys and long-term keys. Likewise, compromise of a single resourceauthorization serverMUST NOT compromise keying material held by any other Resource Server within the system. In the context ofwill be akey hierarchy, this means that the compromiserequirement to ensure adequate protection against a range ofone nodeattacks. This is, however, true for the description in Section 5.2 and Section 5.3 as well. Furthermore, thekey hierarchy mustclient has to make sure it does notdisclosedistribute (or leak) theinformation necessaryaccess token tocompromiseentities otherbranches in the key hierarchy. Obviously,than thecompromise ofintended theroot ofresource server. For that purpose thekey hierarchyclient willcompromise all ofhave to authenticate thekeys; however, a compromise in one branch MUST NOT result inresource server before transmitting thecompromise of other branches. There are many implicationsaccess token. 5.2. Sender Constraint Instead ofthis requirement; however, two implications deserve highlighting. First,providing confidentiality protection thescopeauthorization server could also put the identifier of thekeying material must be defined and understood by all parties that communicateclient into the protected token with the following semantic: 'This token is only valid when presented by aparty that holds that keying material. Second, a party that holds keying material in a key hierarchy must not share that keying material with parties that are associatedclient withother branches in the key hierarchy. Bind Key to its Context: Keying material MUST be bound to the appropriate context. The context includesthefollowing. * The manner in whichfollowing identifier.' When thekeying materialaccess token isexpectedthen presented tobe used. * The other partiesthe resource server how does it know thatare expectedit was provided by the client? It has tohave accessauthenticate the client! There are many choices for authenticating the client to thekeying material. *resource server, for example by using client certificates in TLS [RFC5246], or pre-shared secrets within TLS [RFC4279]. Theexpected lifetimechoice of thekeying material. Lifetime ofpreferred authentication mechanism and credential type may depend on achild key SHOULD NOT be greater than the lifetimenumber ofits parent in the key hierarchy. Any party with legitimate access to keying material can determine its context. In addition, the protocol MUST ensure that all parties with legitimate access to keying material havefactors, including o security properties o available infrastructure o library support o credential cost (financial) o performance o integration into thesame contextexisting IT infrastructure o operational overhead forthe keying material. This requires that the parties are properly identifiedconfiguration andauthenticated, so that alldistribution ofthe parties that have accesscredentials This long list hints to thekeying material can be determined. The context will include the client and the resource server identities in more thanchallenge of selecting at least oneform. Authorization Restriction: Ifmandatory-to-implement clientauthorization is restricted, thenauthentication mechanism. 5.3. Key Confirmation A variation of theclient SHOULD be made awaremechanism of sender authentication, described in Section 5.2, is to replace authentication with therestriction. Client Identity Confidentiality: A client has identity confidentiality when any party other thanproof-of- possession of a specific (session) key, i.e., key confirmation. In this model the resource serverandwould not authenticate theauthorization server cannot sufficiently identifyclient itself but would rather verify whether the clientwithinknows theanonymity set. In comparison to anonymity and pseudonymity, identity confidentiality is concerned with eavesdroppers and intermediaries. Asession keymanagement protocol SHOULD provideassociated with a specific access token. Examples of thisproperty. Resource Owner Identity Confidentiality: Resource servers SHOULDapproach can bepreventedfound with the OAuth 1.0 MAC token [RFC5849], and Kerberos [RFC4120] when utilizing the AP_REQ/AP_REP exchange (see also [I-D.hardjono-oauth-kerberos] for a comparison between Kerberos and OAuth). To illustrate key confirmation the first examples borrow fromknowingKerberos and use symmetric key cryptography. Assume that thereal or pseudonymous identity ofauthorization server shares a long-term secret with the resourceowner, sinceserver, called K(Authorization Server-Resource Server). This secret would be established between them out-of-band. When the client requests an access token the authorization serveriscreates a fresh and unique session key Ks and places it into theonly entity involved in verifyingtoken encrypted with theresource owner's identity. Collusion: Resource servers that collude can be prevented from using information related tolong term key K(Authorization Server-Resource Server). Additionally, theresource ownerauthorization server attaches Ks totracktheindividual. That is, two different resource servers can be prevented from determining that the same resource owner has authenticatedresponse message toboth of them. Authorization servers MUST bind different keying materialthe client (in addition toaccess tokens used for resource servers from different origins (or similar concepts intheapp world). AS-to-RS Relationship Anonymity: For solutions using asymmetric key cryptographyaccess token itself) over a confidentiality protected channel. When the clientMAY conceal information aboutsends a request to the resource server itwantshas tointeract with. The authorization server MAY reject such an attempt since it may not be ableuse Ks toenforce access control decisions. Channel Binding: A solution MUST enable supportcompute a keyed message digest forchannel bindings.the request (in whatever form or whatever layer). Theconcept of channel binding, as defined in [RFC5056], allows applicationsresource server, when receiving the message, retrieves the access token, verifies it and extracts K(Authorization Server-Resource Server) toestablish thatobtain Ks. This key Ks is then used to verify thetwo end-pointskeyed message digest ofa secure channel at one network layer arethesame as at a higher layer by binding authentication atrequest message. Note that in this example one could imagine that thehigher layermechanism to protect thechannel at the lower layer. There are performance concerns with the use of asymmetric cryptography. Althoughtoken itself is based on a symmetric keycryptography offers better performance asymmetric cryptography offers additional security properties. A solution MUST therefore offer the capability to support both symmetric as well as asymmetric keys. There are threats that relatebased mechanism tothe experience of the software developer as well as operational practices. Verifying the servers identity in TLS is discussed at length in [RFC6125]. A number of the threats listed in Section 4 demand protection of the access token content and a standardized solution, inavoid any form ofa JSON- based format,public key infrastructure but this aspect isavailable withnot further elaborated in theJWT [RFC7519]. 6. Threat Mitigationscenario. Alarge range of threatssimilar mechanism can also bemitigated by protecting the content of the token, for exampledesigned usinga digital signature or a keyed message digest. Alternatively, the content of the token could be passed by reference rather than by value (requiring a separate message exchange to resolve the reference to the token content). To simplify the subsequent description we assume thatasymmetric cryptography. When the client requests an access tokenitself is digitally signed bythe authorization server creates an ephemeral public / privacy key pair (PK/SK) andtherefore cannot be modified. To deal with token redirect it is important for the authorization server to includeplaces theidentifier ofpublic key PK into theintended recipient -protected token. When theresource server. A resourceauthorization servermust not be allowed to acceptreturns the accesstokens that are not meant for its consumption. To provide protection againsttokendisclosure two approaches are possible, namely (a) nottoinclude sensitive information insidethetoken or (b) to ensure confidentiality protection. The latter approach requires at leastclient it also provides thecommunication interaction betweenPK/SK key pair over a confidentiality protected channel. When the clientandsends a request to theauthorizationresource serveras well asit has to use theinteraction betweenprivacy key SK to sign theclientrequest. The resource server, when receiving the message, retrieves the access token, verifies it and extracts theresource serverpublic key PK. It uses this ephemeral public key toexperience confidentiality protection.verify the attached signature. 5.4. Summary Asan example, TLS withaciphersuite that offers confidentiality protection has tohigh level message, there are various ways how the threats can beapplied (whichmitigated and while the details of each solution iscurrently true forsomewhat different they allciphersuites, except for one). Encryptingultimately accomplish thetoken content itselfgoal. The three approaches are: Confidentiality Protection: The weak point with this approach, which isanother alternative. In our scenariobriefly described in Section 5.1, is that theauthorization server would, for example, encryptclient has to be careful to whom it discloses thetoken content with a symmetric key sharedaccess token. What can be done with theresource server. To deal withtokenreuse more choices are available. 6.1. Confidentiality Protection In this approach confidentiality protection of the exchange is providedentirely depends on what rights thecommunication interfaces betweentoken entitles theclientpresenter and what constraints it contains. A token could encode theresource server, and betweenidentifier of the clientand the authorization server. No eavesdropper onbut there are scenarios where thewireclient isablenot authenticated toobservethetoken exchange. Consequently, a replay by a third party is not possible. An authorizationresource serverwants to ensure that it only hands out tokens to clients it has authenticated first and who are authorized. For this purpose, authenticationor where the identifier of the clientto the authorization server will berather represents an application class rather than arequirement to ensure adequate protection againstsingle application instance. As such, it is possible that certain deployments choose arange of attacks. This is, however, true for the description in Section 6.2 and Section 6.3 as well. Furthermore, the client hasrather liberal approach tomake sure it does not distribute (or leak)security and that everyone who is in possession of the access token is granted access toentities other than the intended the resource server. For that purposetheclient will havedata. Sender Constraint: The weak point with this approach, which is briefly described in Section 5.2, is toauthenticatesetup the authentication infrastructure such that clients can be authenticated towards resourceserver before transmitting the access token. 6.2. Sender Constraint Instead of providing confidentiality protectionservers. Additionally, the authorization servercould also putmust encode the identifier of the clientinto the protected token within thefollowing semantic: 'Thistokenis only valid when presentedfor later verification bya client withthefollowing identifier.' Whenresource server. Depending on the chosen layer for providing client-side authentication there may be additional challenges due Web server load balancing, lack of API accesstoken is then presentedto identity information, etc. Key Confirmation: The weak point with this approach, see Section 5.3, is theresource server how does it know thatincreased complexity: a complete key distribution protocol has to be defined. In all cases above itwas provided by the client? Ithas toauthenticate the client! There are many choices for authenticatingbe ensured that the client is able to keep theresource server, for example by using client certificates in TLS [RFC5246], or pre-shared secrets within TLS [RFC4279]. The choice of the preferred authentication mechanism and credential type may depend on a number of factors, including ocredentials secret. 6. Architecture The proof-of-possession securityproperties o available infrastructure o library support o credential cost (financial) o performance o integration intoconcept assumes that theexisting IT infrastructure o operational overhead for configuration and distribution of credentials This long list hintsauthorization server acts as a trusted third party that binds keys to access tokens. These keys are then used by thechallenge of selecting at least one mandatory-to-implementclientauthentication mechanism. 6.3. Key Confirmation A variation of the mechanism of sender authentication, described in Section 6.2, istoreplace authentication withdemonstrate theproof-of-possession ofa specific (session) key, i.e., key confirmation. In this modelthe secret to the resource serverwould not authenticatewhen accessing theclient itself but would ratherresource. The resource server, when receiving an access token, needs to verifywhetherthat the key used by the clientknowsmatches the one included in thesession key associated with a specificaccess token.Examples of this approach can be found with the OAuth 1.0 MAC token [RFC5849], and Kerberos [RFC4120] when utilizing the AP_REQ/AP_REP exchange (see also [I-D.hardjono-oauth-kerberos] for a comparisonThere are slight differences betweenKerberos and OAuth). To illustrate key confirmation,thefirst example is borrowed from Kerberos anduse of symmetrickey cryptography. Assume thatkeys and asymmetric keys when they are bound to theauthorization server shares a long-term secret withaccess token and theresource server, called K(Authorization Server-Resource Server). This secret would be establishedsubsequent interaction betweenthem out-of-band. Whenthe clientrequests an access tokenand the authorization servercreates a fresh and unique session key Ks and places it into the token encrypted withwhen demonstrating possession of these keys. Figure 1 shows thelong termsymmetric keyK(Authorization Server-Resource Server). Additionally, the authorization server attaches Ks to the response message to the client (in addition toprocedure and Figure 2 illustrates how asymmetric keys are used. While symmetric cryptography provides better performance properties theaccess token itself) over a confidentiality protected channel. Whenuse of asymmetric cryptography allows the clientsends a requestto keep theresource serverprivate key locally and never expose ithas to use Kstocomputeany other party. With the JSON Web Token (JWT) [RFC7519] akeyed message digeststandardized format forthe request (in whatever form or whatever layer). The resource server, when receiving the message, retrieves theaccesstoken, verifies it and extracts K(Authorization Server-Resource Server) to obtain Ks. This key Kstokens isthen used to verify the keyed message digest of the request message. Note that in this example one could imagine that the mechanismavailable. The necessary elements toprotect the token itself is based on abind symmetrickey based mechanismor asymmetric keys toavoid any form of public key infrastructure but this aspect is not further elaborateda JWT are described inthe scenario. A similar mechanism can also be designed using asymmetric cryptography. When[I-D.ietf-oauth-proof-of-possession]. Note: The negotiation of cryptographic algorithms between the clientrequests an access token the authorization server creates an ephemeral public / privacy key pair (PK/SK)andplaces the public key PK into the protected token. Whenthe authorization serverreturnsis not shown in theaccess tokenexamples below and assumed tothe client it also provides the PK/SK key pair overbe present in aconfidentiality protected channel. Whenprotocol solution to meet theclient sends a requestrequirements for crypto-agility. +---------------+ ^| | // | Authorization | / | Server | // | | / | | (I) // /+---------------+ Access / // Token / / Request // // (II) Access Token +Params / / +Symmetric Key // // / v +-----------+ +------------+ | | | | | | | Resource | | Client | | Server | | | | | | | | | +-----------+ +------------+ Figure 1: Interaction between the Client and the Authorization Server (Symmetric Keys). In order to request an access token theresourceclient interacts with the authorization server as part of the a normal grant exchange, as shown in Figure 1. However, ithasneeds to include additional information elements for use with theprivacy key SK to signPoP security mechanism, as depicted in message (I). In message (II) therequest. The resource server, when receivingauthorization server then returns themessage, retrievesrequested access token. In addition to the accesstoken, verifies it and extractstoken itself, thepublic key PK. It uses this ephemeral publicsymmetric key is communicated toverifytheattached signature. 6.4. Summary Asclient. This symmetric key is ahigh level message, there are various waysunique and fresh session key with sufficient entropy for thethreats can be mitigated. Whilegiven lifetime. Furthermore, information within thedetails of each solution are somewhat different, they all accomplishaccess token ties it to this specific symmetric key. Note: For this security mechanism to work thegoal of mitigatingclient as well as thethreats. The three approaches are: Confidentiality Protection: The weak point with this approach, which is briefly described in Section 6.1, is that the client has to be carefulresource server need towhom it discloses thehave accesstoken. What can be done with the token entirely depends on what rightsto thetoken entitlessession key. While thepresenter and what constraints it contains. A token could encodekey transport mechanism from theidentifier ofauthorization server to the clientbuthas been explained in the previous paragraph there arescenarios wherethree ways for communicating this session key from theclient is not authenticatedauthorization server to the resourceserver or where the identifier ofserver, namely Embedding theclient rather represents an application class rather than a single application instance. As such, it is possible that certain deployments choose a rather liberal approach to security and that everyone who is in possession ofsymmetric key inside the access tokenis granted access toitself. This requires that thedata. Sender Constraint: The weak point with this approach, which is briefly described in Section 6.2,symmetric key isto setup the authentication infrastructure such that clients can be authenticated towardsconfidentiality protected. The resourceservers. Additionally,server queries the authorization servermust encode the identifier offor theclient insymmetric key. This is an approach envisioned by the tokenfor later verification byintrospection endpoint [I-D.ietf-oauth-introspection]. The authorization server and the resourceserver. Depending on the chosen layer for providing client-side authentication there may be additional challenges due to Webserverload balancing, lack of APIboth have access toidentity information, etc. Key Confirmation: The weak point with this approach, see Section 6.3, istheincreased complexity: a complete key distribution protocol has to be defined. In all cases above it has to be ensured thatsame back-end database. Smaller, tightly coupled systems might prefer such a deployment strategy. +---------------+ ^| | Access Token Req. // | Authorization | +Parameters / | Server | +[Fingerprint] // | | / | | (I) // /+---------------+ / // / / (II) // // Access Token / / +[ephemeral // // asymmetric key pair] / v +-----------+ +------------+ | | | | | | | Resource | | Client | | Server | | | | | | | | | +-----------+ +------------+ Figure 2: Interaction between theclient is able to keepClient and thecredentials secret. 7. ArchitectureAuthorization Server (Asymmetric Keys). Theproof-of-possession security concept assumes that the authorization server acts as a trusted third party that binds keys to access tokens. Theseuse of asymmetric keysare then used byis slightly different since the clientto demonstrate the possession of the secret toor theresourceserverwhen accessingcould be involved in theresource. The resource server, when receiving an access token, needs to verify thatgeneration of the ephemeral keyused bypair. This exchange is shown in Figure 1. If the clientmatchesgenerates theone included inkey pair it either includes a fingerprint of theaccess token. There are slight differences betweenpublic key or theuse of symmetric keys and asymmetric keys when they are boundpublic key in the request to the authorization server. The authorization server would include this fingerprint or public key in the confirmation claim inside the access token and thereby bind the asymmetric key pair to the token. If thesubsequent interaction between theclientanddid not provide a fingerprint or a public key in the request then the authorization serverwhen demonstrating possession of these keys. Figure 1 shows the symmetric key procedure and Figure 2 illustrates howis asked to create an ephemeral asymmetrickeys are used. While symmetric cryptography provides better performance propertieskey pair, binds theusefingerprint ofasymmetric cryptography allowstheclientpublic key tokeeptheprivateaccess token, and returns the asymmetric keylocallypair (public andnever expose itprivate key) toany other party. WiththeJSON Web Token (JWT) [RFC7519] a standardized format for access tokensclient. Note that there isavailable. The necessary elements to bind symmetric or asymmetric keys toaJWT are described in [I-D.ietf-oauth-proof-of-possession]. Note:strong preference for generating the private/public key pair locally at the client rather than at the server. Thenegotiation of cryptographic algorithmsspecification describing the interaction between the client and the authorizationserver is notserver, as shown inthe examples belowFigure 1 andassumed toin Figure 2, can bepresentfound ina protocol solution[I-D.ietf-oauth-pop-key-distribution]. Once the client has obtained the necessary access token and keying material it can start tomeetinteract with therequirements for crypto-agility. 7.1. Clientresource server. To demonstrate possession of the key bound to the access token it needs to apply this key to the request by computing a keyed message digest (i.e., a symmetric key-based cryptographic primitive) or a digital signature (i.e., an asymmetric cryptographic computation). When the resource server receives the request it verifies it andAuthorization Server Interaction 7.1.1. Symmetric Keys +---------------+ ^| | // | Authorization | / | Server | //decides whether access to the protected resource can be granted. This exchange is shown in Figure 3. +---------------+ | |/| Authorization |(I) // /+---------------+ Access / // Token / /| Server | | | | | +---------------+ Request// // (II) Access Token +Params / / +Symmetric Key // // / v+-----------+ + Signature/MAC (a) +------------+ | |---------------------->| | | || |[+Access Token] | Resource | | Client | | Server | | | Response (b) | | || ||<----------------------| | +-----------+ [+ Signature/MAC] +------------+ ^ ^ | | | | Symmetric Key Symmetric Key or or Asymmetric Key Pair Public Key (Client) + + Parameters Parameters Figure1: Interaction between the3: Clientanddemonstrates PoP. The specification describing theAuthorization Server (Symmetric Keys). In orderability to sign the HTTP requestan access tokenfrom the clientinteracts withto theauthorizationresource serveras part of the a normal grant exchange, as showncan be found inFigure 1. However, it needs[I-D.ietf-oauth-signed-http-request]. So far the examples talked about access tokens that are passed by value and allow the resource server toinclude additional information elements for use withmake authorization decisions immediately after verifying thePoP security mechanism, as depicted in message (I).request from the client. Inmessage (II)some deployments a real-time interaction between the authorization serverthen returnsand therequestedresource server is envisioned that lowers the need to pass self-contained accesstoken.tokens around. Inaddition tothat case the access tokenitself, the symmetric key is communicatedmerely serves as a handle or a reference to state stored at theclient. This symmetric key isauthorization server. As aunique and fresh session key with sufficient entropy for the given lifetime. Furthermore, information within the access token ties it to this specific symmetric key. Note: For this security mechanism to work the client as well asconsequence, the resource serverneed to have access to the session key. While the key transport mechanism from thecannot autonomously make an authorizationserver to thedecision when receiving a request from a client but hasbeen explained in the previous paragraph there are three ways for communicating this session key from the authorization servertothe resource server, namely Embedding the symmetric key inside the access token itself. This requires that the symmetric key is confidentiality protected. The resource server queriesconsult the authorizationserver for the symmetric key.server. Thisis an approach envisioned bycan, for example, be done using the token introspection endpoint[I-D.ietf-oauth-introspection]. The authorization server(see [I-D.ietf-oauth-introspection]). Figure 4 shows the protocol interaction graphically. Despite the additional token exchange previous descriptions about associating symmetric and asymmetric keys to theresource server both haveaccess token are still applicable tothe same back-end database. Smaller, tightly coupled systems might prefer such a deployment strategy. 7.1.2. Asymmetric Keysthis scenario. +---------------+ Access ^| |AccessToken Req. // | Authorization| +Parameters|^ (I) / | Server |+[Fingerprint]\ (IV) Token // | | \ Introspection Req. / | |(I)\ +Access // /+---------------+ \ Token / // (II) \ \\ / /(II)Access \ \ // //AccessToken \ (V) \ / /+[ephemeral\Resp.\ // //asymmetric key pair]\ \ / v V \ +-----------++------------+ | |Request +Signature/MAC+------------+ | | (III) +Access Token | | | |---------------------->| Resource | | Client | (VI) Success or | Server | | | Failure | | || ||<----------------------| | +-----------+ +------------+ Figure2: Interaction between the Client4: Token Introspection andthe Authorization Server (Asymmetric Keys). The useAccess Token Handles. 7. Requirements RFC 4962 [RFC4962] gives useful guidelines for designers ofasymmetric keys is slightly different since the client or the server could be involved in the generation of the ephemeralauthentication and keypair. This exchange is shownmanagement protocols. While RFC 4962 was written with the AAA framework used for network access authentication inFigure 1. Ifmind theclient generatesoffered suggestions are useful for thekey pair it either includes a fingerprintdesign ofthe public key or the publicother keyin the requestmanagement systems as well. The following requirements list applies OAuth 2.0 terminology to theauthorization server. The authorization server wouldrequirements outlined in RFC 4962. These requirements includethis fingerprint or publicCryptographic Algorithm Independent: The keyinmanagement protocol MUST be cryptographic algorithm independent. Strong, fresh session keys: Session keys MUST be strong and fresh. Each session deserves an independent session key, i.e., one that is generated specifically for theconfirmation claim insideintended use. In context of OAuth this means that keying material is created in such a way that can only be used by theaccess tokencombination of a client instance, protected resource, andthereby bindauthorization scope. Limit Key Scope: Following theasymmetric key pairprinciple of least privilege, parties MUST NOT have access tothe token. If the client didkeying material that is notprovide a fingerprint or a public key in the request then the authorization serverneeded to perform their role. Any protocol that isaskedused tocreate an ephemeral asymmetric key pair, bindsestablish session keys MUST specify thefingerprint ofscope for session keys, clearly identifying thepublic keyparties to whom theaccess token, and returns the asymmetricsession keypair (public and private key) to the client. Note that thereis available. Replay Detection Mechanism: The key management protocol exchanges MUST be replay protected. Replay protection allows astrong preference for generatingprotocol message recipient to discard any message that was recorded during a previous legitimate dialogue and presented as though it belonged to theprivate/public key pair locally atcurrent dialogue. Authenticate All Parties: Each party in theclient rather than atkey management protocol MUST be authenticated to theserver. 7.2. Client and Resource Server Interaction The specification describingother parties with whom they communicate. Authentication mechanisms MUST maintain theinteraction betweenconfidentiality of any secret values used in theclientauthentication process. Secrets MUST NOT be sent to another party without confidentiality protection. Authorization: Client andtheresource server authorizationserver, as shown in Figure 1 and in Figure 2, canMUST befound in [I-D.ietf-oauth-pop-key-distribution]. Onceperformed. These entities MUST demonstrate possession of the appropriate keying material, without disclosing it. Authorization is REQUIRED whenever a clienthas obtained the necessary access tokeninteracts with an authorization server. The authorization checking prevents an elevation of privilege attack, and it ensures that an unauthorized authorized is detected. Keying Material Confidentiality and Integrity: While preserving algorithm independence, confidentiality and integrity of all keying materialit can start to interact with the resource server. To demonstrate possessionMUST be maintained. Confirm Cryptographic Algorithm Selection: The selection of the "best" cryptographic algorithms SHOULD be securely confirmed. The mechanism SHOULD detect attempted roll- back attacks. Uniquely Named Keys: Key management proposals require a robust keyboundnaming scheme, particularly where key caching is supported. The key name provides a way tothe access token it needsrefer toapply thisa keyto the request by computing a keyed message digest (i.e., a symmetric key-based cryptographic primitive) orin adigital signature (i.e., an asymmetric cryptographic computation). When the resource server receives the request it verifiesprotocol so that itand decides whether accessis clear tothe protected resource can be granted. This exchangeall parties which key isshown in Figure 3. +---------------+ | | | Authorization | | Server | | | | | +---------------+ Request +-----------+ + Signature/MAC (a) +------------+ | |---------------------->| | | | [+Access Token] | Resource | | Client | | Server | | | Response (b) | | | |<----------------------| | +-----------+ [+ Signature/MAC] +------------+ ^ ^ | | | | Symmetric Key Symmetric Key or or Asymmetric Key Pair Public Key (Client) + + Parameters Parameters Figure 3: Client Demonstrates PoP. The specification describingbeing referenced. Objects that cannot be named cannot be managed. All keys MUST be uniquely named, and theability to signkey name MUST NOT directly or indirectly disclose theHTTP request fromkeying material. Prevent the Domino Effect: Compromise of a single clienttoMUST NOT compromise keying material held by any other client within the system, including session keys and long-term keys. Likewise, compromise of a single resource servercan be found in [I-D.ietf-oauth-signed-http-request]. 7.3.MUST NOT compromise keying material held by any other Resourceand AuthorizationServerInteraction (Token Introspection) So farwithin theexamples talked about access tokens that are passed by value and allowsystem. In theresource server to make authorization decisions immediately after verifyingcontext of a key hierarchy, this means that therequest fromcompromise of one node in theclient. In some deployments a real-time interaction betweenkey hierarchy must not disclose theauthorization server andinformation necessary to compromise other branches in theresource server is envisioned that lowerskey hierarchy. Obviously, theneed to pass self-contained access tokens around. In that casecompromise of theaccess token merely serves as a handle or a reference to state stored atroot of theauthorization server. Askey hierarchy will compromise all of the keys; however, aconsequence,compromise in one branch MUST NOT result in theresource server cannot autonomously make an authorization decision when receivingcompromise of other branches. There are many implications of this requirement; however, two implications deserve highlighting. First, the scope of the keying material must be defined and understood by all parties that communicate with arequest fromparty that holds that keying material. Second, aclient but has to consultparty that holds keying material in a key hierarchy must not share that keying material with parties that are associated with other branches in theauthorization server. This can, for example,key hierarchy. Bind Key to its Context: Keying material MUST bedone usingbound to thetoken introspection endpoint (see [I-D.ietf-oauth-introspection]). Figure 4 showsappropriate context. The context includes theprotocol interaction graphically. Despitefollowing. * The manner in which theadditional token exchange previous descriptions about associating symmetric and asymmetric keyskeying material is expected tothe access tokenbe used. * The other parties that arestill applicableexpected tothis scenario. +---------------+ Access ^| | Token Req. // | Authorization |^ (I) / | Server | \ (IV) Token // | | \ Introspection Req. / | | \ +Access // /+---------------+ \ Token / // (II) \ \\ / / Access \ \ // // Token \ (V) \ / / \Resp.\ // // \ \ / v V \ +-----------+ Request +Signature/MAC+------------+ | | (III) +Access Token | | | |---------------------->| Resource | |have access to the keying material. * The expected lifetime of the keying material. Lifetime of a child key SHOULD NOT be greater than the lifetime of its parent in the key hierarchy. Any party with legitimate access to keying material can determine its context. In addition, the protocol MUST ensure that all parties with legitimate access to keying material have the same context for the keying material. This requires that the parties are properly identified and authenticated, so that all of the parties that have access to the keying material can be determined. The context will include the client and the resource server identities in more than one form. Authorization Restriction: If client authorization is restricted, then the client SHOULD be made aware of the restriction. Client| (VI) SuccessIdentity Confidentiality: A client has identity confidentiality when any party other than the resource server and the authorization server cannot sufficiently identify the client within the anonymity set. In comparison to anonymity and pseudonymity, identity confidentiality is concerned with eavesdroppers and intermediaries. A key management protocol SHOULD provide this property. Resource Owner Identity Confidentiality: Resource servers SHOULD be prevented from knowing the real or| Server | | | Failure | | | |<----------------------| | +-----------+ +------------+ Figure 4: Token Introspectionpseudonymous identity of the resource owner, since the authorization server is the only entity involved in verifying the resource owner's identity. Collusion: Resource servers that collude can be prevented from using information related to the resource owner to track the individual. That is, two different resource servers can be prevented from determining that the same resource owner has authenticated to both of them. Authorization servers MUST bind different keying material to access tokens used for resource servers from different origins (or similar concepts in the app world). AS-to-RS Relationship Anonymity: For solutions using asymmetric key cryptography the client MAY conceal information about the resource server it wants to interact with. The authorization server MAY reject such an attempt since it may not be able to enforce access control decisions. Channel Binding: A solution MUST enable support for channel bindings. The concept of channel binding, as defined in [RFC5056], allows applications to establish that the two end-points of a secure channel at one network layer are the same as at a higher layer by binding authentication at the higher layer to the channel at the lower layer. There are performance concerns with the use of asymmetric cryptography. Although symmetric key cryptography offers better performance asymmetric cryptography offers additional security properties. A solution MUST therefore offer the capability to support both symmetric as well as asymmetric keys. There are threats that relate to the experience of the software developer as well as operational practices. Verifying the servers identity in TLS is discussed at length in [RFC6125]. A number of the threats listed in Section 4 demand protection of the access token content andAccess Token Handles.a standardized solution, in form of a JSON- based format, is available with the JWT [RFC7519]. 8. Security Considerations The purpose of this document is to provide use cases, requirements, and motivation for developing an OAuth security solution extending Bearer Tokens. As such, this document is only about security. 9. IANA Considerations This document does not require actions by IANA. 10. Acknowledgments This document is the result of conference calls late 2012/early 2013 and in design team conference calls February 2013 of the IETF OAuth working group. The following persons (in addition to the OAuth WG chairs, Hannes Tschofenig, and Derek Atkins) provided their input during these calls: Bill Mills, Justin Richer, Phil Hunt, Prateek Mishra, Mike Jones, George Fletcher, Leif Johansson, Lucy Lynch, John Bradley, Tony Nadalin, Klaas Wierenga, Thomas Hardjono, Brian Campbell In the appendix of this document wereusere-use content from [RFC4962] and the authors would like thank Russ Housely and Bernard Aboba for their work on RFC 4962. We would like to thank Reddy Tirumaleswar for his review. 11. References 11.1. Normative References[I-D.ietf-oauth-introspection] Richer, J., "OAuth 2.0 Token Introspection", draft-ietf- oauth-introspection-11 (work in progress), July 2015. [I-D.ietf-oauth-pop-key-distribution] Bradley, J., Hunt, P., Jones, M., and H. Tschofenig, "OAuth 2.0 Proof-of-Possession: Authorization Server to Client Key Distribution", draft-ietf-oauth-pop-key- distribution-01 (work in progress), March 2015. [I-D.ietf-oauth-proof-of-possession] Jones, M., Bradley, J., and H. Tschofenig, "Proof-of- Possession Key Semantics for JSON Web Tokens (JWTs)", draft-ietf-oauth-proof-of-possession-04 (work in progress), August 2015. [I-D.ietf-oauth-signed-http-request] Richer, J., Bradley, J., and H. Tschofenig, "A Method for Signing an HTTP Requests for OAuth", draft-ietf-oauth- signed-http-request-01 (work in progress), March 2015.[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI10.17487/RFC2119,10.17487/ RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>. [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI10.17487/RFC5246,10.17487/ RFC5246, August 2008, <http://www.rfc-editor.org/info/rfc5246>. [RFC6749] Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", RFC 6749, DOI 10.17487/RFC6749, October 2012, <http://www.rfc-editor.org/info/rfc6749>. [RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, <http://www.rfc-editor.org/info/rfc7519>. 11.2. Informative References [I-D.hardjono-oauth-kerberos] Hardjono, T., "OAuth 2.0 support for the Kerberos V5 Authentication Protocol", draft-hardjono-oauth-kerberos-01 (work in progress), December 2010. [I-D.ietf-oauth-introspection] Richer, J., "OAuth 2.0 Token Introspection", draft-ietf- oauth-introspection-11 (work in progress), July 2015. [I-D.ietf-oauth-pop-key-distribution] Bradley, J., Hunt, P., Jones, M., and H. Tschofenig, "OAuth 2.0 Proof-of-Possession: Authorization Server to Client Key Distribution", draft-ietf-oauth-pop-key- distribution-01 (work in progress), March 2015. [I-D.ietf-oauth-proof-of-possession] Jones, M., Bradley, J., and H. Tschofenig, "Proof-of- Possession Key Semantics for JSON Web Tokens (JWTs)", draft-ietf-oauth-proof-of-possession-04 (work in progress), August 2015. [I-D.ietf-oauth-signed-http-request] Richer, J., Bradley, J., and H. Tschofenig, "A Method for Signing an HTTP Requests for OAuth", draft-ietf-oauth- signed-http-request-01 (work in progress), March 2015. [NIST800-63] Burr, W., Dodson, D., Perlner, R., Polk, T., Gupta, S., and E. Nabbus, "NIST Special Publication 800-63-1, INFORMATION SECURITY", December 2008. [RFC4120] Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The Kerberos Network Authentication Service (V5)", RFC 4120, DOI 10.17487/RFC4120, July 2005, <http://www.rfc-editor.org/info/rfc4120>. [RFC4279] Eronen, P., Ed. and H. Tschofenig, Ed., "Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)", RFC 4279, DOI 10.17487/RFC4279, December 2005, <http://www.rfc-editor.org/info/rfc4279>. [RFC4962] Housley, R. and B. Aboba, "Guidance for Authentication, Authorization, and Accounting (AAA) Key Management", BCP 132, RFC 4962, DOI 10.17487/RFC4962, July 2007, <http://www.rfc-editor.org/info/rfc4962>. [RFC5056] Williams, N., "On the Use of Channel Bindings to Secure Channels", RFC 5056, DOI 10.17487/RFC5056, November 2007, <http://www.rfc-editor.org/info/rfc5056>. [RFC5849] Hammer-Lahav, E., Ed., "The OAuth 1.0 Protocol", RFC 5849, DOI 10.17487/RFC5849, April 2010, <http://www.rfc-editor.org/info/rfc5849>. [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March 2011, <http://www.rfc-editor.org/info/rfc6125>. [RFC6750] Jones, M. and D. Hardt, "The OAuth 2.0 Authorization Framework: Bearer Token Usage", RFC 6750, DOI10.17487/RFC6750,10.17487/ RFC6750, October 2012, <http://www.rfc-editor.org/info/rfc6750>. [RFC6819] Lodderstedt, T., Ed., McGloin, M., and P. Hunt, "OAuth 2.0 Threat Model and Security Considerations", RFC 6819, DOI 10.17487/RFC6819, January 2013, <http://www.rfc-editor.org/info/rfc6819>. Authors' Addresses Phil Hunt (editor) Oracle Corporation Email: phil.hunt@yahoo.com Justin Richer Email: ietf@justin.richer.org William Mills Email: wmills@yahoo-inc.com Prateek Mishra Oracle Corporation Email: prateek.mishra@oracle.com Hannes Tschofenig ARM Limited Hall in Tirol 6060 Austria Email: Hannes.Tschofenig@gmx.net URI: http://www.tschofenig.priv.at