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