李春燕,李佳楠,陳衛(wèi)濤,金 鑫
(中國電子科技集團公司第三十研究所,四川 成都 610041)
移動自組織網(wǎng)絡(luò)(Mobile Ad hoc Network,MANET),是由一組自主無線節(jié)點或終端自動組織形成的分布式網(wǎng)絡(luò),各節(jié)點相互協(xié)作并以分布式方式運行,無需固定基礎(chǔ)設(shè)施的管理。移動自組織網(wǎng)結(jié)合了移動網(wǎng)絡(luò)和計算機網(wǎng)絡(luò),具有無中心、自主性和移動性等特點,節(jié)點兼具主機和路由器的功能,能在不便于利用基站等固定網(wǎng)絡(luò)基礎(chǔ)設(shè)施的情況下提供靈活的通信方式,擴寬了移動網(wǎng)絡(luò)的應(yīng)用范圍。移動自組織網(wǎng)絡(luò)成本低且易于部署,自組織、分布式的網(wǎng)絡(luò)結(jié)構(gòu)使其具備極強的健壯性和抗毀性,因此具有廣闊的應(yīng)用前景和重大軍事價值,能夠廣泛應(yīng)用于醫(yī)療衛(wèi)生、緊急救災(zāi)、軍事指揮等各類領(lǐng)域。但由于無線信道開放、網(wǎng)絡(luò)拓撲動態(tài)變化,使得移動自組織網(wǎng)絡(luò)易受信息劫持、身份冒用、身份追蹤等風險,安全問題不可忽視。認證體系是移動自組織網(wǎng)絡(luò)安全的第一道防線,也是其密鑰管理、路由通信、數(shù)據(jù)安全的基礎(chǔ)。但由于其節(jié)點資源有限性、網(wǎng)絡(luò)動態(tài)性和管理分布性增大了認證密鑰管理的困難程度,尤其增大了跨域認證的難度。因此,設(shè)計安全、高效的認證體系對移動自組織網(wǎng)絡(luò)的安全運行具有重大價值。
移動自組織網(wǎng)絡(luò)目前主要的安全認證機制包括集中式認證和分布式認證兩類。
集中式認證將現(xiàn)有基于PKI[1]的證書認證機制應(yīng)用到移動自組織網(wǎng)絡(luò)中,在網(wǎng)絡(luò)中選取節(jié)點作為CA,用于執(zhí)行證書的簽發(fā)、發(fā)布、撤銷等工作。該認證機制需要將證書集中管理,對于計算、存儲、帶寬等資源有限的移動自組織網(wǎng)絡(luò)難以直接適用,一方面大量節(jié)點的證書存儲,增大CA節(jié)點的存儲負擔,隨著節(jié)點的加入,可能使新增節(jié)點的存儲無效。另一方面,CA節(jié)點的承擔繁重的管理工作,存在單點故障的風險,一旦CA節(jié)點被攻擊,將影響整個網(wǎng)絡(luò)的安全運轉(zhuǎn),因此集中式認證在移動自組織網(wǎng)絡(luò)中并不適用。
文獻[2-3]提出了門限分布式方案,利用門限密碼機制(t,n)實現(xiàn)共享密鑰認證,將CA的簽名密鑰分成n份并由n個節(jié)點共同持有,CA功能的執(zhí)行必須任意t個節(jié)點聯(lián)合形成有效證書,少于t個節(jié)點則無法恢復(fù)簽名密鑰,因此稱為門限密碼機制。該機制改進了集中式CA的不足,能有效防止單點故障,具有一定容侵性,但節(jié)點的認證需要與t個節(jié)點參與通信,任意節(jié)點的證書返回有誤都會使證書合成失效,使得網(wǎng)絡(luò)開銷增大,加上門限式機制的計算復(fù)雜度高、協(xié)同工作多,進一步增加系統(tǒng)復(fù)雜性,因此基于門限機制的共享密鑰認證方式在移動自組織網(wǎng)絡(luò)中難以取得理想效果。文獻[4]提出了全局分布式認證方案,將CA節(jié)點的簽名密鑰分發(fā)給網(wǎng)絡(luò)中所有節(jié)點,由各節(jié)點共同承擔網(wǎng)絡(luò)認證服務(wù),以此增強分布式認證服務(wù)的可用性,但由于所有節(jié)點均掌握CA節(jié)點私鑰,增加私鑰暴露風險,降低整個系統(tǒng)安全性。文獻[5-7]提出了輕量級CA認證的一般模型,證書由各用戶自行管理,簡化了證書管理的模型,提高了證書的簽發(fā)效率,但沒有具體提出移動自組織網(wǎng)絡(luò)的認證協(xié)議方案。
本文在提出一個新的基于輕量級CA公鑰認證機制的雙向認證協(xié)議,節(jié)點的公私鑰由自己產(chǎn)生,CA為節(jié)點頒發(fā)輔公鑰,基于輔公鑰認證雙方只需一輪信息交互即可完成雙向身份認證,降低通信傳輸開銷。針對缺少移動自組織網(wǎng)絡(luò)跨域認證研究的現(xiàn)狀,提出基于信任聯(lián)盟構(gòu)建與臨時身份簽發(fā)的跨域身份認證機制,通過聯(lián)盟節(jié)點互簽聯(lián)盟公鑰建立不同安全域之間的信任關(guān)系,通過為跨域節(jié)點簽發(fā)臨時公鑰實現(xiàn)跨域雙向身份認證,相對于現(xiàn)有協(xié)議,該協(xié)議交互次數(shù)少,無需家鄉(xiāng)域CA節(jié)點的參與,能保護用戶身份的隱私,具有較高的安全性和通信效率。
移動自組織網(wǎng)絡(luò)中節(jié)點分為三類,輕量級CA節(jié)點、普通節(jié)點和漫游節(jié)點,如圖1所示。
(1)輕量級CA節(jié)點:在通信域內(nèi)承擔CA功能,具有豐富的計算資源和存儲資源,主要負責對普通節(jié)點身份認證提供權(quán)威擔保,可以根據(jù)相關(guān)算法為普通用戶頒發(fā)輔公鑰,為聯(lián)盟域CA頒發(fā)聯(lián)盟公鑰,為跨域漫游節(jié)點頒發(fā)臨時公鑰。
(2)域內(nèi)普通用戶節(jié)點:MANET網(wǎng)內(nèi)除了CA節(jié)點的其他普通節(jié)點,用于MANET網(wǎng)的業(yè)務(wù)通信。
(3)漫游節(jié)點:由于臨時業(yè)務(wù)需求從其他域漫游到本域的節(jié)點,與本域節(jié)點通信實現(xiàn)跨域信息交互。

圖1 節(jié)點組成
系統(tǒng)初始化時,輕量級CA和普通節(jié)點輸入系統(tǒng)參數(shù)集K,執(zhí)行算法G生成各自的公私鑰對。輕量級CA節(jié)點生成公/私鑰對(PKCA/SKCA),PKCA是CA節(jié)點的主公鑰,SKCA是CA節(jié)點的私鑰;普通節(jié)點Ai生成公私鑰對是普通節(jié)點Ai的主公鑰,是普通節(jié)點Ai的私鑰。具體初始化過程參見文獻[8]。
CA節(jié)點通過廣播信息向本域的普通節(jié)點發(fā)送公鑰PKCA,用戶節(jié)點保存CA節(jié)點的公鑰便于后續(xù)申請輔公鑰。
2.3.1 域內(nèi)認證
當域內(nèi)普通用戶節(jié)點需要通信時,向CA節(jié)點發(fā)起輔公鑰申請請求,普通用戶節(jié)點通過交換雙方輔公鑰直接進行雙向身份認證,以A域為例流程如圖2所示。

圖2 域內(nèi)認證流程
(1)輔公鑰生成
系統(tǒng)初始化完成后,普通用戶節(jié)點保存自己的公私鑰對。當節(jié)點Ai需要與節(jié)點Ai+1時,向本域CAA節(jié)點請求輔公鑰以及對方通信節(jié)點的公鑰信息。節(jié)點Ai輔公鑰的申請消息如式(1)所示:
MESSAGE1:SLAVERY_PUBLIC_KEY_REQUEST

其中IDAi是節(jié)點Ai的身份標識,是節(jié)點Ai的主公鑰,Tstamp1用于記錄當前時間戳,避免消息重放攻擊,用來進行消息完整性校驗,整個消息用CAA節(jié)點的公鑰對申請信息進行加密。
節(jié)點CAA收到消息(1)后,用自己私鑰解密得到節(jié)點Ai的身份標識以及公鑰根據(jù)節(jié)點身份標識查詢節(jié)點狀態(tài)列表,若狀態(tài)為已注冊且可信,則計算并將其與收到的做比較,若相等則表明節(jié)點的信息(1)在發(fā)送過程中未被篡改。節(jié)點CAA向節(jié)點Ai返回消息如式(1):
MESSAGE2:SLAVERY_PUBLIC_KEY_REPLY

CAA節(jié)點用自己的私鑰為節(jié)點Ai的身份標識和主公鑰進行簽名,生成節(jié)點Ai的輔公鑰節(jié)點Ai+1申請輔公鑰流程與節(jié)點Ai類似,得到輔公鑰
(2)域內(nèi)雙向認證
節(jié)點Ai需要與節(jié)點Ai+1進行身份認證時,首先交換雙方的輔公鑰,節(jié)點Ai首先將自身輔公鑰發(fā)送給節(jié)點Ai+1;節(jié)點Ai+1收到驗證請求,利用本地保存的CAA公鑰驗證節(jié)點Ai身份合法性,驗證通過后將自身身份信息發(fā)送給Ai驗證,如式(3)、(4)所示。
MESSAGE3-4:BILATERAL_AUTHENTICATION

節(jié)點Ai完成對節(jié)點Ai+1的身份認證后,通過掌握的對方主公鑰發(fā)起協(xié)商會話密碼過程,進而建立安全通道以發(fā)送消息。
2.3.2 跨域認證
跨域認證時,通過在多域的CA節(jié)點之間互簽聯(lián)盟公鑰建立信任聯(lián)盟,當節(jié)點漫游到異地域時,由聯(lián)盟CA節(jié)點驗證節(jié)點身份真實性并為其簽發(fā)臨時公鑰,作為在異地域的認證憑證,認證過程無需家鄉(xiāng)域CA節(jié)點的參與,減少跨域認證的交互流程。
(1)信任聯(lián)盟構(gòu)建
各域CA節(jié)點互簽聯(lián)盟公鑰,形成互信互認的分布式信任聯(lián)盟,各域的CA節(jié)點維護并管理聯(lián)盟關(guān)系,如圖3所示。
以域A和B為示例,節(jié)點CAA將向節(jié)點CAB發(fā)起聯(lián)盟建立請求,消息如式(5)所示。

圖3 跨域信任聯(lián)盟
MESSAGE5:UNION_DOMAIN_REQUEST

其中NIDA為A域的唯一網(wǎng)絡(luò)編號,為CAA節(jié)點的公鑰。節(jié)點CAB收到消息(5)首先確認A域的真實性,再為CAA節(jié)點簽發(fā)聯(lián)盟公鑰,并在本地保存?zhèn)浞荩蚬?jié)點CAA返回聯(lián)盟公鑰的同時將自身域信息一并返回,如式(6)所示。
MESSAGE6:UNION_DOMAIN_REPLAY

MESSAGE7:UNION_DOMAIN_REBACK

(2)臨時身份簽發(fā)
當節(jié)點漫游到異地域通信時,向異地域的CA節(jié)點請求臨時公鑰,漫游節(jié)點可通過臨時公鑰與異地域節(jié)點之間直接進行雙向認證,認證過程無需家鄉(xiāng)域的CA節(jié)點參與,流程如圖4所示。

圖4 跨域身份認證
以漫游節(jié)點Ai為例,當其漫游到B域時,首先向B域發(fā)起臨時公鑰請求,CAA節(jié)點收到臨時公鑰請求后,將節(jié)點CAA為節(jié)點CAB簽發(fā)的聯(lián)盟公鑰發(fā)送給節(jié)點Ai,以此驗證節(jié)點CAB的合法性,并獲取CAB節(jié)點的公鑰用于保護漫游節(jié)點Ai的身份信息,具體如式(8),(9),(10),(11)。
MESSAGE8-11:SIGN_TENP_PUBLIC_KEY

在式(9)中,節(jié)點Ai利用保存的家鄉(xiāng)域CAA節(jié)點驗證節(jié)點CAB的聯(lián)盟身份,驗證通過后通過式(10)發(fā)起臨時公鑰簽發(fā)請求,最后由CAB為節(jié)點Ai簽發(fā)的臨時公鑰
(3)跨域雙向認證
當節(jié)點Ai需要和B域內(nèi)節(jié)點Bj通信時,利用臨時公鑰向Bj發(fā)起認證請求,認證流程與域內(nèi)認證流程類似,如式(12),(13)所示。
MESSAGE12-13:DOMIAN_BILATERAL_AUTHENTICATION

本協(xié)議具備安全性,能夠抵抗節(jié)點仿冒、消息重放等攻擊,能夠保護用戶身份的隱私,防止用戶身份信息被追蹤。
仿冒攻擊。當有假冒節(jié)點請求通信時,雖然可以偽造一個輔公鑰,但由于假冒節(jié)點沒有經(jīng)過CA節(jié)點合法簽名,當使用CA節(jié)點公鑰進行簽名驗證時,被請求通信的合法節(jié)點可以比較容易判定該節(jié)點沒有經(jīng)CA節(jié)點的簽名認證。輔公鑰的用戶與傳統(tǒng)CA 作用類似,假冒者不知道CA的私鑰,即時偽造身份,也容易被識別,能夠有效防止仿冒節(jié)點攻擊。
重放攻擊。攻擊者可能通過竊取網(wǎng)絡(luò)傳輸鏈路中的消息偽裝合法用戶,但只是獲得舊消息,消息中的時間戳能夠標識身份消息的時效性,認證雙方可以通過判斷時戳達到防御重放攻擊的目的。
隱私保護。節(jié)點的身份信息均通過加密保護,而私鑰由各節(jié)點自行生成,不會在網(wǎng)絡(luò)中傳輸,從而確保用戶身份信息不會泄露。針對跨域認證,采用聯(lián)盟CA驗證和臨時身份簽發(fā)的方式,無需暴露用戶節(jié)點自身的身份,即可實現(xiàn)跨域認證,能夠防止用戶身份被追蹤。
本協(xié)議從存儲、計算和通信各方面降低了認證的資源占用,提高了節(jié)點間身份認證的效率。
通信開銷。在認證協(xié)議執(zhí)行過程中,節(jié)點間只需進行一輪交互,無需CA節(jié)點的參與,即可完成雙向身份認證,交互次數(shù)得到減少,與傳輸PKI認證相比,交互次數(shù)減少了50%,同時傳輸認證消息僅有輔公鑰、時間戳和哈希函數(shù)值,傳輸信息量少,所需帶寬少。
存儲開銷。對于普通節(jié)點,用戶只需存儲自己公私鑰對和CA節(jié)點的公鑰,對于CA節(jié)點只需存儲自己的公私鑰對以及聯(lián)盟節(jié)點之間的聯(lián)盟公鑰,無需集中維護用戶節(jié)點的證書信息,減少了存儲資源占用的需求。
計算開銷。對于CA節(jié)點而言,極大的降低了計算資源占用,由于采用端到端認證,CA節(jié)點僅需在簽發(fā)輔公鑰、聯(lián)盟公鑰以及臨時公鑰的時候僅需密碼運算,認證過程由節(jié)點雙方自行完成,無需CA節(jié)點參與,有效的減少了集中式認證的計算資源需求,具有更高的效率。
移動自組織網(wǎng)絡(luò)動態(tài)拓撲變化、計算能力有限、帶寬資源不足等問題,使得傳統(tǒng)的認證方式無法直接適用,本文基于輕量級CA思想提出一種面向移動自組織網(wǎng)絡(luò)雙向身份認證與密鑰協(xié)商協(xié)議,通過簽發(fā)輔公鑰的方式簡化證書管理流程,確保用戶私鑰私密性的同時提高用戶身份憑證管理的效率,針對跨域信息共享,提出一種基于聯(lián)盟公鑰的信任聯(lián)盟構(gòu)建機制,由聯(lián)盟CA節(jié)點實現(xiàn)漫游用戶節(jié)點臨時身份的簽發(fā),通過臨時身份實現(xiàn)跨域雙向身份認證,跨域過程中用戶無需暴露自身身份信息,確保了用戶身份信息的隱私性,認證過程無需家鄉(xiāng)域CA節(jié)點的參與,減少了認證流程,提高了身份認證的效率。