Subject: [http-auth] (mutual auth) possible discussions / call for opinions

From: Yutaka OIWA <[email-masked]>
Date: Mon, 16 Mar 2015 22:20:52 +0900

Dear HTTPAUTH WG attendees,

The following is the list of possible discussion points
that the authors think.
For most of these, the authors currently think that
current specifications are appropriate.
But at the same time, we'd like to have feedback
for these decisions.

Please feel free to send us a feedback and
we'll consider it for improving the drafts for
publication.
Feed-backs can be either to the list or
to be given directly at the meeting.

See you at Dallas!

==== draft-ietf-httpauth-mutual ====

= Section 3.1 =

[P1] Is adoption of RFC5987 OK?

[P2] The encoding is fixed to UTF-8, without any language.
     (justification: it is not an on-line negotiable parameter,
      and the new protocol does not need to consider older
      clients.)

= Section 4: Messages =

[P3] Are the reserved parameter names making sense?

= Section 4.1: 401-INIT =

[P4] The set of pwd-hash parameters for user-DB migrations:
     none, md5, digest-md5, sha1 makes sense?

[P5] reason parameter:
     Are the listed reasons good and complete?

= Section 4.3 401-KEX-S1 =

[P6] Minimum parameter ranges:
  * 80+ bits for session id (sid)
  * 32+ slots for active nonces: nc-max, nc-window
  * 60+ seconds for session key retention

= Section 5: Authentication Realms =

[P7] Are these choices complete?

= Section 7: Host validation (channel binding to TLS) =

[P8] Is adoption of RFC 5929 OK?

[P9] Do we really need tls-unique for general HTTP?
     (It is too complex for actual implementation,
      because authentication life-duration spans
      over multiple HTTP requests and
      multiple TLS connections.)

[P10] Is 256-bit binding sensible for 512-bit-worth
      authentication exchange?
      (with 256-bit TLS certificates)

= Section 10 =

[P11] Two forms of descriptions are given for client state-machines,
      requested by feedback comments.
      Is it necessary to have both? Or, which one makes more sense?

= Section 12.1: Data Syntax =

[P12] We need non-ambiguous enconding of multiple string sets.
      Are definitions of VI(), VS() satisfactory?

= Section 16: IANA Considerations =

[P13] Choice of Requirement specification levels for
      new algorithms: is "RFC required" satisfactory?
      (see RFC 5226 for other choices)

==== draft-ietf-httpauth-mutual-algo ====

[P14] Iteration counts for "PBKDF2" construction:
      nIterPi is defined to be 16384.  Is this value reasonable?

==== draft-ietf-httpauth-extension ====

= Section 3: Optional authentication =

[P15] Do we want to migrate to (recently-clarified)
      "WWW-Authenticate with 2XX status" for
      notification of possible optional authentications?

      Current choice (separate header) is more friendly
      to co-exist with Cookie-based authentication,
      because an unknown new header will always be ignored.

= Section 4: General issues =

[P16] Length of parameter names:
      Some requests are there, that we should shorten
      name of parameters: how far we should go?
      "logout-URL" or "unauth-URL" might be one level of possible solution.

= Section 4.6 =

[P17] Is it reasonable to use logout-timeout=0 for logout request?
      Or, something more explicit like "request-logout=true" is preferred?

= Section 7: IANA registration =

[P18] Choice of Requirement specification levels for
      new parameters:

      For this specification, we want a weaker-level
      of requirement than the Mutual spec, because
      this spec is intended as general, possibly ad-hoc
      extension points for HTTP authentications.

      Our choice is "Specification Required".
      Is it OK? (See RFC 5226 for other choices, again.)

-- 
Yutaka OIWA, Ph.D.
           Senior Researcher, Research Institute for Secure Systems (RISEC)
    National Institute of Advanced Industrial Science and Technology (AIST)
                      Mail addresses: <[email-masked]>, <[email-masked]>
OpenPGP: id[440546B5] fp[7C9F 723A 7559 3246 229D  3139 8677 9BD2 4405 46B5]

---

From: Ilari Liusvaara <[email-masked]>
Date: Mon, 16 Mar 2015 16:09:46 +0200

>       and the new protocol does not need to consider older

I think I saw a BCP (not superceded) that essentially said that
UTF-8 is both necressary and sufficient in internationalized
contexts (i.e. you don't need to provode other character sets).

So I think it is OK.

>      Are the listed reasons good and complete?

I'm having trouble understanding why authz-failed isn't
the same as 403.
 
> [P8] Is adoption of RFC 5929 OK?

Yeah, except in security considerations, needs a note about
THS (see below).
 
>       multiple TLS connections.)

Yes, but one HTTP request can't span multiple TLS connections,
which makes this thing actually feasible to implement.

However, there is a relevant security bug in the TLS protocol itself:

Specifically, if one: Establishes the session without certain (not yet
standardized) extension [extended_master_secret, which is built-in in
TLS 1.3 draft], does not check keys (those are often impossible to
check) and then resumes the session, the attacker can break
tls-unique channel binding.

>       (with 256-bit TLS certificates)

Note that key lifetimes need to be taken into account when comparing
key strength. So it may very well be sensible.
 
>       Are definitions of VI(), VS() satisfactory?

Yeah, that looks to work.
 
>       because an unknown new header will always be ignored.

Err, what I-D or RFC? HTTP/1.1 part 7 (Authentication), which has
MAY send for non-401 status?

-Ilari