基于嵌入式ARM平臺的可信計算軟件棧的設計與實現
隨著計算機應用的不斷發展,安全威脅問題越來越嚴重,傳統的單純依靠軟件來抵抗安全威脅往往不能解決問題??尚庞嬎愕幕舅枷胧菑男酒⒂布Y構和操作系統等方面制定安全規范保證計算機和網絡結構的安全。可信計算平臺基于可信平臺模塊(TPM),以密碼算法技術作為基礎、安全操作系統作為核心,通過信任域的不斷擴展形成安全的平臺。
目前市場上的TPM芯片主要應用在PC終端上,但是隨著嵌入式系統的不斷發展,TPM在嵌入式系統上的應用也越來越廣,程序員在編寫可信計算應用程序的時候,其切入點應該是TSS,本文就TPM和TSS的概念、TSS在ARM平臺上的移植、調用TSS的API編寫應用程序以及如何與TPM進行交互做了詳細的介紹,最終實現了在嵌入式ARM平臺上的可信計算。
TPM芯片結構和TSS體系結構概述
可信計算的核心是TPM,它是一種安全加密芯片,提供了一種基于硬件的方法來管理用戶權限、網絡訪問、數據保護等。TPM芯片用來存儲數字密鑰、認證和密碼,有了TPM不管是虛擬的還是物理的攻擊都將變得更加困難。如圖1所示,TPM芯片主要由以下幾部分組成:I/O組件、非易失性存儲、身份密鑰、程序代碼、隨機數產生器、Sha-1算法引擎、RSA密鑰產生、RSA引擎、Opt-In選擇組件、執行引擎。
圖1 TPM芯片結構
TPM芯片里的資源是有限的,它僅僅對外提供了一些基本的功能接口。為了充分應用TPM的內部功能,需要在TPM外部套接一個可信計算軟件棧TSS,TSS作為可信計算平臺上TPM的支持軟件,其規范定義了一種能夠讓訪問TPM變得簡單和直接的體系結構。本文構建的嵌入式平臺為三星的ARM9TDMI-S3C2410處理器,TPM芯片為Atmel公司的AT97SC3204T。
由圖2可知,TSS的運行模式分為兩種:用戶模式和內核模式。用戶模式下,通常根據用戶的要求來加載和執行用戶應用程序和服務,有時候這些用戶應用程序和服務也可以作為啟動服務被載入。在內核模式下,通常運行設備驅動和操作系統的核心組件。
圖2 TSS體系結構
TSS由三個邏輯組件構成:TCG設備驅動程序庫(TCG Device Driver Library,TDDL)、TSS核心服務(TSS Core Services,TCS)、TCG服務提供者(TCG Service Provider,TSP)。
TDDL提供了一個與TPM設備驅動程序進行交互的API的庫,用來打開和關閉TPM設備驅動程序(TPM Device Driver)、發送和接收數據塊、查詢設備驅動程序的屬性、取消已經提交的TPM命令。TCS層主要用來管理TPM的資源,提供了一個TPM命令數據塊產生器和一個全局的密鑰存儲設備。TSP層通過共享對象或動態鏈接庫直接被應用程序調用。
TSS的工作流程如下:應用程序的命令參數通過接口TSPl發送到TSP,TSP通過處理后傳送給TCS,TCS將接收到的請求轉化為TPM能夠識別的字節流,通過TDDL和TDD傳給TPM,然后反向經TDDL、TDD、TCS、TSP傳回應用程序。
TSS在ARM上的移植
本文所使用的宿主機操作系統為Fedora,交叉編譯工具為arm-linux-gcc。
TSS在ARM上的移植分為3部分:交叉編譯OpenSSL、交叉編譯TSS、制作包含TSS的文件系統。在交叉編譯TSS之前,先交叉編譯安裝OpenSSL,因為交叉編譯TSS的時候需要用到其中的libcrypto庫文件,其流程如圖3所示:
圖3 TSS在ARM上的移植過程
評論