www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]引言隨著計算機應(yīng)用的不斷發(fā)展,安全威脅問題越來越嚴重,傳統(tǒng)的單純依靠軟件來抵抗安全威脅往往不能解決問題。可信計算的基本思想是從芯片、硬件結(jié)構(gòu)和操作系統(tǒng)等方面制定安全規(guī)范保證計算機和網(wǎng)絡(luò)結(jié)構(gòu)的安全??尚?

引言

隨著計算機應(yīng)用的不斷發(fā)展,安全威脅問題越來越嚴重,傳統(tǒng)的單純依靠軟件來抵抗安全威脅往往不能解決問題。可信計算的基本思想是從芯片、硬件結(jié)構(gòu)和操作系統(tǒng)等方面制定安全規(guī)范保證計算機和網(wǎng)絡(luò)結(jié)構(gòu)的安全??尚庞嬎闫脚_基于可信平臺模塊(TPM),以密碼算法技術(shù)作為基礎(chǔ)、安全操作系統(tǒng)作為核心,通過信任域的不斷擴展形成安全的平臺。

目前市場上的TPM芯片主要應(yīng)用在PC終端上,但是隨著嵌入式系統(tǒng)的不斷發(fā)展,TPM在嵌入式系統(tǒng)上的應(yīng)用也越來越廣,程序員在編寫可信計算應(yīng)用程序的時候,其切入點應(yīng)該是TSS,本文就TPM和TSS的概念、TSS在ARM平臺上的移植、調(diào)用TSS的API編寫應(yīng)用程序以及如何與TPM進行交互做了詳細的介紹,最終實現(xiàn)了在嵌入式ARM平臺上的可信計算。

TPM芯片結(jié)構(gòu)和TSS體系結(jié)構(gòu)概述

可信計算的核心是TPM,它是一種安全加密芯片,提供了一種基于硬件的方法來管理用戶權(quán)限、網(wǎng)絡(luò)訪問、數(shù)據(jù)保護等。TPM芯片用來存儲數(shù)字密鑰、認證和密碼,有了TPM不管是虛擬的還是物理的攻擊都將變得更加困難。如圖1所示,TPM芯片主要由以下幾部分組成:I/O組件、非易失性存儲、身份密鑰、程序代碼、隨機數(shù)產(chǎn)生器、Sha-1算法引擎、RSA密鑰產(chǎn)生、RSA引擎、Opt-In選擇組件、執(zhí)行引擎。


             圖1 TPM芯片結(jié)構(gòu)

TPM芯片里的資源是有限的,它僅僅對外提供了一些基本的功能接口。為了充分應(yīng)用TPM的內(nèi)部功能,需要在TPM外部套接一個可信計算軟件棧TSS,TSS作為可信計算平臺上TPM的支持軟件,其規(guī)范定義了一種能夠讓訪問TPM變得簡單和直接的體系結(jié)構(gòu)。本文構(gòu)建的嵌入式平臺為三星的ARM9TDMI-S3C2410處理器,TPM芯片為Atmel公司的AT97SC3204T。

由圖2可知,TSS的運行模式分為兩種:用戶模式和內(nèi)核模式。用戶模式下,通常根據(jù)用戶的要求來加載和執(zhí)行用戶應(yīng)用程序和服務(wù),有時候這些用戶應(yīng)用程序和服務(wù)也可以作為啟動服務(wù)被載入。在內(nèi)核模式下,通常運行設(shè)備驅(qū)動和操作系統(tǒng)的核心組件。


              圖2 TSS體系結(jié)構(gòu)

TSS由三個邏輯組件構(gòu)成:TCG設(shè)備驅(qū)動程序庫(TCG Device Driver Library,TDDL)、TSS核心服務(wù)(TSS Core Services,TCS)、TCG服務(wù)提供者(TCG Service Provider,TSP)。

TDDL提供了一個與TPM設(shè)備驅(qū)動程序進行交互的API的庫,用來打開和關(guān)閉TPM設(shè)備驅(qū)動程序(TPM Device Driver)、發(fā)送和接收數(shù)據(jù)塊、查詢設(shè)備驅(qū)動程序的屬性、取消已經(jīng)提交的TPM命令。TCS層主要用來管理TPM的資源,提供了一個TPM命令數(shù)據(jù)塊產(chǎn)生器和一個全局的密鑰存儲設(shè)備。TSP層通過共享對象或動態(tài)鏈接庫直接被應(yīng)用程序調(diào)用。

TSS的工作流程如下:應(yīng)用程序的命令參數(shù)通過接口TSPl發(fā)送到TSP,TSP通過處理后傳送給TCS,TCS將接收到的請求轉(zhuǎn)化為TPM能夠識別的字節(jié)流,通過TDDL和TDD傳給TPM,然后反向經(jīng)TDDL、TDD、TCS、TSP傳回應(yīng)用程序。

TSS在ARM上的移植

本文所使用的宿主機操作系統(tǒng)為Fedora,交叉編譯工具為arm-linux-gcc。

TSS在ARM上的移植分為3部分:交叉編譯OpenSSL、交叉編譯TSS、制作包含TSS的文件系統(tǒng)。在交叉編譯TSS之前,先交叉編譯安裝OpenSSL,因為交叉編譯TSS的時候需要用到其中的libcrypto庫文件,其流程如圖3所示:


      圖3 TSS在ARM上的移植過程

交叉編譯OpenSSL

本文所使用的OpenSSL具體版本為1.0.0,在交叉編譯之前需要進行如下操作:

(1)配置:在對OpenSSL1.0.0進行配置時需要指定其安裝路徑,在后面配置TSS時需要調(diào)用OpenSSL安裝路徑里的庫文件,并且需要指定交叉編譯工具,具體命令如下:

$/config--prefix=/usr/local/openssl os/compiler:arm-linux-gcc

其中--prefix=/usr/local/openssl指定安裝的路徑,

os/compiler:arm-linux-gcc指定編譯器arm-linux-gcc;

(2)修改Makefile,里面對應(yīng)的部分需要修改為:

CC=arm-linux-gcc

EX_LIBS=-ldl

AR=arm-linux-ar $(ARFLAGS) r

RANLIB=arm-linux-ranlib

交叉編譯TSS

本文所使用的可信計算軟件棧為trousers0.3.3.2,在交叉編譯之前需要進行如下操作:

(1)執(zhí)行bootstrap.sh腳本,具體命令如下:

[root@happy trousers-0.3.3.2]#sh bootstrap.sh

(2)對軟件包進行配置,命令如下:

[root@happy trousers-0.3.3.2]# /configure

--host=arm-linux --with-openssl=/usr/local/openssl --prefix=/usr/tss

其中--host=arm-linux指定目標(biāo)平臺為ARM,并使用交叉編譯工具;--with-openssl=/usr/local/openssl指定OpenSSL所在的位置,交叉編譯的時候需要用到其中的libcrypto庫文件;--prefix=/usr/tss指定安裝位置。

包含TSS的文件系統(tǒng)制作

文件系統(tǒng)在宿主機上的目錄為~/rootfs,將交叉編譯安裝好的TSS(在宿主機上的位置為/usr/tss)拷貝到~/rootfs/usr下,將TSS安裝后生成的庫文件拷貝到~/rootfs的lib目錄下。

然后使用文件系統(tǒng)制作工具mkcramfs1.0,將目錄rootfs制作成鏡像文件,通過串口工具minicom下載到ARM開發(fā)板。

如果TSS啟動成功,則會出現(xiàn)如下提示:TCSD trousers 0.3.3.2:TCSD up and running。

注意事項

在制作文件系統(tǒng)時,~/rootfs/etc中需要添加關(guān)于TSS的group、passwd文件,hosts里面應(yīng)該包含localhost。否則,制作成文件系統(tǒng)燒寫進開發(fā)板之后,當(dāng)輸入#./usr/tss/sbin/tcsd-f啟動TSS時,會報錯。

將不希望用戶修改的文件都放在只讀的cramfs分區(qū)下,修改初始化腳本liunxrc,將TSS所在的目錄掛載為yaffs格式。另外下文中將要用到的/tmp目錄也要掛載為yaffs格式,保證可讀可寫。

應(yīng)用程序編寫

在完成了TSS在ARM平臺的移植之后,可以使用TSS所提供的API編寫應(yīng)用程序與TPM進行交互。下面主要介紹一下獲取屬主身份、創(chuàng)建密鑰、對文件進行加密和解密。

屬主身份獲取

首次使用TPM時,需要先獲取屬主身份,主要用到函數(shù)Tspi_TPM_TakeOwnership(),示例代碼如下:

TSS_RESULT rc=Tspi_TPM_TakeOwnership(a_hTpm, a_hSrk, NULL_HKEY);

if(rc!=TSS_SUCCESS)

{

fprintf(stderr,"Tspi_TPM_TakeOwnership:%s ", Trspi_Error_String(rc));

goto out_close;

}

printf("result is %d ",result);

return result;

[!--empirenews.page--]

如果獲取成功則返回值為0,如圖4所示:


         圖4 屬主身份獲取

密鑰創(chuàng)建

對文件進行加密時需要使用密鑰,這可以使用函數(shù)Tspi_Key_CreateKey()來創(chuàng)建,示例代碼如下:

TSS_RESULT result = Tspi_Key_CreateKey(hKey,hSrk,NULL_HOBJECT);

if(result!=TSS_SUCCESS)

{

fprintf(stderr,"Tspi_Key_CreateKey: %s ", Trspi_Error_String(rc));

goto out_close;

}

printf("create key success! ");

創(chuàng)建密鑰之前/tmp目錄下的文件只有dir,創(chuàng)建成功后會打印信息,并生成密鑰文件UserKeyBlob.cer,如圖5所示:


    圖5 密鑰創(chuàng)建

文件加密

加密操作主要使用函數(shù)Tspi_Data_Bind(),示例代碼如下:

TSS_RESULT rc=Tspi_Data_Bind(hEncdata,hKey, strlen(testCipher),(unsigned char*)testCipher);

if(result !=TSS_SUCCESS)

{

fprintf(stderr,"Tspi_Data_Bind: %s ",Trspi_Error_String(rc));

goto out_close;

}

交叉編譯后生成命令encryptFile。如果要加密的文件為/tmp/dir/test,前面創(chuàng)建的密鑰所在的目錄為/tmp,則編譯后執(zhí)行命令時的格式為encryptFile -e /tmp/dir /tmp。

加密之前,/tmp/dir目錄下只有test一個文件,使用cat命令查看該文件的內(nèi)容為:Hello,world!執(zhí)行加密命令之后,使用cat命令再次查看該文件的內(nèi)容,看到的是亂碼,而不是原始內(nèi)容,可見加密成功。加密后在test文件所在的目錄下會生成一個FileKey.cer文件。如圖6所示:


        圖6 文件加密

文件解密

解密操作使用函數(shù)Tspi_Data_Unbind(),示例代碼如下:

TSS_RESULT rc=Tspi_Data_Unbind(hEncdata,hKey, &unsealedDataLength, &unsealedData)

if(rc!=TSS_SUCCESS)

{

fprintf(stderr,"Tspi_Data_Unbind: %s ",Trspi_Error_String(rc));

goto out_close;

}

解密文件和加密文件使用的是同一個命令,但后綴參數(shù)不同,格式為encryptFile –d /tmp/dir /tmp。執(zhí)行解密操作后,使用cat命令查看加密的文件test,則可以看到原始的內(nèi)容,說明解密成功。此時,test文件所在的目錄下加密時生成的FileKey.cer文件消失。如圖7所示:


       圖7 文件解密

除了上面的幾個示例之外,還可以調(diào)用TSS的API編寫各種應(yīng)用程序?qū)PM進行操作??傊?,只要給定了TPM芯片,掌握了TPM的基本知識和TSS的API,就可以寫出可信計算的應(yīng)用程序。

結(jié)束語

傳統(tǒng)的可信計算一般是基于PC平臺的,本文通過可信計算軟件棧TSS在ARM平臺上的實現(xiàn),調(diào)用TSS的API編寫應(yīng)用程序與TPM進行交互,對于實現(xiàn)可信計算在嵌入式ARM平臺上的應(yīng)用提供了重要的橋梁和支持。
 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉