Subject: New version of draft-farrell-httpbis-hoba

From: Paul Hoffman <[email-masked]>
Date: Mon, 16 Jul 2012 13:49:49 -0700

Greetings again. Stephen Farrell and I teamed up on the -01 for
draft-farrell-httpbis-hoba. It has some major changes that might
interest this WG as we decide which authentication mechanism(s) to
adopt for HTTP 2. The proposed mechanism has changed from "TLS inside
of HTTP" to a simple challenge-response with a signed response. Also,
we propose using a .well-known URL scheme for the authentication
assistance features such as sign-up and logout. We retain the basic
property that this is an alternative to using passwords.

--Paul Hoffman

A new version of I-D, draft-farrell-httpbis-hoba-01.txt
has been successfully submitted by Paul Hoffman and posted to the
IETF repository.

Filename:	 draft-farrell-httpbis-hoba
Revision:	 01
Title:		 HTTP Origin-Bound Authentication (HOBA)
Creation date:	 2012-07-16
WG ID:		 Individual Submission
Number of pages: 11
URL:
http://www.ietf.org/internet-drafts/draft-farrell-httpbis-hoba-01.txt
Status:          http://datatracker.ietf.org/doc/draft-farrell-httpbis-hoba
Htmlized:        http://tools.ietf.org/html/draft-farrell-httpbis-hoba-01
Diff:
http://tools.ietf.org/rfcdiff?url2=draft-farrell-httpbis-hoba-01

Abstract:
  HTTP Origin-Bound Authentication (HOBA) is an HTTP authentication
  method with credentials that are not vulnerable to simple phishing
  attacks, and that does not require a server-side password database.
  It is an alternative to HTTP authentication that requires passwords
  and all the negative attributes that come with password-based
  systems.  HOBA can be integrated with account management and other
  applications running over HTTP and supports portability, so a user
  can associate more than one device or origin-bound certificate with
  the same service.  HOBA has many other useful features such as a
  mechanism to handle state-loss if one of a user's credentials is lost
  and a logout mechanism.

---

From: "Manger, James H" <[email-masked]>
Date: Tue, 24 Jul 2012 00:15:47 +1000

Stephen & Paul,

Thanks for developing HTTP Origin-Bound Authentication (HOBA) [draft-farrell-httpbis-hoba-01], but I am confused about how it works.

Version -00 leveraged origin-bound certificates (OBC) [http://tools.ietf.org/html/draft-balfanz-tls-obc-01]. Version -01 still mentions OBC (eg "Signing Up … The OBC MUST be sent base64 encoded"), but I get the impression this is an HTTP-layer cert that is *totally separate* from any TLS-layer OBC. Is that true?

C <- S: WWW-Authenticate: HOBA realm="abc", challenge="123"
C -> S: Authorization: HOBA sig=sign(origin+realm+challenge), obc=...

Q. Should you always need a round-trip to collect a challenge from the server, or can an initial HTTP request be authenticated using HOBA? Perhaps signing a timestamp instead of a challenge.

Instead of POSTing a cert (OBC) to /.well-known/hoba/sign-up, the client could just use HOBA. That is, the client generates a key pair & OBC, then includes the OBC in the Authorization header when requesting the sign-up URI.

The request to /.well-known/hoba/sign-up (which can probably be a GET instead of a POST) needs to include the realm, though this could be in the HOBA Authorization header as well.

There might need to be some signal from the server once the sign-up has completed so the client knows it can now repeat the request that caused the WWW-Authenticate response that triggered the sign-up. Using a status code might work (eg 201 Created indicating the creation of an account), but a status code is a bit awkward since you need to distinguish a status code about this page of the sign-up interaction vs the status of the entire sign-up process.
Similarly there needs to be some signal that the sign-up process failed.

Why does logout require a request to /.well-known/hoba/log-out, instead of just no longer including "Authorization: HOBA sig=..."? Is it because only 1 HOBA signature might be used to authenticate in a session, and a session cookie could be used from there? Or is it just generally useful to inform the server?

Servers not allowing TLS session resumption after getting a request to /.well-known/hoba/log-out feels strange (and unnecessary). Is the current TLS session also supposed to be terminated on logout? Can't you logout of your account, but keep browsing the site on the same connection?

Is it the idea that (after an initial sign-up) the HTTP-layer OBC would be used automatically by the client whenever accessing the site? Or automatically, but only after getting a "WWW-Authenticate: HOBA ..." response? Or is the client supposed to display a "Login" button when the user browsers to the site? Or does the client prompt to login on receiving "WWW-Authenticate: HOBA ..."?

--
James Manger

---

From: Stephen Farrell <[email-masked]>
Date: Mon, 23 Jul 2012 15:55:01 +0100

Hi James,

> Thanks for developing HTTP Origin-Bound Authentication (HOBA) [draft-farrell-httpbis-hoba-01], but I am confused about how it works.

Thanks for the review. We're also not yet clear how it works
is the headline answer:-)

> Version -00 leveraged origin-bound certificates (OBC) [http://tools.ietf.org/html/draft-balfanz-tls-obc-01]. Version -01 still mentions OBC (eg "Signing Up … The OBC MUST be sent base64 encoded"),…

Right. Paul's (good) argument for the change is that its much
better to not depend on a modified TLS stack. I'm ok either way
really, but doing this at the HTTP layer was my original plan
(e.g. on the http_auth list maybe a year ago) before TLS-OBC
was published.

I'd like if we can make sure the public credential is the same
in any case, whether the authentication is done within TLS or
in HTTP, or as is maybe more likely, above HTTP. So I reckon
I'll argue to keep the OBC structure on that basis.

> Q. Should you always need a round-trip to collect a challenge from the server, or can an initial HTTP request be authenticated using HOBA? Perhaps signing a timestamp instead of a challenge.

Good question for which I don't have an authoritative answer at
the moment. I guess it depends on a) what will be signed and
b) how often we feel challenges need changing vs. how much we'd
buy into use of timestamps.

Assuming hoba isn't d-o-a, for a) I think I (at least) need
to talk some more to HTTP folks in Vancouver and then to some
security of cfrg folks before proposing details, and then we'd
want to iterate a bit on that. (If hoba is to be part of HTTP
for the next long while, I think we need to do it well.)
For b) I'm wary of timestamps since there are nodes with no
clock, but I can see how the option might be handy. OTOH,
more options is bad too, so I'm just ambivalent right now;-)

> The request to /.well-known/hoba/sign-up (which can probably be a GET instead of a POST) needs to include the realm, though this could be in the HOBA Authorization header as well.

Both seem reasonable to me.

> Similarly there needs to be some signal that the sign-up process failed.

I agree that those issues need consideration. Not sure
what's right myself.

> Why does logout require a request to /.well-known/hoba/log-out, instead of just no longer including "Authorization: HOBA sig=..."? Is it because only 1 HOBA signature might be used to authenticate…

I believe the latter. But that raises UI issues for which I'm not
sure we have good answers. ("logout" is, I'm told, something that
folks have been wanting in HTTP, but the details of why aren't very
clear to me, and it may be that the requirements for a logout
operation for a scheme like hoba differ from a password based
scheme.)

> Servers not allowing TLS session resumption after getting a request to /.well-known/hoba/log-out feels strange (and unnecessary). Is the current TLS session also supposed to be terminated on logout…

Fair enough. I'd have no problem separating those fully. (Or not,
basically, whatever the WG would want.) I guess the counter argument
might be that it'd be good to keep one TLS session per login session.

> Is it the idea that (after an initial sign-up) the HTTP-layer OBC would be used automatically by the client whenever accessing the site? Or automatically, but only after getting a "WWW-Authenticate…

All good questions that make it clear where we are in the
development of this. (As does the draft itself.) If the wg
choose to adopt hoba or a hoba-like thing, we're happy to
put in the effort to start answering these questions well.

S.