?

采用數字簽名技術的可信啟動方法研究

2016-11-17 02:19吳新勇吳開均
電子科技大學學報 2016年3期
關鍵詞:可信性數字簽名鏡像

楊 霞,雷 林,吳新勇,吳開均,桑 楠

(1. 電子科技大學信息與軟件工程學院 成都 610054;2. 保密通信國家重點實驗室 成都 610041;3. 四川九洲集團研究院 成都 610041)

采用數字簽名技術的可信啟動方法研究

楊 霞1,2,雷 林1,吳新勇3,吳開均2,桑 楠1

(1. 電子科技大學信息與軟件工程學院 成都 610054;2. 保密通信國家重點實驗室 成都 610041;3. 四川九洲集團研究院 成都 610041)

為保障嵌入式設備系統啟動時的可信性,分析了現有可信啟動技術對硬件模塊嚴重依賴的現狀,結合可信度量和可信鏈理論,提出了一套基于嵌入式Linux的可信啟動方法。該方法以固件IROM作為信任根,利用數字簽名和完整性驗證技術檢查啟動實體的完整性和真實性,建立了一條從設備開機到內核啟動的信任鏈。實驗結果表明:該方法能有效地驗證啟動實體的完整性和真實性;與采用硬件模塊保護啟動實體預期度量值的方法比較,該方法無需增加任何硬件開銷便可有效地保護預期度量值;同時保證實體更新時的可信檢測。

信任鏈; 數字簽名技術; 嵌入式Linux; 信任根; 可信啟動技術; 可信計算

信息技術的高速發展,在帶來信息產業空前繁榮的同時,危害信息安全的事件也不斷發生,信息安全形勢日益嚴峻。目前有多種保障系統安全的技術,比如系統訪問控制、入侵檢測技術和防病毒體系等[1],這些技術大都只能提高系統應用層的安全。一個系統能夠正常運行的前提是系統本身是安全的,如果系統在啟動之前就由于被篡改或破壞等原因進入一種不可信的狀態,則基于該系統而建立的任何安全機制都無法確保系統的可信性。傳統嵌入式系統的設計很少考慮系統安全問題,存在較多的安全隱患,如用戶可通過刷機進入一種不確定的系統狀態,或者內核被惡意程序植入而遭篡改,這些操作都可能給用戶帶來嚴重的損失和破壞。

目前,已經有一些研究成果可以做到防止內核等關鍵信息被篡改。本文將現有的可信啟動相關研究方法分為兩類:一類是需要增加額外硬件輔助,如在PC機領域添置可信平臺模塊[2-4](TPM)以及在移動設備終端添置移動可信模塊[5-10](mobile trustedmodule, MTM)這類安全芯片,在安全芯片中存儲啟動實體初始的預期度量值,啟動時將實體加載到內存中,通過比較初始預期度量值和當前計算值的一致性,確定啟動過程是否可以安全繼續。該方法為了保護可信啟動預期度量值,需要增加額外的可信硬件模塊,這將增加硬件開銷和成本。而對成本控制非常嚴格的嵌入式設備,大多沒有這樣的可信模塊。因此,該類方法對于嵌入式系統而言,具有很大的局限性。

另一類可信啟動方法是設計只讀的塊設備存儲啟動實體[11],啟動時從該設備中讀取未受更改的實體。因為只讀設備中實體在出廠時一次性燒寫,所以啟動中實體無法被篡改,可保證啟動實體的完整性。此方法需要加載的實體一次性燒寫,無法實現正常的系統更新。

針對上述問題,本文提出了一種無需增加額外的硬件模塊,便可有效保障嵌入式系統啟動時可信性的方法。該方法利用完整性驗證技術和數字簽名技術建立嵌入式可信啟動信任鏈,并可有效地保護預期度量值。這種通過驗證簽名的技術可以驗證啟動實體內容的完整性和來源的真實性,簡化了硬件設計難度,縮減了開銷,在保障可信啟動的前提下降低了開發難度,同時做到實體可更新。

1 可信啟動模型

在計算機系統中,啟動過程是系統一切行為的基礎。為創建可信執行環境,首先需要明確可信的定義??尚庞嬎憬M織(trusted computing group, TCG)將可信定義為[12]:如果一個實體的行為總是以預期的方式朝著預期的目標前進,那么這個實體就是可信的。以TCG定義為基礎,本文結合嵌入式系統的特征提出了可信啟動模型。

定義 1 每個啟動階段為一個實體E。

定義 2 第一個啟動的實體E0,稱為信任根,是可信啟動信任的基礎。

定義 3 在啟動過程中,實體Ei-1啟動實體Ei,其中1≤i≤n。如果啟動鏈中的每一個實體都被驗證為可信,則整個啟動過程是可信的。在可信啟動中,為了確保實體Ei的可信性,必須首先信任Ei-1??尚艈拥尿炞C模型為:

式中,vi-1作為一個可信驗證模塊,用于實體Ei-1對Ei的可信性驗證。

以信任根為基礎逐級驗證,最終得到一個可信啟動信任鏈:E0→E1→E2→…→En。

2 采用數字簽名技術的可信啟動框架

2.1 安全算法介紹

數字簽名[13]技術是通過密碼技術對電子文檔進行電子形式的簽名,是維護網絡數據安全的重要技術,可用來保證信息內容的完整性和信息來源的真實性。本文采用數字簽名技術建立了可信啟動信任鏈,使用哈希算法驗證啟動實體的完整性,及非對稱加密算法RSA保護預期度量值。

2.2 可信啟動框架設計

針對嵌入式系統的啟動過程,設計如圖1所示的可信啟動框架。

圖1 可信啟動框架

該框架在正常的嵌入式Linux啟動過程中增加了固件IROM,作為信任根。系統上電啟動后,IROM為第一個啟動實體,然后逐步建立一個可信啟動信任鏈:IROM→BootLoader→Kernel。

在可信啟動鏈的上一個階段實體的尾部增加一個驗證公鑰和驗證模塊;下一個階段實體的鏡像頭部增加一個簽名頭部,頭部包含實體自身的簽名信息、頭部信息大小、除去頭部信息后的大小、簽名算法等相關參數。上一個啟動實體(如IROM)在驗證下一個實體(如BootLoader)的可信性和完整性時,由其尾部增加的可信驗證模塊用“驗證公鑰”解密下一個啟動實體的“簽名信息”,得到一個完整性度量值。接著,將此完整性度量值與當前計算的預啟動實體的完整性度量值作對比,如果一致,表明實體完整,準予啟動;否則,結束啟動過程,并報錯。此技術無需額外硬件支持便可以保護可信啟動過程中完整性預期度量值的安全性。

2.3 啟動實體的簽名和驗證過程

本文采用數字簽名技術對啟動實體簽名的過程:首先,用非對稱加密算法RSA生成一對密鑰;其次,用哈希算法對編譯好的啟動實體鏡像制作鏡像的摘要,用私鑰對摘要值加密;然后,將加密后的密文添加到啟動實體鏡像的頭部作為頭部的一部分,生成新的鏡像。

鏡像啟動時的驗證過程:上一階段鏡像用公鑰解密下一階段鏡像簽名頭部中的簽名信息;上一階段啟動實體計算下一階段鏡像除去頭部后內容的摘要;比較摘要和解密后的明文,如果相同,則可證明下一階段鏡像的完整性和來源真實性。為了建立完整的可信啟動信任鏈,需要對BootLoader鏡像和Kernel鏡像添加簽名頭部信息,BootLoader鏡像和IROM中添加驗證尾部,如圖1所示。

3 啟動實體簽名頭部的生成

為了保障啟動過程實體的完整性、真實性及形成信任鏈,使用數字簽名技術重新制作BootLoader鏡像和Kernel鏡像,重新生成的鏡像能夠被上一階段鏡像驗證,證明鏡像自身的完整性和來源的真實性。

3.1 BootLoader簽名頭部的生成

圖2 BootLoader鏡像添加頭部信息的過程

對BootLoader源代碼進行編譯,生成可執行鏡像execute-Bimage。在本地計算機上用公開Hash算法對鏡像execute-Bimage進行Hash計算,得到鏡像的哈希值BHash-result,然后用受信方提供的與IROM驗證代碼中存放的公鑰相匹配的私鑰對BHash-result進行加密,得到加密后的值E(BHash-result),將E(BHash-result)、鏡像大小、頭部大小、Hash算法、RSA算法等信息與execute-Bimage重新鏈接生成鏡像BootLoader-image,BootLoader-image為最終生成的BootLoader鏡像。添加頭部信息流程如圖2所示。

3.2 Kernel簽名頭部的生成

與上面為BootLoader鏡像添加頭部信息流程一樣,為Kernel鏡像添加頭部信息過程中生成Kernel原始鏡像execute-Kimage、哈希值KHash-result、加密后的值E(KHash-result)和最終鏡像Kernel-image。

4 構建可信啟動信任根

IROM作為可信根,在出廠時一次性燒寫之后無法被更改,以此保障其自身的可信性。當芯片上電啟動時,最先跳轉到IROM中執行,由它對BootLoader進行完整性檢測。從信任根開始,逐級向下檢測,通過檢測后執行下一階段鏡像,從而完成整個可信啟動流程。

IROM作為可信啟動最初的啟動鏡像,具有CPU最初的執行權,主要功能是簡單硬件初始化及驗證相關鏡像:初始化系統時鐘和設備控制器,以及準備啟動設備并驗證下一階段鏡像的真實性和完整性。IROM驗證BootLoader鏡像,如果驗證通過,則跳轉到BootLoader在內存的起始地址開始處執行,將CPU的執行權交給BootLoader;如果驗證不通過,則執行相關驗證失敗操作,如關機等。該鏡像不涉及被檢驗,制作時可以直接通過源碼編譯生成,然后將生成的鏡像文件在出廠前燒寫即可。

5 可信啟動驗證模塊的實現

根據信任鏈傳遞思想:先度量,再驗證,最后跳轉[14]。如圖1在IROM、BootLoader的尾部添加了驗證模塊和驗證公鑰兩個部分。驗證模塊采用數字簽名驗證技術對啟動實體的可信性進行驗證,確保啟動實體的來源可信。為了滿足系統各階段不同安全級別的要求,分別在IROM、BootLoader中的驗證模塊和驗證公鑰中使用不同的Hash算法和不同密鑰長度的RSA算法。上一階段實體的驗證公鑰需和下一階段實體頭部中的簽名信息生成時的私鑰配對??尚艈臃譃镮ROM驗證BootLoader和由BootLoader驗證內核兩個階段,各個階段的驗證過程類似,此處僅以第二階段為例進行闡述。

BootLoader驗證內核的過程分為如下幾個步驟:

1) 首先將內核鏡像拷貝到內存中,然后根據鏡像Kernel-image頭部信息解析出E(KHash-result)與execute-Kimage。

2) 使用與制作內核鏡像時用到的私鑰相匹配的公鑰解密E(KHash-result),根據非對稱加密算法原理,如果能夠解密,則說明該鏡像頭部中E(KHashresult)為可信的,同時得到解密的結果KHash-result。如果不能解密,則說明該鏡像來源不合法,鏡像不可信,將執行驗證失敗操作。

3) 同時對鏡像Kernel-image的尾部execute-Kimage用與制作Kernel鏡像時用到的Hash算法相同的算法進行計算,得到重新計算的哈希值KHashresult-T。

4) 如果KHash-result-T與KHash-result相等,則說明execute-Kimage的內容是完整的,因此可以確定整個鏡像的來源真實,內容完整;如果不相等,則說明該鏡像遭到篡改,不具備完整性特性,將執行驗證失敗操作。驗證過程如圖3所示。

圖3 IROM對BootLoader的可信驗證

經過以上兩階段的驗證,保證了從固件IROM到Kernel的整個過程的可信,即建立了整個啟動過程完整的信任鏈。

6 實驗原型系統

實驗系統的硬件平臺為天嵌2440嵌入式開發板;軟件平臺BootLoader為U-Boot1.1.6,內核為Linux2.6.30。采用SHA-1哈希算法和2 048位密鑰的RSA算法實現系統啟動時的可信驗證。本文對兩個可信啟動階段都進行了反復50次以上的測試,兩個階段均符合預期,此處同樣以第二階段為例進行實驗和測試。

6.1 合法內核的可信啟動測試

圖4為U-boot驗證一個合法的Kernel-image鏡像,圖中打印了鏡像的頭部簽名信息E(KHashresult)、除頭部信息后內容的SHA-1值KHash-result-T和解密簽名信息后的結果KHash-result。圖中解密得到了KHash-result值,說明鏡像頭部的簽名信息真實完整,再有KHash-result和KHash-result-T兩值相等,說明exeute-Kimage內容和頭部簽名信息匹配。所以該Kernel鏡像是合法的鏡像,結果成功啟動。

圖4 合法Kernel-image的驗證測試

6.2 非法內核的可信啟動測試

圖5為非法的Kernel-image鏡像啟動信息。

圖5 Kernel-image被篡改后的驗證測試

同圖4比較,圖5a、5c中無法解密得到Kernelresult值,說明頭部簽名信息被篡改;圖5b中KHash-result值未發生改變,說明頭部簽名信息完整。KHash-result-T值發生改變,說明exeute-Kimage內容發生改變。KHash-result值和KHash-result-T值不相等,說明exeute-Kimage內容和頭部的簽名信息不匹配。此處的3種情況都為非法鏡像,故啟動失敗。

6.3 內核更新時的可信啟動測試

同圖4比較,圖6中E(KHash-result)值發生改變,同時KHash-result值能夠被解密得到,說明此時的E(KHash-result)值為新的鏡像的合法簽名信息;KHash-result-T值和KHash-result值相同,說明exeute-Kimage內容和頭部簽名信息匹配。所以此鏡像是合法的鏡像,成功啟動,升級成功。

圖6 Kernel-image升級時可信驗證

7 結 束 語

本文針對嵌入式系統所面臨的安全威脅,提出了一種采用數字簽名技術的可信啟動方法,以嵌入式Linux操作系統為平臺構建了一個可信啟動信任鏈。該方法無需增加額外的硬件設備(如TPM、MTM等),通過數字簽名技術保護實體的預期完整性度量值,確保啟動實體的完整性和來源的真實性,防止關鍵系統軟件被篡改,為應用程序搭建可信的執行環境。此外,該方法還可實現系統更新,并確保更新內容來源的可信性。由于該方法無需增加任何的硬件成本,便可有效地保證系統啟動過程的可信性,因此可廣泛應用于嚴格控制成本的嵌入式系統開發中,以提高系統的高可信能力。

[1] 馮登國. 可信計算理論與實踐[M]. 北京:清華大學出版社, 2013. FENG Deng-guo. Trusted computing theory and practice[M]. Beijing: Tsinghua University Press, 2013.

[2] ASOKAN N, EKBERG J E, KOSTIAINEN K, et al. Mobile trusted computing[J]. Proceedings of the IEEE, 2014, 102(8):1189-1206.

[3] YU Chao, YUAN Men-ting. Security Bootstrap based on trusted computing[C]//2010 Second International Conference on Networks Security Wireless Communications and Trusted Computing. Washington D C, USA: IEEE Computer Society, 2010: 486-489.

[4] YU Fa-jiang, ZHANG Huan-guo. Design and implementation of a bootstrap trust chain[J]. Wuhan University Journal of Natural Sciences, 2006, 11(6):1449-1452.

[5] Trusted Computing Group. TCG mobile trusted module specification, specification version 1.0, revision 6[EB/OL].[2014-11-26]. http://www.trustedcomputinggroup.org/files/ resource_files/87852F33-1D09-3519-AD0C0F141CC6B10D/ Revision_6-tcg-mobile-trusted-module-1_0pdf.

[6] KAI Tang, XIN Xu, GUO Chun-xia . The secure boot of embedded system based on mobile trusted module[C]//2012 International Conference on Intelligent System Design and Engineering Application. New York, USA: IEEE, 2012:1131-1134.

[7] 趙波, 費永康, 向騻, 等. 嵌入式系統的安全啟動機制研究與實現[J]. 計算機工程與應用, 2014, 50(10): 72-77. ZHAO Bo, FEI Yong-kang, XIANG Shuang, et al. Research and implementation of secure boot mechanism for embedded systems[J]. Computer Engineering and Applications, 2014, 50(10): 72-77.

[8] 張煥國, 李晶, 潘丹鈴, 等. 嵌入式系統可信平臺模塊研究[J]. 計算機研究與發展, 2011, 48(7): 1269-1278. ZHANG Huan-guo, LI Jing, PAN Dan-ling, et al. Trusted platform module in embedded system[J]. Journal of Computer Research and Development, 2011, 48(7):1269-1278.

[9] PARNO B, MCCUNE J M, PERRIG A. Bootstrapping trust in commodity computers[C]//2010 IEEE Symposium on Security and Privacy. Oakland, USA: IEEE, 2010: 414-429.

[10] KHALID O, ROLFES C, IBING A. On implementing trusted boot for embedded systems[C]//2013 IEEE International Symposium on Hardware-Oriented Security and Trust (HOST). New York, USA: IEEE, 2013: 75-80.

[11] CLARK P C, HOFFMAN L J. A smartcard protected operating system[J]. Communications of the ACM, 1994,37(11): 67-70.

[12] Trusted Computing Platform Alliance. TCG PC specific implementation specification, Version1.1[EB/OL]. [2014-12-10]. http://www.trustedcomputinggroup.org/files/resource_ files/87B92DAF-1D093519AD80984BBE62D62D/TCG_P CSpecificSpecification_v1_1.pdf .

[13] SHEN Chang-xiang, ZHANG Huang-guo, FENG Deng-guo, et al. Survey of information security[J]. Science in China Series F: Information Seiences, 2007, 50(3):273-298.

[14] FENG Deng-guo, QIN Yu, FENG Wei, et al. The theory and practice in the evolution of trusted computing[J]. Chinese Science Bulletin, 2014, 59(32): 4173-4189.

編 輯 蔣 曉

Research on the Trusted-Boot Technology Using Digital Signature Technique

YANG Xia1,2, LEI Lin1, WU Xin-yong3, WU Kai-jun2, and SANG Nan1
(1. School of Information and Software Engineering, University of Electronic Science and Technology of China Chengdu 610054;2. Science and Technology on Communication Security Laboratory Chengdu 610041;
3. Jezetek Research Chengdu 610041)

Device booting is a critical step and the foundation of trust for embedded systems. Through analyzing related work we find that most current trusted boot technologies rely heavily on the hardware modules such as trusted platform module (TPM). A new trusted boot method is proposed in this paper for embedded Linux system, which is based on the trusted measurement policy and trust chain mechanism. Firstly, this approach takes the firmware IROM as root of trust, which is used to check the integrity and authenticity of the next booting step like BootLoader. Then the BootLoader do the same to the Kernel. So the chain of trust is established from the top of booting to the Kernel. Using the technology of digital signature and Hash algorithm, we implemented the integrity and authenticity checking for each booting entity. The results show that this method can verify the integrity and authenticity of booting entity, and protect the expected metric easily and effectively without other hardware modules. Besides, it ensures the integrity and authenticity of booting entity when they are updated.

chain of trust; digital signature technique; embedded Linux; root of trust; trusted boot technology; trusted computing

TP309

A

10.3969/j.issn.1001-0548.2016.02.023

2015 - 02 - 03;

2015 - 07 - 08

國家核高基項目(M1401060112ZX0103301);保密通信重點實驗室基金(2014006275)

楊霞(1978 - ),女,博士,副教授,主要從事可信計算、嵌入式系統、操作系統安全增強技術等方面的研究.

猜你喜歡
可信性數字簽名鏡像
基于可信性的鍋爐安全質量綜合評價研究
鏡像
淺析計算機安全防護中數字簽名技術的應用
在區間上取值的模糊變量的可信性分布
Five golden rules for meeting management
鏡像
基于可信性理論的風電場電能質量模糊綜合評估
基于數字簽名的QR碼水印認證系統
數字簽名簡述
鏡像
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合