Gsm系統(tǒng)如何鑒權與加密

隨著移動通信技術的發(fā)展,通信中的安全問題受到人們越來越多的關注。由于空中接口的開放性,為確保用戶訪問網絡資源的合法性,安全性及服務網絡的真實性,各種移動通信系統(tǒng)普遍采用了相應的安全機制。下面我就來和大家一起分析一下Gsm系統(tǒng)如何鑒權與加密。

一、鑒權加密過程的三參數(shù)組

客戶的鑒權加密過程是通過系統(tǒng)提供的客戶三參數(shù)組來完成的,客戶三參數(shù)組的產生是在GSM系統(tǒng)的AUC鑒權中心中完成。每個客戶在GSM網中注冊登記時,就被分配一個客戶電話號碼(MSISDN)和客戶身份識別碼(IMSI)。IMSI通過SIM寫卡機來寫入客戶的SIM卡中,同時在寫卡機中又產生了一個對應此IMSI的唯一客戶鑒權鍵Ki,它被分別存儲在客戶的SIM卡和AUC中,這是永久性的信息。在AUC中還有個偽隨機碼發(fā)生器,用于產生一個不可預測的偽隨機數(shù)RAND。

在GSM規(guī)范中還定義了A3、A8和A5算法分別用于鑒權和加密過程。在AUC中RAND和Ki經過A3算法(鑒權算法)產生了一個響應數(shù)SRES同時經過A8加密算法產生了一個密鑰。因而由該RAND、Kc、SERS一起組成了該客戶的一個三參數(shù)組,傳送給HLR并存儲在該客戶的客戶資料庫中。一般情況下,AUC一次產生5組三參數(shù)傳送給HLR,HLR自動存儲。HLR可存儲10組三參數(shù),當MSC/VLR向HLR請求傳送三參數(shù)組時,HLR又一次性的向MSC/VLR傳送5組三參數(shù)組。MSC/VLR一組一組的使用,當用到剩兩組時,就回再向HLR請求傳送三參數(shù)組。

二、Gsm鑒權過程

當MSC與BSS的SCCP層建立起來之后,就可以來決定是否觸發(fā)鑒權加密過程。而判斷是否進行鑒權過程的關鍵在于查看網絡一端所存儲的上一次業(yè)務處理所使用的該移動臺的Kc值是否與本次接入中移動臺所存儲的Kc值是否一致,若一致則可越過鑒權過程直接利用該Kc值來參與加密過程,若不一致,則需通過鑒權過程來算出新的Kc值。由于需要保密的緣故,因而移動臺不直接通過無線路徑來向網絡發(fā)送Kc值進行驗證。所以在這里我們引入了一個Kc的序列號碼的概念,在規(guī)范中被稱為CKSN(密鑰序列號碼),該號碼是移動臺在上一次接入網絡時,由MSC/VLR提供的,并通過鑒權請求報文發(fā)送給移動臺的,并于計算出的Kc一同存儲在SIM卡中,同時也存于MSC/VLR中。當MS初始接入時,通過SABM幀的初始化報文業(yè)務請求字段把CKSN的消息一起送到MSC/VLR中,MSC/VLR將它與上一次使用的CKSN號進行校驗,如果不一致,則在加密之前要進行鑒權過程,若CKSN=0則表示沒有分配KC。

MSC/VLR會向移動臺發(fā)送一條鑒權請求(Authentication request)的報文來觸發(fā)鑒權過程,這是一條DTAP信令消息。系統(tǒng)在鑒權請求消息中包含一個隨機數(shù)(RAND)和CKSN號碼,RAND共128bit,SIM卡上的用戶密鑰Ki與這個隨機數(shù)經GSM規(guī)范的A3算法,產生一個32bit的應答數(shù)SRES (與此同時MS還要將Ki和RAND再通過A8算法得出一64bit的Kc,并將它保存在SIM卡內,以后按系統(tǒng)指令決定是否激活加密傳輸),MS再通過一條鑒權響應(Authentication response)報文將SERS送回系統(tǒng)。因Ki值作為用戶數(shù)據存在VLR或HLR中,在系統(tǒng)一側也會進行與MS相同的A3和A8算法,產生一個SRES數(shù)和Kc存在VLR中,系統(tǒng)則會將這兩個SRES值相比較,若相同則鑒權成功允許接入網絡,之后MSC將繼續(xù)觸發(fā)加密過程;若不同則鑒權失敗,系統(tǒng)會拒絕MS的繼續(xù)接入。此時鑒權過程結束。

一般在MSC/VLR和HLR/AUC都可執(zhí)行A3和A8算法,但MSC/VLR算起來比較麻煩,而HLR/AUC存有Ki值算起來簡單的多而且可以很好的解決保密性和漫游的的問題,但卻增加了HLR至MSC的信令量,因而每次計算,HLR/AUC都會將這三個結果值送到MSC/VLR中,即RAND,SRES和KC,以被選用。

三、Gsm加密過程

當鑒權過程結束后,此時MSC會向BSC發(fā)一條加密命令(BSSMAP Ciphering Mode Command)的消息,在該消息中包含著密鑰Kc,BSC接著會向MS發(fā)出加密命令(RR Ciphering Mode Command)來通知MS進入加密模式(這時基站也進入解密的模式下 ),MS收到該指令后就會轉入加密模式的發(fā)送與接收,并向系統(tǒng)發(fā)出發(fā)出加密完成(RR Ciphering Mode COMPLETE)消息,此時該報文已經是加密的了。

是否采用加密由系統(tǒng)決定,產生加密碼的算法稱為A5算法,它是利用移動臺和網絡都同意的密鑰(64比特)值和當前脈沖串的幀號碼(22比特)進行計算的,以產生一個114比特的加密序列來和突發(fā)脈沖的114比特的信息位進行異或操作。網絡在上行鏈路和下行鏈路使用兩個相同的加密序列,對于每一個突發(fā),一個序列用于移動臺內的加密并作為BTS中的解密序列,一個序列用于BTS的加密并作為移動臺的解密。

四、TMSI重新分配過程

在鑒權加密過程完畢之后,系統(tǒng)要向MS發(fā)出CM SERVICE ACCEPT消息 或TMSI 的重新分配命令(TMSI reallocation command)的報文.

當移動臺在定位區(qū)內第一次注冊時,就會將一個TMSI分配給移動臺,當移動臺離開這個定位區(qū)時釋放這個TMSI。當MS收到TMSI 的重新分配 命令時,它將在存儲器內存儲收到的TMSI和LAI,并向網絡發(fā)送TMSI再分配完成(TMSI reallocation complete)的報文。MSC對所收到的位置更新請 求(location update request)的答復即位置更新接受(location update accept) 的報文可以在TMSI再分配完成之后發(fā)送也可以同TMSI 的重新分配命令組 合在同一個報文中發(fā)送。

若在網絡中由移動臺提供的TMSI,無法被系統(tǒng)所識別(如此時數(shù)據庫發(fā)生故障),則移動臺需提供其IMSI。此時在TMSI再分配程序啟動之前應先啟動識別程序來向移動臺請求提供其IMSI號。

識別程序是通過向移動臺發(fā)起識別請求(identity request)消息,在收 到該消息后,移動臺發(fā)起識別響應(identity response)消息來向網絡提供 其IMSI號碼。在此程序完成之后,系統(tǒng)再根據其需要來進行鑒權加密和TMSI再分配過程。

小知識之GSM

GSM,是當前應用最為廣泛的移動電話標準。全球超過200個國家和地區(qū)超過10億人正在使用GSM電話。GSM標準的無處不在使得在移動電話運營商之間簽署"漫游協(xié)定"后用戶的國際漫游變得很平常。 GSM 較之它以前的標準最大的不同是他的信令和語音信道都是數(shù)字式的,因此GSM被看作是第二代 (2G)移動電話系統(tǒng)。