認(rèn)證技術(shù)及其在移動通信系統(tǒng)中的應(yīng)用
(b)乙方將甲方的時間戳1附在自己的密鑰之后計算聯(lián)合消息摘要,并將結(jié)果同MD{密鑰 || 時間戳1}進行比較。若結(jié)果不一致,則認(rèn)證失??;若結(jié)果一致,則甲方就通過了乙方的認(rèn)證。乙方同樣選擇一個時間戳2,把它放在密鑰之后計算聯(lián)合消息摘要 MD{密鑰 || 時間戳2},并將時間戳2和聯(lián)合消息摘要MD{密鑰 || 時間戳2}一起發(fā)給甲方;
(c)甲方同樣計算一個聯(lián)合消息摘要,然后將它與MD{密鑰 || 時間戳2}進行比較,完成對乙方的認(rèn)證。
這種方法比對隨機數(shù)加密的方法具有更高的安全性,可以有效抵御重放攻擊。
認(rèn)證技術(shù)及其在移動通信系統(tǒng)中的應(yīng)用
1.2 信息認(rèn)證
信息認(rèn)證檢測的內(nèi)容包括[3]:證實信息的發(fā)方和收方;判斷信息的內(nèi)容是否完整,是否被篡改;通過序列號或時間戳來判斷信息的新鮮度。信息認(rèn)證的基本方法有兩種,一種是采用消息認(rèn)證碼MAC(Message Authentication Code);另一種是采用消息檢測碼MDC(Message Detection Code)。
1.2.1 采用消息認(rèn)證碼的信息認(rèn)證
MAC認(rèn)證過程如圖3所示。
認(rèn)證技術(shù)及其在移動通信系統(tǒng)中的應(yīng)用
(1) 甲方利用帶有秘密密鑰的單向散列函數(shù)將要發(fā)送的消息變換成一個固定比特長度的消息認(rèn)證碼,然后將消息認(rèn)證碼附在待發(fā)送的消息后發(fā)送給乙方;
(2) 乙方使用單向散列函數(shù)對消息進行運算,同樣得到一個認(rèn)證碼,將該碼與收到的認(rèn)證碼作比較,若相等則消息通過認(rèn)證,否則就認(rèn)為消息在傳輸過程中出現(xiàn)問題。
乙方向甲方發(fā)送消息時操作同上。為了防止重放攻擊,實際的協(xié)議中常采用序列號或者時間戳機制來指示當(dāng)前消息的新鮮度。
1.2.2 采用消息檢測碼的信息認(rèn)證
與采用消息認(rèn)證碼的信息認(rèn)證不同,MDC利用不帶密鑰的散列函數(shù)將要傳送的消息變換成固定長度的消息檢測碼,附在消息后面一起傳送。過程與1.2.1類似,此處不再贅述。
1.2.3 數(shù)字簽名和不可抵賴性
公鑰加密算法可以提供數(shù)字簽名(Digital Signatures)的功能。但對于較長的消息,計算數(shù)字簽名很麻煩,而計算該消息摘要的數(shù)字簽名則相對簡單得多。因此,可以將數(shù)字簽名與消息摘要相結(jié)合進行認(rèn)證,此時數(shù)字簽名可以提供不可抵賴的安全功能[4]。
在設(shè)計移動通信系統(tǒng)的認(rèn)證協(xié)議時,針對無線網(wǎng)絡(luò)的特點,主要考慮三個因素[5]:移動設(shè)備運算能力的局限性;空中接口帶寬的受限性;用戶身份和位置信息的保密性。實際上,這些要求也就是3GPP和3GPP2等國際組織制定相關(guān)安全標(biāo)準(zhǔn)的重要依據(jù),目前的認(rèn)證算法均采用速度較快的對稱算法,在空中接口傳輸?shù)恼J(rèn)證參數(shù)長度都較小,采用TMSI提供用戶身份的保密性。下面介紹幾種實用的移動通信系統(tǒng)所采用的認(rèn)證機制。
2.1 GSM和UMTS采用的認(rèn)證機制
2.1.1 GSM的認(rèn)證機制
GSM系統(tǒng)的身份認(rèn)證思路是:網(wǎng)絡(luò)側(cè)驗證用戶是否與AUC(認(rèn)證中心)持有相同的認(rèn)證密鑰Ki。其身份認(rèn)證過程[6]如圖4所示。
認(rèn)證技術(shù)及其在移動通信系統(tǒng)中的應(yīng)用
顯而易見,GSM系統(tǒng)的身份認(rèn)證是不完整的,它只支持網(wǎng)絡(luò)對用戶的認(rèn)證,不支持用戶對網(wǎng)絡(luò)的認(rèn)證。正如文獻[7]所指出的,單向認(rèn)證容易受到偽裝基站及中間人攻擊。此外,GSM系統(tǒng)沒有提供消息認(rèn)證的功能。
2.1.2 UMTS的認(rèn)證機制
針對GSM系統(tǒng)認(rèn)證機制存在的問題,UMTS系統(tǒng)采用了新的認(rèn)證機制,該機制是對GSM系統(tǒng)的認(rèn)證機制的繼承和增強。其增強措施[8]包括:增加了用戶對網(wǎng)絡(luò)的認(rèn)證,從而實現(xiàn)了雙向認(rèn)證;增加了用于信息認(rèn)證的算法和密鑰IK;認(rèn)證向量增加為五元組;認(rèn)證參數(shù)AUTH中引入了序列號SQN,保證了認(rèn)證參數(shù)的新鮮度,可以有效防止重放攻擊;增加了匿名密鑰AK,用來隱藏序列號SQN,進而提供身份和位置的保密性;提供了安全性更高的認(rèn)證算法。UMTS的認(rèn)證過程[9]如圖5所示。2.2 CDMA2000采用的認(rèn)證機制
CDMA2000系統(tǒng)支持的認(rèn)證機制有兩套,一套是基于IS-95的第二代認(rèn)證機制;另一套是采用3GPP的AKA協(xié)議的第三代認(rèn)證機制。
認(rèn)證技術(shù)及其在移動通信系統(tǒng)中的應(yīng)用
2.2.1 基于IS-95的認(rèn)證機制
基于IS-95的認(rèn)證機制的基本思路是:驗證移動終端與訪問網(wǎng)絡(luò)之間是否擁有相同的密鑰A-key。該機制包括普通-查詢響應(yīng)、獨特-查詢響應(yīng)、SSD更新、參數(shù)更新等過程。其認(rèn)證算法采用標(biāo)準(zhǔn)化的CAVE算法。詳細(xì)過程請參見3GPP2空中接口規(guī)范C.S0005。表1給出了認(rèn)證過程所涉及的主要參數(shù)。
認(rèn)證技術(shù)及其在移動通信系統(tǒng)中的應(yīng)用
與GSM系統(tǒng)類似,基于IS-95的認(rèn)證機制中也只有網(wǎng)絡(luò)對用戶的認(rèn)證,并且同樣不支持信息認(rèn)證。
2.2.2 3G系統(tǒng)的認(rèn)證機制
為了提高認(rèn)證的安全性和系統(tǒng)的互操作性,3GPP2決定在第三代CDMA2000系統(tǒng)中采用3GPP的AKA機制。該機制的內(nèi)容與2.1.2小節(jié)UMTS的認(rèn)證機制相同。
身份認(rèn)證與信息認(rèn)證的主要區(qū)別在于:信息認(rèn)證對時效性沒有要求,而身份認(rèn)證遵守相關(guān)協(xié)議,有時間要求;另外,信息認(rèn)證中的消息本身具有意義,而身份認(rèn)證中的消息通常不具有特定的含義。雖然與廣泛應(yīng)用的Schnorr、Kerberos等認(rèn)證協(xié)議相比,限于終端的計算能力和空中接口的帶寬,移動通信系統(tǒng)中的認(rèn)證協(xié)議還略顯簡單,但對于空中接口而言這些機制有效地保證了空中鏈路的安全性。隨著移動通信網(wǎng)絡(luò)與現(xiàn)有因特網(wǎng)的逐步融合,身份認(rèn)證的重點將由空中接口鏈路的安全性轉(zhuǎn)移到訪問基于移動IP的因特網(wǎng)資源和服務(wù)的安全性。另外,移動通信系統(tǒng)與Wi-Fi、WLAN等無線系統(tǒng)之間互聯(lián)時的認(rèn)證機制也是今后研究的熱點。
評論