馮志華,羅 重+,鄢軍霞,鄧 威
(1.中國航天科工集團第二研究院 北京計算機技術及應用研究所,北京 100854; 2.武漢軟件工程職業學院 信息學院,湖北 武漢 430205)
固態盤由于其出色的數據讀寫性能,逐漸成為主流存儲載體,存儲著大量企業和個人的機密數據和敏感信息。為確保所存儲重要數據的安全,當前主要采用加密的方法對固態盤中的數據進行保護。
然而僅考慮對數據的加密不足以保證數據的安全。Gemalto公司2019年更新的數據泄露水平指數(breach level index)最新調查報告顯示,敏感數據的安全問題主要來自存儲介質的遺失和盜用,而非病毒和黑客。設計安全的密鑰管理機制和身份認證協議成為固態盤數據安全的基礎。
現有針對固態盤的身份認證和密鑰管理存在著以下難點:
(1)身份認證:簡單的口令認證容易因熵值過低而易被攻破,而引入生物特征作為認證因子在提高安全性的同時也會帶來較高成本。對于身份認證協議,選擇可靠有效的身份認證因子能夠直接影響身份認證協議安全性的強弱[1];
(2)密鑰管理:直接將密鑰存儲于固態盤內存在較大安全隱患,有研究結果表明,當口令與數據密鑰無關時攻擊者可能繞過加密固態盤身份認證過程從而直接獲取數據密鑰[2]。分布式密鑰托管方案受使用環境的局限性較大,過于依賴密管中心(key distribution center,KDC)的運行[3]。
針對以上問題,本文提出一種基于PUF的安全固態盤兩方認證協議。以加密固態盤PUF模塊生成的物理指紋作為身份認證和密鑰管理過程中的最高可信根,實現多用戶環境下固態盤用戶的身份識別和密鑰分發。并使用BAN邏輯對所設計身份認證協議進行形式化分析證明其安全性。
出于安全考慮,當前固態盤主要采用加密方式對數據進行保護。在直接暴力破解加密算法的收益遠低于成本的情況下,攻擊者更傾向于繞過密碼算法對固態盤進行攻擊。因此,出于密鑰管理、身份認證以及固態盤自身特性引起的安全威脅尤其值得注意。固態盤安全威脅如圖1所示。

圖1 固態盤安全威脅
密鑰管理是固態盤數據存儲安全的核心。加密固態盤密鑰管理有多種形式。將數據密鑰存儲于固態盤內是常用的解決方案,一旦設備失竊,攻擊者可以通過某些特定攻擊手段獲取密鑰進而獲取所存秘密信息。荷蘭拉德堡德大學研究人員發現部分加密固態盤自加密功能能夠被輕易繞過,當數據密鑰不是由用戶口令值派生時,攻擊者可以通過固態盤的調試接口,對固態盤固件進行篡改,改變RAM中固件的原始認證機制,跳過身份認證環節從而直接獲取數據密鑰解密固態盤中的數據[2]。因此對于固態盤固件的升級和使用也應采取防護手段防止安全機制的失控。
將密鑰直接存儲在固態盤內同時存在其它安全隱患。固態盤使用閃存作為數據存儲介質,為延長閃存顆粒使用壽命,需要在閃存顆粒變得不可靠之前進行磨損均衡。同時垃圾回收機制的存在會使得固態盤內數據產生不可預料的易地搬遷行為。原始存儲的數據在未被覆蓋之前一直都會存在。如果數據密鑰直接存儲在固態盤中未單獨隔離出的受保護存儲區域,那么未受保護的數據密鑰在刪除之后仍有可能被檢索出來。
依賴KDC進行密鑰管理與身份認證的方案雖然不需要在固態盤內存儲密鑰,但同樣存在一系列問題。在固態盤工作時,每一個新的用戶任務執行都需要有KDC的授權認證,一旦KDC發生故障,整個存儲系統都無法使用。所有的用戶密鑰都存放在KDC中,一旦KDC被攻破,整個存儲系統的數據都面臨失竊的風險。其訪問控制過于依賴代碼的安全性和健壯性,當認證協議設計不完善時可能遭受信道監聽重放等攻擊。同時其存在內部管理員通過訪問權限繞過訪問控制的缺陷[3]。
作為數據存儲設備,加密固態盤出于使用環境以及管理手段的限制,用戶可能無法完全隔離攻擊者對加密固態盤的接觸,因此有必要在固態盤與主機接口處實現訪問控制機制。針對加密硬盤的典型攻擊手段“惡意女仆攻擊”(evil maid attack)[4]是加密固態盤面臨的一大安全挑戰。通過該攻擊手段,惡意人員可能在加密固態盤擁有者離開設備時直接接觸設備,通過修改主引導區程序記錄執行擊鍵記錄,插入微型可啟動USB設備,刷新BIOS或UEFI,甚至用相同的型號替換機器[4,5],從而盜取用戶口令獲得加密硬盤的訪問權限。因此,將加密固態盤的安全性寄托于用戶口令的保護上是不完善的,需要引入固態盤硬件特性增強數據安全性。
面對固態盤面臨的安全威脅,為確保存儲數據的安全,必須提出有效的身份認證協議及密鑰管理方案。
最早于1981年提出基于口令的用戶認證和密鑰協商協議之后,許多基于該思想的認證協議被提出。然而由于口令的低熵特性,這類協議容易受到口令猜測攻擊。為克服基于口令的認證協議所面臨的困難,結合生物特征和口令的多因子認證協議應運而生。相比基于口令的認證協議,使用人臉、指紋、虹膜、指靜脈等生物特征的認證協議中,認證因子不易遺失,提高了猜測、復制難度,但仍存在生物特征被復制盜用風險,且需要額外的特征提取裝置,實現更為復雜且成本相對較高。
類似于生物特征,在芯片制造過程中不可避免的引入隨機制造差異,不同實體電路擁有獨一無二的物理“指紋信息”,即PUF技術[6,7]。其優勢在于。
(1)PUF信息隨電路實體綁定,不存在遺忘的風險;
(2)PUF信息無法被克隆;
(3)猜測PUF值十分困難。
因此選擇PUF作為安全協議最高可信根,對身份認證和數據密鑰進行保護。
本文提出的固態盤雙向認證協議在挑戰-響應機制的基礎上,在擁有PUF實體的加密固態盤、UKey和用戶三方之間進行相互認證。用戶提供口令的認證。UKey擁有單向散列函數H,對稱加密算法E。加密固態盤擁有單向散列算法H,對稱加密算法E,PUF實體,模糊提取函數Gen和Rep。加密固態盤上電后PUF模塊輸出經模糊提取器糾錯之后的加密固態盤物理指紋F,F僅在固態盤主控芯片片內使用。協議應用安全模型如圖2所示。

圖2 安全模型
該模型包含UKey、加密固態盤和用戶3個部分。在固態盤進入正常工作狀態之前,用戶需使用UKey進行身份認證。用戶輸入正確的口令,UKey和固態盤控制芯片基于PUF值進行雙向認證,認證通過則UKey發送所存數據密鑰密文至加密固態盤,加密固態盤解密出數據密鑰。由此對固態盤內所存密文信息解密,進入正常工作狀態。
對協議描述所需符號給出定義見表1。
單向散列函數:加密單向散列函數將任意長度的字符串映射到稱為散列值的固定長度的字符串。它可以表示為:h∶X→Y, 其中X={0,1}*,Y={0,1}n。X是任意長度的二進制字符串,Y是固定長度的二進制字符串。加密單向散列函數具備很好的抗原像攻擊、抗第二原像攻擊和抗強碰撞攻擊的特性,不可能從計算得來的散列值來逆向計算其輸入值,因此能很好地保護原始信息不被泄漏。
模糊提取器:模糊提取器實現PUF值糾錯功能,上電之后輸出具備一致性的上電初始值,為固態盤提供穩定物理指紋信息。模糊提取器(fuzzy extractor)[8,9]可很好地實現PUF值糾錯的功能:模糊提取器是一對隨機流程,分為生成(generate)和重現(reproduce),用于獲得具備一致性的PUF響應。

表1 符號定義
Gen:以PUF上電初始值P為輸入,結合隨機數r生成加密固態盤物理指紋F和輔助數據HD=(w,r)。
Rep:以帶噪音的PUF上電初始值P′和輔助數據HD=(w,r) 為輸入,輸出加密固態盤物理指紋F。 其中每次上電初始值間的漢明距離dist(P,P′) 必須小于一定值。
輔助數據無需保密,因為即使獲取輔助數據也可保證輸出的不可預測性[10]。但是需要保證輔助數據的完整性才可恢復出具有一致性的PUF值,因此輔助數據附帶校驗信息,使用散列函數即可實現完整性校驗。
所提出的雙向認證協議包含3個階段:注冊階段、身份認證階段、認證密鑰更換階段。
(1)注冊階段
注冊階段,在安全的環境下,即設備管理員確認用戶真實物理身份,同時確認固態盤主機無擊鍵記錄,搭線,病毒等安全威脅的環境下,將加密固態盤與用戶身份綁定。用戶i將UKeyUi插入主機,設置初始口令值ki, 口令ki的hash值Ki=H(ki), 計算PIDi=H(IDi‖Ki)。 加密固態盤上電后獲得初始響應值P,模糊提取函數Gen從P中獲取加密固態盤物理指紋F和輔助數據HD。 加密固態盤拼接口令hash值Ki和物理指紋F得Ki‖F, 計算拼接值的hash值H(Ki‖F)。 加密固態盤無需存儲認證密鑰相關信息,僅需維持用戶PIDi表以及記錄對應PIDi所在數據分區。UKey存儲Di=H(Ki‖F)、 輔助數據HD以及用戶口令ki的hash值Ki=H(ki)。
使用加密固態盤物理指紋F和用戶身份信息拼接值的散列值Keyi=H(PIDi‖F) 作為根密鑰加密固態盤數據密鑰DKi得 {DKi}Keyi, 存儲于UKey中。
(2)身份認證階段
欲訪問加密固態盤中存儲的數據時,用戶需配合UKey進行身份認證。
身份認證階段具體步驟如下:
2)加密固態盤收到認證請求命令之后生成隨機數r1, 發送M1=
3)UKey接收消息M1, 生成隨機數r2, 使用注冊階段存儲的Di=H(Ki‖F) 作為密鑰分量,計算
SK1=H(r1⊕Di)C1=ESK1(r1‖r2)
計算結束UKey發送M2=
4)加密固態盤接收消息M2, 生成隨機數r3。 使用模糊提取函數Rep和輔助數據HD從PUF上電初始值中提取物理指紋信息F, 使用F計算認證密鑰SK1



加密固態盤發送M3=
5)UKey接收消息M3, 計算

C3=ESK2(r3‖{{DKi}Keyi})

(3)認證密鑰更換階段
認證密鑰更換階段發生于用戶需要更換口令的時刻。更換流程如下:
1)身份認證執行完畢的情況下,用戶輸入認證密鑰更換命令,加密固態盤生成并發送隨機數r4;
2)用戶輸入新口令k′, UKey計算K′=H(k′), 生成隨機數r5, 計算SK3=H(r4⊕Di)
C4=ESK3(r4‖r5‖HD‖Ki‖K′i)
向加密固態盤發送M5=
3)加密固態盤接收M5, 生成隨機數r6, 使用模糊提取器和散列函數計算會話密鑰并解密C4, 驗證r4是否相符,相符則計算
D′i=H(F‖K′i)SK4=H(r5⊕Di)C5=ESK3(r5‖r6‖D′i)
向UKey發送M6=
4)UKey接收M6并解密C5, 計算
SK5=H(r6⊕D′i)C6=ESK5(r6)
向加密固態盤發送M7=
5)加密固態盤接收M7并以D′i和r6恢復會話密鑰SK5解密C6, 驗證r6是否相符,相符則確認密鑰更換流程完成,認證密鑰更換流程結束。
本方案設計中,數據密鑰由根密鑰加密存儲于UKey中,實現數據密鑰與加密數據的物理隔離。根密鑰由加密固態盤PUF值,UKey設備ID以及用戶口令K三者共同組成,確保攻擊者無法在未知口令的情況下通過篡改認證機制獲取固態盤數據密鑰。
用戶通過口令驗證同時UKey完成與加密固態盤的相互認證之后,UKey使用最后一次握手的會話密鑰加密所存數據密鑰傳遞至加密固態盤,確保安全的將數據密鑰傳遞給加密固態盤。
BAN邏輯作為安全協議有效的形式化驗證模型,被廣泛用于分析身份驗證和密鑰分發協議的安全性。本文使用BAN邏輯分析提出的身份認證協議,從形式化角度證明協議安全性。認證密鑰更換協議分析流程類似,故不再贅述。
對前述身份認證協議進行理想化,理想化過程如下:
(1)口令認證及用戶身份信息PIDi發送;
(2)固態盤收到認證請求和用戶身份信息PIDi之后,返回隨機數和身份信息PIDi⊕r1異或值,r1可視作由PIDi加密,PIDi為加密固態盤和UKey共享密鑰。M1∶S→U∶{r1}PIDi;
(3)UKey接收消息M1后解析并處理生成消息M2, 發送至加密固態盤M2∶U→S∶{{r1‖r2}SK1,HD,K};
(4)加密固態盤接收消息M2并處理,驗證UKey是否合法,合法則生成消息M3, 發送至UKeyM3∶S→U∶{r2‖r3}SK2;
(5)UKey接收消息M3并處理,驗證加密固態盤是否合法,合法則生成消息M4, 發送數據密鑰至加密固態盤M4∶U→S∶{r3‖{KEY}}SK2
Key={DKi}Keyi)
(1)用到的BAN邏輯推理規則消息含義規則
臨時值驗證規則
接收消息規則
消息新鮮性規則
信念規則
密鑰與秘密規則
會話密鑰規則
(2)初始化假設
由于加密固態盤會話密鑰生成過程如下F=Rep(P,HD),D=H(F‖K),SKi=H(ri‖D)。 UKey在注冊階段已存儲會話密鑰分量D, 因此假設A1,A2成立。r1為會話密鑰SK1的必要參數,r2為會話密鑰SK2的必要參數。而會話過程中S認為r1是新鮮的,假設A3成立,根據消息新鮮性規則可認為消息M2中的r2也是新鮮的。由會話密鑰規則知如果委托人P認為會話密鑰是新鮮的并且委托人P和Q認為X是會話密鑰的必要參數,則委托人P認為他/她與Q共享會話密鑰K,故有A5和A6成立。
同上,r2為會話密鑰SK2的必要參數,而會話過程中U認為r2是新鮮的,假設A4成立。由會話密鑰規則知A7成立。
因此,給出身份認證協議的初始化假設

(3)預期證明目標

(4)形式化分析過程
U收到消息M3時,U?{r2}SK2。
根據消息含義規則可得
(1)
由假設A4可知,U|≡#(r2)。

由臨時值驗證規則可知
(2)

S收到消息M2時,S?{r1}SK1。

由臨時值驗證規則可知
(3)

S收到消息M4時,由消息含義規則
(4)

目標③S|≡U|≡KEY得證。
本節使用SPIN工具對協議進行模型檢測,并對可能存在的攻擊場景和攻擊者行為進行描述,給出所提出協議的特性分析。
(1)操作系統:Windows 10;
(2)Spin版本:6.4.9;
(3)TclTk版本:8.6.8.0。
(1)誠實主體建模
為防止反射攻擊,協議設計每條消息結構均有所差異,因此建立四通道協議模型,減小模型復雜度防止狀態空間爆炸問題。
協議誠實主體為UKey和SSD,SSD發起通信,二者互相接收消息并驗證所接收消息合法性。
(2)攻擊者建模
考慮PUF可能會遭受侵入式和故障注入等攻擊,但這些攻擊不會破壞安全協議的完整性,同時可以通過設備層面的防護手段來解決此類攻擊[11],而且攻擊者無法對PUF進行逆向工程,故選擇Dolev-Yao模型思想作為攻擊者模型建立依據。
1)攻擊者已知完整的身份認證協議;
2)攻擊者無法直接通過物理接口讀取UKey內部信息;
3)攻擊者可以截獲UKey與加密固態盤之間的通信報文,并在接下來的認證協議中冒充協議合法主體的身份以獲取秘密信息;
4)攻擊者可以是系統的某個合法用戶,擁有屬于自身合法的UKey和用戶口令,能夠訪問固態盤中屬于自己的數據;
5)攻擊者可以拿到加密固態盤對其加密手段進行破解,但無法同時獲取用戶Ukey;
6)攻擊者擁有多項式計算能力,可以輕易地破解低熵密碼或者口令,但無法預測隨機數,同時無法在給定時間內在沒有對應密鑰的情況下從給定的密文中破解出明文,也無法將給定明文加密成一個有效密文。
對協議認證性和保密性進行檢測,檢測結果如圖3、圖4 所示。

圖3 協議運行序列

圖4 協議驗證結果信息
由協議運行序列圖可知,協議運行過程中攻擊者無法進行有效攻擊。由協議驗證結果信息圖可知,單個全局系統狀態需要96字節內存,檢測后狀態樹深度27層,無錯誤發生。檢測結果表明了所設計協議的安全性。
形式化分析證明協議具備對重放攻擊,中間人攻擊等攻擊手段的防護能力。針對攻擊者可能具備的其它攻擊手段,對協議安全特性進行分析。
(1)抗惡意女仆攻擊:方案采用UKey和用戶口令認證,實現what you have和what you know的雙因子認證。攻擊者即便通過技術手段竊取到用戶設置的口令,在沒有得到UKey的情況下也無法對加密固態盤中數據進行解密讀取;
(2)會話密鑰的保護:DPA(差分功耗攻擊)通過監測在同一密鑰下多組數據的加解密從而積累所使用密鑰的旁路信息來進行密鑰的恢復[12]。會話密鑰以PUF值為可信根,引入隨機數作為動態密鑰分量。由于認證過程所使用的認證密鑰每一步都引入了隨機數參與,每一次認證的會話密鑰均是動態變化的。也無法通過讓被認證方反復執行解密運算,獲取大量功耗或電磁波形從而分析出認證密鑰。即便攻擊者通過側信道分析出某一次的會話密鑰,也無法獲取后續會話密鑰。對側信道攻擊和中間人攻擊具備一定防護能力;
(3)數據密鑰的保護:傳統加密固態盤數據密鑰保護方法將密鑰直接保存在固態盤或者UKey的flash中,故容易遭受侵入式或半侵入式攻擊。本協議中數據密鑰的保護采用固態盤物理指紋即PUF值作為最高可信根,結合用戶身份信息對數據密鑰進行加密,只有通過雙向認證UKey才會向外發送加密后的數據密鑰。方案同時實現數據密鑰與固態盤的物理隔離,單獨獲取UKey或者加密固態盤均無法恢復出完整數據密鑰;
(4)抗物理探測攻擊:加密固態盤除自身PUF模塊以外不存儲會話密鑰相關信息,輔助數據及口令值均由UKey提供,即使攻擊者直接使用侵入式或半侵入式手段獲取了PUF的結構,由于PUF的物理不可克隆性,也無法恢復出會話密鑰SK的值;
(5)攻擊者即便是系統某合法用戶,由于合法用戶的UKey僅存儲自身口令與固態盤物理指紋拼接之后的散列值,無法獲得原始固態盤物理指紋,同時由于雙向認證協議的存在,無法冒充加密固態盤,從而無法獲取其它合法用戶的數據密鑰以及訪問其它合法用戶所存儲的數據。
本文提出一種基于PUF的安全固態盤雙向認證協議,實現對加密固態盤的身份認證和密鑰管理。所設計協議利用PUF作為認證過程最高可信根,相比傳統固態盤身份認證協議,無需在盤端存儲認證密鑰。在每次握手交互過程中引入隨機數隱藏固定共享密鑰信息,能夠有效抵抗重放攻擊,物理探測攻擊,側信道攻擊。同時,該協議將PUF部署到固態盤端,無需提取并存儲大量PUF原始數據,將用戶口令、UKey設備ID與PUF值結合作為根密鑰防止惡意女仆攻擊,同時可針對多合法用戶進行部署,有利于固態盤分區加密多用戶場景使用。在日益嚴峻的信息安全大環境下,該協議對抵御非法訪問和惡意攻擊具備一定意義。