咸 凜,郝 嘉
(中國電子科技集團(tuán)第三十研究所,四川 成都 610000)
PUF是近年來安全保密領(lǐng)域的新概念,因其自身特殊性,非常適合于解決目前存在的信息安全問題,于是成為安全領(lǐng)域的研究熱點。由于它在系統(tǒng)認(rèn)證和密鑰生成等方面具有廣泛的潛在應(yīng)用前景,因此研究PUF在實際密碼系統(tǒng)中的使用,既可以更好地理解和應(yīng)用PUF,也便于在以后研究和開發(fā)中有效提升密碼系統(tǒng)的安全性。
在傳統(tǒng)的PBE系統(tǒng)中,密鑰通過“鹽(salt)+口令”的方式進(jìn)行生成保護(hù),其中“鹽”由偽隨機(jī)數(shù)發(fā)生器產(chǎn)生。PBE系統(tǒng)通過鹽和口令生成密鑰加密密鑰(Key Encrypting Key,KEK),再使用KEK對用戶的內(nèi)容加密密鑰(Contents Encrypting Key,CEK)進(jìn)行加密保護(hù),最后PBE將鹽與加密保護(hù)后的CEK數(shù)據(jù)存儲在系統(tǒng)中的非易失存儲器中。圖1顯示了現(xiàn)有PBE系統(tǒng)密鑰的生成方式。
圖1 現(xiàn)有PBE系統(tǒng)密鑰生成
在PBE系統(tǒng)中,偽隨機(jī)數(shù)發(fā)生器用于產(chǎn)生系統(tǒng)密鑰保護(hù)使用的“鹽”,而鹽在PBE系統(tǒng)中用來保護(hù)KEK,防御字典攻擊[1]??梢姡}的安全將直接影響整個系統(tǒng)的安全性。
現(xiàn)有偽隨機(jī)數(shù)生成器大都基于公開算法,因此只要獲得偽隨機(jī)數(shù)的生成種子,攻擊者就可以輕易偽造一個與原偽隨機(jī)數(shù)發(fā)生器響應(yīng)行為一模一樣的克隆偽隨機(jī)數(shù)發(fā)生器,從而獲得PBE系統(tǒng)的鹽。攻擊者在獲得鹽后,即可根據(jù)字典數(shù)據(jù)生成大量候選KEK,解密加密的CEK,大幅度縮減破譯嘗試時間。在獲得鹽和破譯的CEK后,攻擊者還可以完美克隆PBE系統(tǒng),進(jìn)而對整個密碼密鑰系統(tǒng)造成更大破壞。
物理不可克隆函數(shù)(Physical Unclonable Function, PUF)是指對一個物理實體輸入一個激勵,利用其不可避免的內(nèi)在物理構(gòu)造的隨機(jī)差異輸出一個不可預(yù)測的響應(yīng)?,F(xiàn)實中,每一個物理對象在加工制造過程中由于制造工藝的局限性,在物理對象內(nèi)部會引入一些隨機(jī)差異(變化),且這些隨機(jī)差異的引入在制造過程中是不可控、無法避免也無法復(fù) 制的[2]。
因此,在PBE系統(tǒng)中使用PUF,從信息安全的角度來看,具有以下優(yōu)勢。
(1)具有天然的物理防克隆攻擊特性。由于制造工藝的局限性,無法復(fù)制兩個一樣的PUF設(shè)備。在PBE系統(tǒng)中使用PUF,可以使得整個硬件具有物理不可克隆性。
(2)使用具有模糊提取模塊的PUF比使用非易失性存儲單元能更安全地保護(hù)鹽。在最初的生成階段,給PUF輸入一個激勵并產(chǎn)生一個響應(yīng),然后模糊提取算法根據(jù)響應(yīng)產(chǎn)生一個包含額外信息的鹽,其中額外信息被稱為輔助數(shù)據(jù)?;謴?fù)階段,只需要輸入輔助數(shù)據(jù)和激勵給模糊算法,算法即可從PUF中重建相同的鹽,再使用鹽即可重建KEK。由于鹽可以通過PUF恢復(fù),因此只需要存儲輔助數(shù)據(jù)即可。
(3)由于隨機(jī)性由設(shè)備本身提供,不需要傳統(tǒng)非易失性存儲步驟,額外地提供了對探測攻擊和其他可能的側(cè)信道攻擊的安全性。使用PUF可以在規(guī)定的時間內(nèi)派生出安全密鑰,且在使用后刪除。因此,密鑰不需要永久保存成數(shù)字格式,而只當(dāng)需要操作時出現(xiàn)在非易失性存儲器中。這限制了攻擊者提取設(shè)備中密鑰的攻擊時限,有效改善了密鑰存儲的安全性,同時大大降低了密鑰管理和維護(hù)成本[3]。
可見,在PBE系統(tǒng)中使用PUF生成和保護(hù)密鑰,可以有效抵抗克隆攻擊。
初始化階段,采用模糊注冊算法[4]使PUF生成鹽的過程如圖2所示。首先,激勵進(jìn)入PUF產(chǎn)生響應(yīng)值;其次,響應(yīng)值與糾錯碼字異或產(chǎn)生輔助數(shù)據(jù);最后,將產(chǎn)生的響應(yīng)值作為鹽送入后級使用,同時存儲產(chǎn)生的安全數(shù)據(jù)。
圖2 PUF生成鹽和輔助數(shù)據(jù)
基于PUF的PBE系統(tǒng)初始化過程如圖3所示。
基于PUF的PBE初始化包括以下三個步驟:
(1)生成鹽和KEK,激勵輸入PUF產(chǎn)生輔助數(shù)據(jù)和鹽,將用戶口令和鹽一起輸入單向散列函數(shù),得到的散列值就是KEK;
(2)加密會話密鑰,KEK生成完成后,使用KEK對CEK進(jìn)行加密;
(3)丟棄KEK,將并加密后的CEK和輔助數(shù)據(jù)一起保存在安全的地方,KEK可通過輔助數(shù)據(jù)和口令重建。
PBE初始化完成后,正式使用時需要采用模糊提取算法[5]通過輔助數(shù)據(jù)重建鹽,再利用鹽和口令重建KEK,進(jìn)而解密得到CEK。
鹽的重建過程如圖4所示。首先,將與初始化過程相同的激勵輸入PUF產(chǎn)生響應(yīng)值;其次,將響應(yīng)值與輔助數(shù)據(jù)異或產(chǎn)生糾錯碼;再次,將糾錯碼送入解碼器通過糾錯算法進(jìn)行糾錯;最后,將解碼器產(chǎn)生的糾錯碼與輔助數(shù)據(jù)異或產(chǎn)生響應(yīng),此時的響應(yīng)即是鹽。
圖4 鹽的重建
PBE系統(tǒng)在PUF完成鹽的重建后即可恢復(fù)KEK,進(jìn)入正常工作流程?;赑UF的PBE系統(tǒng)的工作流程如圖5所示。
圖5 基于PUF的PBE系統(tǒng)工作流程
基于PUF的PBE系統(tǒng)工作流程包括以下三個步驟:
(1)重建KEK,利用輔助安全數(shù)據(jù)和PUF,使用模糊提取算法重建鹽,再將鹽和用戶口令輸入單向散列函數(shù),重建KEK;
(2)解密會話密鑰,利用重建的KEK密鑰對加密存儲的會話密鑰進(jìn)行解密,恢復(fù)會話密鑰;
(3)使用解密得到的會話密鑰完成消息的加解密。
需要特別注意,傳統(tǒng)PBE系統(tǒng)在使用時,用戶只需要正確輸入口令即可正常使用PBE系統(tǒng)。相較于傳統(tǒng)PBE系統(tǒng),基于PUF的PBE系統(tǒng)除了要求用戶在使用時正確輸入口令外,還需要輸入與初始化階段一致的正確激勵。如果缺少激勵,即便用戶輸入正確口令,PBE系統(tǒng)也無法正常使用。
由于基于PUF的PBE系統(tǒng)具有這樣一種“激勵”的特性,可以將“激勵”與身份認(rèn)證、接入鑒權(quán)等安全功能進(jìn)行拓展綁定。用戶想獲得正確的激勵則,需要通過相關(guān)的安全檢查,進(jìn)一步提升整個PBE系統(tǒng)的安全性。同時,由于鹽的重建依賴于輔助數(shù)據(jù)和PUF對輸入激勵產(chǎn)生的物理響應(yīng),因此可以將輔助數(shù)據(jù)、激勵甚至加密后的CEK存放在專門的服務(wù)器上,只在使用時下發(fā),最大程度減少PBE系統(tǒng)攜帶的密碼資源,保障PBE系統(tǒng)的安全。即便PBE系統(tǒng)遇到了丟失或被攻擊者捕獲,由于PUF具有物理不可克隆性,攻擊者也無法克隆PBE系統(tǒng),最大程度減少了系統(tǒng)面臨的安全風(fēng)險。
在PBE系統(tǒng)中使用PUF,為PBE系統(tǒng)的密鑰管理與安全增強(qiáng)提供了一種新思路。區(qū)別于傳統(tǒng)的密鑰提取與管理技術(shù),基于PUF的PBE系統(tǒng)將物理特性與密鑰生成管理結(jié)合,賦予了系統(tǒng)良好的抗攻擊性。相比傳統(tǒng)密鑰,基于PUF的PBE系統(tǒng)可以攜帶極少密碼資源,因此具有管理成本低、隱秘性強(qiáng)的特點,同時又由于繼承了PUF技術(shù)的天然特性,系統(tǒng)還具有防止字典攻擊和克隆攻擊的優(yōu)點。隨著PUF技術(shù)的進(jìn)一步成熟,PUF技術(shù)有望在越來越多的密碼系統(tǒng)中得到應(yīng)用,并作為重要的安全技術(shù)手段顯著增強(qiáng)密碼系統(tǒng)的安全性。