胡如會+賀道德
摘要:隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,信息安全受到了極大的威脅。針對用戶隱私數(shù)據(jù)在存儲環(huán)境、存儲方式和存儲保障3個方面的問題,提出了一種基于可信計算技術(shù)的安全存儲方案。該方案利用可信計算平臺的完整性度量機制來建立可信存儲環(huán)境,不僅使用了橢圓曲線加密機制為用戶數(shù)據(jù)提供機密性保護,還利用了密鑰樹對加密數(shù)據(jù)的密鑰進行管理。
關(guān)鍵詞:可信計算;數(shù)據(jù)加密;安全存儲;密鑰樹
中圖分類號:TP309 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)25-0017-03
Abstract: With the development of network technology, information security has been a great threat. A secure storage scheme Based on trusted computing is proposed to solve the three problems of user privacy data, which are storage environment, storage mode and storage support. The reliable storage environment is established, which applied the integrity measurement mechanism of trusted computing platform. The scheme not only applied elliptic curve encryption mechanism for user data, but also used the key tree to manage the keys of the encrypted data.
Key words: trusted computing;data encryption;secure storage;key tree
1 概述
隨著信息技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)安全和用戶隱私泄露的問題越來越嚴(yán)重,網(wǎng)絡(luò)數(shù)據(jù)的安全性已成為國家和政府所面臨的一個主要問題。傳統(tǒng)的網(wǎng)絡(luò)防護機制已經(jīng)不能有效地保障網(wǎng)絡(luò)數(shù)據(jù)的安全,網(wǎng)絡(luò)的可信運行是數(shù)據(jù)安全的關(guān)鍵[1],可信計算是實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)安全最有效的手段之一。面對網(wǎng)絡(luò)數(shù)據(jù)易受攻擊的威脅,可信計算可以從根本上轉(zhuǎn)變傳統(tǒng)的防御模式[2],基本實現(xiàn)數(shù)據(jù)在存儲、傳輸、處理等全過程的主動免疫和可信管理。
可信計算是一種自我免疫計算模式[3],是信息系統(tǒng)安全新技術(shù),計算機在運算時全程可測可控??尚庞嬎慵夹g(shù)需要可信計算平臺(Trusted Platform Model,TPM)作為硬件支撐,TPM是一種含有密碼運算器和存儲部件的防篡改硬件芯片,運算器用于密鑰生成、加密和解密,存儲部件用來存儲密鑰。保障數(shù)據(jù)安全的核心是密碼技術(shù),密碼技術(shù)是研究加密和解密的一門科學(xué),是控制明文與密文交換的理論基礎(chǔ),其通過密鑰管理機制來控制。在眾多的網(wǎng)絡(luò)安全問題中,數(shù)據(jù)存儲的安全是關(guān)鍵,用什么方式存儲尤為重要。將基于可信計算技術(shù)的TPM應(yīng)用于網(wǎng)絡(luò)數(shù)據(jù)安全,即便數(shù)據(jù)被黑客竊取,對方也無法解密獲得內(nèi)容,從而可確保數(shù)據(jù)存儲的安全性。
2 數(shù)據(jù)安全存儲問題分析
網(wǎng)絡(luò)數(shù)據(jù)服務(wù)器平臺在各個領(lǐng)域都得到應(yīng)用并取得了很好的應(yīng)用效果,盡管越來越多的用戶接受并使用了網(wǎng)絡(luò)公共數(shù)據(jù)平臺的存儲服務(wù),但對于數(shù)據(jù)的存儲安全、傳輸安全、硬件安全以及用戶隱私保護等仍存在一些安全性方面的擔(dān)憂。網(wǎng)絡(luò)數(shù)據(jù)平臺的開放性和共享性,使得平臺具有數(shù)據(jù)被竊取和被篡改的風(fēng)險,在所有安全問題中,數(shù)據(jù)的安全存儲是最受關(guān)注的問題。數(shù)據(jù)的安全存儲問題主要包括以下3個方面:
(1) 存儲環(huán)境:存儲數(shù)據(jù)的公共服務(wù)器平臺本身是否安全、可靠。傳統(tǒng)的服務(wù)器平臺體系結(jié)構(gòu)簡單,容易被惡意程序植入,程序執(zhí)行代碼容易被篡改,數(shù)據(jù)容易被竊取和被非法利用,而傳統(tǒng)的監(jiān)控預(yù)警、防火墻、殺毒軟件等并不能有效地保障數(shù)據(jù)的安全,很難保證服務(wù)器平臺存儲環(huán)境的整體可靠。
(2) 存儲方式:采用何種數(shù)據(jù)存儲方式才能確保存儲在服務(wù)器平臺上的數(shù)據(jù)不被攻擊和泄露,是否能實現(xiàn)用戶數(shù)據(jù)在公共服務(wù)器平臺上的隱匿,是否能實現(xiàn)即使數(shù)據(jù)被竊取也無法解密內(nèi)容,數(shù)據(jù)存儲的方式是關(guān)鍵。
(3) 存儲保障:由于網(wǎng)絡(luò)用戶眾多,數(shù)據(jù)服務(wù)器平臺需要管理的用戶密鑰較多,一旦密鑰泄露,與之相關(guān)的數(shù)據(jù)將會被竊取和篡改,將帶來不可估算的損失。在TPM存儲空間有限的前提下,如何保障數(shù)據(jù)存儲機制的安全,如何保障用戶密鑰的安全,是解決數(shù)據(jù)存儲安全必須要考慮的因素。
3 數(shù)據(jù)安全存儲方案
可信計算是一種運算和防護并存的信息系統(tǒng)安全新技術(shù),有別于傳統(tǒng)網(wǎng)絡(luò)安全的封堵查殺防護機制,其從終端開始主動防御,以可信平臺模塊TPM作為服務(wù)器平臺的信任根,通過TPM提供的安全特性來提高網(wǎng)絡(luò)服務(wù)器系統(tǒng)的整體安全性。針對數(shù)據(jù)安全存儲提出的存儲環(huán)境、存儲方式和存儲保障3個方面的問題,利用可信計算技術(shù)設(shè)計了數(shù)據(jù)安全存儲方案,如圖1所示。
由圖1可知,系統(tǒng)平臺本身的安全可靠是確保數(shù)據(jù)存儲安全的基礎(chǔ),采用可信計算技術(shù)中的完整性度量機制可確保存儲環(huán)境可信、可靠。確保平臺環(huán)境可信后,利用加密機制保護數(shù)據(jù)的機密性,使數(shù)據(jù)在可信環(huán)境下加密、解密,而加密算法的安全性又取決于用戶密鑰的安全,利用密鑰樹管理密鑰可把對多密鑰的管理轉(zhuǎn)化為單一密鑰的管理,不僅降低了運算量,還減少了存儲TPM的存儲空間,而且為密鑰的存儲提供了更高的安全保障。
3.1 建立可信存儲環(huán)境
可信存儲環(huán)境的建立是數(shù)據(jù)安全存儲的前提,內(nèi)置于網(wǎng)絡(luò)系統(tǒng)服務(wù)器中的可信計算模塊TPM是硬件基礎(chǔ)。服務(wù)器啟動數(shù)據(jù)存儲時需要借助于可信計算技術(shù)對啟動軟件進行完整性報告度量,以判斷服務(wù)器平臺是否被篡改[4]。這一過程是通過TPM中的AIK對平臺配置寄存器(Platform Configuration Register,PCR)進行簽名,然后根據(jù)完整度量日志SML(Stored Measurement Log)及其完整性參考值進行校驗來實現(xiàn),如圖2所示。endprint
由圖2可知,服務(wù)器數(shù)據(jù)存儲的啟動從信任根開始,信任根被啟動后先度量BIOS,其度量值被擴展到PCR中,然后將控制權(quán)轉(zhuǎn)移給BIOS的指定代碼繼續(xù)度量,依次繼續(xù)度量系統(tǒng)啟動模塊、系統(tǒng)內(nèi)核、系統(tǒng)上的應(yīng)用程序,從而建立起一條信任鏈,每一次度量值都被擴展到PCR中。系統(tǒng)服務(wù)器端使用身份密鑰對平臺狀態(tài)的最終值進行簽名后報告給用戶端。用戶訪問服務(wù)器時,先通過公開的身份證書驗證簽名以證實服務(wù)器平臺的身份,然后通過度量值與SML中的標(biāo)準(zhǔn)度量參考值進行比對,如果一致說明該服務(wù)器平臺計算環(huán)境可信。如果信任鏈中某個軟件的代碼被惡意篡改,在計算過程中各操作步驟擴展出的度量值將會被改變,當(dāng)其與SML中的標(biāo)準(zhǔn)度量參考值不一致時,說明系統(tǒng)在啟動過程中數(shù)據(jù)已經(jīng)發(fā)生了改變,表明該計算環(huán)境不可信。
3.2 加密存儲
要確保用戶數(shù)據(jù)不被攻擊和泄露,對數(shù)據(jù)進行加密存儲是關(guān)鍵。數(shù)據(jù)在被上傳到服務(wù)器平臺后,服務(wù)器可能因被惡意程序植入而導(dǎo)致數(shù)據(jù)泄露,或是被非法入侵后數(shù)據(jù)被篡改。如果數(shù)據(jù)在上傳服務(wù)器之前就對其進行拆分、加密,即使數(shù)據(jù)在存儲過程中丟失,也會因為事先對數(shù)據(jù)采用了加密機制而不會被竊取者獲得數(shù)據(jù)內(nèi)容。
自1976年Diffie-Hellman在其論文中提出公開密鑰密碼機制思想[5,6]后,很多公開密鑰密碼機制被陸續(xù)提出來,所有密鑰管理機制的安全性都依賴于數(shù)學(xué)問題的難解性,大量的密鑰機制已經(jīng)被攻破,迄今只有兩類密碼機制被證明是安全有效的:基于RSA(Rivest-Shamir- Adleman)的密鑰機制和基于ECC(Elliptic Curve Cryptosystem)的密鑰機制。
RSA自提出以來一直是研究的焦點,目前國內(nèi)外大多數(shù)加密、解密、數(shù)字簽名等產(chǎn)品使用的標(biāo)準(zhǔn)都是RSA密鑰機制。由于RSA的安全性完全依賴于大整數(shù)因子分解問題,隨著計算機網(wǎng)絡(luò)的發(fā)展,為保障RSA密碼的安全性,研究人員不得不通過使用更大的整數(shù)來實現(xiàn)RSA密碼,以增加其被破解的難度,這使得用RSA實現(xiàn)的代價變大,應(yīng)用效率也隨著計算量的增大而降低,已經(jīng)成為制約RSA密鑰機制發(fā)展的主要瓶頸。
ECC是1985年由Victor Miller和Neal Koblitz提出的密鑰機制,其安全性完全依賴于橢圓曲線上的離散對數(shù)問題(ECDLP,Elliptic Curve Discrete Logarithm Problem)的難解性,它是指數(shù)級的難解度,抗攻擊更強,不易被破解和篡改。
設(shè)有限域[Fp]上的橢圓曲線[EFp:y2=x3+ax+b (mod p)],其中[a,b∈Fp],且[4a3+27b2≠0],[(x,y)∈E(Fp)]。假設(shè)[ P、Q]是橢圓曲線[E(Fp)]上的任意兩點,求[x ]使得[xP=Q],稱為橢圓曲線[E(Fp)]上的離散對數(shù)問題,顯然不是[E(Fp)]上任意兩點都有解[ x ],已知[ P ]和[ Q ]要計算[ x ]是非常困難的,特別是當(dāng)[E(Fp)]上的點[P ]是較高階時,計算[ x ]是不可行的。
ECC算法較RSA算法的優(yōu)點在于,ECC算法可用較短的密鑰即可獲得與RSA算法相等的安全性,ECC加密算法采用160bits的密鑰與RSA采用1024bits的密鑰相當(dāng),且隨著模數(shù)的增大,ECC算法的安全性比RSA更強,且密鑰長度的增長比RSA慢,因此ECC在密鑰計算消耗上較RSA少[7]。ECC加密算法具有大數(shù)運算、大容量存儲的特點[8],是目前已知的公鑰體制中加密強度最高的一種密鑰機制。因此,本方案中采用ECC橢圓曲線加密機制對用戶密鑰進行機密保護。
3.3 密鑰樹管理
數(shù)據(jù)存儲的安全性很大程度上取決于數(shù)據(jù)加密密鑰的安全性,網(wǎng)絡(luò)數(shù)據(jù)平臺用戶眾多,服務(wù)器需要管理大量的用戶密鑰。TPM具有防篡改、防攻擊的特點,數(shù)據(jù)和密鑰存放在其內(nèi)部相對較安全,但TPM內(nèi)部存儲空間有限,只能存儲少量的數(shù)據(jù)和密鑰,大部分?jǐn)?shù)據(jù)和密鑰則存放在TPM外部。為了有效地利用有限的存儲空間來裝載更多的用戶密鑰,可信計算組織TCG將TPM密鑰管理分為內(nèi)部密鑰和外部密鑰[9]。在所有的密鑰類型中,只有背書密鑰EK和存儲根密鑰SRK必須以明文形式存儲在TPM內(nèi)部。其它密鑰被加密后以密文形式保存在TPM外部存儲區(qū)中,需要時再加載到TPM的內(nèi)部進行解密。為了保護存儲在外部的數(shù)據(jù)和密鑰,采用加密機制以及密鑰樹形結(jié)構(gòu)進行管理[10]:以存儲根密鑰SRK為根結(jié)點,存儲密鑰為分支節(jié)點,通過父密鑰對子密鑰進行數(shù)據(jù)加密,并輔以密鑰訪問授權(quán)機制。TPM的密鑰管理樹結(jié)構(gòu)如圖3所示[11]:
從圖3可以看出,TPM密鑰樹頂層的根密鑰為SRK,其他密鑰的父密鑰都通過TPM中的SRK加密生成,SRK受TPM保護,主要對其子密鑰進行加密,生成二級密鑰,二級密鑰又對其子密鑰進行加密,生成三級密鑰,以此類推,父密鑰節(jié)點對子密鑰節(jié)點進行層層加密,構(gòu)成了密鑰樹結(jié)構(gòu)[12]。所有用戶密鑰都是以密文形式存在,而所有的密鑰操作都需要密鑰以明文形式在TPM內(nèi)部完成。當(dāng)密鑰槽中的密鑰離開TPM時,必須用其父密鑰的公鑰進行加密,加密后通過可信計算軟件協(xié)議棧(TCG Software Stack,簡稱TSS)分配一個唯一標(biāo)識符UUID,該UUID便于系統(tǒng)對TPM外部存儲的密鑰進行搜索和調(diào)度。當(dāng)用戶需要使用某個目標(biāo)密鑰時,需要先將該密鑰進行解密后導(dǎo)入TPM內(nèi)部。要想解密目標(biāo)密鑰,需要先將其從SRK到該密鑰所有的父密鑰(非SRK)依次解密并層層授權(quán)后加載到TPM內(nèi)部密鑰槽中,最后通過驗證密鑰合法后才能操作該密鑰。
如圖4所示,假設(shè)K3是一個需要操作的簽名密鑰對象,K3的父密鑰是K2,K2的父密鑰是K1,K1的父密鑰是SRK,K3被加載到TPM的過程如下:
(1) 首先通過UUID定位目標(biāo)密鑰K3;
(2) 以K3為起點創(chuàng)建一條密鑰鏈:K3→K2→K1→SRK;endprint
(3) 將K1導(dǎo)入到TPM中:通過輸入正確的SRK授權(quán)值,TPM中的ECC引擎利用SRK解密K1,解密后的K1被放入密鑰槽中;
(4) 然后將K2導(dǎo)入到TPM中:通過輸入正確的K1授權(quán)值,TPM中的ECC引擎利用密鑰槽中的K1將K2解密,解密后的K2被放入到密鑰槽中;
(5) 再將K3導(dǎo)入到TPM中:通過輸入正確的K2授權(quán)值,TPM中的ECC引擎利用密鑰槽中的K2將K3解密,解密后的K3將被放在密鑰槽中;
(6) 最后輸入K3的授權(quán)值之后,K3才能在TPM中進行簽名操作。
假設(shè)ECC加密算法足夠安全可抵御攻擊,那么TPM密鑰管理樹的安全取決于對根密鑰SRK的保護。根密鑰SRK存儲在具有防篡改功能的可信平臺TPM內(nèi)部,所以整個密鑰樹的安全都有保障。采用密鑰樹存儲管理用戶數(shù)據(jù)密鑰,既保障了數(shù)據(jù)存儲的安全性,又解決了TPM內(nèi)部存儲空間小的問題。
4 結(jié)束語
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,公共數(shù)據(jù)服務(wù)器平臺的數(shù)據(jù)存儲服務(wù)已被人們接受和使用,所以平臺的存儲安全是關(guān)注的焦點。本文針對用戶隱私數(shù)據(jù)在存儲環(huán)境、存儲方式和存儲保障3個方面的問題,根據(jù)TPM芯片具有防攻擊、防篡改等安全防護的特點,提出了一種基于可信計算技術(shù)的安全存儲方案。該方案利用可信計算平臺的完整性度量機制來建立可信存儲環(huán)境,利用橢圓曲線加密機制為用戶數(shù)據(jù)提供機密性保護,還利用了密鑰樹對加密數(shù)據(jù)的密鑰進行管理。可信計算技術(shù)的研究與應(yīng)用在國內(nèi)已經(jīng)比較成熟,使用可信計算技術(shù)提升公共網(wǎng)絡(luò)服務(wù)器的安全性是解決數(shù)據(jù)存儲安全的有效方法之一。
參考文獻:
[1] 沈昌祥,公備.基于國產(chǎn)密碼體系的可信計算體系框架[J].密碼學(xué)報, 2015, 2(5):381-389.
[2] 沈昌祥,陳興蜀.基于可信計算構(gòu)建縱深防御的信息安全保障體系[J].四川大學(xué)學(xué)報:工程科學(xué)版,2014,46(1):1-7.
[3] 沈昌祥.密碼在網(wǎng)絡(luò)空間安全中的作用和地位[J].中國金融電腦,2016.1:57-61.
[4] 黃寧玉,李爽,宋式斌.公共數(shù)據(jù)平臺上數(shù)據(jù)安全存儲方案研究[J].武漢大學(xué)學(xué)報:理學(xué)版, 2012, 58(S1):61-64.
[5] Neal Koblitz, Alfred Menezes, Scott Vanstone. The State of Elliptic Curve Cryptography[J]. Designs, Codes and Cryptography, 19(2002):173-193.
[6] Mugino Saeki. Elliptic Curve Cryptosystems, A thesis Masters degree, McGill University, 2,1997.
[7] William Stallings. 密碼編碼學(xué)與網(wǎng)絡(luò)安全——原理與實踐:第三版[M]. 北京: 電子工業(yè)出版社, 2005.
[8] S. A. Miura. Overview of Elliptic Curve crypto-graphy. Springer- Verlag, 1998, LNCS, 1431: 29-49.
[9] 陳仁海.嵌入式可信計算平臺中加解密算法的研究[D].山東大學(xué),2012.
[10] 楊波.可信計算平臺密鑰管理機制的應(yīng)用與研究[D].西安電子科技大學(xué),2008.
[11] 王海燕.可信計算平臺密鑰管理技術(shù)及應(yīng)用[D].陜西師范大學(xué),2010.
[12] 劉覓.基于USBKey的移動TPM密鑰管理管理 [D].北京交通大學(xué),2009.endprint