60 likes | 259 Views
3GPP2 bootstrapping with CDMA 1x (CAVE) and CDMA 1x EV-DO (CHAP). 04-18-2005. Introduction. Initial authentication (ie. bootstrapping) of 3GPP GAA is based on AKA CDMA 2000 1x Revision C onwards AKA is taken into use by 3GPP2 3GPP GAA can be used without modifications in these networks
E N D
3GPP2 bootstrappingwith CDMA 1x (CAVE) and CDMA 1x EV-DO (CHAP) 04-18-2005
Introduction • Initial authentication (ie. bootstrapping) of 3GPP GAA is based on AKA • CDMA 2000 1x Revision C onwards AKA is taken into use by 3GPP2 3GPP GAA can be used without modifications in these networks • Initial authentication of 3GPP GAA needs adaptation for networks that are based on earlier 3GPP2 releases: • Authentication in CDMA 1x networks is based on CAVE (Cellular Authentication and Voice Encryption) algorithm • Authentication in CDMA 1x EvDo (Evolution Data only) is based CHAP (Challenge Handshake Authentication Protocol) • This slide set describes how CAVE and CHAP can be used in 3GPP GAA architecture for initial authentication
BootstrappingCDMA 1x (with CAVE) and CDMA 1x EvDo (with CHAP) • Bootstrapping procedures in CDMA 1x and CDMA 1x EvDo is based on X.P0028 • Major difference to X.P0028 is that HTTP Digest variant is used instead of EAP between terminal and BSF (H-AAA) • Password protected Diffie-Hellman is used • Password is either SMEKEY (CDMA 1x) or MN-AAA Key (CDMA 1x EvDo) • WLAN KEY (WKEY) is generated from the password (as described in X.P0028) • WKEY = GAA’s master key (Ks) • Normal HTTP Digest is used (steps refer to message sequences in the next slides): • Step 1: Identity is sent in the first message in “username” field (like in HTTP Digest AKA) • Step 3: Challenge • In CAVE case, the RAND is sent in the “nonce” field (similar to HTTP Digest AKA) • In CHAP case, the CHAP-Challenge is sent in the “nonce” (i.e, field is just random, like in normal HTTP Digest) • RAND and CHAP-Challenge can also be sent in the HTTP payload (but this not the case in the following slides) • Step 7: • Client Diffie-Hellman parameters are sent in HTTP payload, protected by HTTP Digest because qop=auth-int (i.e., also HTTP payload is included in HTTP Digest calculation of “response” field) • Diffie-Hellman parameters can be sent as is or can be protected as depicted in the next slides) • In CAVE case, the HTTP payload also contains the AUTHR • Step 13: • Server Diffie-Hellman parameters are sent in HTTP payload, protected by HTTP Digest because qop=auth-int (i.e., also HTTP payload is included in HTTP Digest calculation of “respauth” field) • Diffie-Hellman parameters can be sent as is or can be protected as depicted in the next slides) • There is no need to standardize anything in IETF
Bootstrapping in CDMA 1x (with CAVE) Message sequence 1 – SMEKEY is used as password 1x Terminal CAVE BSF (H-AAA) HLR/AC GAA Ub Zh 1. GET / HTTP/1.1 Authorization: Digest username=“IMSI@realm.com” 2. Generate RAND (the global challenge) 3. HTTP/1.1 401 Not authorized WWW-Authenticate: Digest nonce=“<RAND>”, qop=“auth-int”, … 4. RAND 5. AUTHR, SMEKEY, … 6. Set parameters: MS_PW = SMEKEY H1’(MS_PW) • gx mod p x is secret random number generated by UE 7. GET / HTTP/1.1 Authorization: Digest nonce=“<RAND>”, response=“<MS_PW used as passwd>”, qop=auth-int, … (in HTTP playload “H1’(MS_PWD) • gx mod p” is delivered, and AUTHR) 8. AUTHREQ (AUTHR, RAND, …) 9. Verifies RAND/AUTHR, generates SMEKEY 10. Authreq (SMEKEY, …) 11. Set parameters: BS_PW = SMEKEY H1’(BS_PW) • gy mod p y is secret random number generated by UE 12. Generate GAA master key (Ks) from BS_PW (the same way as WKEY). 13. HTTP/1.1 200 OK Authentication-Info: Digest respauth=“<BS_PW used as passwd>, qop=auth-int, , … (in HTTP playload “H1’(BS_PW) • gy mod p”, B-TID, and key lifetime are delivered) 14. Generate GAA master key (Ks) from PS_PW (the same way as WKEY).
Bootstrapping in CDMA 1x EvDo (with CHAP) Message sequence 2 – MN-AAA Key is used as password 1xEV-DO Terminal CHAP BSF (H-AAA) GAA Ub 1. GET / HTTP/1.1 Authorization: Digest username=“IMSI@realm.com” 3. HTTP/1.1 401 Not authorized WWW-Authenticate: Digest nonce=“<CHAP-challenge>”, … 4. CHAP-challenge 5. CHAP-Response, … 6. Set parameters: MS_PW = MN-AAA Key H1’(MS_PWD) • gx mod p x is secret random number generated by UE 7. GET / HTTP/1.1 Authorization: Digest nonce=“<RAND>”, response=“<MS_PW used as passwd>”, qop=auth-int, … (in HTTP playload “H1’(MS_PWD) • gx mod p” is delivered) 11. Set parameters: BS_PW = MN-AAA Key H1’(BS_PW) • gy mod p y is secret random number generated by UE 12. Generate GAA master key (Ks) from BS_PW (the same way as WKEY). 13. HTTP/1.1 200 OK Authentication-Info: Digest respauth=“<BS_PW used as passwd>, qop=auth-int, ,.. (in HTTP playload “H1’(BS_PW) • gy mod p”, B-TID, and key lifetime are delivered) 14. Generate GAA master key (Ks) from PS_PW (the same way as WKEY).
MS Calculations MS_RESULT = (H’(pwd)*G^X mod P MS_PARAM = pwd|G^X mod P | (BS_RESULT/pwd) mod P | ((BS_RESULT/pwd)^X) mod P Root Key = H’’(MS_PARAM) BS Calculations BS_RESULT = (H’(pwd)*G^Y mod P BS_PARAM = pwd|(MS_RESULT/pwd) mod P | G^Y mod P | ((MS_RESULT/pwd)^Y) mod P Root Key = H’’(BS_PARAM) Password-protected D-H