馮志華,羅 重+,鄢軍霞,鄧 威
(1.中國(guó)航天科工集團(tuán)第二研究院 北京計(jì)算機(jī)技術(shù)及應(yīng)用研究所,北京 100854; 2.武漢軟件工程職業(yè)學(xué)院 信息學(xué)院,湖北 武漢 430205)
固態(tài)盤由于其出色的數(shù)據(jù)讀寫(xiě)性能,逐漸成為主流存儲(chǔ)載體,存儲(chǔ)著大量企業(yè)和個(gè)人的機(jī)密數(shù)據(jù)和敏感信息。為確保所存儲(chǔ)重要數(shù)據(jù)的安全,當(dāng)前主要采用加密的方法對(duì)固態(tài)盤中的數(shù)據(jù)進(jìn)行保護(hù)。
然而僅考慮對(duì)數(shù)據(jù)的加密不足以保證數(shù)據(jù)的安全。Gemalto公司2019年更新的數(shù)據(jù)泄露水平指數(shù)(breach level index)最新調(diào)查報(bào)告顯示,敏感數(shù)據(jù)的安全問(wèn)題主要來(lái)自存儲(chǔ)介質(zhì)的遺失和盜用,而非病毒和黑客。設(shè)計(jì)安全的密鑰管理機(jī)制和身份認(rèn)證協(xié)議成為固態(tài)盤數(shù)據(jù)安全的基礎(chǔ)。
現(xiàn)有針對(duì)固態(tài)盤的身份認(rèn)證和密鑰管理存在著以下難點(diǎn):
(1)身份認(rèn)證:簡(jiǎn)單的口令認(rèn)證容易因熵值過(guò)低而易被攻破,而引入生物特征作為認(rèn)證因子在提高安全性的同時(shí)也會(huì)帶來(lái)較高成本。對(duì)于身份認(rèn)證協(xié)議,選擇可靠有效的身份認(rèn)證因子能夠直接影響身份認(rèn)證協(xié)議安全性的強(qiáng)弱[1];
(2)密鑰管理:直接將密鑰存儲(chǔ)于固態(tài)盤內(nèi)存在較大安全隱患,有研究結(jié)果表明,當(dāng)口令與數(shù)據(jù)密鑰無(wú)關(guān)時(shí)攻擊者可能繞過(guò)加密固態(tài)盤身份認(rèn)證過(guò)程從而直接獲取數(shù)據(jù)密鑰[2]。分布式密鑰托管方案受使用環(huán)境的局限性較大,過(guò)于依賴密管中心(key distribution center,KDC)的運(yùn)行[3]。
針對(duì)以上問(wèn)題,本文提出一種基于PUF的安全固態(tài)盤兩方認(rèn)證協(xié)議。以加密固態(tài)盤PUF模塊生成的物理指紋作為身份認(rèn)證和密鑰管理過(guò)程中的最高可信根,實(shí)現(xiàn)多用戶環(huán)境下固態(tài)盤用戶的身份識(shí)別和密鑰分發(fā)。并使用BAN邏輯對(duì)所設(shè)計(jì)身份認(rèn)證協(xié)議進(jìn)行形式化分析證明其安全性。
出于安全考慮,當(dāng)前固態(tài)盤主要采用加密方式對(duì)數(shù)據(jù)進(jìn)行保護(hù)。在直接暴力破解加密算法的收益遠(yuǎn)低于成本的情況下,攻擊者更傾向于繞過(guò)密碼算法對(duì)固態(tài)盤進(jìn)行攻擊。因此,出于密鑰管理、身份認(rèn)證以及固態(tài)盤自身特性引起的安全威脅尤其值得注意。固態(tài)盤安全威脅如圖1所示。
圖1 固態(tài)盤安全威脅
密鑰管理是固態(tài)盤數(shù)據(jù)存儲(chǔ)安全的核心。加密固態(tài)盤密鑰管理有多種形式。將數(shù)據(jù)密鑰存儲(chǔ)于固態(tài)盤內(nèi)是常用的解決方案,一旦設(shè)備失竊,攻擊者可以通過(guò)某些特定攻擊手段獲取密鑰進(jìn)而獲取所存秘密信息。荷蘭拉德堡德大學(xué)研究人員發(fā)現(xiàn)部分加密固態(tài)盤自加密功能能夠被輕易繞過(guò),當(dāng)數(shù)據(jù)密鑰不是由用戶口令值派生時(shí),攻擊者可以通過(guò)固態(tài)盤的調(diào)試接口,對(duì)固態(tài)盤固件進(jìn)行篡改,改變RAM中固件的原始認(rèn)證機(jī)制,跳過(guò)身份認(rèn)證環(huán)節(jié)從而直接獲取數(shù)據(jù)密鑰解密固態(tài)盤中的數(shù)據(jù)[2]。因此對(duì)于固態(tài)盤固件的升級(jí)和使用也應(yīng)采取防護(hù)手段防止安全機(jī)制的失控。
將密鑰直接存儲(chǔ)在固態(tài)盤內(nèi)同時(shí)存在其它安全隱患。固態(tài)盤使用閃存作為數(shù)據(jù)存儲(chǔ)介質(zhì),為延長(zhǎng)閃存顆粒使用壽命,需要在閃存顆粒變得不可靠之前進(jìn)行磨損均衡。同時(shí)垃圾回收機(jī)制的存在會(huì)使得固態(tài)盤內(nèi)數(shù)據(jù)產(chǎn)生不可預(yù)料的易地搬遷行為。原始存儲(chǔ)的數(shù)據(jù)在未被覆蓋之前一直都會(huì)存在。如果數(shù)據(jù)密鑰直接存儲(chǔ)在固態(tài)盤中未單獨(dú)隔離出的受保護(hù)存儲(chǔ)區(qū)域,那么未受保護(hù)的數(shù)據(jù)密鑰在刪除之后仍有可能被檢索出來(lái)。
依賴KDC進(jìn)行密鑰管理與身份認(rèn)證的方案雖然不需要在固態(tài)盤內(nèi)存儲(chǔ)密鑰,但同樣存在一系列問(wèn)題。在固態(tài)盤工作時(shí),每一個(gè)新的用戶任務(wù)執(zhí)行都需要有KDC的授權(quán)認(rèn)證,一旦KDC發(fā)生故障,整個(gè)存儲(chǔ)系統(tǒng)都無(wú)法使用。所有的用戶密鑰都存放在KDC中,一旦KDC被攻破,整個(gè)存儲(chǔ)系統(tǒng)的數(shù)據(jù)都面臨失竊的風(fēng)險(xiǎn)。其訪問(wèn)控制過(guò)于依賴代碼的安全性和健壯性,當(dāng)認(rèn)證協(xié)議設(shè)計(jì)不完善時(shí)可能遭受信道監(jiān)聽(tīng)重放等攻擊。同時(shí)其存在內(nèi)部管理員通過(guò)訪問(wèn)權(quán)限繞過(guò)訪問(wèn)控制的缺陷[3]。
作為數(shù)據(jù)存儲(chǔ)設(shè)備,加密固態(tài)盤出于使用環(huán)境以及管理手段的限制,用戶可能無(wú)法完全隔離攻擊者對(duì)加密固態(tài)盤的接觸,因此有必要在固態(tài)盤與主機(jī)接口處實(shí)現(xiàn)訪問(wèn)控制機(jī)制。針對(duì)加密硬盤的典型攻擊手段“惡意女仆攻擊”(evil maid attack)[4]是加密固態(tài)盤面臨的一大安全挑戰(zhàn)。通過(guò)該攻擊手段,惡意人員可能在加密固態(tài)盤擁有者離開(kāi)設(shè)備時(shí)直接接觸設(shè)備,通過(guò)修改主引導(dǎo)區(qū)程序記錄執(zhí)行擊鍵記錄,插入微型可啟動(dòng)USB設(shè)備,刷新BIOS或UEFI,甚至用相同的型號(hào)替換機(jī)器[4,5],從而盜取用戶口令獲得加密硬盤的訪問(wèn)權(quán)限。因此,將加密固態(tài)盤的安全性寄托于用戶口令的保護(hù)上是不完善的,需要引入固態(tài)盤硬件特性增強(qiáng)數(shù)據(jù)安全性。
面對(duì)固態(tài)盤面臨的安全威脅,為確保存儲(chǔ)數(shù)據(jù)的安全,必須提出有效的身份認(rèn)證協(xié)議及密鑰管理方案。
最早于1981年提出基于口令的用戶認(rèn)證和密鑰協(xié)商協(xié)議之后,許多基于該思想的認(rèn)證協(xié)議被提出。然而由于口令的低熵特性,這類協(xié)議容易受到口令猜測(cè)攻擊。為克服基于口令的認(rèn)證協(xié)議所面臨的困難,結(jié)合生物特征和口令的多因子認(rèn)證協(xié)議應(yīng)運(yùn)而生。相比基于口令的認(rèn)證協(xié)議,使用人臉、指紋、虹膜、指靜脈等生物特征的認(rèn)證協(xié)議中,認(rèn)證因子不易遺失,提高了猜測(cè)、復(fù)制難度,但仍存在生物特征被復(fù)制盜用風(fēng)險(xiǎn),且需要額外的特征提取裝置,實(shí)現(xiàn)更為復(fù)雜且成本相對(duì)較高。
類似于生物特征,在芯片制造過(guò)程中不可避免的引入隨機(jī)制造差異,不同實(shí)體電路擁有獨(dú)一無(wú)二的物理“指紋信息”,即PUF技術(shù)[6,7]。其優(yōu)勢(shì)在于。
(1)PUF信息隨電路實(shí)體綁定,不存在遺忘的風(fēng)險(xiǎn);
(2)PUF信息無(wú)法被克??;
(3)猜測(cè)PUF值十分困難。
因此選擇PUF作為安全協(xié)議最高可信根,對(duì)身份認(rèn)證和數(shù)據(jù)密鑰進(jìn)行保護(hù)。
本文提出的固態(tài)盤雙向認(rèn)證協(xié)議在挑戰(zhàn)-響應(yīng)機(jī)制的基礎(chǔ)上,在擁有PUF實(shí)體的加密固態(tài)盤、UKey和用戶三方之間進(jìn)行相互認(rèn)證。用戶提供口令的認(rèn)證。UKey擁有單向散列函數(shù)H,對(duì)稱加密算法E。加密固態(tài)盤擁有單向散列算法H,對(duì)稱加密算法E,PUF實(shí)體,模糊提取函數(shù)Gen和Rep。加密固態(tài)盤上電后PUF模塊輸出經(jīng)模糊提取器糾錯(cuò)之后的加密固態(tài)盤物理指紋F,F(xiàn)僅在固態(tài)盤主控芯片片內(nèi)使用。協(xié)議應(yīng)用安全模型如圖2所示。
圖2 安全模型
該模型包含UKey、加密固態(tài)盤和用戶3個(gè)部分。在固態(tài)盤進(jìn)入正常工作狀態(tài)之前,用戶需使用UKey進(jìn)行身份認(rèn)證。用戶輸入正確的口令,UKey和固態(tài)盤控制芯片基于PUF值進(jìn)行雙向認(rèn)證,認(rèn)證通過(guò)則UKey發(fā)送所存數(shù)據(jù)密鑰密文至加密固態(tài)盤,加密固態(tài)盤解密出數(shù)據(jù)密鑰。由此對(duì)固態(tài)盤內(nèi)所存密文信息解密,進(jìn)入正常工作狀態(tài)。
對(duì)協(xié)議描述所需符號(hào)給出定義見(jiàn)表1。
單向散列函數(shù):加密單向散列函數(shù)將任意長(zhǎng)度的字符串映射到稱為散列值的固定長(zhǎng)度的字符串。它可以表示為:h∶X→Y, 其中X={0,1}*,Y={0,1}n。X是任意長(zhǎng)度的二進(jìn)制字符串,Y是固定長(zhǎng)度的二進(jìn)制字符串。加密單向散列函數(shù)具備很好的抗原像攻擊、抗第二原像攻擊和抗強(qiáng)碰撞攻擊的特性,不可能從計(jì)算得來(lái)的散列值來(lái)逆向計(jì)算其輸入值,因此能很好地保護(hù)原始信息不被泄漏。
模糊提取器:模糊提取器實(shí)現(xiàn)PUF值糾錯(cuò)功能,上電之后輸出具備一致性的上電初始值,為固態(tài)盤提供穩(wěn)定物理指紋信息。模糊提取器(fuzzy extractor)[8,9]可很好地實(shí)現(xiàn)PUF值糾錯(cuò)的功能:模糊提取器是一對(duì)隨機(jī)流程,分為生成(generate)和重現(xiàn)(reproduce),用于獲得具備一致性的PUF響應(yīng)。
表1 符號(hào)定義
Gen:以PUF上電初始值P為輸入,結(jié)合隨機(jī)數(shù)r生成加密固態(tài)盤物理指紋F和輔助數(shù)據(jù)HD=(w,r)。
Rep:以帶噪音的PUF上電初始值P′和輔助數(shù)據(jù)HD=(w,r) 為輸入,輸出加密固態(tài)盤物理指紋F。 其中每次上電初始值間的漢明距離dist(P,P′) 必須小于一定值。
輔助數(shù)據(jù)無(wú)需保密,因?yàn)榧词公@取輔助數(shù)據(jù)也可保證輸出的不可預(yù)測(cè)性[10]。但是需要保證輔助數(shù)據(jù)的完整性才可恢復(fù)出具有一致性的PUF值,因此輔助數(shù)據(jù)附帶校驗(yàn)信息,使用散列函數(shù)即可實(shí)現(xiàn)完整性校驗(yàn)。
所提出的雙向認(rèn)證協(xié)議包含3個(gè)階段:注冊(cè)階段、身份認(rèn)證階段、認(rèn)證密鑰更換階段。
(1)注冊(cè)階段
注冊(cè)階段,在安全的環(huán)境下,即設(shè)備管理員確認(rèn)用戶真實(shí)物理身份,同時(shí)確認(rèn)固態(tài)盤主機(jī)無(wú)擊鍵記錄,搭線,病毒等安全威脅的環(huán)境下,將加密固態(tài)盤與用戶身份綁定。用戶i將UKeyUi插入主機(jī),設(shè)置初始口令值ki, 口令ki的hash值Ki=H(ki), 計(jì)算PIDi=H(IDi‖Ki)。 加密固態(tài)盤上電后獲得初始響應(yīng)值P,模糊提取函數(shù)Gen從P中獲取加密固態(tài)盤物理指紋F和輔助數(shù)據(jù)HD。 加密固態(tài)盤拼接口令hash值Ki和物理指紋F得Ki‖F(xiàn), 計(jì)算拼接值的hash值H(Ki‖F(xiàn))。 加密固態(tài)盤無(wú)需存儲(chǔ)認(rèn)證密鑰相關(guān)信息,僅需維持用戶PIDi表以及記錄對(duì)應(yīng)PIDi所在數(shù)據(jù)分區(qū)。UKey存儲(chǔ)Di=H(Ki‖F(xiàn))、 輔助數(shù)據(jù)HD以及用戶口令ki的hash值Ki=H(ki)。
使用加密固態(tài)盤物理指紋F和用戶身份信息拼接值的散列值Keyi=H(PIDi‖F(xiàn)) 作為根密鑰加密固態(tài)盤數(shù)據(jù)密鑰DKi得 {DKi}Keyi, 存儲(chǔ)于UKey中。
(2)身份認(rèn)證階段
欲訪問(wèn)加密固態(tài)盤中存儲(chǔ)的數(shù)據(jù)時(shí),用戶需配合UKey進(jìn)行身份認(rèn)證。
身份認(rèn)證階段具體步驟如下:
2)加密固態(tài)盤收到認(rèn)證請(qǐng)求命令之后生成隨機(jī)數(shù)r1, 發(fā)送M1=
3)UKey接收消息M1, 生成隨機(jī)數(shù)r2, 使用注冊(cè)階段存儲(chǔ)的Di=H(Ki‖F(xiàn)) 作為密鑰分量,計(jì)算
SK1=H(r1⊕Di)C1=ESK1(r1‖r2)
計(jì)算結(jié)束UKey發(fā)送M2=
4)加密固態(tài)盤接收消息M2, 生成隨機(jī)數(shù)r3。 使用模糊提取函數(shù)Rep和輔助數(shù)據(jù)HD從PUF上電初始值中提取物理指紋信息F, 使用F計(jì)算認(rèn)證密鑰SK1
加密固態(tài)盤發(fā)送M3=
5)UKey接收消息M3, 計(jì)算
C3=ESK2(r3‖{{DKi}Keyi})
(3)認(rèn)證密鑰更換階段
認(rèn)證密鑰更換階段發(fā)生于用戶需要更換口令的時(shí)刻。更換流程如下:
1)身份認(rèn)證執(zhí)行完畢的情況下,用戶輸入認(rèn)證密鑰更換命令,加密固態(tài)盤生成并發(fā)送隨機(jī)數(shù)r4;
2)用戶輸入新口令k′, UKey計(jì)算K′=H(k′), 生成隨機(jī)數(shù)r5, 計(jì)算SK3=H(r4⊕Di)
C4=ESK3(r4‖r5‖HD‖Ki‖K′i)
向加密固態(tài)盤發(fā)送M5=
3)加密固態(tài)盤接收M5, 生成隨機(jī)數(shù)r6, 使用模糊提取器和散列函數(shù)計(jì)算會(huì)話密鑰并解密C4, 驗(yàn)證r4是否相符,相符則計(jì)算
D′i=H(F‖K′i)SK4=H(r5⊕Di)C5=ESK3(r5‖r6‖D′i)
向UKey發(fā)送M6=
4)UKey接收M6并解密C5, 計(jì)算
SK5=H(r6⊕D′i)C6=ESK5(r6)
向加密固態(tài)盤發(fā)送M7=
5)加密固態(tài)盤接收M7并以D′i和r6恢復(fù)會(huì)話密鑰SK5解密C6, 驗(yàn)證r6是否相符,相符則確認(rèn)密鑰更換流程完成,認(rèn)證密鑰更換流程結(jié)束。
本方案設(shè)計(jì)中,數(shù)據(jù)密鑰由根密鑰加密存儲(chǔ)于UKey中,實(shí)現(xiàn)數(shù)據(jù)密鑰與加密數(shù)據(jù)的物理隔離。根密鑰由加密固態(tài)盤PUF值,UKey設(shè)備ID以及用戶口令K三者共同組成,確保攻擊者無(wú)法在未知口令的情況下通過(guò)篡改認(rèn)證機(jī)制獲取固態(tài)盤數(shù)據(jù)密鑰。
用戶通過(guò)口令驗(yàn)證同時(shí)UKey完成與加密固態(tài)盤的相互認(rèn)證之后,UKey使用最后一次握手的會(huì)話密鑰加密所存數(shù)據(jù)密鑰傳遞至加密固態(tài)盤,確保安全的將數(shù)據(jù)密鑰傳遞給加密固態(tài)盤。
BAN邏輯作為安全協(xié)議有效的形式化驗(yàn)證模型,被廣泛用于分析身份驗(yàn)證和密鑰分發(fā)協(xié)議的安全性。本文使用BAN邏輯分析提出的身份認(rèn)證協(xié)議,從形式化角度證明協(xié)議安全性。認(rèn)證密鑰更換協(xié)議分析流程類似,故不再贅述。
對(duì)前述身份認(rèn)證協(xié)議進(jìn)行理想化,理想化過(guò)程如下:
(1)口令認(rèn)證及用戶身份信息PIDi發(fā)送;
(2)固態(tài)盤收到認(rèn)證請(qǐng)求和用戶身份信息PIDi之后,返回隨機(jī)數(shù)和身份信息PIDi⊕r1異或值,r1可視作由PIDi加密,PIDi為加密固態(tài)盤和UKey共享密鑰。M1∶S→U∶{r1}PIDi;
(3)UKey接收消息M1后解析并處理生成消息M2, 發(fā)送至加密固態(tài)盤M2∶U→S∶{{r1‖r2}SK1,HD,K};
(4)加密固態(tài)盤接收消息M2并處理,驗(yàn)證UKey是否合法,合法則生成消息M3, 發(fā)送至UKeyM3∶S→U∶{r2‖r3}SK2;
(5)UKey接收消息M3并處理,驗(yàn)證加密固態(tài)盤是否合法,合法則生成消息M4, 發(fā)送數(shù)據(jù)密鑰至加密固態(tài)盤M4∶U→S∶{r3‖{KEY}}SK2
Key={DKi}Keyi)
(1)用到的BAN邏輯推理規(guī)則消息含義規(guī)則
臨時(shí)值驗(yàn)證規(guī)則
接收消息規(guī)則
消息新鮮性規(guī)則
信念規(guī)則
密鑰與秘密規(guī)則
會(huì)話密鑰規(guī)則
(2)初始化假設(shè)
由于加密固態(tài)盤會(huì)話密鑰生成過(guò)程如下F=Rep(P,HD),D=H(F‖K),SKi=H(ri‖D)。 UKey在注冊(cè)階段已存儲(chǔ)會(huì)話密鑰分量D, 因此假設(shè)A1,A2成立。r1為會(huì)話密鑰SK1的必要參數(shù),r2為會(huì)話密鑰SK2的必要參數(shù)。而會(huì)話過(guò)程中S認(rèn)為r1是新鮮的,假設(shè)A3成立,根據(jù)消息新鮮性規(guī)則可認(rèn)為消息M2中的r2也是新鮮的。由會(huì)話密鑰規(guī)則知如果委托人P認(rèn)為會(huì)話密鑰是新鮮的并且委托人P和Q認(rèn)為X是會(huì)話密鑰的必要參數(shù),則委托人P認(rèn)為他/她與Q共享會(huì)話密鑰K,故有A5和A6成立。
同上,r2為會(huì)話密鑰SK2的必要參數(shù),而會(huì)話過(guò)程中U認(rèn)為r2是新鮮的,假設(shè)A4成立。由會(huì)話密鑰規(guī)則知A7成立。
因此,給出身份認(rèn)證協(xié)議的初始化假設(shè)
(3)預(yù)期證明目標(biāo)
(4)形式化分析過(guò)程
U收到消息M3時(shí),U?{r2}SK2。
根據(jù)消息含義規(guī)則可得
(1)
由假設(shè)A4可知,U|≡#(r2)。
由臨時(shí)值驗(yàn)證規(guī)則可知
(2)
S收到消息M2時(shí),S?{r1}SK1。
由臨時(shí)值驗(yàn)證規(guī)則可知
(3)
S收到消息M4時(shí),由消息含義規(guī)則
(4)
目標(biāo)③S|≡U|≡KEY得證。
本節(jié)使用SPIN工具對(duì)協(xié)議進(jìn)行模型檢測(cè),并對(duì)可能存在的攻擊場(chǎng)景和攻擊者行為進(jìn)行描述,給出所提出協(xié)議的特性分析。
(1)操作系統(tǒng):Windows 10;
(2)Spin版本:6.4.9;
(3)TclTk版本:8.6.8.0。
(1)誠(chéng)實(shí)主體建模
為防止反射攻擊,協(xié)議設(shè)計(jì)每條消息結(jié)構(gòu)均有所差異,因此建立四通道協(xié)議模型,減小模型復(fù)雜度防止?fàn)顟B(tài)空間爆炸問(wèn)題。
協(xié)議誠(chéng)實(shí)主體為UKey和SSD,SSD發(fā)起通信,二者互相接收消息并驗(yàn)證所接收消息合法性。
(2)攻擊者建模
考慮PUF可能會(huì)遭受侵入式和故障注入等攻擊,但這些攻擊不會(huì)破壞安全協(xié)議的完整性,同時(shí)可以通過(guò)設(shè)備層面的防護(hù)手段來(lái)解決此類攻擊[11],而且攻擊者無(wú)法對(duì)PUF進(jìn)行逆向工程,故選擇Dolev-Yao模型思想作為攻擊者模型建立依據(jù)。
1)攻擊者已知完整的身份認(rèn)證協(xié)議;
2)攻擊者無(wú)法直接通過(guò)物理接口讀取UKey內(nèi)部信息;
3)攻擊者可以截獲UKey與加密固態(tài)盤之間的通信報(bào)文,并在接下來(lái)的認(rèn)證協(xié)議中冒充協(xié)議合法主體的身份以獲取秘密信息;
4)攻擊者可以是系統(tǒng)的某個(gè)合法用戶,擁有屬于自身合法的UKey和用戶口令,能夠訪問(wèn)固態(tài)盤中屬于自己的數(shù)據(jù);
5)攻擊者可以拿到加密固態(tài)盤對(duì)其加密手段進(jìn)行破解,但無(wú)法同時(shí)獲取用戶Ukey;
6)攻擊者擁有多項(xiàng)式計(jì)算能力,可以輕易地破解低熵密碼或者口令,但無(wú)法預(yù)測(cè)隨機(jī)數(shù),同時(shí)無(wú)法在給定時(shí)間內(nèi)在沒(méi)有對(duì)應(yīng)密鑰的情況下從給定的密文中破解出明文,也無(wú)法將給定明文加密成一個(gè)有效密文。
對(duì)協(xié)議認(rèn)證性和保密性進(jìn)行檢測(cè),檢測(cè)結(jié)果如圖3、圖4 所示。
圖3 協(xié)議運(yùn)行序列
圖4 協(xié)議驗(yàn)證結(jié)果信息
由協(xié)議運(yùn)行序列圖可知,協(xié)議運(yùn)行過(guò)程中攻擊者無(wú)法進(jìn)行有效攻擊。由協(xié)議驗(yàn)證結(jié)果信息圖可知,單個(gè)全局系統(tǒng)狀態(tài)需要96字節(jié)內(nèi)存,檢測(cè)后狀態(tài)樹(shù)深度27層,無(wú)錯(cuò)誤發(fā)生。檢測(cè)結(jié)果表明了所設(shè)計(jì)協(xié)議的安全性。
形式化分析證明協(xié)議具備對(duì)重放攻擊,中間人攻擊等攻擊手段的防護(hù)能力。針對(duì)攻擊者可能具備的其它攻擊手段,對(duì)協(xié)議安全特性進(jìn)行分析。
(1)抗惡意女仆攻擊:方案采用UKey和用戶口令認(rèn)證,實(shí)現(xiàn)what you have和what you know的雙因子認(rèn)證。攻擊者即便通過(guò)技術(shù)手段竊取到用戶設(shè)置的口令,在沒(méi)有得到UKey的情況下也無(wú)法對(duì)加密固態(tài)盤中數(shù)據(jù)進(jìn)行解密讀取;
(2)會(huì)話密鑰的保護(hù):DPA(差分功耗攻擊)通過(guò)監(jiān)測(cè)在同一密鑰下多組數(shù)據(jù)的加解密從而積累所使用密鑰的旁路信息來(lái)進(jìn)行密鑰的恢復(fù)[12]。會(huì)話密鑰以PUF值為可信根,引入隨機(jī)數(shù)作為動(dòng)態(tài)密鑰分量。由于認(rèn)證過(guò)程所使用的認(rèn)證密鑰每一步都引入了隨機(jī)數(shù)參與,每一次認(rèn)證的會(huì)話密鑰均是動(dòng)態(tài)變化的。也無(wú)法通過(guò)讓被認(rèn)證方反復(fù)執(zhí)行解密運(yùn)算,獲取大量功耗或電磁波形從而分析出認(rèn)證密鑰。即便攻擊者通過(guò)側(cè)信道分析出某一次的會(huì)話密鑰,也無(wú)法獲取后續(xù)會(huì)話密鑰。對(duì)側(cè)信道攻擊和中間人攻擊具備一定防護(hù)能力;
(3)數(shù)據(jù)密鑰的保護(hù):傳統(tǒng)加密固態(tài)盤數(shù)據(jù)密鑰保護(hù)方法將密鑰直接保存在固態(tài)盤或者UKey的flash中,故容易遭受侵入式或半侵入式攻擊。本協(xié)議中數(shù)據(jù)密鑰的保護(hù)采用固態(tài)盤物理指紋即PUF值作為最高可信根,結(jié)合用戶身份信息對(duì)數(shù)據(jù)密鑰進(jìn)行加密,只有通過(guò)雙向認(rèn)證UKey才會(huì)向外發(fā)送加密后的數(shù)據(jù)密鑰。方案同時(shí)實(shí)現(xiàn)數(shù)據(jù)密鑰與固態(tài)盤的物理隔離,單獨(dú)獲取UKey或者加密固態(tài)盤均無(wú)法恢復(fù)出完整數(shù)據(jù)密鑰;
(4)抗物理探測(cè)攻擊:加密固態(tài)盤除自身PUF模塊以外不存儲(chǔ)會(huì)話密鑰相關(guān)信息,輔助數(shù)據(jù)及口令值均由UKey提供,即使攻擊者直接使用侵入式或半侵入式手段獲取了PUF的結(jié)構(gòu),由于PUF的物理不可克隆性,也無(wú)法恢復(fù)出會(huì)話密鑰SK的值;
(5)攻擊者即便是系統(tǒng)某合法用戶,由于合法用戶的UKey僅存儲(chǔ)自身口令與固態(tài)盤物理指紋拼接之后的散列值,無(wú)法獲得原始固態(tài)盤物理指紋,同時(shí)由于雙向認(rèn)證協(xié)議的存在,無(wú)法冒充加密固態(tài)盤,從而無(wú)法獲取其它合法用戶的數(shù)據(jù)密鑰以及訪問(wèn)其它合法用戶所存儲(chǔ)的數(shù)據(jù)。
本文提出一種基于PUF的安全固態(tài)盤雙向認(rèn)證協(xié)議,實(shí)現(xiàn)對(duì)加密固態(tài)盤的身份認(rèn)證和密鑰管理。所設(shè)計(jì)協(xié)議利用PUF作為認(rèn)證過(guò)程最高可信根,相比傳統(tǒng)固態(tài)盤身份認(rèn)證協(xié)議,無(wú)需在盤端存儲(chǔ)認(rèn)證密鑰。在每次握手交互過(guò)程中引入隨機(jī)數(shù)隱藏固定共享密鑰信息,能夠有效抵抗重放攻擊,物理探測(cè)攻擊,側(cè)信道攻擊。同時(shí),該協(xié)議將PUF部署到固態(tài)盤端,無(wú)需提取并存儲(chǔ)大量PUF原始數(shù)據(jù),將用戶口令、UKey設(shè)備ID與PUF值結(jié)合作為根密鑰防止惡意女仆攻擊,同時(shí)可針對(duì)多合法用戶進(jìn)行部署,有利于固態(tài)盤分區(qū)加密多用戶場(chǎng)景使用。在日益嚴(yán)峻的信息安全大環(huán)境下,該協(xié)議對(duì)抵御非法訪問(wèn)和惡意攻擊具備一定意義。
計(jì)算機(jī)工程與設(shè)計(jì)2020年3期