[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Clarifying the qualities we desire the DIGEST-MD5 replacement to have



Chris Newman <Chris.Newman@xxxxxxx> writes:

> --On March 6, 2008 5:59:06 -0800 Kurt Zeilenga
> <Kurt.Zeilenga@xxxxxxxxx> wrote:
>> In response to reviewer comments on our charter proposal, we need to
>> quickly produce replacement text which clarifies the qualities we desire
>> the DIGEST-MD5 replacement mechanism to have.
>>
>> I'd like one or two persons (working together) to take a quick stab at
>> this (for initial WG review BEFORE our IETF#71 session).  Any volunteers?
>
> As a technical participant
>
> The qualities I want are:
> * Simple username/password mechanism that is hash-based.
> * Minimize administrative set-up cost
> * Ability to store a password verifier in LDAP (or other identity
> store) that is not
>  the password itself
> * Ability to use one layer of reverse/server-side proxy where the
> proxy doesn't have a
>  direct copy of the password verifier database and doesn't require
> administrative
>  credentials to back-end
> * Has equivalent of both server & client nonces (to avoid CRAM-MD5
> server-only nonce
>  weakness)
> * Support for channel bindings to TLS
> * Support for authentication & authorization ID
>
> Things mechanism should not do:
> * Require client UI for realm selection
> * Require client-side configuration for the authentication mechanism itself
> * Require a write operation to the server credential verifier database
> on every login
> * Include a rarely used optional feature, such as a SASL security layer.
> * Silly syntax variations that create interop problems (folding
> whitespace, etc).
>
> Nice-to-have features:
> * Complexity closer to CRAM-MD5 than DIGEST-MD5.
> * Textual protocol like CRAM-MD5 over binary protocol that's harder to
> test/debug
> * Support for mutual authentication (may be an option)
> * Server-stored password verifier that is not plaintext-equivalent
> * Mechanism that's useful without TLS
> * Minimize round-trips
> * Avoid ASN.1
> * Avoid expensive public-key operations in authentication mechanism

Very useful summary.

I agree with all those requirements, except that I have some reservation
about using a textual protocol.  My experience with DIGEST-MD5 has been
that the free format created more problems than it solved.  There are
still interop problems with quoted text.  I recall interop problems
caused by the specification permitting empty comma sequences like ", ,".

If it is a textual protocol, I would want it to only permit ONE way to
say the same thing.  Reordering parameters so that 'foo=bar,baz=apa' is
equivalent to 'baz=apa,foo=bar' is bad.  Permitting whitespace so that
'foo=bar, baz=apa' is also equivalent is bad.  Using quoting, so that
'foo="bar",baz=apa' is also equivalent is bad.  Allowing unrecognized
parameters to be skipped is bad.  And so on.

If this approach is used, I would prefer a textual protocol too.

Finally, there is no conflict between avoiding ASN.1 and using GSS-API.
The ASN.1 used by GSS-API is minimal and does not need a DER parser or
encoder.

/Simon