《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于國產平臺的可信系統(tǒng)研究
NI-LabVIEW 2025
基于國產平臺的可信系統(tǒng)研究
2014年微型機與應用第21期
肖思瑩1,2,趙麗娜1,2,陳小春1,2,張 超1,2
(1.中電科技(北京)有限公司,北京 100083; 2.中國電子科技集團公司信息化工程總體研究中心,北京 100083 )
摘要: 設計了一套基于國產技術的可信計算系統(tǒng)。該系統(tǒng)采用了基于龍芯處理器的計算機硬件平臺和國民技術LPC接口的可信密碼模塊(Trusted Cryptography Module,TCM),實現(xiàn)了符合UEFI標準的可信固件,完成了操作系統(tǒng)上的TCM驅動(TCM Device Driver,TDD)以及TCM服務模塊(TCM Service Module,TSM),總體實現(xiàn)了基于國產龍芯平臺的固件層和操作系統(tǒng)上層對國產可信密碼模塊及其服務模塊的支持。完成了對TDD以及TSM接口的測試,提供了TCM管理工具以實現(xiàn)對TCM的基本管理功能。
Abstract:
Key words :

  摘 要: 設計了一套基于國產技術的可信計算系統(tǒng)。該系統(tǒng)采用了基于龍芯處理器的計算機硬件平臺和國民技術LPC接口的可信密碼模塊(Trusted Cryptography Module,TCM),實現(xiàn)了符合UEFI標準的可信固件,完成了操作系統(tǒng)上的TCM驅動(TCM Device Driver,TDD)以及TCM服務模塊(TCM Service Module,TSM),總體實現(xiàn)了基于國產龍芯平臺的固件層和操作系統(tǒng)上層對國產可信密碼模塊及其服務模塊的支持。完成了對TDD以及TSM接口的測試,提供了TCM管理工具以實現(xiàn)對TCM的基本管理功能。

  關鍵詞:可信計算;龍芯;可信密碼模塊;可信固件;可信服務模塊

0 引言

  國際上主流的可信計算平臺是基于X86處理器與TPM芯片,符合TCG規(guī)范的軟硬件系統(tǒng)。由于TPM芯片內一般存儲與密鑰相關的重要敏感信息,若我國直接采用則會有重要信息被他人掌握的風險,因此可信計算系統(tǒng)的國產化應用成為必須。

  參考文獻[1]中提出的可信計算機制是基于TPM芯片的,參考文獻[2]中的兼容方案是基于虛擬TCM進行驗證的,參考文獻[3]~[8]中的可信軟件棧都是基于TPM或者在X86平臺實現(xiàn)的。參考文獻[9]對比了TCM控制模塊與TPM模塊的不同之處,參考文獻[10]中研究的可信技術是基于嵌入式平臺的,參考文獻[11]中的UEFI BIOS也是基于TPM,并在X86平臺上實現(xiàn)的。

  而本文采用基于國產龍芯3A處理器的主板TCM芯片以及中標麒麟操作系統(tǒng)構建可信終端基礎系統(tǒng),并在此之上開發(fā)了國產可信固件和操作系統(tǒng)上層的可信服務模塊,實現(xiàn)了完整的國產可信計算平臺。龍芯平臺不同于X86平臺,它是基于MIPS架構的處理器,采用精簡指令集并擴展了龍芯指令集。TPM芯片使用RSA作為加密算法及簽名算法,使用SHA1作為摘要算法。而TCM使用SMS4作為加密算法,使用SM2作為簽名算法,摘要算法則采用256位的SM3算法。操作系統(tǒng)方面大多數(shù)政企使用Windows系統(tǒng),如今政府對國外操作系統(tǒng)的限制采購,為國產操作系統(tǒng)創(chuàng)造了良好的契機并為TCM的廣泛使用打下基礎。

1 國產可信系統(tǒng)架構設計

  國產可信計算平臺主板由龍芯3A處理器、AMD RS780E北橋、SB710南橋、RTL8111DL千兆網(wǎng)卡等構成,集成了豐富的通用接口,采用標準ATX尺寸。

  本系統(tǒng)采用國民技術研發(fā)的LPC接口的TCM芯片。TCM芯片是可信計算的基礎,支持信任鏈建立、可信度量等功能的實現(xiàn),增強了計算機的安全性。

  本文實現(xiàn)的可信固件支持龍芯國產處理器,具有圖形化用戶配置界面。它不僅用于初始化硬件設備,安裝及引導操作系統(tǒng),提供硬件設備的調試診斷等功能,還以TCM為基礎,在硬件、固件和軟件之間構建信任鏈,實現(xiàn)可信計算功能。此可信固件包括CPU代碼、芯片組代碼、設備代碼等基礎功能代碼,實現(xiàn)了可信度量、TCM驅動接口和TCM配置管理等可信功能模塊。

  在操作系統(tǒng)階段,TCM系統(tǒng)驅動以模塊形式載入并直接與TCM芯片進行通信,其主要完成對TCM芯片的驅動和管理等功能,并向上層服務模塊提供訪問接口。

  TCM服務模塊是基于TCM的操作系統(tǒng)上層軟件模塊,為應用軟件提供訪問TCM的軟件接口[1]。TSM通過調用TCM系統(tǒng)驅動對TCM資源進行分配并向上層應用提供接口。可信終端體系架構如圖1所示。

001.jpg

2 TCM支持

  2.1 TCM的功能與架構

  TCM是可信計算平臺的硬件模塊,為可信計算平臺提供密碼運算功能,具有受保護的存儲空間[2]。TCM芯片提供了加密解密、數(shù)字簽名、摘要值計算、消息驗證碼計算等功能,并向固件層、操作系統(tǒng)等提供安全支持,實現(xiàn)安全存儲、完整性度量、可信報告等功能。

  TCM的封裝形式分為直插式和嵌入式,其邏輯組成部分包括:輸入輸出接口、SMS4引擎、SM2引擎、SM3引擎、隨機數(shù)產生器、HMAC引擎、易失存儲、非易失存儲、PCR寄存器[2]。

  2.2 TCM驅動的設計與實現(xiàn)

  TCM驅動分為固件層的驅動和操作系統(tǒng)層的驅動。

  TCM的固件層驅動符合UEFI規(guī)范,是非驅動模型類驅動,分為驅動層和接口層,發(fā)布了兩個協(xié)議。驅動層實現(xiàn)TCM的初始化、使能/禁止、數(shù)據(jù)傳遞等,接口層是為了屏蔽TCM硬件差異,通過調用驅動層的協(xié)議為固件的可信功能模塊提供訪問TCM的軟件接口。

  TCM的系統(tǒng)驅動為模塊化驅動,設計為PNP方式注冊,主要完成對TCM的初始化、使能管理以及數(shù)據(jù)收發(fā)等功能。它通過接收來自TCM設備驅動庫(TCM Device Driver Lib,TDDL)的字節(jié)流并發(fā)送給TCM芯片,實現(xiàn)為TCM服務模塊中的可信功能模塊提供訪問TCM的接口,完成可信度量、存儲度量結果等功能。

  系統(tǒng)內核應配置為支持模塊化的驅動,另需修改內核drivers/char/目錄下的Kconfig文件,使得當Linux配置內核時,能夠對TCM驅動進行配置。

  source "drivers/char/tcmdV1.1/Kconfig"

  修改內核drivers/char目錄下Makefile文件,增加驅動目標文件,用于生成tcm.ko和tcm_tis.ko模塊。

  obj-$(CONFIG_TCG_TCM)+=tcmdV1.1/

  編譯系統(tǒng)內核時,TCM驅動即可同時編譯生成可加載的模塊。

3 可信固件的設計與實現(xiàn)

  本文實現(xiàn)的可信固件采用C語言開發(fā),符合UEFI規(guī)范,高度模塊化,具有高可擴展性。它的啟動過程分為4個階段,其基礎功能的啟動和工作流程如圖2所示。

002.jpg

  可信計算的功能包括身份認證、可信度量、配置管理等。可信固件從結構上設計為兩大模塊:Stage1和Stage2。其中Stage1負責最小可用硬件平臺的初始化,實現(xiàn)TCM在此階段的驅動以及可信度量所需要的接口。Stage1對Stage2進行完整性度量后將控制權交給Stage2。

  Stage2實現(xiàn)了基礎UEFI BIOS的驅動分發(fā)及啟動操作系統(tǒng)的工作,并完成了TCM在此階段的驅動以及可信度量所需要的接口,還實現(xiàn)了TCM配置管理的功能模塊。在這一階段還可以實現(xiàn)對硬件設備、操作系統(tǒng)文件的度量。Stage2完成對OS Loader和重要文件的完整性度量后,將控制權交給OS Loader引導操作系統(tǒng),BIOS啟動階段的信任鏈傳遞過程就結束了。

  固件中的所有可信計算相關的功能必須由TCM來提供支持,TCM的驅動接口分別用于在Stage1階段和Stage2階段對TCM進行訪問。

  最終實現(xiàn)的可信固件的配置功能有對用戶、TCM開關、TCM度量等的管理。

4 服務模塊的設計與實現(xiàn)

  TSM是在操作系統(tǒng)上層為支持TCM提供基本資源的主要模塊,通過調用TCM接口實現(xiàn)可信計算功能,如提供TCM的同時存取,管理TCM資源,并在適當?shù)臅r候釋放TCM資源[3-4]。

003.jpg

  TSM為應用程序提供TCM功能接口,其層次結構如圖3所示,全部運行于用戶模式,其中TDDL、TSM核心服務(TSM Core Service,TCS)屬于系統(tǒng)進程,TSM服務提供者(TSM Service Provider,TSP)屬于用戶進程[5-6]。

  4.1 設備驅動庫

  TDDL提供一個標準接口,常駐用戶模式,并通過調用TCM設備驅動與TCM芯片交互。此模塊提供了密鑰管理等簡單的功能來管理有限的TCM資源。由于TCM每次只能處理一個進程,來自上層的服務都需通過TDDL向TCM發(fā)送請求,TDDL可將多任務進行單線程化。

  4.2 TSM核心服務

  TCS提供線程用以訪問TCM,TCS允許多線程訪問。經TCS轉換為TCM可以識別的字節(jié)流后,可實現(xiàn)上層應用與TCM的通信。TCS各組成部分的作用詳見表1。

004.jpg

  TCS一般作為一個系統(tǒng)進程存在,可以提供服務給多個TSP。如果進程未開啟時有來自TSP的請求則會返回通信錯誤。如果多個TSP都基于同一個平臺,則TCS保證它們都將得到相同的服務。

  4.3 TSM服務提供者

  TSP是TSM最上層的模塊,上層應用通過訪問TSP的接口來獲得TCM的資源和功能,應用程序在調用時需先創(chuàng)建各個類的工作對象。TSP各類接口的作用詳見表2。

005.jpg

5 系統(tǒng)測試與分析

  5.1 系統(tǒng)集成

  在國產硬件平臺上配置本文開發(fā)的可信固件和支持模塊開發(fā)的中標麒麟操作系統(tǒng)。在操作系統(tǒng)上安裝本文設計實現(xiàn)的TCM驅動以及TCM服務模塊,進行系統(tǒng)測試。

  加載TCM驅動后運行OS層的TCM管理工具,圖4、圖5分別是管理工具加載TCM驅動和啟動Tcsd的運行界面。

  5.2 可信固件測試與分析

  加入可信功能模塊的固件在其設置選項中可使能TCM或禁止TCM,使能TCM后會對BIOS、硬件外設、OS核心文件進行度量,在不同情形下固件啟動時間如表3所示。

008.jpg

  因為對五類設備度量失敗后操作人員的反應時間大約為1 s,所以度量失敗的情況比度量成功多出近5 s。根據(jù)參考文獻[10]給出的數(shù)據(jù),在X86平臺下,關閉可信測量的固件啟動時間為29 s,而國產平臺下關閉可信功能后的啟動時間為13.5 s,優(yōu)于X86平臺。

  5.3 驅動測試與分析

  加載驅動模塊TDD后,對TCM指令進行測試,運行測試程序測試TCM自檢、TCM使能、獲取TCM屬性信息等命令,結果如表4所示。

009.jpg

  以TCM自檢為例,發(fā)送數(shù)據(jù)中0x0 0xc1表示發(fā)送標志位,0x0 0x00x0 0xa表示發(fā)送數(shù)據(jù)長度,為10 B,0x0 0x0 0x80 0x50表示自檢命令碼。接收到的數(shù)據(jù)中0x0 0xc4表示接收數(shù)據(jù)位,0x0 0x00x0 0xa表示接收數(shù)據(jù)長度,0x0 0x00x00x0表示自檢成功。

  5.4 TCM管理

  本文完成固件層與OS層的TCM管理工具并實現(xiàn)TCM啟動、自檢、使能禁止等管理功能。

  表5、表6分別是讀取PCR、TCM管理功能執(zhí)行結果。

010.jpg

  5.5 服務模塊測試與分析

  使用TSM接口的測試工具,對各類TSPI進行測試。部分接口測試結果如表7所示。

011.jpg

  表7給出了獲取PCR值、設置PCR值、選擇PCR索引號接口的測試結果,返回結果為成功。

6 結束語

  本文構建了基于國產龍芯CPU、國民技術TCM硬件平臺的可信系統(tǒng),開發(fā)了固件中的可信功能模塊,實現(xiàn)了支持國產平臺的操作系統(tǒng)上層TCM驅動、TCM服務模塊、TCM管理工具以及TSM測試工具,實現(xiàn)了從固件層到操作系統(tǒng)上層的可信鏈的傳遞,有效地保證了平臺硬件及相關系統(tǒng)軟件的安全可信性,為國產可信系統(tǒng)的研究與實現(xiàn)提供了一定的參考經驗。

參考文獻

  [1] 羅捷,嚴飛,余發(fā)江,等. 可信計算平臺模塊密碼機制研究[J].計算機應用, 2008,28(8):1907-1915.

  [2] 張興,黃寧宇,祝璐. 可信密碼模塊軟件棧兼容方案設計[J]. 武漢大學學報, 2010,25(5):618-621.


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