詞語解釋
我們知道,手機(jī)在做位置更新、發(fā)起呼叫時(shí)必須首先進(jìn)行鑒權(quán)和加密。通過鑒權(quán),系統(tǒng)可以為合法的用戶提供服務(wù),對(duì)不合法的用戶拒絕服務(wù)。那么鑒權(quán)和加密是如何實(shí)現(xiàn)的呢?我們先看下面一個(gè)用戶開機(jī)并成功進(jìn)行IMSI ATTACH位置更新的信令流程:
MSC/VLR通過IU口收到手機(jī)開機(jī)的消息后,判斷該IMSI是否為新用戶(即VLR里不存在數(shù)據(jù)的,華為MSOFTX3000可以通過DEL MS命令實(shí)現(xiàn)刪除VLR數(shù)據(jù))。如果是新用戶,就向HLR/AUC發(fā)起取鑒權(quán)集請(qǐng)求的消息(SEND_AUTHENTICATION_INFO_REQ);作為響應(yīng),HLR/AUC給MSC/VLR回取鑒權(quán)集證實(shí)消息(SEND_AUTHENTICATION_INFO_CNF):
我們看看取鑒權(quán)集請(qǐng)求消息里面有什么內(nèi)容,首先,它包含有該用戶的IMSI信息,其次,還包含有VLR向HLR/AUC所請(qǐng)求的鑒權(quán)集的組數(shù)(5組),如下:
我們?cè)倏纯碒LR/AUC給MSC/VLR回的取鑒權(quán)集證實(shí)消息里面有什么東西:
我們可以看出HLR/AUC一共給VLR回了4組[font color=#000000]鑒權(quán)[/font]集,每組鑒權(quán)集包含3個(gè)參數(shù),分別是rand(隨機(jī)數(shù))、sres(符號(hào)響應(yīng))、kc(密鑰)。這3個(gè)參數(shù)即是我們平時(shí)常說的鑒權(quán)三參組,由此,我們判斷出該用戶是2G用戶。此處愛立信HLR/AUC只給回了4組鑒權(quán)集,正常情況下是會(huì)回5組鑒權(quán)集的(華為HLR不存在這樣的問題);我就此事詢問過廣州愛立信HLR的現(xiàn)場(chǎng)技術(shù)人員,對(duì)方表示也不清楚原因。
MSC/VLR取到鑒權(quán)集后,會(huì)使用4組鑒權(quán)集中的1組,通過IU口向手機(jī)發(fā)出鑒權(quán)請(qǐng)求消息(AUTHENTICATION_REQUEST),其余3組留著供下次的鑒權(quán)使用;隨后,手機(jī)給MSC/VLR回鑒權(quán)響應(yīng)消息(AUTHENTICATION_RESPONSE):
我們來看一看鑒權(quán)請(qǐng)求消息里面有什么我們需要關(guān)注的東西:
可以看出VLR將第1組鑒權(quán)集里面的[font color=#000000]rand參數(shù)的值[/font]通過該消息下發(fā)給手機(jī)。
手機(jī)收到網(wǎng)絡(luò)下發(fā)的rand參數(shù)的值后,在SIM卡進(jìn)行如下運(yùn)算:
KI(IMSI) + rand + A3 ---------> sres
KI(IMSI) + rand + A8 ---------> kc
在此有必要說明,KI是制卡的時(shí)候就以特殊工藝燒進(jìn)SIM卡的一個(gè)參數(shù)值,由32個(gè)十六進(jìn)制的字符組成,如D17F20239EEDBE1520F64A851F3C44C9,每個(gè)字符以二進(jìn)制表示的話,長(zhǎng)度是32×4=128位。KI值并不在空中傳送;KI值必須在開戶時(shí)在HLR定進(jìn)去的,華為HLR的相關(guān)命令是ADD KI;而愛立信HLR的相關(guān)命令是AGSUI。
手機(jī)用A3算法計(jì)算出sres以后,通過IU口以鑒權(quán)響應(yīng)消息回給MSC/VLR。同時(shí),手機(jī)以A8算法計(jì)算出密鑰kc。利用密鑰kc,手機(jī)再對(duì)加密之前的消息M以A5算法進(jìn)行如下加密運(yùn)算,得出加密后的消息M':
M + kc + A5 ---------> M'
該算法是可逆的,即MSC/VLR收到IU口上加過密的消息M'后,能以同樣的運(yùn)算法則進(jìn)行解密將消息還原:
M' + kc + A5 ---------> M
至此我們應(yīng)該知道,鑒權(quán)是通過sres參數(shù)來實(shí)現(xiàn)的,而加密是通過kc參數(shù)來實(shí)現(xiàn)。下面再來看看鑒權(quán)響應(yīng)消息里面的sres是什么:
響應(yīng)消息里的sres的值為f7 6c 0a 8d,與第1組鑒權(quán)集里面的sres一致;所以該用戶鑒權(quán)通過,視為合法用戶。
如果鑒權(quán)響應(yīng)消息里面的sres值與VLR內(nèi)的sres值不一致,那么該用戶將被VLR判為鑒權(quán)失敗,屬于非法用戶;我們來看一個(gè)鑒權(quán)失敗的用戶的消息跟蹤:
該用戶就因?yàn)榛氐膕res與VLR不一致被視為鑒權(quán)失敗,MSC/VLR直接給HLR/AUC發(fā)出鑒權(quán)失敗報(bào)告,并給IU口回鑒權(quán)拒絕消息,導(dǎo)致接下來的位置更新不能夠繼續(xù)進(jìn)行。
出現(xiàn)這種情況的原因是因?yàn)镾IM卡內(nèi)的KI值與HLR開戶的KI不一致所致。所以一個(gè)企圖盜打的SIM卡,光燒有別人的IMSI號(hào)還不行,還必須燒入別人的KI值,而這個(gè)KI值是很難從SIM卡讀取出來的;就算知道KI,如何將其燒進(jìn)SIM卡,其特殊的工藝也是一個(gè)難題。
如果鑒權(quán)成功,那么MSC/VLR將給HLR發(fā)位置更新請(qǐng)求消息(UPDATE_LOCATION_REQ),HLR向VLR插用戶數(shù)據(jù),VLR回插用戶數(shù)據(jù)響應(yīng)消息,HLR再回應(yīng)MSC/VLR位置更新證實(shí)消息(UPDATE_LOCATION_CNF)。這一系列步驟完成之后,MSC/VLR將向手機(jī)發(fā)出身份請(qǐng)求消息(IDENTITY_REQUEST),該消息請(qǐng)求手機(jī)必須響應(yīng)IMEI碼:
看手機(jī)在身份響應(yīng)消息(IDENTITY_RESPONSE)回的IMEI是多少:
MSC/VLR會(huì)對(duì)該手機(jī)的IMEI碼進(jìn)行檢查,如果是合法的設(shè)備,那么到此為止位置更新成功。SECURITY_MODE_COMMAND消息是MSC/VLR用來通知手機(jī)進(jìn)行加密的,SECURITY_MODE_COMPLETE消息則是手機(jī)響應(yīng)MSC/VLR的,標(biāo)明以后的消息將加密后才在空中接口傳送
。
3G用戶的鑒權(quán)加密與2G大同小異,不同的是三參組變成了五元組,我們來看看3G用戶的取鑒權(quán)集證實(shí)消息(SEND_AUTHENTICATION_INFO_CNF)里面的鑒權(quán)集是什么:
可以看到鑒權(quán)集里面有5個(gè)參數(shù)值,它們分別是:rand(網(wǎng)絡(luò)質(zhì)詢隨機(jī)數(shù))、xres(用戶應(yīng)答的期望值)、ck(加密密鑰)、ik(完整性密鑰)、autn(網(wǎng)絡(luò)身份確認(rèn)標(biāo)記)。3G鑒權(quán)與2G最大的不同是多了一個(gè)autn(網(wǎng)絡(luò)身份確認(rèn)標(biāo)記)值。我們前述知道,sres是網(wǎng)絡(luò)用來對(duì)手機(jī)進(jìn)行鑒權(quán)的,而autn卻是手機(jī)用來對(duì)網(wǎng)絡(luò)進(jìn)行鑒權(quán)。我們看到autn會(huì)在鑒權(quán)請(qǐng)求消息里通過IU口與rand一起下發(fā):
手機(jī)收到autn后是如何對(duì)網(wǎng)絡(luò)進(jìn)行鑒權(quán)的,這里不再深究。我們看看xres與2G里的sres有何不同,觀察鑒權(quán)響應(yīng)消息里帶的xres值:
發(fā)現(xiàn)xres值由兩部分組成:一部分是4字節(jié)長(zhǎng)的ff a0 88 6f(與sres等長(zhǎng));另一部分是擴(kuò)展部分(ext):00 ad f1 8c 26 89 85 76 da 16 6f 26;兩部分在一起即構(gòu)成了xres的值。相當(dāng)于xres = sres + ext。
每次MSC/VLR從HLR/AUC取得5組鑒權(quán)集,只使用1組,其余4組留給以后的鑒權(quán)和加密使用。手機(jī)在做位置更新、發(fā)起呼叫時(shí),如MSC/VLR判斷其IMSI為舊卡(即VLR里已經(jīng)存在數(shù)據(jù)的),則調(diào)用VLR中的一個(gè)五數(shù)組,不再到HLR/AUC去取新的鑒權(quán)集
掃碼付費(fèi)即可復(fù)制
X