Movatterモバイル変換


[0]ホーム

URL:


[RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Info page]

EXPERIMENTAL
Internet Engineering Task Force (IETF)                        S. FarrellRequest for Comments: 7486                        Trinity College DublinCategory: Experimental                                        P. HoffmanISSN: 2070-1721                                           VPN Consortium                                                               M. Thomas                                                               Phresheez                                                              March 2015HTTP Origin-Bound Authentication (HOBA)Abstract   HTTP Origin-Bound Authentication (HOBA) is a digital-signature-based   design for an HTTP authentication method.  The design can also be   used in JavaScript-based authentication embedded in HTML.  HOBA is an   alternative to HTTP authentication schemes that require passwords and   therefore avoids all problems related to passwords, such as leakage   of server-side password databases.Status of This Memo   This document is not an Internet Standards Track specification; it is   published for examination, experimental implementation, and   evaluation.   This document defines an Experimental Protocol for the Internet   community.  This document is a product of the Internet Engineering   Task Force (IETF).  It represents the consensus of the IETF   community.  It has received public review and has been approved for   publication by the Internet Engineering Steering Group (IESG).  Not   all documents approved by the IESG are a candidate for any level of   Internet Standard; seeSection 2 of RFC 5741.   Information about the current status of this document, any errata,   and how to provide feedback on it may be obtained athttp://www.rfc-editor.org/info/rfc7486.Farrell, et al.               Experimental                      [Page 1]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015Copyright Notice   Copyright (c) 2015 IETF Trust and the persons identified as the   document authors.  All rights reserved.   This document is subject toBCP 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 Contents1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .31.1.  Interfacing to Applications (Cookies) . . . . . . . . . .41.2.  Terminology . . . . . . . . . . . . . . . . . . . . . . .51.3.  Step-by-Step Overview of HOBA-http  . . . . . . . . . . .62.  The HOBA Authentication Scheme  . . . . . . . . . . . . . . .63.  Introduction to the HOBA-http Mechanism . . . . . . . . . . .94.  Introduction to the HOBA-js Mechanism . . . . . . . . . . . .105.  HOBA's Authentication Process . . . . . . . . . . . . . . . .115.1.  CPK Preparation Phase . . . . . . . . . . . . . . . . . .115.2.  Signing Phase . . . . . . . . . . . . . . . . . . . . . .115.3.  Authentication Phase  . . . . . . . . . . . . . . . . . .116.  Other Parts of the HOBA Process . . . . . . . . . . . . . . .126.1.  Registration  . . . . . . . . . . . . . . . . . . . . . .136.1.1.  Hobareg Definition  . . . . . . . . . . . . . . . . .146.2.  Associating Additional Keys to an Existing Account  . . .166.2.1.  Moving Private Keys . . . . . . . . . . . . . . . . .16       6.2.2.  Human-Memorable One-Time Password (Don't Do This One)  166.2.3.  Out-of-Band URL . . . . . . . . . . . . . . . . . . .176.3.  Logging Out . . . . . . . . . . . . . . . . . . . . . . .176.4.  Getting a Fresh Challenge . . . . . . . . . . . . . . . .177.  Mandatory-to-Implement Algorithms . . . . . . . . . . . . . .188.  Security Considerations . . . . . . . . . . . . . . . . . . .188.1.  Privacy Considerations  . . . . . . . . . . . . . . . . .188.2.  localStorage Security for JavaScript  . . . . . . . . . .198.3.  Multiple Accounts on One User Agent . . . . . . . . . . .208.4.  Injective Mapping for HOBA-TBS  . . . . . . . . . . . . .209.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .219.1.  HOBA Authentication Scheme  . . . . . . . . . . . . . . .219.2.  .well-known URI . . . . . . . . . . . . . . . . . . . . .219.3.  Algorithm Names . . . . . . . . . . . . . . . . . . . . .219.4.  Key Identifier Types  . . . . . . . . . . . . . . . . . .22Farrell, et al.               Experimental                      [Page 2]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 20159.5.  Device Identifier Types . . . . . . . . . . . . . . . . .229.6.  Hobareg HTTP Header Field . . . . . . . . . . . . . . . .2310. References  . . . . . . . . . . . . . . . . . . . . . . . . .2310.1.  Normative References . . . . . . . . . . . . . . . . . .2310.2.  Informative References . . . . . . . . . . . . . . . . .24Appendix A.  Problems with Passwords  . . . . . . . . . . . . . .26Appendix B.  Example  . . . . . . . . . . . . . . . . . . . . . .27   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .28   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .281.  Introduction   HTTP Origin-Bound Authentication (HOBA) is an authentication design   that can be used as an HTTP authentication scheme [RFC7235] and for   JavaScript-based authentication embedded in HTML.  The main goal of   HOBA is to offer an easy-to-implement authentication scheme that is   not based on passwords but that can easily replace HTTP or HTML   forms-based password authentication.  Deployment of HOBA can reduce   or eliminate password entries in databases, with potentially   significant security benefits.   HOBA is an HTTP authentication mechanism that complies with the   framework for such schemes [RFC7235].  As a JavaScript design, HOBA   demonstrates a way for clients and servers to interact using the same   credentials that are used by the HTTP authentication scheme.   Current username/password authentication methods such as HTTP Basic,   HTTP Digest, and web forms have been in use for many years but are   susceptible to theft of server-side password databases.  Instead of   passwords, HOBA uses digital signatures in a challenge-response   scheme as its authentication mechanism.  HOBA also adds useful   features such as credential management and session logout.  In HOBA,   the client creates a new public-private key pair for each host ("web   origin" [RFC6454]) to which it authenticates.  These keys are used in   HOBA for HTTP clients to authenticate themselves to servers in the   HTTP protocol or in a JavaScript authentication program.   HOBA session management is identical to username/password session   management, with a server-side session management tool or script   inserting a session cookie [RFC6265] into the output to the browser.   Use of Transport Layer Security (TLS) for the HTTP session is still   necessary to prevent session cookie hijacking.   HOBA keys are "bare keys", so there is no need for the semantic   overhead of X.509 public key certificates, particularly with respect   to naming and trust anchors.  The Client Public Key (CPK) structuresFarrell, et al.               Experimental                      [Page 3]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   in HOBA do not have any publicly visible identifier for the user who   possesses the corresponding private key, nor the web origin with   which the client is using the CPK.   HOBA also defines some services that are needed for modern HTTP   authentication:   o  Servers can bind a CPK with an identifier, such as an account      name.  Servers using HOBA define their own policies for binding      CPKs with accounts during account registration.   o  Users are likely to use more than one device or User Agent (UA)      for the same HTTP-based service, so HOBA gives a way to associate      more than one CPK to the same account without having to register      for each separately.   o  Logout features can be useful for UAs, so HOBA defines a way to      close a current HTTP "session".   o  Digital signatures can be expensive to compute, so HOBA defines a      way for HTTP servers to indicate how long a given challenge value      is valid, and a way for UAs to fetch a fresh challenge at any      time.   Users are also likely to lose a private key, or the client's memory   of which key pair is associated with which origin, such as when a   user loses the computer or mobile device in which state is stored.   HOBA does not define a mechanism for deleting the association between   an existing CPK and an account.  Such a mechanism can be implemented   at the application layer.   The HOBA scheme is far from new; for example, the basic idea is   pretty much identical to the first two messages from "Mechanism R" on   page 6 of [MI93], which predates HOBA by 20 years.1.1.  Interfacing to Applications (Cookies)   HOBA can be used as a drop-in replacement for password-based user   authentication schemes used in common web applications.  The simplest   way is to (re)direct the UA to a HOBA "Login" URL and for the   response to a successful HTTP request containing a HOBA signature to   set a session cookie [RFC6265].  Further interactions with the web   application will then be secured via the session cookie, as is   commonly done today.Farrell, et al.               Experimental                      [Page 4]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   While cookies are bearer tokens, and thus weaker than HOBA   signatures, they are currently ubiquitously used.  If non-bearer   token session continuation schemes are developed in the future in the   IETF or elsewhere, then those can interface to HOBA as easily as with   any password-based authentication scheme.1.2.  Terminology   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and   "OPTIONAL" in this document are to be interpreted as described inRFC2119 [RFC2119].   This specification uses the Augmented Backus-Naur Form (ABNF)   notation of [RFC5234].   Account: The term "account" is (loosely) used to refer to whatever   data structure(s) the server maintains that are associated with an   identity.  That will contain at least one CPK and a web origin; it   will also optionally include an HTTP "realm" as defined in the HTTP   authentication specification [RFC7235].  It might also involve many   other non-standard pieces of data that the server accumulates as part   of account creation processes.  An account may have many CPKs that   are considered equivalent in terms of being usable for   authentication, but the meaning of "equivalent" is really up to the   server and is not defined here.   Client public key (CPK): A CPK is the public key and associated   cryptographic parameters needed for a server to validate a signature.   HOBA-http: We use this term when describing something that is   specific to HOBA as an HTTP authentication mechanism.   HOBA-js: We use this term when describing something that is unrelated   to HOBA-http but is relevant for HOBA as a design pattern that can be   implemented in a browser in JavaScript.   User agent (UA): typically, but not always, a web browser.   User: a person who is running a UA.  In this document, "user" does   not mean "user name" or "account name".   Web client: the content and JavaScript code that run within the   context of a single UA instance (such as a tab in a web browser).Farrell, et al.               Experimental                      [Page 5]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 20151.3.  Step-by-Step Overview of HOBA-http   Step-by-step, a typical HOBA-http registration and authentication   flow might look like this:   1.  The client connects to the server and makes a request, and the       server's response includes a WWW-Authenticate header field that       contains the "HOBA" auth-scheme, along with associated parameters       (seeSection 3).   2.  If the client was not already registered with the web origin and       realm it is trying to access, the "joining" process is invoked       (seeSection 6.1).  This creates a key pair and makes the CPK       known to the server so that the server can carry out the account       creation processes required.   3.  The client uses the challenge from the HOBA auth-scheme       parameters, along with other information it knows about the web       origin and realm, to create and sign a HOBA to-be-signed (HOBA-       TBS) string (seeSection 2).   4.  The client creates a HOBA client-result (HOBA-RES), using the       signed HOBA-TBS for the "sig" value (seeSection 2).   5.  The client includes the Authorization header field in its next       request, using the "HOBA" auth-scheme and putting the HOBA       client-result in an auth-param named "result" (seeSection 3).   6.  The server authenticates the HOBA client-result (seeSection 5.1).   7.  Typically, the server's response includes a session cookie that       allows the client to indicate its authentication state in future       requests (seeSection 1.1).2.  The HOBA Authentication Scheme   A UA that implements HOBA maintains a list of web origins and realms.   The UA also maintains one or more client credentials for each web   origin/realm combination for which it has created a CPK.   On receipt of a challenge (and optional realm) from a server, the   client marshals a HOBA-TBS blob that includes a client generated   nonce, the web origin, the realm, an identifier for the CPK, and the   challenge string, and signs that blob with the private key   corresponding to the CPK for that web origin.  The formatting chosenFarrell, et al.               Experimental                      [Page 6]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   for this TBS blob is chosen so as to make server-side signature   verification as simple as possible for a wide range of current server   tooling.   Figure 1 specifies the ABNF for the signature input.  The term   "unreserved" means that the field does not have a specific format   defined and allows the characters specified inSection 2.3 of   [RFC3986].      HOBA-TBS = len ":" nonce              len ":" alg              len ":" origin              len ":" [ realm  ]              len ":" kid              len ":" challenge      len = 1*DIGIT      nonce = 1*base64urlchars      alg = 1*2DIGIT      origin = scheme "://" authority ":" port      ; scheme, etc., are fromRFC 3986      realm = unreserved      ; realm is to be treated as inSection 2.2 of RFC 7235      kid = 1*base64urlchars      challenge = 1*base64urlchars      ; Characters for Base64URL encoding from Table 2 ofRFC 4648      ; all of which are US-ASCII (seeRFC 20)      base64urlchars = %x30-39             ; Digits                    / %x41-5A           ; Uppercase letters                    / %x61-7A           ; Lowercase letters                    / "-" / "_" / "="   ; Special characters                   Figure 1: To-Be-Signed Data for HOBA   The fields above contain the following:   o  len: Each field is preceded by the number of octets of the      following field, expressed as a decimal number in ASCII [RFC20].      Lengths are separated from field values by a colon character.  So      if a nonce with the value "ABCD" were used, then that would be      preceeded by "4:" (see the example inAppendix B for details).   o  nonce: a random value chosen by the UA and MUST be base64url      encoded before being included in the HOBA-TBS value. (base64url      encoding is defined in [RFC4648]; guidelines for randomness are      given in [RFC4086].)  UAs MUST be able to use at least 32 bits of      randomness in generating a nonce.  UAs SHOULD be able to use 64 or      more bits of randomness for nonces.Farrell, et al.               Experimental                      [Page 7]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   o  alg: specifies the signature algorithm being used.  SeeSection 7      for details of algorithm support requirements.  The IANA-      registered algorithm values (seeSection 9.3) are encoded as one-      or two-digit ASCII numbers.  For example, RSA-SHA256 (number 0) is      encoded as the ASCII character "0" (0x30), while a future      algorithm registered as number 17 would be encoded as the ASCII      characters "17" (0x3137).   o  origin: the web origin expressed as the concatenation of the      scheme, authority, and port from [RFC3986].  These are not base64      encoded, as they will be most readily available to the server in      plain text.  For example, if accessing the URL      "https://www.example.com:8080/foo", then the bytes input to the      signature process will be "https://www.example.com:8080".  There      is no default for the port number, and the port number MUST be      present.   o  realm: a string with the syntactic restrictions defined in      [RFC7235].  If no realm is specified for this authentication, then      this is absent but is preceeded by a length of zero ("0:").      Recall that both sides know when this needs to be there,      independent of the encoding via a zero length.   o  kid: a key identifier.  This MUST be a base64url-encoded value      that is presented to the server in the HOBA client result (see      below).   o  challenge: MUST be a base64url-encoded challenge value that the      server chose to send to the client.  The challenge MUST be chosen      so that it is infeasible to guess and SHOULD be indistinguishable      from (the base64url encoding of) a random string that is at least      128 bits long.   The HOBA-TBS string is the input to the client's signing process but   is not itself sent over the network since some fields are already   inherent in the HTTP exchange.  The challenge, however, is sent over   the network so as to reduce the amount of state that needs to be   maintained by servers.  (One form of stateless challenge might be a   ciphertext that the server decrypts and checks, but that is an   implementation detail.)  The value that is sent over the network by   the UA is the HOBA "client result", which we now define.   The HOBA "client result" is a dot-separated string that includes the   signature and is sent in the HTTP Authorization header field value   using the value syntax defined in Figure 2.  The "sig" value is the   base64url-encoded version of the binary output of the signing   process.  The kid, challenge, and nonce are as defined above and are   also base64url encoded.Farrell, et al.               Experimental                      [Page 8]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015      HOBA-RES = kid "." challenge "." nonce "." sig      sig = 1*base64urlchars                    Figure 2: HOBA Client Result Value   If a malformed message of any kind is received by a server, the   server MUST fail authentication.  If a malformed message of any kind   is received by a client, the client MUST abandon that authentication   attempt.  (The client is, of course, free to start another   authentication attempt if it desires.)3.  Introduction to the HOBA-http Mechanism   An HTTP server that supports HOBA authentication includes the "HOBA"   auth-scheme value in a WWW-Authenticate header field when it wants   the client to authenticate with HOBA.  Note that the HOBA auth-scheme   might not be the only one that the server includes in a WWW-   Authenticate header.   The HOBA scheme has two REQUIRED attributes (challenge and max-age)   and one OPTIONAL attribute (realm):   o  The "challenge" attribute MUST be included.  The challenge is the      string made up of the base64url-encoded octets that the server      wants the client to sign in its response.  The challenge MUST be      unique for every 401 HTTP response in order to prevent replay      attacks from passive observers.   o  A "max-age" attribute MUST be included.  It specifies the number      of seconds from the time the HTTP response is emitted for which      responses to this challenge can be accepted; for example, "max-      age: 10" would indicate ten seconds.  If max-age is set to zero,      then that means that only one signature will be accepted for this      challenge.   o  A "realm" attribute MAY be included to indicate the scope of      protection in the manner described in HTTP/1.1, Authentication      [RFC7235].  The "realm" attribute MUST NOT appear more than once.   When the "client response" is created, the UA encodes the HOBA   client-result and returns that in the Authorization header.  The   client-result is a string matching the HOBA-RES production in   Figure 2 as an auth-param with the name "result".   The server MUST check the cryptographic correctness of the signature   based on a public key it knows for the kid in the signatures, and if   the server cannot do that, or if the signature fails cryptographic   checks, then validation has failed.  The server can use anyFarrell, et al.               Experimental                      [Page 9]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   additional mechanisms to validate the signature.  If the validation   fails, or if the server chooses to reject the signature for any   reason whatsoever, the server fails the request with a 401   Unauthorized HTTP response.   The server MUST check that the same web origin is used in all of the   server's TLS server certificates, the URL being accessed, and the   HOBA signature.  If any of those checks fail, the server treats the   signature as being cryptographically incorrect.   Note that a HOBA signature is good for however long a non-zero max-   age parameter allows.  This means that replay is possible within the   time window specified by the "max-age" value chosen by the server.   Servers can attempt to detect any such replay (via caching if they so   choose) and MAY react to such replays by responding with a second (or   subsequent) 401 HTTP response containing a new challenge.   To optimize their use of challenges, UAs MAY prefetch a challenge   value, for example, after (max-age)/2 seconds have elapsed, using the   ".well-known/hoba/getchal" scheme described later in this document.   This also allows for precalculation of HOBA signatures, if that is   required in order to produce a responsive user interface.4.  Introduction to the HOBA-js Mechanism   Web sites using JavaScript can also perform origin-bound   authentication without needing to involve the HTTP layer and by   inference not needing HOBA-http support in browsers.  HOBA-js is not   an on-the-wire protocol like HOBA-http is; instead, it is a design   pattern that can be realized completely in JavaScript served in   normal HTML pages.   One thing that is highly desirable for HOBA-js is WebCrypto (see   <http://www.w3.org/TR/WebCryptoAPI>), which is (at the time of   writing) starting to see deployment.  In lieu of WebCrypto,   JavaScript crypto libraries can be employed with the known   deficiencies of their pseudo-random number generators and the general   immaturity of those libraries.   Without Webcrypto, one element is required for HOBA-js; localStorage   (see <http://www.w3.org/TR/webstorage/>) from HTML5 can be used for   persistent key storage.  For example, an implementation would store a   dictionary account identifier as well as public key and private key   tuples in the origin's localStorage for subsequent authentication   requests.  How this information is actually stored in localStorage is   an implementation detail.  This type of key storage relies on the   security properties of the same-origin policy that localStorage   enforces.  See the security considerations for discussion aboutFarrell, et al.               Experimental                     [Page 10]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   attacks on localStorage.  Note that IndexedDB (see   <http://www.w3.org/TR/IndexedDB/>) is an alternative to localStorage   that can also be used here and that is used by WebCrypto.   Because of JavaScript's same-origin policy, scripts from subdomains   do not have access to the same localStorage that scripts in their   parent domains do.  For larger or more complex sites, this could be   an issue that requires enrollment into subdomains, which could be   difficult for users.  One way to get around this is to use session   cookies because they can be used across subdomains.  That is, with   HOBA-js, the user might log in using a single well-known domain, and   then session cookies are used whilst the user navigates around the   site.5.  HOBA's Authentication Process   This section describes how clients and servers use HOBA for   authentication.  The interaction between an HTTP client and HTTP   server using HOBA happens in three phases: the CPK preparation phase,   the signing phase, and the authentication phase.  This section also   covers the actions that give HOBA features similar to today's   password-based schemes.5.1.  CPK Preparation Phase   In the CPK preparation phase, the client determines if it already has   a CPK for the web origin with which it needs to authenticate.  If the   client has a CPK, the client will use it; if the client does not have   a CPK, it generates one in anticipation of the server asking for one.5.2.  Signing Phase   In the signing phase, the client connects to the server, the server   asks for HOBA-based authentication, and the client authenticates by   signing a blob of information as described in the previous sections.5.3.  Authentication Phase   The authentication phase is completely dependent on the policies and   practices of the server.  That is, this phase involves no   standardized protocol in HOBA-http; in HOBA-js, there is no suggested   interaction template.   In the authentication phase, the server uses the key identifier (kid)   to determine the CPK from the signing phase and decides if it   recognizes the CPK.  If the server recognizes the CPK, the server may   finish the client authentication process.Farrell, et al.               Experimental                     [Page 11]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   If this stage of the process involves additional information for   authentication, such as asking the user which account she wants to   use (in the case where a UA is used for multiple accounts on a site),   the server can prompt the user for account identifying information,   or the user could choose based on HTML offered by the server before   the 401 response is triggered.  None of this is standardized: it all   follows the server's security policy and session flow.  At the end of   this, the server probably assigns or updates a session cookie for the   client.   During the authentication phase, if the server cannot determine the   correct CPK, it could use HTML and JavaScript to ask the user if they   are really a new user or want to associate this new CPK with another   CPK.  The server can then use some out-of-band method (such as a   confirmation email round trip, SMS, or a UA that is already enrolled)   to verify that the "new" user is the same as the already-enrolled   one.  Thus, logging in on a new UA is identical to logging in with an   existing account.   If the server does not recognize the CPK, the server might send the   client through either a join or login-new-UA (see below) process.   This process is completely up to the server and probably entails   using HTML and JavaScript to ask the user some questions in order to   assess whether or not the server wants to give the client an account.   Completion of the joining process might require confirmation by   email, SMS, CAPTCHA, and so on.   Note that there is no necessity for the server to initiate a joining   or login process upon completion of the signing phase.  Indeed, the   server may desire to challenge the UA even for unprotected resources   and set a session cookie for later use in a join or login process as   it becomes necessary.  For example, a server might only want to offer   an account to someone who had been to a few pages on the web site; in   such a case, the server could use the CPK from an associated session   cookie as a way of building reputation for the user until the server   wants the user to join.6.  Other Parts of the HOBA Process   The authentication process is more than just the act of   authentication.  In password-based authentication and HOBA, there are   other processes that are needed both before and after an   authentication step.  This section covers those processes.  Where   possible, it combines practices of HOBA-http and HOBA-js; where that   is not possible, the differences are called out.Farrell, et al.               Experimental                     [Page 12]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   All HOBA interactions other than those defined inSection 5 MUST be   performed in TLS-protected sessions [RFC5246].  If the current HTTP   traffic is not running under TLS, a new session is started before any   of the actions described here are performed.   HOBA-http uses a well-known URI [RFC5785] "hoba" as a base URI for   performing many tasks: "https://www.example.com/.well-known/hoba".   These URIs are based on the name of the host that the HTTP client is   accessing.   There are many use cases for these URLs to redirect to other URLs: a   site that does registration through a federated site, a site that   only does registration under HTTPS, and so on.  Like any HTTP client,   HOBA-http clients have to be able to handle redirection of these   requests.  However, as that would potentially cause security issues   when a re-direct brings the client to a different web origin, servers   implementing HOBA-http SHOULD NOT redirect to a different web origin   from below ".well-known/hoba" URLs.  The above is considered   sufficient to allow experimentation with HOBA, but if at some point   HOBA is placed on the Standards Track, then a full analysis of off-   origin redirections would need to be documented.6.1.  Registration   Normally, a registration (also called "joining") is expected to   happen after a UA receives a 401 response for a web origin and realm   (for HOBA-http) or on demand (for HOBA-js) for which it has no   associated CPK.  The process of registration for a HOBA account on a   server is relatively lightweight.  The UA generates a new key pair   and associates it with the web origin/realm in question.   Note that if the UA has a CPK associated with the web origin, but not   for the realm concerned, then a new registration is REQUIRED.  If the   server did not wish for that outcome, then it ought to use the same   or no realm.   The registration message for HOBA-http is sent as a POST message to   the URL ".well-known/hoba/register" with an HTML form (x-www-form-   encoded, see <http://www.w3.org/TR/2014/REC-html5-20141028/forms.html#url-encoded-form-data>), described below.  The   registration message for HOBA-js can be in any format specified by   the server, but it could be the same as the one described here for   HOBA-http.  It is up to the server to decide what kind of user   interaction is required before the account is finally set up.  When   the server's chosen registration flow is completed successfully, the   server MUST add a Hobareg HTTP header (seeSection 6.1.1) to the HTTP   response message that completes the registration flow.Farrell, et al.               Experimental                     [Page 13]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   The registration message sent to the server has one mandatory field   (pub) and some optional fields that allow the UA to specify the type   and value of key and device identifiers that the UA wishes to use.   o  pub: a mandatory field containing the Privacy Enhanced Mail (PEM)      formatted public key of the client.  SeeAppendix C of [RFC6376]      for an example of how to generate this key format.   o  kidtype: contains the type of key identifier.  This is a numeric      value intended to contain one of the values fromSection 9.4.  If      this is not present, then the mandatory-to-implement hashed public      key option MUST be used.   o  kid: contains the key identifier as a base64url-encoded string      that is of the type indicated in the kidtype.  If the kid is a      hash of a public key, then the correct (base64url-encoded) hash      value MUST be provided and the server SHOULD check that and refuse      the registration if an incorrect value was supplied.   o  didtype: specifies a kind of device identifier intended to contain      one of the values fromSection 9.5.  If absent, then the "string"      form of device identifier defined inSection 9.5 MUST be used.   o  did: a UTF-8 string that specifies the device identifier.  This      can be used to help a user be confident that authentication has      worked, e.g., following authentication, some web content might say      "You last logged in from device 'did' at time T."   Note that replay of registration (and other HOBA) messages is quite   possible.  That, however, can be counteracted if challenge freshness   is ensured.  SeeSection 2 for details.  Note also that with HOBA-   http, the HOBA signature does not cover the POST message body.  If   that is required, then HOBA-JS may be a better fit for registration   and other account management actions.6.1.1.  Hobareg Definition   Since registration can often be a multi-step process, e.g., requiring   a user to fill in contact details, the initial response to the HTTP   POST message defined above may not be the end of the registration   process even though the HTTP response has a 200 OK status.  This   creates an issue for the UA since, during the registration process   (e.g., while dealing with interstitial pages), the UA doesn't yet   know whether the CPK is good for that web origin or not.   For this reason, the server MUST add a header field to the response   message when the registration has succeeded in order to indicate the   new state.  The header to be used is "Hobareg", and the value whenFarrell, et al.               Experimental                     [Page 14]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   registration has succeeded is to be "regok".  When registration is in   an intermediate state (e.g., on an HTTP response for an interstitial   page), the server MAY add this header with a value of "reginwork".   SeeSection 9.6 for the relevant IANA registration of this header   field.   For interstitial pages, the client MAY include a HOBA Authorization   header.  This is not considered a "MUST", as that might needlessly   complicate client implementations, but is noted here in case a server   implementer assumes that all registration messages contain a HOBA   Authorization header.      Hobareg-val = "regok" / "reginwork"                 Figure 3: Hobareg Header Field Definition   Figure 3 provides an ABNF definition for the values allowed in the   Hobareg header field.  Note that these (and the header field name)   are case insensitive.Section 8.3.1 of [RFC7231] calls for   documenting the following details for this new header field:   o  Only one single value is allowed in a Hobareg header field.      Should more than one (a list) be encountered, or any other ABNF-      invalid value, that SHOULD be interpreted as being the same as      "reginwork".   o  The Hobareg header field can only be used in HTTP responses.   o  Since Hobareg is only meant for responses, it ought not appear in      requests.   o  The HTTP response code does affect the interpretation of Hobareg.      Registration is only considered to have succeeded if the regok      value is seen in a 2xx response.  4xx and other errors mean that      registration has failed regardless of the value of Hobareg seen.      The request method has no influence on the interpretation of      Hobareg.   o  Intermediaries never insert, delete, or modify a Hobareg header      field.   o  As a response-only header field, it is not appropriate to list a      Hobareg in a Vary response header field.   o  Hobareg is allowed in trailers.   o  As a response-only header field, Hobareg will not be preserved      across re-directs.Farrell, et al.               Experimental                     [Page 15]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   o  Hobareg itself discloses little security- or privacy-sensitive      information.  If an attacker can somehow detect that a Hobareg      header field is being added, then that attacker would know that      the UA is in the process of registration, which could be      significant.  However, it is likely that the set of messages      between the UA and server would expose this information in many      cases, regardless of whether or not TLS is used.  Using TLS is      still, however, a good plan.6.2.  Associating Additional Keys to an Existing Account   From the user perspective, the UA having a CPK for a web origin will   often appear to be the same as having a way to sign in to an account   at that web site.  Since users often have more than one UA, and since   the CPKs are, in general, UA specific, that raises the question of   how the user can sign in to that account from different UAs.  And   from the server perspective, that turns into the question of how to   safely bind different CPKs to one account.  In this section, we   describe some ways in which this can be done, as well as one way in   which this ought not be done.   Note that the context here is usually that the user has succeeded in   registering with one or more UAs (for the purposes of this section,   we call this "the first UA" below) and can use HOBA with those, and   the user is now adding another UA.  The newest UA might or might not   have a CPK for the site in question.  Since it is in fact trivial, we   assume that the site is able to put in place some appropriate,   quicker, easier registration for a CPK for the newest UA.  The issue   then becomes one of binding the CPK from the newest UA with those of   other UAs bound to the account.6.2.1.  Moving Private Keys   It is common for a user to have multiple UAs and to want all those   UAs to be able to authenticate to a single account.  One method to   allow a user who has an existing account to be able to authenticate   on a second device is to securely transport the private and public   keys and the origin information from the first device to the second.   If this approach is taken, then there is no impact on the HOBA-http   or HOBA-js, so this is a pure UA implementation issue and not   discussed further.6.2.2.  Human-Memorable One-Time Password (Don't Do This One)   It will be tempting for implementers to use a human-memorable One-   Time Password (OTP) in order to "authenticate" binding CPKs to the   same account.  The workflow here would likely be something along the   lines of some server administrative utility generating a human-Farrell, et al.               Experimental                     [Page 16]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   memorable OTP such as "1234" and sending that to the user out of band   for the user to enter at two web pages, each authenticated via the   relevant CPK.  While this seems obvious enough and could even be   secure enough in some limited cases, we consider that this is too   risky to use in the Internet, and so servers SHOULD NOT provide such   a mechanism.  The reason this is so dangerous is that it would be   trivial for an automated client to guess such tokens and "steal" the   binding intended for some other user.  At any scale, there would   always be some in-process bindings so that even with only a trickle   of guesses (and hence not being detectable via message volume), an   attacker would have a high probability of succeeding in registering a   binding with the attacker's CPK.   This method of binding CPKs together is therefore NOT RECOMMENDED.6.2.3.  Out-of-Band URL   One easy binding method is to simply provide a web page where, using   the first UA, the user can generate a URL (containing some   "unguessable" cryptographically generated value) that the user then   later dereferences on the newest UA.  The user could email that URL   to herself, for example, or the web server accessed at the first UA   could automatically do that.   Such a URL SHOULD contain at least the equivalent of 128 bits of   randomness.6.3.  Logging Out   The user can tell the server it wishes to log out.  With HOBA-http,   this is done by sending a HOBA-authenticated POST message to the URL   ".well-known/hoba/logout" on the site in question.  The UA SHOULD   also delete session cookies associated with the session so that the   user's state is no longer "logged in."   The server MUST NOT allow TLS session resumption for any logged out   session.   The server SHOULD also revoke or delete any cookies associated with   the session.6.4.  Getting a Fresh Challenge   The UA can get a "fresh" challenge from the server.  In HOBA-http, it   sends a POST message to ".well-known/hoba/getchal".  If successful,   the response MUST contain a fresh (base64url-encoded) HOBA challenge   for this origin in the body of the response.  Whitespace in the   response MUST be ignored.Farrell, et al.               Experimental                     [Page 17]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 20157.  Mandatory-to-Implement Algorithms   RSA-SHA256 MUST be supported.  HOBA implementations MUST use RSA-   SHA256 if it is provided by the underlying cryptographic libraries.   RSA-SHA1 MAY be used.  RSA modulus lengths of at least 2048 bits   SHOULD be used.  RSA indicates the RSASSA-PKCS1-v1_5 algorithm   defined inSection 8.2 of [RFC3447], and SHA-1 and SHA-256 are   defined in [SHS].  Keys with moduli shorter than 2048 bits SHOULD   only be used in cases where generating 2048-bit (or longer) keys is   impractical, e.g., on very constrained or old devices.8.  Security Considerations   Binding my CPK with someone else's account would be fun and   profitable so SHOULD be appropriately hard.  In particular, URLs or   other values generated by the server as part of any CPK binding   process MUST be hard to guess, for whatever level of difficulty is   chosen by the server.  The server SHOULD NOT allow a random guess to   reveal whether or not an account exists.   If key binding was server selected, then a bad actor could bind   different accounts belonging to the user from the network with   possible bad consequences, especially if one of the private keys was   compromised somehow.   When the max-age parameter is not zero, then a HOBA signature has a   property that is like a bearer token for the relevant number of   seconds: it can be replayed for a server-selected duration.   Similarly, for HOBA-js, signatures might be replayable depending on   the specific implementation.  The security considerations of   [RFC6750] therefore apply in any case where the HOBA signature can be   replayed.  Server administrators can set the max-age to the minimum   acceptable value in such cases, which would often be expected to be   just a few seconds.  There seems to be no reason to ever set the max-   age more than a few minutes; the value ought also decrease over time   as device capabilities improve.  The administrator will most likely   want to set the max-age to something that is not too short for the   slowest signing device that is significant for that site.8.1.  Privacy Considerations   HOBA does, to some extent, impact privacy and could be considered to   represent a super-cookie to the server or to any entity on the path   from UA to HTTP server that can see the HOBA signature.  This is   because we need to send a key identifier as part of the signature and   that will not vary for a given key.  For this reason, and others, it   is strongly RECOMMENDED to only use HOBA over server-authenticated   TLS and to migrate web sites using HOBA to only use "https" URLs.Farrell, et al.               Experimental                     [Page 18]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   UAs SHOULD provide users a way to manage their CPKs.  Ideally, there   would be a way for a user to maintain their HOBA details for a site   while at the same time deleting other site information such as   cookies or non-HOBA HTML5 localStorage.  However, as this is likely   to be complex, and appropriate user interfaces counterintuitive, we   expect that UAs that implement HOBA will likely treat HOBA   information as just some more site data that would disappear should   the user choose to "forget" that site.   Device identifiers are intended to specify classes of device in a way   that can assist with registration and with presentation to the user   of information about previous sessions, e.g., last login time.   Device identifier types MUST NOT be privacy sensitive, with values   that would allow tracking a user in unexpected ways.  In particular,   using a device identifier type that is analogous to the International   Mobile Equipment Identifier (IMEI) would be a really bad idea and is   the reason for the "MUST NOT" above.  In that case, "mobile phone"   could be an acceptable choice.   If possible, implementations ought to encourage the use of device   identifier values that are not personally identifying except for the   user concerned; for example, "Alice's mobile" is likely to be chosen   and is somewhat identifying, but "Alice's phone: UUID 1234-5567-   89abc-def0" would be a very bad choice.8.2.  localStorage Security for JavaScript   The use of localStorage (likely with a non-WebCrypto implementation   of HOBA-js) will undoubtedly be a cause for concern. localStorage   uses the same-origin model that says that the scheme, domain, and   port define a localStorage instance.  Beyond that, any code executing   will have access to private keying material.  Of particular concern   are Cross-Site Scripting (XSS) attacks, which could conceivably take   the keying material and use it to create UAs under the control of an   attacker.  XSS attacks are, in reality, devastating across the board   since they can and do steal credit card information, passwords,   perform illicit acts, etc.  It's not evident that we are introducing   unique threats from which cleartext passwords don't already suffer.   Another source of concern is local access to the keys.  That is, if   an attacker has access to the UA itself, they could snoop on the key   through a JavaScript console or find the file(s) that implement   localStorage on the host computer.  Again, it's not clear that we are   worse in this regard because the same attacker could get at browser   password files, etc., too.  One possible mitigation is to encrypt the   keystore with a password/PIN that the user supplies.  This may sound   counterintuitive, but the object here is to keep passwords off ofFarrell, et al.               Experimental                     [Page 19]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   servers to mitigate the multiplier effect of a large-scale compromise   (e.g., [ThreatReport]) because of shared passwords across sites.   It's worth noting that HOBA uses asymmetric keys and not passwords   when evaluating threats.  As various password database leaks have   shown, the real threat of a password breach is not just to the site   that was breached, it's also to all of the sites on which a user used   the same password.  That is, the collateral damage is severe because   password reuse is common.  Storing a password in localStorage would   also have a similar multiplier effect for an attacker, though perhaps   on a smaller scale than a server-side compromise: one successful   crack gains the attacker potential access to hundreds if not   thousands of sites the user visits.  HOBA does not suffer from that   attack multiplier since each asymmetric key pair is unique per   site/UA/user.8.3.  Multiple Accounts on One User Agent   A shared UA with multiple accounts is possible if the account   identifier is stored along with the asymmetric key pair binding them   to one another.  Multiple entries can be kept, one for each account,   and selected by the current user.  This, of course, is fraught with   the possibility for abuse, since a server is potentially enrolling   the device for a long period and the user may not want to have to be   responsible for the credential for that long.  To alleviate this   problem, the user could request that the credential be erased from   the browser.  Similarly, during the enrollment phase, a user could   request that the key pair only be kept for a certain amount of time   or that it not be stored beyond the current browser session.   However, all such features really ought to be part of the operating   system or platform and not part of a HOBA implementation, so those   are not discussed further.8.4.  Injective Mapping for HOBA-TBS   The repeated length fields in the HOBA-TBS structure are present in   order to ensure that there is no possibility that the catenation of   different input values can cause confusion that might lead to an   attack, either against HOBA as specified here, or else an attack   against some other protocol that reused this to-be-signed structure.   Those fields ensure that the mapping from input fields to the HOBA-   TBS string is an injective mapping.Farrell, et al.               Experimental                     [Page 20]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 20159.  IANA Considerations   IANA has made registrations and created new registries as described   below.   All new registries have been placed beneath a new "HTTP Origin-Bound   Authentication (HOBA) Parameters" category.9.1.  HOBA Authentication Scheme   A new scheme has been registered in the HTTP Authentication Scheme   Registry as follows:   Authentication Scheme Name: HOBA   Reference:Section 3 of RFC 7486   Notes (optional): The HOBA scheme can be used with either HTTP   servers or proxies.  When used in response to a 407 Proxy   Authentication Required indication, the appropriate proxy   authentication header fields are used instead, as with any other HTTP   authentication scheme.9.2.  .well-known URI   A new .well-known URI has been registered in the Well-Known URIs   registry as described below.   URI Suffix: hoba   Change Controller: IETF   Reference:Section 6 of RFC 7486   Related Information: N/A9.3.  Algorithm Names   A new HOBA signature algorithms registry has been created as follows,   with Specification Required as the registration procedure.  New HOBA   signature algorithms SHOULD be in use with other IETF Standards Track   protocols before being added to this registry.   Number       Meaning                         Reference   -----------  ------------------------------  ------------   0            RSA-SHA256RFC 7486   1            RSA-SHA1RFC 7486Farrell, et al.               Experimental                     [Page 21]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   RSA is defined inSection 8.2 of [RFC3447], and SHA-1 and SHA-256 are   defined in [SHS].   For this registry, the number column should contain a small positive   integer.  Following the ABNF in Figure 1, the maximum value for this   is decimal 99.9.4.  Key Identifier Types   A new HOBA Key Identifier Types registry has been created as follows,   with Specification Required as the registration procedure.   Number       Meaning                         Reference   -----------  ------------------------------  ------------   0            a hashed public key             [RFC6698]   1            a URI                           [RFC3986]   2            an unformatted string, at theRFC 7486                user's/UA's whim   For the number 0, hashed public keys are as done in DNS-Based   Authentication of Named Entities (DANE) [RFC6698].   For this registry, the number column should contain a small positive   integer.9.5.  Device Identifier Types   A new HOBA Device Identifier Types registry has been created as   follows, with Specification Required as the registration procedure.   The designated expert for this registry is to carefully pay attention   to the notes on this field inSection 8.1, in particular, the "MUST   NOT" stated therein.   Number       Meaning                         Reference   -----------  ------------------------------  -----------   0            an unformatted string, at theRFC 7486                user's/UA's whim   For this registry, the number column should contain a small positive   integer.Farrell, et al.               Experimental                     [Page 22]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 20159.6.  Hobareg HTTP Header Field   A new identifier has been registered in the Permanent Message Header   Field Names registry as described below.   Header Field Name: Hobareg   Protocol: http (RFC 7230)   Status: experimental   Author/Change controller: IETF   Reference:Section 6.1.1 of RFC 7486   Related information: N/A10.  References10.1.  Normative References   [RFC20]    Cerf, V., "ASCII format for network interchange", STD 80,RFC 20, October 1969,              <http://www.rfc-editor.org/info/rfc20>.   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate              Requirement Levels",BCP 14,RFC 2119, March 1997,              <http://www.rfc-editor.org/info/rfc2119>.   [RFC3447]  Jonsson, J. and B. Kaliski, "Public-Key Cryptography              Standards (PKCS) #1: RSA Cryptography Specifications              Version 2.1",RFC 3447, February 2003,              <http://www.rfc-editor.org/info/rfc3447>.   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform              Resource Identifier (URI): Generic Syntax", STD 66,RFC3986, January 2005,              <http://www.rfc-editor.org/info/rfc3986>.   [RFC4648]  Josefsson, S., "The Base16, Base32, and Base64 Data              Encodings",RFC 4648, October 2006,              <http://www.rfc-editor.org/info/rfc4648>.   [RFC5234]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax              Specifications: ABNF", STD 68,RFC 5234, January 2008,              <http://www.rfc-editor.org/info/rfc5234>.Farrell, et al.               Experimental                     [Page 23]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security              (TLS) Protocol Version 1.2",RFC 5246, August 2008,              <http://www.rfc-editor.org/info/rfc5246>.   [RFC5785]  Nottingham, M. and E. Hammer-Lahav, "Defining Well-Known              Uniform Resource Identifiers (URIs)",RFC 5785, April              2010, <http://www.rfc-editor.org/info/rfc5785>.   [RFC6454]  Barth, A., "The Web Origin Concept",RFC 6454, December              2011, <http://www.rfc-editor.org/info/rfc6454>.   [RFC6698]  Hoffman, P. and J. Schlyter, "The DNS-Based Authentication              of Named Entities (DANE) Transport Layer Security (TLS)              Protocol: TLSA",RFC 6698, August 2012,              <http://www.rfc-editor.org/info/rfc6698>.   [RFC6750]  Jones, M. and D. Hardt, "The OAuth 2.0 Authorization              Framework: Bearer Token Usage",RFC 6750, October 2012,              <http://www.rfc-editor.org/info/rfc6750>.   [RFC7231]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer              Protocol (HTTP/1.1): Semantics and Content",RFC 7231,              June 2014, <http://www.rfc-editor.org/info/rfc7231>.   [RFC7235]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer              Protocol (HTTP/1.1): Authentication",RFC 7235, June 2014,              <http://www.rfc-editor.org/info/rfc7235>.   [SHS]      NIST, "Secure Hash Standard (SHS)", FIPS PUB 180-4, March              2012.10.2.  Informative References   [Bonneau]  Bonneau, J., "The Science of Guessing: Analyzing an              Anonymized Corpus of 70 Million Passwords", IEEE Symposium              on Security and Privacy 538-552, 2012.   [MI93]     Mitchell, C. and A. Thomas, "Standardising authentication              protocols based on public key techniques", Journal of              Computer Security Volume 2, 23-36, 1993.   [RFC4086]  Eastlake 3rd, D., Schiller, J., and S. Crocker,              "Randomness Requirements for Security",BCP 106,RFC 4086,              June 2005, <http://www.rfc-editor.org/info/rfc4086>.   [RFC6265]  Barth, A., "HTTP State Management Mechanism",RFC 6265,              April 2011, <http://www.rfc-editor.org/info/rfc6265>.Farrell, et al.               Experimental                     [Page 24]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015   [RFC6376]  Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed.,              "DomainKeys Identified Mail (DKIM) Signatures", STD 76,RFC 6376, September 2011,              <http://www.rfc-editor.org/info/rfc6376>.   [ThreatReport]              Sophos, "Security Threat Report 2013", January 2013,              <http://www.sophos.com/en-us/medialibrary/pdfs/other/sophossecuritythreatreport2013.pdf>.Farrell, et al.               Experimental                     [Page 25]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015Appendix A.  Problems with Passwords   By far, the most common mechanism for web authentication is passwords   that can be remembered by the user, called "human-memorable   passwords".  There is plenty of good research on how users typically   use human-memorable passwords (e.g., see [Bonneau]), but some of the   highlights are that users typically try hard to reuse passwords on as   many web sites as possible, and that web sites often use either email   addresses or users' names as the identifiers that go with these   passwords.   If an attacker gets access to the database of memorizable passwords,   that attacker can impersonate any of the users.  Even if the breach   is discovered, the attacker can still impersonate users until every   password is changed.  Even if all the passwords are changed or at   least made unusable, the attacker now possesses a list of likely   username/password pairs that might exist on other sites.   Using memorizable passwords on unencrypted channels also poses risks   to the users.  If a web site uses either the HTTP Basic   authentication method, or an HTML form that does no cryptographic   protection of the password in transit, a passive attacker can see the   password and immediately impersonate the user.  If a hash-based   authentication scheme such as HTTP Digest authentication is used, a   passive attacker still has a high chance of being able to determine   the password using a dictionary of known passwords.   Note that passwords that are not human-memorable are still subject to   database attack, though they are of course unlikely to be reused   across many systems.  Similarly, database attacks of some form or   other will work against any password-based authentication scheme,   regardless of the cryptographic protocol used.  So for example, zero-   knowledge or Password-Authenticated Key Exchange (PAKE) schemes,   though making use of elegant cryptographic protocols, remain as   vulnerable to what is clearly the most common exploit seen when it   comes to passwords.  HOBA is, however, not vulnerable to database   theft.Farrell, et al.               Experimental                     [Page 26]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015Appendix B.  Example   The following values show an example of HOBA-http authentication to   the origin "https://example.com:443".  Carriage returns have been   added and need to be removed to validate the example.   Public Key:   -----BEGIN PUBLIC KEY-----   MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAviE8fMrGIPZN9up94M28   6o38B99fsz5cUqYHXXJlnHIi6gGKjqLgn3P7n4snUSQswLExrkhSr0TPhRDuPH_t   fXLKLBbh17ofB7t7shnPKxmyZ69hCLbe7pB1HvaBzTxPC2KOqskDiDBOQ6-JLHQ8   egXB14W-641RQt0CsC5nXzo92kPCdV4NZ45MW0ws3twCIUDCH0nibIG9SorrBbCl   DPHQZS5Dk5pgS7P5hrAr634Zn4bzXhUnm7cON2x4rv83oqB3lRqjF4T9exEMyZBS   L26m5KbK860uSOKywI0xp4ymnHMc6Led5qfEMnJC9PEI90tIMcgdHrmdHC_vpldG   DQIDAQAB   -----END PUBLIC KEY-----   Origin:https://example.com:443   Key Identifier: vesscamS2Kze4FFOg3e2UyCJPhuQ6_3_gzN-k_L6t3w   Challenge: pUE77w0LylHypHKhBqAiQHuGC751GiOVv4/7pSlo9jc=   Signature algorithm: RSA-SHA256 ("0")   Nonce: Pm3yUW-sW5Q   Signature:   VD-0LGVBVEVjfq4xEd35FjnOrIqzJ2OQMx5w8E52dgVvxFD6R0ryEsHcD31ykh0i   4YIzIHXirx7bE4x9yP-9fMBCEwnHJsYwYQhfRpmScwAz-Ih1Hn4yORTb-U66miUz   q04ZgTHm4jAj45afU20wYpGXY2r3W-FRKc6J6Glv_zI_ROghERalxgXG-QVGZrKP   tG0V593Yf9IPnFSpLyW6fnxscCMWUA9T-4NjMdypI-Ze4HsC9J06tRTOunQdofr9   6ZJ2i9LE6uKSUDLCD2oeEeSEvUR--4OGtrgjzYysHZkdVSxAi7OoQBK34EUWg9kI   S13qQA43m4IMExkbApqrSg   Authorization Header:   Authorization: HOBA result="vesscamS2Kze4FFOg3e2UyCJPhuQ6_3_gzN-   k_L6t3w.pUE77w0LylHypHKhBqAiQHuGC751GiOVv4/7pSlo9jc=.Pm3yUW-sW5Q   .VD-0LGVBVEVjfq4xEd35FjnOrIqzJ2OQMx5w8E52dgVvxFD6R0ryEsHcD31ykh0   i4YIzIHXirx7bE4x9yP-9fMBCEwnHJsYwYQhfRpmScwAz-Ih1Hn4yORTb-U66miU   zq04ZgTHm4jAj45afU20wYpGXY2r3W-FRKc6J6Glv_zI_ROghERalxgXG-QVGZrK   PtG0V593Yf9IPnFSpLyW6fnxscCMWUA9T-4NjMdypI-Ze4HsC9J06tRTOunQdofr   96ZJ2i9LE6uKSUDLCD2oeEeSEvUR--4OGtrgjzYysHZkdVSxAi7OoQBK34EUWg9k   IS13qQA43m4IMExkbApqrSg"Farrell, et al.               Experimental                     [Page 27]

RFC 7486              HTTP Origin-Bound Auth (HOBA)           March 2015Acknowledgements   Thanks to the following for good comments received during the   preparation of this specification: Richard Barnes, David Black,   Alissa Cooper, Donald Eastlake, Amos Jeffries, Benjamin Kaduk, Watson   Ladd, Barry Leiba, Matt Lepinski, Ilari Liusvaara, James Manger,   Alexey Melnikov, Kathleen Moriarty, Yoav Nir, Mark Nottingham, Julian   Reschke, Pete Resnick, Michael Richardson, Yaron Sheffer, and Michael   Sweet.  All errors and stupidities are of course the editors' fault.Authors' Addresses   Stephen Farrell   Trinity College Dublin   Dublin  2   Ireland   Phone: +353-1-896-2354   EMail: stephen.farrell@cs.tcd.ie   Paul Hoffman   VPN Consortium   EMail: paul.hoffman@vpnc.org   Michael Thomas   Phresheez   EMail: mike@phresheez.comFarrell, et al.               Experimental                     [Page 28]

[8]ページ先頭

©2009-2025 Movatter.jp