前言:尋找寫作靈感?中文期刊網(wǎng)用心挑選的可信計(jì)算機(jī)平臺發(fā)展思考,希望能為您的閱讀和創(chuàng)作帶來靈感,歡迎大家閱讀并分享。
傳統(tǒng)的安全防護(hù)技術(shù)主要是通過防火墻、病毒檢測、Virtualprivatenetwork(VPN)等來實(shí)現(xiàn)安全保障,而這些技術(shù)基本上都是以軟件為基礎(chǔ),側(cè)重以防為主,致使各種防御措施越做越復(fù)雜,系統(tǒng)性能要求越來越高,但是安全性仍然不能得到保障。 現(xiàn)在通常的做法是,在純軟件防護(hù)基礎(chǔ)上,再增加一層硬件保護(hù),協(xié)同特有的軟件技術(shù),能夠很大程度地提高甚至完全保障系統(tǒng)的安全性。而可信計(jì)算密碼支撐平臺正是一種能夠提供高可靠性、可用性的軟硬件計(jì)算機(jī)平臺,它的思想是通過可信平臺模塊,以密碼學(xué)技術(shù)為支撐,以操作系統(tǒng)為核心,通過一些加解密技術(shù)和認(rèn)證技術(shù)來為系統(tǒng)提供安全性保障。 1基于ETSM板卡的可信計(jì)算機(jī)平臺 本文采用的是以雙處理器協(xié)同處理的硬件體系結(jié)構(gòu)技術(shù),是一個(gè)雙處理器雙操作系統(tǒng)的安全Windows終端,即硬件體系結(jié)構(gòu)采取保持主核系統(tǒng)(PC機(jī))的軟硬件結(jié)構(gòu)不變、增加輔核系統(tǒng)(ARM處理系統(tǒng))的方法。 在Windows主機(jī)中的PCI插槽中插人一塊ARM板卡,ARM板卡運(yùn)行Linux系統(tǒng),通過PCI9054高速芯片與Windows主機(jī)相連。 板卡中集成了密碼算法模塊、隨機(jī)數(shù)發(fā)生器(產(chǎn)生真隨機(jī)數(shù))模塊以及可信處理模塊。Windows系統(tǒng)和Linux系統(tǒng)通過ARM板卡中的雙端口存儲器進(jìn)行內(nèi)部重要數(shù)據(jù)信息通信,雙端口處理器是可信密碼模塊與Windows主機(jī)進(jìn)行密鑰管理的緩沖存儲器,是可信計(jì)算機(jī)平臺的重要組成部分,Windows主核系統(tǒng)和Linux輔核系統(tǒng)通過中斷機(jī)制共同對密鑰的加載、存儲和授權(quán)數(shù)據(jù)進(jìn)行有效的管理。 2密鑰管理 可信密碼模塊內(nèi)部提供SM2一橢圓曲線密碼算法、SMS4一對稱密碼算法、SM3一密碼雜湊算法、HMAC一消息認(rèn)證碼算法。這些算法的功能都是在密鑰的基礎(chǔ)上提供的,因此作為密碼學(xué)基本要素的密鑰管理決定著整個(gè)可信計(jì)算機(jī)平臺的安全性舊J,是可信計(jì)算體系的核心。 2.1密鑰管理總體架構(gòu) 在可信計(jì)算中,密鑰是以樹形結(jié)構(gòu)存儲的。 整個(gè)密鑰層次為樹形結(jié)構(gòu),存儲主密鑰(Storagemasterkey,SMK)是整個(gè)密鑰層次結(jié)構(gòu)的根密鑰,其余的密鑰是由它直接或間接地進(jìn)行保護(hù)的,其保護(hù)方式為父密鑰加密子密鑰¨0l。本文是以雙核協(xié)同處理的硬件體系結(jié)構(gòu),在可信計(jì)算密鑰樹形結(jié)構(gòu)的基礎(chǔ)上,針對ETSM平臺,設(shè)計(jì)實(shí)現(xiàn)出可信計(jì)算機(jī)密鑰體系結(jié)構(gòu),密碼算法與隨機(jī)數(shù)發(fā)生器由FPGA硬件實(shí)現(xiàn),其具有快速、高效、產(chǎn)生真隨機(jī)數(shù)的特點(diǎn),它為E,rsM提供最基本的可信密碼算法(SM2、SMS4、SM3、HMAC),并提供隨機(jī)數(shù)產(chǎn)生和基本數(shù)據(jù)加解密服務(wù);ETSM密鑰管理模塊是ETSM的核心模塊,它對密鑰的生成、加載、注冊、銷毀等進(jìn)行有效安全地管理,其管理方式是按照樹形結(jié)構(gòu)來實(shí)現(xiàn)的;雙端口密鑰緩存管理是PC機(jī)與ETSM板卡通信的樞紐,承擔(dān)著命令字與數(shù)據(jù)的交換;外部密鑰數(shù)據(jù)庫是用來存放經(jīng)ETSM生成并加密的密鑰數(shù)據(jù)塊,對于用戶需要注冊的密鑰就是存儲在此外部的密鑰數(shù)據(jù)庫中。 2.2ETSM密鑰管理 可信密碼模塊中的密鑰按照使用范圍可以分為三類L8曲J:(1)平臺身份類密鑰,包括密碼模塊密鑰(TCMendorsementkey,EK)、平臺身份密鑰(Platformidentitykey,PIK)、平臺加密密鑰(Plat-formencryptionkey,PEK);(2)平臺存儲類密鑰,如SMK,用于保護(hù)PIK和用戶密鑰UK的主密鑰,是密鑰存儲樹結(jié)構(gòu)的根密鑰;(3)用戶類密鑰,如UK,用于實(shí)現(xiàn)用戶所需的密碼功能,包括機(jī)密性、完整性保護(hù)和身份認(rèn)證等。 在信息系統(tǒng)中,密鑰若是無限制的明文存儲,無論訪問控制如何復(fù)雜,也總會有一些特權(quán)用戶有機(jī)會存取密鑰,這對信息系統(tǒng)的安全是十分不利的。因此在可信計(jì)算中就采用多級密鑰管理體系,SMK是整個(gè)密鑰層次結(jié)構(gòu)的根密鑰,是密鑰存儲的關(guān)鍵密鑰,其余所有的密鑰都是由它直接或間接地進(jìn)行保護(hù)的,由SMK派生多個(gè)子密鑰。 父密鑰以加密的方式加密子密鑰存儲,對于處在葉子節(jié)點(diǎn)的密鑰,層次越高,它的安全性越高,但是它的管理就會相對復(fù)雜一些,一般三層可以滿足安全要求。本文實(shí)現(xiàn)的ETSM密鑰管理,其核心就是密鑰的數(shù)據(jù)管理與實(shí)現(xiàn)。密鑰的數(shù)據(jù)結(jié)構(gòu)如圖3所示,algorithm字段標(biāo)識該密鑰屬于何種密鑰(SM2或SMS4密鑰),每個(gè)子密鑰都是由其父密鑰進(jìn)行加密,對于SMS4密鑰,它的整個(gè)密鑰數(shù)據(jù)部分都要進(jìn)行加密,而對于SM2密鑰,它的公鑰部分不進(jìn)行加密,私鑰部分則由其父密鑰進(jìn)行加密。父密鑰的類型也可以是SM2或SMS4的一種,因此hSM2Key與hSMS4Key用來存放必要的密鑰信息。authDataUsage存放該密鑰的授權(quán)數(shù)據(jù),flag代表此密鑰是否已解密,0代表已加密,l代表已解密。 函數(shù)Tspi—Key—CreateKey(TCM—KEYhKey,TCM—KEYhParentKey)使ETSM板卡生成指定的密鑰,由父密鑰對生成的密鑰進(jìn)行加密保護(hù)。調(diào)用函數(shù)Tspi—Key—LoadKey(TCM—KEYhKey,TCM—KEYhParentKey)將密鑰加載到ETSM板卡內(nèi)部才能使用,只有通過父密鑰對需加載的密鑰進(jìn)行解密才能夠正確地加載。密鑰的生成是依賴于高效的FPGA硬件實(shí)現(xiàn),當(dāng)生成密鑰字符串后,必須由指定的父密鑰進(jìn)行加密,并填充加密后的相應(yīng)字段。同理,密鑰的加載只有通過父密鑰對需加載的密鑰進(jìn)行解密才能夠正確地加載,并填充相應(yīng)的字段。如果密鑰是需要授權(quán)的,就需要為密鑰設(shè)置正確的授權(quán)數(shù)據(jù)才能加載,否則就會加載失敗。 2.3雙端口密鑰緩存管理雙端口存儲器是PC機(jī)與ETSM進(jìn)行信息交換的關(guān)鍵部件,它為上層的應(yīng)用程序提供可信的服務(wù)保障。當(dāng)用戶使用ESPI層的功能函數(shù)時(shí),PC機(jī)Windows往雙端口存儲器寫入相應(yīng)的數(shù)據(jù),并觸發(fā)中斷向ETSM板卡提出相應(yīng)的功能請求,ETSM板卡則在內(nèi)部響應(yīng)請求做相應(yīng)處理,再將處理結(jié)果返回給Windows。命令字段是整個(gè)密鑰緩存的重要部分,它代表的是功能命令字段,每當(dāng)用戶需要ETSM的服務(wù)時(shí),ETSM就會根據(jù)命令字段的類型做出相應(yīng)的處理,命令字段種類繁多,這里僅列出幾條密鑰相關(guān)的部分定義。例如,當(dāng)用戶調(diào)用Tspi—Data—Encrypt時(shí),命令字段就為KEY—ENCRYPT,并在雙端口存儲器寫入相應(yīng)的密鑰信息,包括加密的密鑰數(shù)據(jù)塊以及密鑰類型、授權(quán)數(shù)據(jù)等,并觸發(fā)中斷,ETSM收到中斷后讀取命令字,并提取密鑰信息,對數(shù)據(jù)進(jìn)行加密,將加密后的結(jié)果返回給PC機(jī)。#p#分頁標(biāo)題#e# 2.4外部密鑰存儲 在ETSM中,只有EK和SMK存儲在可信模塊的內(nèi)部,而其余的密鑰都是通過根密鑰SMK進(jìn)行層次級保護(hù)以后通過雙端ISl加密存儲在外部Windows的磁盤存儲設(shè)備中。只有在密鑰需要使用的時(shí)候才將外部的密鑰通過雙端口導(dǎo)入到可信模塊內(nèi)部使用,使用完成之后再將模塊內(nèi)部密鑰釋放,這在很大程度上節(jié)約了空間使用。 對ETSM板卡生成的密鑰,如果想要進(jìn)行保存,可以通過函數(shù)Tspi—Context—RegisterKey存儲在外部Windows保護(hù)磁盤空間里,并且為之分配一個(gè)唯一的UUID號,UUID號只是密鑰的標(biāo)識,通過UUID號,可以對此密鑰進(jìn)行相關(guān)操作,所有的密鑰可以分為兩類,非對稱密鑰和對稱密鑰。對稱密鑰,是加密和解密共享同一個(gè)密鑰,是SMS4算法密鑰,密鑰長度為128比特位。 非對稱密鑰是SM2算法密鑰,它的私鑰長度為256比特位,而公鑰是兩個(gè)長度為256比特位組成的坐標(biāo)點(diǎn)。而在模塊的外部,密鑰是不能以明文進(jìn)行存儲的,必須用父密鑰進(jìn)行加密才能存儲,為了方便進(jìn)行檢索,分以下四種情況分別存儲。 2.4.1存儲SMS4密鑰,父密鑰為SMS4密鑰 需要存儲的密鑰為128比特位,經(jīng)過父密鑰加密過后仍然是128位,因此它的存儲格式比較簡單,用文件SMS4一SMS4.txt進(jìn)行存儲。 每個(gè)密鑰項(xiàng)在文件中以換行符隔開,以便存取。父密鑰ID號若為0,則表示此密鑰是由可信模塊內(nèi)部的存儲主密鑰SMK進(jìn)行加密的。著子密鑰ID號為0,則表示沒有子密鑰,在密鑰樹中為葉子節(jié)點(diǎn)。 2.4.2存儲SMS4密鑰,父密鑰為SM2密鑰 SM2密鑰的公鑰為兩個(gè)256位的整數(shù),共512位即64字節(jié)。對于SM2非對稱密鑰,它的公鑰部分不需要加密,只需要保護(hù)它的私鑰部分。128位的SMS4密鑰數(shù)據(jù)經(jīng)過SM2的公鑰加密得到兩個(gè)密文點(diǎn)Cl(clx,cly)、C2(c2x,c2y)。用文件SMS4_SM2.txt進(jìn)行存儲。 2.4.3存儲SM2密鑰,父密鑰為SMS4密鑰 SM2非對稱密鑰的公鑰共有512位64字節(jié),不需要經(jīng)過加密存儲。而它的私鑰部分經(jīng)過SMS4算法加密存儲后,為256位32字節(jié)。用文件SM2~SMS4.txt進(jìn)行存儲 2.4.4存儲SM2密鑰,父密鑰為SM2密鑰 需要存儲的SM2密鑰的私鑰部分用它的父密鑰的公鑰進(jìn)行加密,加密后的數(shù)據(jù)是4個(gè)256位長度,占用128字節(jié)。而公鑰部分無需加密。用文件SM2__SM2.txt進(jìn)行存儲。 密鑰的產(chǎn)生是在可信模塊內(nèi)部進(jìn)行存儲的,如果只是臨時(shí)使用,則不需要進(jìn)行存儲,只有一些用戶需要存儲的密鑰,才要通過雙端口緩存進(jìn)行存儲。在可信模塊內(nèi)部,經(jīng)過父密鑰加密后將加密后的密鑰數(shù)據(jù)按照雙端口控制信息格式寫入雙端口,并觸發(fā)中斷給Windows,Windows從雙端口讀取出密鑰數(shù)據(jù)塊,根據(jù)不同長度判斷存入相對應(yīng)的文件中。 2.5系統(tǒng)測試 本系統(tǒng)的加密算法、密鑰管理等模塊已通過Linux系統(tǒng)的C編程實(shí)現(xiàn),隨機(jī)密鑰的生成模塊采用AheraFPGA邏輯設(shè)計(jì)實(shí)現(xiàn)。完成加密程序、密鑰管理模塊在ARM處理器中加載之后,并在Windows系統(tǒng)運(yùn)行系統(tǒng)客戶應(yīng)用程序,則搭建了一個(gè)可信驗(yàn)證平臺。通過在該平臺完成的網(wǎng)絡(luò)信息傳遞及處理,能夠驗(yàn)證系統(tǒng)方案的正確性。 3結(jié)束語 密鑰在可信計(jì)算機(jī)體系中對平臺的身份證明、安全存儲和完整性度量起著非常重要的作用,因此密鑰管理是實(shí)現(xiàn)可信計(jì)算的重要環(huán)節(jié)。本文在自主開發(fā)的$3C2410的ARM9的ErrsM板卡中,設(shè)計(jì)實(shí)現(xiàn)了符合TCM規(guī)范的密鑰管理體系結(jié)構(gòu),對其中的密鑰管理形式進(jìn)行了詳細(xì)的分析,并設(shè)計(jì)實(shí)現(xiàn)了密鑰的有關(guān)管理模塊,通過測試得到了可行性驗(yàn)證,系統(tǒng)進(jìn)一步完善提升功能后,將重點(diǎn)應(yīng)用于國防及安全性要求較高的計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境中保障信息安全性。