Re: Issue: draft-ietf-radext-digest-auth-06.txt Digest MD5-sess

Henrik Nordstrom <henrik@henriknordstrom.net> Thu, 29 December 2005 22:22 UTC

Envelope-to: radiusext-data@psg.com
Delivery-date: Thu, 29 Dec 2005 22:23:24 +0000
Date: Thu, 29 Dec 2005 23:22:51 +0100
From: Henrik Nordstrom <henrik@henriknordstrom.net>
To: radiusext@ops.ietf.org
Subject: Re: Issue: draft-ietf-radext-digest-auth-06.txt Digest MD5-sess
Message-ID: <Pine.LNX.4.61.0512292322330.12789@localhost.localdomain>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"; format="flowed"

On Thu, 29 Dec 2005, Jo Hermans wrote:

> I've implemented a scheme like this before, and will have to do soon
> again (both in VOIP applications), but only when there was a strong
> trust relationship between the radius client and the server, and only
> to improve authentication-latency. There are serious security
> implications caused by this. The transport can be protected with
> IPSEC, and/or the attribute can be additionally encrypted or signed to
> prevent snooping or spoofing. But that's not enough.

In this regard it's no different than qop=auth-int in my view.

> It should not be used together with MD5, since A1 is then
> "user:password:realm", and this makes it too easy to use in later
> authentications. MD5-sess is better, but the RADIUS-server can't know
> how long the client is planning to use this session-key. Too bad we
> can't use hashes that are only valid for a certain time.

Granted, and is why my message was about MD5-sess only, and worded
carefully to restrict it to MD5-sess only.

Regarding session time, in setups using session authentication this is 
generally configured in the access server today anyway. The Radius 
authentication is for authenticating the session as such, not the 
individual requests. Digest as such already protects from replay attacs 
thanks to the nonce count (which any decent Digest implementation should 
track carefully), so the only real security threat here is eavesdropping 
of the MD5-sess hash between the RADIUS client and server as this could 
allow for session theft. This is no different from the qop=auth-int case 
already covered by the draft

Exception to the above: The combination of qop=auth-int + 
algorithm=MD5-sess and a Radius server (or client depending on mode of 
operation) only allowing a single request per nonce implicitly blocks any 
replay attacks thanks to the per request randomisation of the MD5-sess 
H(A1).

> Although it can be a good improvement in latency, I don't think that
> we should standardize this.

Any reasons besides the security implications which already exists in 
qop=auth-int exchanges of Digest-HA1?

Small sidenote fact: The RADIUS client can already gain access to what is 
required for MD5-sess session based authentication by faking the digest 
RADIUS request using qop=auth-int even if qop=auth is used in the 
communication to the end user agent. As this delegates the responsibility 
of creating the Digest-Response to the RADIUS client it is able to modify 
the qop (and even MD5/MD5-sess) to it's liking. The proposed change in 
wording only makes this support more explicitly visible without having to 
modify the digest parameters while talking to the RADIUS server to work 
around the restrictions in the draft..

Regards
Henrik

--
to unsubscribe send a message to radiusext-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://psg.com/lists/radiusext/>