Subject: [Sipping] RE: SIP authentication problem when using RES in Digest-AKA

From: "Sanjoy Sen"<[email-masked]>
Date: Thu, 14 Mar 2002 19:18:54 -0600

Another option to think about is whether there is any need to carry AKA
credentials (as is) in the HTTP *-Authenticate and *-Authorization headers.
This means that we define AKA as an authentication scheme at par with Digest
(instead of using it as a password generation tool, say, for Digest MD5). In
HTTP Authentication syntax,

challenge = "AKA" AKA-challenge
AKA-challenge = 1#(rand | autn | auth-param)

credential = "AKA" AKA-response
AKA-response = 1#(res | [auts])

where, rand, res, autn, auts (all AKA parameters) are all base64 encoded.
One advantage of this approach is that you need not run Digest algorithms
(draft-niemi-sipping-digest-aka-00 forces you to run both a Digest algorithm
and the AKA authentication algorithm).

We discussed about this option but never reached any agreement on whether to
go for this. It was not clear whether transferring res will lead to any
potential security attacks. 

Any comments/thoughts?

Sanjoy

> -----Original Message-----
> From: John W Noerenberg II [mailto:[email-masked]]
> Sent: Thursday, March 14, 2002 6:38 PM
> To: [email-masked]; [email-masked]
> Cc: Greg Rose; [email-masked]; [email-masked];
> [email-masked]; James Undery; Sen, Sanjoy [NGC:B692:EXCH]
> Subject: SIP authentication problem when using RES in Digest-AKA
> 
> 
> Greg Rose has identified a security problem when HTTP-Digest is 
> combined with the mechanism proposed in 
> draft-niemi-sipping-digest-aka-00 and draft-undery-sip-auth-00.  He's 
> outlined this for the 3GPP TSG SA WG3, one of the TSG security area 
> working groups.
> 
> Essentially the problem is a consequence of using a RES that is 
> shorter than the key from which it is derived, typically as small as 
> 32 bits.  RES's length results from the goal of maintaining backward 
> compatibility with existing USIMs.  RES is a choke point that can be 
> used to break the authentication.  Instead of using RES, IK has much 
> greater entropy, and makes the attack prohibitively difficult.  A 
> description of the attack against RES is given below.
> 
> The authentication process can be summarized as follows:
> 
> 1. UE attempts to register.
> 2. The attempt is rejected because the UE is unauthenticated.  The 
> rejection message includes AKA-related information and an HTTP-Digest 
> nonce.
> 3. UE/USIM checks the AKA information and computes RES.
> 4. RES is now used as the password shared by the UE and the CSCF.
> 5. UE computes HTTP-Digest response based on RES, and 
> attempts to register.
> 6. Registration succeeds.
> 
> Subsequently
> 
> 7. UE sends another SIP message (e.g. Invite) and the HTTP-Digest 
> method calculates authentication information based on RES. 
> (Actually, A1 is used, but it is derived from RES).
> 
> Choke Point Attack
> 
> An attacker monitoring the traffic would break the scheme as follows:
> 
> The attacker has all the messages from steps 2 and 5 above.  All of 
> the information used in the calculation of the response in step 5, 
> except for the value of RES is present in these messages.  Assuming 
> RES is 32 bits, the attacker tries the 2**32 possible values, 
> comparing them to the captured response generated for step 5.  With 
> very high probability, he will succeed with exactly one candidate 
> value for RES, in the time needed to calculate 2**31 MD5 hashes. 
> This takes ~5 minutes on a typical laptop.
> 
> Once the value of RES is known, the attacker can now forge SIP 
> messages or alter them in transit, recalculating the Digest after 
> altering the message.
> 
> By replacing the use of RES with a higher entropy quantity, this 
> attack can be prevented.  As noted above, Greg recommends using IK as 
> a replacement for RES.
> 
> best,
> -- 
> 
> john noerenberg
> [email-masked]
>    
> --------------------------------------------------------------
> ------------
>    The truth knocks on the door and you say, "Go away, I'm looking
>    for the truth,"  and so it goes away.  Puzzling.
>    -- Zen and the Art of Motorcycle Maintenance, Robert M. 
> Pirsig, 1974
>    
> --------------------------------------------------------------
> ------------
>

---

From: "Niemi Aki (NET/Espoo)" <[email-masked]>
Date: Fri, 15 Mar 2002 11:27:36 +0200

Hi Sanjoy,

> credentials (as is) in the HTTP *-Authenticate and *-Authorization 
> headers. This means that we define AKA as an authentication scheme at 
> par with Digest (instead of using it as a password generation tool, say, 
> for Digest MD5). In HTTP Authentication syntax,

You are right. This is an alternative option, as we have discussed 
before. As AKA is secure in itself, there shouldn't be a problem sending 
AKA parameters in the clear.

However, by doing this you will lose the one thing that Digest provides, 
which is authentication of the SIP message, or at least parts of it 
during the authentication procedure.

So all in all, from the AKA perspective, both options should be equally 
secure, but with Digest AKA, the SIP message is better protected. How 
desirable exactly this added protection is, and indeed is the added cost 
of calculating the Digest MD5 worth the received benefits, is open to 
discussion.

Cheers,
Aki

_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use [email-masked] for questions on current sip
Use [email-masked] for new developments of core SIP