認(rèn)證技術(shù)及其在移動通信系統(tǒng)中的應(yīng)用
掃描二維碼
隨時隨地手機(jī)看文章
從大的方面說,通信領(lǐng)域需要解決的核心問題有兩個,即所謂可靠性問題和有效性問題。任何一種技術(shù)的產(chǎn)生或者協(xié)議的制定都是緊緊圍繞這兩點(diǎn)的。以計算機(jī)通信為例,根據(jù)ISO(國際標(biāo)準(zhǔn)化組織)所定義的OSI(開放系統(tǒng)互連)模型,將其功能劃分為相對獨(dú)立的七個層次。而在每一層次,無論是鏈路層、網(wǎng)絡(luò)層還是傳輸層,都根據(jù)具體需要采取了相應(yīng)的技術(shù)和協(xié)議來解決可靠性和有效性的問題。安全性是可靠性問題的一個重要方面。在很多情況下不僅僅要求信息在信道上被準(zhǔn)確無誤地傳輸,而且還要求能夠確認(rèn)對方的身份,并且設(shè)法將通信內(nèi)容的可知性限制在一定的范圍內(nèi)。認(rèn)證技術(shù)和加密技術(shù)可以滿足上述需要。
1 認(rèn)證的理論和技術(shù)
認(rèn)證主要包括用戶身份認(rèn)證和信息認(rèn)證兩個方面。前者用于證明或否認(rèn)通信實體所宣稱的身份,后者用于對通信信息進(jìn)行完整性檢查并提供發(fā)送方的不可抵賴性。在某些情況下,信息認(rèn)證甚至比信息保密更為重要[1],因為有時主動攻擊的威脅遠(yuǎn)大于被動攻擊。下面分別對兩種認(rèn)證的理論和技術(shù)進(jìn)行討論,其默認(rèn)前提條件是通信雙方已經(jīng)就加密算法和所用密鑰達(dá)成了一致。
認(rèn)證技術(shù)及其在移動通信系統(tǒng)中的應(yīng)用
1.1 身份認(rèn)證
身份認(rèn)證的方法有口令匹配法、基于智能卡的身份認(rèn)證和生物特征認(rèn)證法。下面重點(diǎn)研究基于共享密鑰的身份認(rèn)證技術(shù)。這種認(rèn)證技術(shù)的原理是驗證通信雙方是否擁有相同的密鑰,常用的協(xié)議形式是詢問/響應(yīng)模式。認(rèn)證過程如圖1所示,過程描述如下:
(a)首先甲方選擇一個隨機(jī)數(shù)R1,并將它發(fā)送給乙方;
(b)乙方收到R1后使用既定的算法對它進(jìn)行加密,同時也選擇一個隨機(jī)數(shù)R2,然后將加密結(jié)果E{K,R1}和R2發(fā)送給甲方;
(c)甲方使用密鑰K對E{K,R1}進(jìn)行解密得到R1’,將R1’與R1進(jìn)行比較。如果相等,使用K對R2進(jìn)行加密,并將加密結(jié)果E{K,R2}發(fā)送給乙方;否則,甲方對乙方的認(rèn)證以失敗結(jié)束;
(d)乙方使用K對E{K,R2}進(jìn)行解密得到R2’,將R2與R2’進(jìn)行比較,如果相等,則甲方就通過了乙方的認(rèn)證;否則,乙方對甲方的認(rèn)證失敗。
顯然,上述過程完成了雙向認(rèn)證,既包括甲方對乙方的認(rèn)證,也包括乙方對甲方的認(rèn)證。只有兩次認(rèn)證都成功時,整個認(rèn)證結(jié)果才是成功的。
根據(jù)使用的加密算法的不同,基于密鑰的身份認(rèn)證又可分為秘密密鑰加密認(rèn)證和公開密鑰加密認(rèn)證[2]。也可以采用消息摘要進(jìn)行身份認(rèn)證,過程如圖2所示,說明如下:
(a)甲方生成一個時間戳1,然后將它附在密鑰之后,計算聯(lián)合消息摘要MD{密鑰 || 時間戳1},將時間戳1和MD{密鑰 || 時間戳1}發(fā)送給乙方;
(b)乙方將甲方的時間戳1附在自己的密鑰之后計算聯(lián)合消息摘要,并將結(jié)果同MD{密鑰 || 時間戳1}進(jìn)行比較。若結(jié)果不一致,則認(rèn)證失??;若結(jié)果一致,則甲方就通過了乙方的認(rèn)證。乙方同樣選擇一個時間戳2,把它放在密鑰之后計算聯(lián)合消息摘要 MD{密鑰 || 時間戳2},并將時間戳2和聯(lián)合消息摘要MD{密鑰 || 時間戳2}一起發(fā)給甲方;
(c)甲方同樣計算一個聯(lián)合消息摘要,然后將它與MD{密鑰 || 時間戳2}進(jìn)行比較,完成對乙方的認(rèn)證。
這種方法比對隨機(jī)數(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ù)對消息進(jìn)行運(yùn)算,同樣得到一個認(rèn)證碼,將該碼與收到的認(rèn)證碼作比較,若相等則消息通過認(rèn)證,否則就認(rèn)為消息在傳輸過程中出現(xiàn)問題。
乙方向甲方發(fā)送消息時操作同上。為了防止重放攻擊,實際的協(xié)議中常采用序列號或者時間戳機(jī)制來指示當(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é)合進(jìn)行認(rèn)證,此時數(shù)字簽名可以提供不可抵賴的安全功能[4]。
2 移動通信系統(tǒng)中的認(rèn)證機(jī)制
在設(shè)計移動通信系統(tǒng)的認(rèn)證協(xié)議時,針對無線網(wǎng)絡(luò)的特點(diǎn),主要考慮三個因素[5]:移動設(shè)備運(yùn)算能力的局限性;空中接口帶寬的受限性;用戶身份和位置信息的保密性。實際上,這些要求也就是3GPP和3GPP2等國際組織制定相關(guān)安全標(biāo)準(zhǔn)的重要依據(jù),目前的認(rèn)證算法均采用速度較快的對稱算法,在空中接口傳輸?shù)恼J(rèn)證參數(shù)長度都較小,采用TMSI提供用戶身份的保密性。下面介紹幾種實用的移動通信系統(tǒng)所采用的認(rèn)證機(jī)制。
2.1 GSM和UMTS采用的認(rèn)證機(jī)制
2.1.1 GSM的認(rèn)證機(jī)制
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)證。正如文獻(xiàn)[7]所指出的,單向認(rèn)證容易受到偽裝基站及中間人攻擊。此外,GSM系統(tǒng)沒有提供消息認(rèn)證的功能。
2.1.2 UMTS的認(rèn)證機(jī)制
針對GSM系統(tǒng)認(rèn)證機(jī)制存在的問題,UMTS系統(tǒng)采用了新的認(rèn)證機(jī)制,該機(jī)制是對GSM系統(tǒng)的認(rèn)證機(jī)制的繼承和增強(qiáng)。其增強(qiáng)措施[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,進(jìn)而提供身份和位置的保密性;提供了安全性更高的認(rèn)證算法。UMTS的認(rèn)證過程[9]如圖5所示。2.2 CDMA2000采用的認(rèn)證機(jī)制
CDMA2000系統(tǒng)支持的認(rèn)證機(jī)制有兩套,一套是基于IS-95的第二代認(rèn)證機(jī)制;另一套是采用3GPP的AKA協(xié)議的第三代認(rèn)證機(jī)制。
認(rèn)證技術(shù)及其在移動通信系統(tǒng)中的應(yīng)用
2.2.1 基于IS-95的認(rèn)證機(jī)制
基于IS-95的認(rèn)證機(jī)制的基本思路是:驗證移動終端與訪問網(wǎng)絡(luò)之間是否擁有相同的密鑰A-key。該機(jī)制包括普通-查詢響應(yīng)、獨(dú)特-查詢響應(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)證機(jī)制中也只有網(wǎng)絡(luò)對用戶的認(rèn)證,并且同樣不支持信息認(rèn)證。
2.2.2 3G系統(tǒng)的認(rèn)證機(jī)制
為了提高認(rèn)證的安全性和系統(tǒng)的互操作性,3GPP2決定在第三代CDMA2000系統(tǒng)中采用3GPP的AKA機(jī)制。該機(jī)制的內(nèi)容與2.1.2小節(jié)UMTS的認(rèn)證機(jī)制相同。
身份認(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é)議還略顯簡單,但對于空中接口而言這些機(jī)制有效地保證了空中鏈路的安全性。隨著移動通信網(wǎng)絡(luò)與現(xiàn)有因特網(wǎng)的逐步融合,身份認(rèn)證的重點(diǎn)將由空中接口鏈路的安全性轉(zhuǎn)移到訪問基于移動IP的因特網(wǎng)資源和服務(wù)的安全性。另外,移動通信系統(tǒng)與Wi-Fi、WLAN等無線系統(tǒng)之間互聯(lián)時的認(rèn)證機(jī)制也是今后研究的熱點(diǎn)。