王欣 柳亞男 張正 李戈 邱碩
關(guān)鍵詞:Kerberos;物理不可克隆函數(shù);雙向認證;密鑰協(xié)商
1 概述
隨著互聯(lián)網(wǎng)的快速發(fā)展,針對個人或設(shè)備的網(wǎng)絡(luò)攻擊行為層出不窮,個人信息的安全防護愈發(fā)重要。安全可靠的身份認證機制,為個人或設(shè)備免遭惡意的偽造、篡改、竊聽等攻擊提供必要保障。
Kerberos 協(xié)議是一種基于可信第三方的安全認證協(xié)議。RFC 6113 定義了Kerberos 預(yù)認證通用框架[1],在開放式網(wǎng)絡(luò)環(huán)境下,通過密鑰系統(tǒng)為客戶機和服務(wù)器應(yīng)用程序之間提供認證服務(wù)和密鑰協(xié)商。該框架基于口令認證機制和對稱加密體制,因此存在口令猜測攻擊、重放攻擊、密鑰存儲等局限性。2001年,Tung等人提出PKINIT協(xié)議對標準框架進行了擴展[2],利用公鑰證書在Kerberos 協(xié)議中實現(xiàn)初始身份驗證[3],但是計算量和存儲開銷大大增加。2018 年,Sutradhar等人[4]提出基于門限密碼和ECC的Kerberos 新版本用于解決云安全中的認證問題,相比PKINIT 降低了計算量,但仍然存在計算復(fù)雜度高、中間人攻擊等威脅。
傳統(tǒng)Kerberos協(xié)議利用的口令認證機制的安全性較弱,存在存儲安全問題,攻擊者可能通過入侵、半入侵及側(cè)信道攻擊等物理攻擊導致密鑰泄漏,最終造成整個系統(tǒng)崩潰。為解決目前研究中存在的問題,本文提出一種基于物理不可克隆函數(shù)(PUF,PhysicalUnclonable Function)的Kerberos擴展系統(tǒng)?;赑UF 的激勵響應(yīng)機制,利用PUF的激勵響應(yīng)對(CRP)代替口令或數(shù)字證書以實現(xiàn)認證服務(wù)器與設(shè)備的雙向認證和密鑰協(xié)商,解決口令猜測攻擊和假冒攻擊。設(shè)備端也無須預(yù)存儲密鑰,降低了存儲開銷和密鑰泄漏的風險。進一步地,針對車聯(lián)網(wǎng)中移動車輛安全接入應(yīng)用服務(wù)器的場景,給出了該擴展系統(tǒng)的具體實現(xiàn)。
2 基于物理不可克隆函數(shù)的認證機制
物理不可克隆函數(shù)(Physical Unclonable Func?tion)[5]的出現(xiàn)與發(fā)展,為解決傳統(tǒng)Kerberos口令認證問題提供全新的低成本和高安全性的解決方案。
在安全協(xié)議設(shè)計中,可以將PUF結(jié)構(gòu)看作是單向函數(shù)的硬件等價物,并具有易于制造、不可克隆和不可預(yù)測的屬性。將PUF結(jié)構(gòu)看作一個黑盒的激勵響應(yīng)系統(tǒng),針對任意激勵值可產(chǎn)生唯一對應(yīng)的響應(yīng)值,而根據(jù)響應(yīng)值卻無法推導出激勵值。利用函數(shù)P 來標識PUF的單向性:
其中,C 和R 分別是激勵集合和響應(yīng)集合,函數(shù)P是PUF結(jié)構(gòu)的數(shù)學模型,激勵值c 與對應(yīng)的響應(yīng)值r 稱為該PUF結(jié)構(gòu)P 的一個激勵響應(yīng)對(CRP ):(c,r )。
通過使用物理不可克隆函數(shù)產(chǎn)生的激勵響應(yīng)對來代替?zhèn)鹘y(tǒng)密鑰,實現(xiàn)了不需要再以數(shù)字形式存儲密鑰,而是從設(shè)備電路中提取,解決了密鑰的計算和存儲問題[6]且消耗的硬件資源成本較低,適用于輕量級網(wǎng)絡(luò)。
3 基于PUF 的Kerberos 擴展系統(tǒng)
3.1 系統(tǒng)流程
基于PUF提出一種Kerberos擴展系統(tǒng),包括三個通信實體:客戶端、服務(wù)端、密鑰分配中心(KDC)。其中KDC中包括:認證服務(wù)器AS、票據(jù)授權(quán)服務(wù)器TGS 和數(shù)據(jù)庫DB,流程圖如圖1所示。
Step1:客戶端和服務(wù)器端本地生成若干隨機數(shù)作為激勵集合,并將每個激勵輸入PUF結(jié)構(gòu)生成對應(yīng)的響應(yīng)值。將激勵響應(yīng)對提交給KDC注冊,保存在數(shù)據(jù)庫中。保存在KDC中的注冊信息可以通過KDC上的接口進行查看。
Step2:需要向服務(wù)器進行身份認證的客戶端通過接口向AS請求票據(jù)授權(quán)票據(jù)(TGT),AS生成客戶端與TGS的會話密鑰并在本地數(shù)據(jù)庫隨機選擇一個客戶端的CRP的響應(yīng)作為密鑰加密會話密鑰,將使用TGS 主密鑰通過加密算法加密的TGT,挑戰(zhàn)值Challenge 和加密的會話密鑰返回??蛻舳私邮盏絋GT,并通過本地的PUF模塊獲取對應(yīng)的響應(yīng)值Re?sponse來通過解密算法解密得到會話密鑰并用其加密身份信息。
Step3:客戶端對TGS通過接口發(fā)送會話密鑰加密的身份信息、TGT、服務(wù)器端ID來請求服務(wù)授權(quán)票據(jù)(SGT),TGS使用自身主密鑰解密TGT比對用會話密鑰解密的身份信息,驗證TGT有效性后,從本地數(shù)據(jù)庫中任選一個服務(wù)器端的Challenge,并生成客戶端和服務(wù)器端的會話密鑰并用TGS與客戶端的會話密鑰加密,將服務(wù)器端的Challenge和加密后的服務(wù)器端和客戶端的會話密鑰以及用Response加密的服務(wù)授權(quán)票據(jù)SGT返回給客戶端。
Step4:客戶端在本地通過與TGS的會話密鑰解密得到與服務(wù)器端的會話密鑰,用其作為密鑰通過加密算法加密身份信息。將加密的身份信息以及服務(wù)器端的Challenge和SGT經(jīng)過接口發(fā)送給服務(wù)器端來請求服務(wù)。服務(wù)器端接收到SGT后經(jīng)過本地的PUF 模塊得到Response進而解密SGT并得到與服務(wù)器端的會話密鑰解密客戶端的身份信息,將解密的SGT對比解密得到的身份信息,核驗完成后允許客戶端訪問。
3.2 系統(tǒng)架構(gòu)
基于PUF的Kerberos擴展系統(tǒng)在實現(xiàn)過程中采用Python+Django的MVC架構(gòu),如圖2所示。系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller),實現(xiàn)系統(tǒng)用戶界面和業(yè)務(wù)邏輯分離,加強代碼的可擴展性、可復(fù)用性、可維護性、靈活性。
模型層包括:PUF生成的激勵響應(yīng)對的保存類、KDC使用的會話密鑰類。
控制器層包括:注冊系統(tǒng)控制器進行注冊設(shè)備的信息收集以及處理保存、認證系統(tǒng)控制器用于處理設(shè)備服務(wù)請求以實現(xiàn)身份的認證及票據(jù)的分發(fā)。
視圖層包括:設(shè)備申請服務(wù)時的信息交互展示界面、通信設(shè)備查詢展示界面。
3.3 接口設(shè)計
根據(jù)客戶端、服務(wù)端、KDC的主要功能設(shè)計不同通信實體模塊的主要接口。
客戶端、服務(wù)端的主要接口如表1所示。
3.4 數(shù)據(jù)結(jié)構(gòu)設(shè)計
系統(tǒng)采用SQLite3數(shù)據(jù)庫,主要用于存放PUF生成的CRP激勵對。主要的數(shù)據(jù)結(jié)構(gòu)設(shè)計如表3所示。
4 系統(tǒng)的應(yīng)用實現(xiàn)
在車聯(lián)網(wǎng)的應(yīng)用中,不僅僅是簡單地通過網(wǎng)絡(luò)將車與車連接起來,還有車與人、車與路、車與云平臺以及車內(nèi)等全方位的網(wǎng)絡(luò)通信。主要是實現(xiàn)車內(nèi)網(wǎng)絡(luò),車際網(wǎng)絡(luò)以及車輛移動互聯(lián)網(wǎng)的三網(wǎng)聯(lián)合,除此以外還有像路邊單元這類邊緣或是橋接設(shè)備的存在。通過結(jié)合多種通信技術(shù),不同的物理硬件和強大的網(wǎng)絡(luò)結(jié)構(gòu)來達成車聯(lián)網(wǎng)這一概念。
由于現(xiàn)在社會汽車保有量的不斷上升,車聯(lián)網(wǎng)中存在著極大量的數(shù)據(jù)需要被處理,為此需要一個輕量、高效的方案來處理設(shè)備間的交互。同時汽車作為聯(lián)網(wǎng)設(shè)備中屬于存在有較多風險點且易造成高危害性的事故的接入點,使得在汽車接入互聯(lián)網(wǎng)時需要考慮到各方面的安全性。所以在移動車輛與應(yīng)用服務(wù)器的安全認證通信中迫切地需要一個安全可靠且高效率的協(xié)議來推進車聯(lián)網(wǎng)應(yīng)用的完善和升級。
而基于PUF的Kerberos擴展系統(tǒng)就為解決上述車聯(lián)網(wǎng)應(yīng)用所存在的難題提供了一種解決方案。
將本系統(tǒng)應(yīng)用到車聯(lián)網(wǎng)場景(如圖3所示)中,可以很好地解決移動車輛與應(yīng)用服務(wù)器之間的雙向認證與密鑰協(xié)商問題,從而實現(xiàn)車與云之間的安全通信。
在具體系統(tǒng)實現(xiàn)中,利用樹莓派作為載體搭載硬件PUF模塊,實現(xiàn)車路協(xié)同過程中的Kerberos擴展系統(tǒng)。通過PUF模塊為小車生成唯一的激勵響應(yīng)對完成在云端(應(yīng)用服務(wù)器)的注冊,完成注冊后借助路邊單元RSU轉(zhuǎn)發(fā)執(zhí)行擴展的Kerberos協(xié)議實現(xiàn)安全通信,如圖4所示。
在系統(tǒng)中通過計算機設(shè)備提供在線的KDC服務(wù),小車的PUF模塊生成激勵響應(yīng)對后向KDC提供相關(guān)信息實現(xiàn)注冊。完成注冊后小車在道路行駛過程中進行服務(wù)請求。
首先小車向KDC申請TGT后KDC在數(shù)據(jù)庫中找到注冊的激勵值向小車發(fā)起身份挑戰(zhàn)。小車則利用PUF模塊將激勵輸出為響應(yīng)值并作處理發(fā)送給KDC 以自證身份。完成認證后小車得到TGT進而向KDC 申請相應(yīng)服務(wù)器所對應(yīng)的SGT。KDC通過TGT驗明小車身份后返回使用響應(yīng)值加密的SGT。
小車獲取到對應(yīng)服務(wù)的SGT就可以向服務(wù)端申請服務(wù),服務(wù)端則利用SGT中的身份信息對小車進行身份核實,驗證完小車身份后為其提供服務(wù)。整個過程中通過路邊單元進行轉(zhuǎn)發(fā)時,小車會優(yōu)先選擇較近單位進行轉(zhuǎn)發(fā)從而避免大量數(shù)據(jù)堆積在部分節(jié)點造成的影響。
在Kerberos協(xié)議執(zhí)行過程中SGT的獲取,得到了SGT后就可以申請服務(wù)器的相關(guān)服務(wù),且保證了服務(wù)的可靠性與安全性(圖5)。
5 結(jié)束語
本文提出并實現(xiàn)了一種基于物理不可克隆函數(shù)的Kerberos擴展系統(tǒng)。使用物理不可克隆函數(shù)(PUF)生成的激勵響應(yīng)對代替?zhèn)鹘y(tǒng)Kerberos協(xié)議中設(shè)備存儲的主密鑰,實現(xiàn)設(shè)備與密鑰分配中心KDC之間的雙向認證和密鑰分配。其中利用PUF唯一性和隨機性可防止設(shè)備因主密鑰泄漏而引發(fā)的偽造攻擊、仿冒攻擊、中間人攻擊等,同時克服公鑰計算復(fù)雜度高、速度慢,適合資源受限的網(wǎng)絡(luò)應(yīng)用。