《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 基于国产平台的可信系统研究
基于国产平台的可信系统研究
2014年微型机与应用第21期
肖思莹1,2,赵丽娜1,2,陈小春1,2,张 超1,2
(1.中电科技(北京)有限公司,北京 100083; 2.中国电子科技集团公司信息化工程总体研究中心,北京 100083 )
摘要: 设计了一套基于国产技术的可信计算系统。该系统采用了基于龙芯处理器的计算机硬件平台和国民技术LPC接口的可信密码模块(Trusted Cryptography Module,TCM),实现了符合UEFI标准的可信固件,完成了操作系统上的TCM驱动(TCM Device Driver,TDD)以及TCM服务模块(TCM Service Module,TSM),总体实现了基于国产龙芯平台的固件层和操作系统上层对国产可信密码模块及其服务模块的支持。完成了对TDD以及TSM接口的测试,提供了TCM管理工具以实现对TCM的基本管理功能。
Abstract:
Key words :

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

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

0 引言

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

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

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

1 國產可信系統架構設計

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

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

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

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

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

001.jpg

2 TCM支持

  2.1 TCM的功能與架構

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

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

  2.2 TCM驅動的設計與實現

  TCM驅動分為固件層的驅動和操作系統層的驅動。

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

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

  系統內核應配置為支持模塊化的驅動,另需修改內核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/

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

3 可信固件的設計與實現

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

002.jpg

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

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

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

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

4 服務模塊的設計與實現

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

003.jpg

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

  4.1 設備驅動庫

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

  4.2 TSM核心服務

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

004.jpg

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

  4.3 TSM服務提供者

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

005.jpg

5 系統測試與分析

  5.1 系統集成

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

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

  5.2 可信固件測試與分析

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

008.jpg

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

  5.3 驅動測試與分析

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

009.jpg

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

  5.4 TCM管理

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

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

010.jpg

  5.5 服務模塊測試與分析

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

011.jpg

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

6 結束語

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

參考文獻

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

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


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 91精品久久久久久久久久入口| 欧美 日韩 国产在线观看| 国产精品一区二区你懂得| 91国产在线免费观看| 日本精品二区| 欧美日韩成人精品| 欧美激情精品久久久久久黑人| 性欧美精品一区二区三区在线播放V| 国产精品九九久久久久久久| 国精产品99永久一区一区| 国产三区在线视频| 激情欧美一区二区三区中文字幕| 国产在线高清精品| 久久精品国产sm调教网站演员| 天天综合狠狠精品| 国产精品视频免费一区| 亚洲国产欧美不卡在线观看| www.日本在线视频| 操91在线视频| 国产美女被下药99| 91av福利视频| 亚洲日本无吗高清不卡 | 精品一区二区中文字幕| 日本国产高清不卡| www日韩av| 国产一区二区在线视频播放| 国产成人精品自拍| 精品久久国产精品| 欧美交换配乱吟粗大25p| 日韩精品视频久久| 国产系列第一页| 日韩精品极品视频在线观看免费| 91精品国产一区| 欧美日韩精品中文字幕一区二区 | 日本久久久网站| 国产精品精品视频| 久久人人爽亚洲精品天堂| 日本不卡一区二区三区视频| 中文字幕久久综合| 91免费国产视频| 国产精品久久视频|