《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于PUF的可信根及可信計算平臺架構(gòu)設計
基于PUF的可信根及可信計算平臺架構(gòu)設計
2018年電子技術應用第9期
吳 縉,徐金甫
解放軍信息工程大學,河南 鄭州450001
摘要: 物理不可克隆函數(shù)(Physical Unclonable Functions,PUF)在設備認證和安全密鑰存儲等應用中具有高度靈活性,并被廣泛用于嵌入式系統(tǒng)的安全防護。利用PUF技術為雙核安全架構(gòu)提供可信根(PUF-based Root of Trust,PRoT),設計了以PRoT為信任錨點的信任鏈和密鑰更新協(xié)議,保證了在SoC系統(tǒng)上可信關系的逐級擴展以及安全啟動的可靠性和安全性。通過測試實驗表明,PUF能夠為嵌入式系統(tǒng)提供安全靈活的可信根,PRoT能夠以較小TCB運行于雙核隔離SoC系統(tǒng)中,其隨機數(shù)種子和唯一設備密鑰對多種攻擊具有抗性。
中圖分類號: TP309
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.175075
中文引用格式: 吳縉,徐金甫. 基于PUF的可信根及可信計算平臺架構(gòu)設計[J].電子技術應用,2018,44(9):34-38.
英文引用格式: Wu Jin,Xu Jinfu. Trusted root and trusted computing platform architecture design based on physical unclonable function[J]. Application of Electronic Technique,2018,44(9):34-38.
Trusted root and trusted computing platform architecture design based on physical unclonable function
Wu Jin,Xu Jinfu
The PLA Information Engineering University,Zhengzhou 450001,China
Abstract: Physical Unclonable Functions(PUFs) are highly flexible in applications such as device authentication and secure key storage, and are widely used in embedded system security. In this paper, we use PUF technology to provide the root of trust(RoT) for dual-core security architecture, and design the chain of trust and key update protocol based on PUF-based RoT, to ensure the gradual extension of trusted relationship and the reliability and security of secure boot on SoC system. The experimental results show that PUF-based RoT can operate in a dual-core isolated SoC system with a small TCB, and its random number seed and unique device key are resistant to multiple attacks. It proves that the PUF can provide the security and flexibility RoT for the embedded system.
Key words : PUF;the root of trust;the chain of trust;trusted computing

0 引言

    為有效防御惡意用戶非法訪問SoC中的敏感數(shù)據(jù)或危害其他部件,文獻[1]提出了基于雙核的通用計算與安全管控隔離的SoC架構(gòu)(下面簡稱“雙核安全架構(gòu)”),實現(xiàn)了安全核對計算核的安全啟動、主動度量、實時監(jiān)控、訪問控制等安全服務。但這一架構(gòu)只能提供“隔離”而不是“可信”的執(zhí)行環(huán)境,因為它無法向用戶或外部驗證者證明運行在執(zhí)行環(huán)境中的軟件是不可篡改的。當前主流的驗證技術是利用認證密鑰對軟件度量值進行簽名和驗簽,而認證密鑰和軟件度量值都通過可信根來安全存儲[2]。因此,一個隔離的執(zhí)行環(huán)境只有配備了可信根才能真正構(gòu)成可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE)。

    國內(nèi)外針對可信根構(gòu)建技術進行了許多研究。ARM公司基于GlobalPlatform TEE API標準定義了TrustZone應用平臺架構(gòu),利用硬件密鑰、密碼加速器、安全芯片等硬件資源來構(gòu)建可信根[3-4]。文獻[5]提出使用PUF來保護TEE的方法,但只考慮了TrustZone應用平臺上的安全啟動過程,而忽視了認證、加密等安全防護功能,且沒有給出具體設計實現(xiàn)。文獻[6]提出了一種便攜式可信計算模塊TEEM,可為各種計算平臺提供可信計算功能,但沒有實現(xiàn)TEEM與Rich OS的隔離,TEEM運行于整個Linux操作系統(tǒng),使得可信計算基(Trusted Computing Base,TCB)非常龐大,且沒有考慮如何建立TEEM的信任鏈。

    鑒于上述方法均無法構(gòu)建高效靈活安全的可信根,本文提出了利用PUF技術為雙核安全架構(gòu)提供可信根PRoT,設計了基于PRoT的信任鏈,以保證可信關系的逐級擴展。實驗結(jié)果表明,PUF為嵌入式系統(tǒng)提供的可信根具有安全性,并根據(jù)PRoT部署了密鑰更新協(xié)議,進一步增強了系統(tǒng)的靈活性和攻擊抗性。

1 基于PUF的可信根PRoT

    具有輕量級屬性的PUF適用于資源受限的嵌入式設備[5],基于PUF構(gòu)建可信根PRoT可為操作系統(tǒng)(Operating System,OS)和安全服務提供可信計算功能,而無需額外的安全硬件資源,并允許用戶在設備被物理攻擊破壞后重新部署可信根。PRoT的核心模塊為可信構(gòu)建模塊(Trust Building Module,TBM)和Seal/Unseal服務。

1.1 可信構(gòu)建模塊TBM

    本文利用模糊提取算法[7]從PUF響應值中提取唯一設備密鑰,模糊提取算法結(jié)構(gòu)如圖1所示。模糊提取算法的工作過程分為生成階段和重現(xiàn)階段。TBM實現(xiàn)于重現(xiàn)階段,由BCH糾錯碼、密鑰提取算法(Key Derivation Function,KDF)和密鑰生成算法(Key Generation Algorithm,KG)組成。

wdz1-t1.gif

1.1.1 生成階段

    生成階段由制造商在設備生產(chǎn)中執(zhí)行。首先,制造商選擇隨機數(shù)PS,用BCH糾錯碼對PS進行編碼以獲得代碼C(PS)=BCHEnc(PS)。PUF的響應R作為輸入,與C(PS)異或得到代碼S送入輔助數(shù)據(jù)H,在重現(xiàn)階段中H用于生成相同的初始種子PS。

    然后,R與PS異或得到TRS,再注入KDF中生成對稱密鑰k,PS被傳遞到KG中生成唯一的公鑰/私鑰對(pk,sk)。對稱密鑰對安全OS的鏡像進行加密來保護其機密性。制造商通過簽名公鑰pk、TBM鏡像和安全OS鏡像的標準度量值來生成證書 Certpk。這兩個度量值將用于構(gòu)建雙核安全架構(gòu)安全啟動的信任鏈。

    最后,制造商將輔助數(shù)據(jù)H、加密后的安全OS鏡像和證書Certpk存儲在設備的非易失性存儲器中。在生成階段,制造商將初始種子PS隱含地嵌入到設備中,即初始種子沒有物理存儲在設備上,但可以在運行時重新生成。

1.1.2 重現(xiàn)階段

    重現(xiàn)階段將PUF在相同激勵下產(chǎn)生的響應值R′作為輸入。由于環(huán)境因素干擾,PUF的響應值R′和生成階段中PUF的響應值R之間存在噪聲偏差,故BCH糾錯碼用來消除噪聲。R′先與輔助數(shù)據(jù)中的S進行異或以產(chǎn)生噪聲BCH碼C(PS)′=R′⊕S,代碼C(PS)′傳遞給BCH解碼器,消除噪聲并產(chǎn)生在生成階段中隨機選擇的PS,最后從PS中提取唯一設備密鑰和對稱密鑰,對稱密鑰用于解密安全OS鏡像。

    TBM產(chǎn)生的唯一設備密鑰為安全服務和通用操作系統(tǒng)提供可信根。首先是利用唯一設備密鑰為安全服務提供Seal/Unseal服務,確保只有指定的安全服務和平臺才能訪問用戶數(shù)據(jù),Seal/Unseal服務可視為安全服務的可信根。其次,TPM服務使用唯一設備密鑰作為認證密鑰,為通用計算核提供諸如安全存儲、認證、度量等豐富的可信計算功能,這些功能可用于啟動一個可信的通用OS并幫助該OS將信任鏈擴展到應用,即幫助非安全域運行在可信狀態(tài)。TPM服務可視為通用操作系統(tǒng)的可信根。

1.2 Seal/Unseal服務

    Seal/Unseal服務利用唯一設備密鑰(pk,sk)進行加密算法和哈希操作,與平臺和特定安全服務綁定安全數(shù)據(jù)。用戶通過步驟1和2將數(shù)據(jù)data密封到安全服務S中,其中hash(S)表示二進制代碼S的哈希值,B代表存儲于安全服務中的雙重加密代碼。

     wdz1-t1-s1.gif

          wdz1-t1-x1.gif

    由步驟Sealing和Unsealing可知,只有具有唯一設備密鑰和運行合法安全服務的設備才能獲取用戶數(shù)據(jù)data,而唯一設備密鑰只能被運行合法OS的平臺獲得,所以Seal/Unseal服務保證了只有處于安全狀態(tài)的平臺才可以訪問用戶數(shù)據(jù)。換句話說,Seal/Unseal服務向用戶隱含地證明了執(zhí)行環(huán)境處于可信狀態(tài)。安全服務還可以使用此機制來存儲關鍵數(shù)據(jù)。

2 基于PROT的可信計算平臺架構(gòu)

2.1 可信計算平臺架構(gòu)

    安全啟動是保證SoC系統(tǒng)安全的一個重要前提。安全OS和安全服務的鏡像通常從非安全永久性存儲(如閃存或SD卡)加載,可能會受到惡意應用程序的篡改[8]。本文構(gòu)建了基于PRoT的可信計算平臺架構(gòu)(如圖2所示),并進一步尋求建立基于PRoT的信任鏈(如圖3所示),實現(xiàn)信任關系從可信根到整個計算平臺的擴展,保護運行代碼的安全性和完整性,完成雙核安全系統(tǒng)的安全啟動。

wdz1-t2.gif

wdz1-t3.gif

2.2 信任鏈

    信任鏈是通過實現(xiàn)一個實體與預期值的充分匹配來了解信息平臺的可信程度[8]。基于PROT的信任鏈傳遞過程如圖3所示。

    當設備通電時,處理器立即從BootROM執(zhí)行一級啟動代碼(First Stage Boot Loader,F(xiàn)SBL),該代碼通常在芯片制造過程中已被置信。在簡單的系統(tǒng)初始化后,F(xiàn)SBL首先對TBM鏡像進行完整性驗證,使用制造商的公鑰進行驗簽。若驗簽成功,則度量TBM的鏡像,并與標準度量值進行比較。如果完整性驗證通過,則讀取PUF的響應值R,并將R傳輸?shù)絋BM,運行TBM,否則停止啟動。

    由于片內(nèi)存儲器的存儲空間對于傳統(tǒng)的引導進程不夠大,需要將Second Stage Bootloader代碼(即U-boot)的鏡像加密存儲在外部DDR存儲器上,因此,在驗證U-boot前,用TBM生成的密鑰K對U-boot和安全OS的鏡像進行解密。所以TBM不僅保證了安全OS的完整性,還增加了其安全性。再依次完成鏡像度量值驗證,并在驗證成功后,沿信任鏈度量方向傳遞控制權。在運行安全OS之前,要擦除片上存儲器中的所有信息。安全OS啟動時將初始化安全服務、TPM服務等,然后通過這些服務將信任鏈擴展到整個可信平臺。

2.3 密鑰更新機制

    當前,設備密鑰的安全存儲機制通常依賴于Battery-backed RAM或eFuse技術[2]。與這些機制相比,基于PUF技術構(gòu)建的可信根能夠部署靈活的密鑰更新機制,具體協(xié)議流程如圖4所示。設備所有者可以通過定期更改設備密鑰來提高系統(tǒng)的安全等級。

wdz1-t4.gif

    令wdz1-2.3-x1.gif表示將集合S中隨機選擇的值分配給x,{0,1}n表示長度為n的二進制字符串集合。設備D具有唯一設備公鑰/私鑰對(pk,sk),且制造商M具有用于簽名的密鑰對(pkM,skM)。三元組(KG,SIG,VER)表示簽名方案,其中SIG是簽名算法,VER是驗簽算法。imB和imS分別表示TBM和OS的鏡像。

    新的初始種子PS′的隨機選取與舊設備密鑰無關,舊設備密鑰的泄露不會對PS′造成危害。但是,敵手可以將先前的輔助數(shù)據(jù)和加密的操作系統(tǒng)鏡像復制回設備中,使得設備密鑰回溯為舊設備密鑰,即通過降級攻擊來破壞密鑰更新協(xié)議。圖4的密鑰更新協(xié)議中增加了計數(shù)器c,用于抵抗降級攻擊。c在協(xié)議重新執(zhí)行后計數(shù)加1,TBM就不能計算先前的對稱密鑰K,所以操作系統(tǒng)鏡像無法解密。只有新部署的軟件才能啟動系統(tǒng),從而防止降級攻擊。

3 實驗與評估

3.1 TBM及PRoT實現(xiàn)

    基于Xilinx公司的Zynq-7000 AP SoC實現(xiàn)了上述設計,TBM中的PUF模塊使用基于環(huán)形振蕩器的PUF[9]實現(xiàn),采用C語言對TBM和PRoT進行了描述。模糊提取算法基于可以配置不同參數(shù)的開源BCH糾錯碼來實現(xiàn)[10]。本文將BCH參數(shù)[n,k,d]配置為[256,21,55],其中n表示編碼位寬,k表示數(shù)據(jù)位寬,且d≥2t+1,t表示可糾錯的位數(shù)。[256,21,55]-BCH糾錯碼可以解碼錯誤位少于wdz1-3.1-x1.gif=27比特的噪聲信息。初始種子的長度為131比特,在TBM中需要運行BCH糾錯碼wdz1-3.1-x2.gif=7次才能重新獲取初始種子。

    使用RSAREF庫[11](其MD5散列函數(shù)用SM3替代)來實現(xiàn)KG。安全啟動的對稱密鑰的生成與TPM 2.0[12]中的對稱初始密鑰的生成相似。PRoT中的Seal/Unseal服務通過修改的RSAREF庫、KDF、SHA3和面向字節(jié)的AES來實現(xiàn)。在安全管控核中通過整合軟件模擬器來實現(xiàn)的TPM服務,具體細節(jié)可參考文獻[13]。

    TBM及PRoT各模塊的編譯結(jié)果如表1所示。從中可以看出,TBM和Seal/Unseal服務的TCB都非常小,TBM的總體大小只有2 579條代碼,Seal/Unseal服務只用了1 873條,編譯后的二進制代碼量只增加了65.3 KB的ROM和381.5 KB的Flash。TPM服務的TCB較大是因為它提供豐富的可信計算功能。

wdz1-b1.gif

3.2 Seal/Unseal服務

    Seal/Unseal服務和TPM服務中的部分TPM命令的性能評估(100次運行的平均消耗時間)如表2所示。結(jié)果顯示,Seal/Unseal服務100次運行的平均消耗時間為10 ms,能夠快速地綁定敏感數(shù)據(jù)到安全服務中。部分TPM命令的消耗時間較長,仍屬于正常工作的可接受范圍。

wdz1-b2.gif

3.3 攻擊抗性評估

    下面主要以初始種子和唯一設備密鑰為攻擊對象進行安全性分析,評估本文設計的攻擊抗性。

    在能夠控制SoC所有外部接口的情況下,敵手可能通過竊取PUF響應值、軟件攻擊、附加惡意外圍設備等攻擊手段危害初始種子,但仍無法被突破本文設計對初始種子的安全防護。

    由于BootROM是通過敵手無法監(jiān)控的SoC內(nèi)部總線將響應值傳輸給TBM,因此敵手無法竊取PUF響應值,也就無法生成初始種子。而且初始種子只在TBM運行時存在,此時TBM是運行在設備上的唯一代碼。信任鏈保證了只有合法的TBM才能在OCM中運行,所以對手無法通過軟件攻擊來危害初始種子。OCM在器件引腳上沒有地址線或數(shù)據(jù)線,惡意外設無法從設備引腳讀取片上存儲的內(nèi)容。OCM是SoC的安全存儲,因此利用接口封裝等技術手段可以防止惡意外圍設備訪問OCM。

    系統(tǒng)運行時,設備密鑰會短暫地存儲在安全OS中,但OS運行在片外主存儲器中,可能會受到惡意應用程序的攻擊。雙核安全架構(gòu)可以實現(xiàn)安全環(huán)境與正常環(huán)境的隔離,一般物理攻擊無法突破隔離技術的防御能力。如果設備密鑰受到物理攻擊的危害,可以通過執(zhí)行密鑰更新協(xié)議來部署新設備密鑰。

4 結(jié)束語

    本文利用PUF能夠?qū)⒚荑€隱含地嵌入設備而不需要物理存儲的特性,構(gòu)建了雙核隔離SoC架構(gòu)的可信根PRoT,并以PRoT為信任錨點設計了信任鏈和密鑰更新協(xié)議。實驗結(jié)果表明,PRoT能夠以較小TCB運行于Zynq-7000 AP SoC中,通過對PRoT中部分TPM命令和Seal/Unseal服務的性能評估,以及對初始種子和唯一設備密鑰的安全性分析,證明了PUF能夠為嵌入式系統(tǒng)提供安全靈活的可信根。

參考文獻

[1] 孫春子.基于雙核的系統(tǒng)安全框架的研究與實現(xiàn)[D].南京:南京理工大學,2008.

[2] 利文浩.面向多域計算環(huán)境安全的系統(tǒng)軟件研究[D].上海:上海交通大學,2015.

[3] ALVES T.TrustZone:integrated hardware and software security[J].White Paper,2004.

[4] ARM.Securing the system with TrustZone ready program[EB/OL].[2013-12-19].http://www.arm.com/products/security-on-arm/trustzone-ready/index.php.

[5] ARENO M,PLUSQUELLIC J.Securing trusted execution environments with PUF generated secret keys[C].IEEE International Conference on Trust,Security and Privacy in Computing and Communications.IEEE Computer Society,2012:1188-1193.

[6] FENG W,F(xiàn)ENG D,WEI G,et al.TEEM:a user-oriented trusted mobile device for multi-platform security applications[M].Trust and Trustworthy Computing.Springer Berlin Heidelberg,2013:133-141.

[7] KANG H,HORI Y,KATASHITA T,et al.Cryptographie key generation from PUF data using efficient fuzzy extractors[C].International Conference on Advanced Communication Technology.IEEE,2014:23-26.

[8] 譚良,徐志偉.基于可信計算平臺的信任鏈傳遞研究進展[J].計算機科學,2008,35(10):15-18.

[9] KUMAR A,MISHRA R S,KASHWAN K R.Challenge-response generation using RO-PUF with reduced hardware[C].International Conference on Advances in Computing,Communications and Informatics.IEEE,2016.

[10] MORELOS Z R.Encoder/decoder for binary BCH codes in C(Version 3.1)[EB/OL].[2017-12-19].http://www.rajivchakravorty.com/source-code/uncertainty/multimedia-sim/html/bch_8c-source.html.

[11] RSA Data Security Inc.RSAREF[EB/OL].[2017-12-19].http://www.homeport.org/adam/crypto/rsaref.phtml.

[12] TCG.Trusted platform module library part 1: architecture,F(xiàn)amily 2.0,Level 00 Revision 01.07[Z].2014.

[13] 吳少剛,許華.可信嵌入式龍芯啟動加載程序tPMON的設計[J].計算機工程與設計,2008,29(1):5-8.



作者信息:

吳  縉,徐金甫

(解放軍信息工程大學,河南 鄭州450001)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。