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

Re: A bit of background on [RFC3580] Section 5.3



> If you take a look the password hiding algorithm, assuming <= 16 octet
> passwords to leave out the chaining for simplicity, where ^ denotes XOR,
> and . denotes concatenation:
> 
> 	User-Password' = User-Password ^ md5 (Secret . Req-Authenticator)
> 
> you can see that if you know one User-Password and User-Password', you
> know the MD5 hash of (Secret . Req-Authenticator).
> 
> This same hash is also used in the response packet to 'encrypt' response
> attributes. That means the attacker who captures a request and response,
> is able to decrypt the request- and response attributes for that session
> and all future sessions using the same Secret and Authenticator. This
> includes the sessions themselves if they are somehow protected by the
> contents of response attributes, as is the case with MPPE-*-Key.

Attributes hidden in the Access-Accept (such as Tunnel-Password & 
MPPE-*-Key) use a salt. 

For example, from RFC 2868, Section 3.5:

            b(1) = MD5(S + R + A)    c(1) = p(1) xor b(1)   C = c(1)

Where S = secret, R = Request Auth, A = Salt. 

Since MD5 utilizes padding, knowing MD5(S + R) (e.g. discovering 
the keystream via known plaintext attack on PAP) doesn't provide much help 
in computing MD5(S + R + A). 

Of course if you can obtain S (such as via an offline dictionary attack), 
that is a different story. 


--
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/>