石強 張欣
1.河北大學(xué)數(shù)學(xué)與計算機學(xué)院;2.河北省保定市供水總公司 071002
可信存儲的密鑰管理
石強1張欣2
1.河北大學(xué)數(shù)學(xué)與計算機學(xué)院;2.河北省保定市供水總公司 071002
可信存儲依托于可信計算技術(shù),而可信計算技術(shù)又是以密碼技術(shù)為基礎(chǔ)的。針對TCG可信存儲規(guī)范中存在的問題,論文提出了基于TPCM的可信存儲的密鑰管理模型,對于今后可信存儲發(fā)展具有一定作用。
可信存儲;密鑰管理
Trusted store;Key Management
可信存儲(TrustedStorage)是將可信計算技術(shù)應(yīng)用到存儲設(shè)備中,通過對存儲行為進行控制,實現(xiàn)對存儲數(shù)據(jù)的機密性、完整性和可用性的保護。本文主要分析了可信存儲的密鑰管理相關(guān)問題。
1.1 TCG可信存儲的密鑰管理機制
在密鑰的存儲結(jié)構(gòu)上,TCG存儲規(guī)范中使用表(Table)的結(jié)構(gòu)來保存密鑰。表的每一行存儲一個密鑰,稱為一個密鑰對象,整個表結(jié)構(gòu)稱為對象表(ObjectTable)。規(guī)范中存在多種密鑰對象表,每種表都表示一種特定的密鑰存儲類型和使用機制,不同的密鑰將會按照限定條件分類存儲到相應(yīng)的表中。在規(guī)范中,密鑰對象表是作為模板(Template)的一種數(shù)據(jù)結(jié)構(gòu)而存在的,有兩種模板中包含密鑰對象表,分別是基模板(BaseTemplate)和鎖定模板(LockingTemplate),基模板的密鑰對象表中的密鑰用于認(rèn)證,鎖定模板的密鑰對象表中的密鑰用于數(shù)據(jù)加密。模板對其數(shù)據(jù)結(jié)構(gòu)中的表按類型分組,在基模板中,密鑰對象表組成憑證表組(CredenialTableGroup),這說明組中的表是憑證表,表中的密鑰對象用作身份認(rèn)證中的憑證。在憑證表的命名上,表名全部以“C”開頭,后接密碼算法類型和密鑰長度,例如,由表名“CRSA1024”可知憑證表中保存的是1024位長的RSA密鑰。除RSA密鑰外,各類憑證表中還分別保存了AES算法、EC算法和HMAC算法所使用的密鑰,且支持多種密鑰長度。此外,憑證表組中還包含名為“CPIN”的憑證表,其中保存了認(rèn)證所需的PIN碼,即采用口令方式進行身份認(rèn)證。而對于數(shù)據(jù)加密密鑰,則是保存在鎖定模板的密鑰對象表中。鎖定模板同樣對數(shù)據(jù)結(jié)構(gòu)分組,并將密鑰對象表歸入介質(zhì)加密密鑰表組中。組中包括2個加密密鑰表,表名分別為“KAES128”和“KAES256”,由此可見,規(guī)范中采用AES算法對存儲數(shù)據(jù)進行加密,密鑰長度可以為128位或256位。
密鑰相關(guān)方法組包括3個方法,分別是 GenKey、GetPackage和 SetPackage。SetPackage方法用于外部實體設(shè)置密鑰,它相當(dāng)于GetPackage方法的逆操作。該方法對外部實體傳送來的包進行解封,取出所要設(shè)置的密鑰,并將其存儲到指定的密鑰對象中??梢姡琓CG存儲規(guī)范在模板的數(shù)據(jù)結(jié)構(gòu)和方法中分別定義了密鑰的存儲結(jié)構(gòu)和密鑰管理的相關(guān)方法,并通過發(fā)布過程將模板實例化,從而將上述密鑰管理機制加載到實例化后的對象中。
1.2 TCG存儲規(guī)范中存在的問題
對于TCG存儲規(guī)范,個人認(rèn)為,其中存在兩點問題:其一是規(guī)范的存儲體系結(jié)構(gòu)不能確保信任的雙向傳遞;其二是規(guī)范的密鑰存儲保護機制不明確。下面分別予以說明。
(1)信任雙向傳遞問題??尚糯鎯Φ摹翱尚拧痹谠O(shè)備功能上主要體現(xiàn)為存儲設(shè)備具有雙向認(rèn)證的能力。雙向認(rèn)證的目的是使主機和存儲設(shè)備能夠相互認(rèn)證對方身份,并以雙方身份的真實性為基礎(chǔ),建立起相互信任的關(guān)系,從而實現(xiàn)主機和存儲設(shè)備之間的信任雙向傳遞和綁定。
(2)密鑰存儲保護問題。對數(shù)據(jù)的密碼保護機制已經(jīng)將數(shù)據(jù)安全問題轉(zhuǎn)化密鑰的安全問題。而密鑰安全的一個重要方面就是要保證密鑰的存儲安全。如前文所述,在TCG存儲規(guī)范中,密鑰是以對象的形式通過表的結(jié)構(gòu)來進行存儲的。密鑰對象表中保存了密鑰的秘密數(shù)據(jù),包括對稱密鑰和非對稱密鑰的私鑰部分。TCG存儲規(guī)范中只規(guī)定了需要對密鑰的秘密信息加以保護,但沒有具體指明應(yīng)該采取何種方式進行保護,也就是沒有給出明確的密鑰存儲保護機制。
對管理的對象,即可信存儲中的密鑰,進行說明。主要探討各種密鑰不同的功能特性和安全需求,以便針對密鑰自身的特點進行分類管理。根據(jù)密鑰功能的不同,可以將可信存儲中的密鑰分為以下幾類:設(shè)備身份密鑰、設(shè)備加密密鑰、數(shù)據(jù)加密密鑰、認(rèn)證密鑰、會話密鑰。
(1)設(shè)備身份密鑰設(shè)備。身份密鑰為非對稱密鑰,它的私鑰一直在存儲設(shè)備內(nèi)部被保護,且永遠不會暴露在存儲設(shè)備外部。設(shè)備身份密鑰是存儲設(shè)備的初始密鑰,對一個存儲設(shè)備而言,設(shè)備身份密鑰是唯一的,用來向主機提供設(shè)備的身份證明。設(shè)備身份密鑰只提供對數(shù)據(jù)的簽名,而不用于加密。
(2)設(shè)備加密密鑰設(shè)備加密密鑰為非對稱密鑰,并且與設(shè)備身份密鑰相關(guān)聯(lián)。設(shè)備加密密鑰和設(shè)備身份密鑰配對構(gòu)成雙密鑰(及雙證書)。設(shè)備加密密鑰可用于存儲設(shè)備與主機間的數(shù)據(jù)交換以及設(shè)備間的密鑰遷移。
(3)數(shù)據(jù)加密密鑰。數(shù)據(jù)加密密鑰為對稱密鑰,用于加密/解密用戶數(shù)據(jù),保護靜態(tài)數(shù)據(jù)的機密性。數(shù)據(jù)加密密鑰在存儲設(shè)備內(nèi)部產(chǎn)生,并存儲于設(shè)備的安全存儲區(qū)域中,且在其生命周期內(nèi)不會脫離存儲設(shè)備的保護。數(shù)據(jù)加密密鑰用例中,存儲設(shè)備使用數(shù)據(jù)加密密鑰對主機傳輸?shù)挠脩裘魑臄?shù)據(jù)進行加密,并將加密后的數(shù)據(jù)以密文形式保存在設(shè)備的存儲介質(zhì)中。
(4)認(rèn)證密鑰認(rèn)證密鑰用于主機獲取存儲服務(wù)的授權(quán)。認(rèn)證密鑰可以是對稱密鑰,也可以是非對稱密鑰,具體的密鑰類型由授權(quán)認(rèn)證方式?jīng)Q定。認(rèn)證密鑰可保存在存儲設(shè)備的安全存儲區(qū)域中。存儲設(shè)備通過授權(quán)認(rèn)證來確認(rèn)服務(wù)請求者的身份和權(quán)限,進而對存儲服務(wù)進行訪問控制。
(5)會話密鑰。會話密鑰對主機端應(yīng)用程序和可信存儲設(shè)備之間的會話進行加密保護和完整性校驗,保護動態(tài)數(shù)據(jù)的安全。會話密鑰在會話建立時產(chǎn)生,在會話結(jié)束后自動失效。
分析了TCG可信存儲規(guī)范中存在的信任雙向傳遞和密鑰存儲保護問題,提出了基于TPCM 的可信硬盤密鑰管理模型,通過在主機端引入TPCM,有效的標(biāo)識了主機身份,提高了雙向認(rèn)證過程中身份鑒別的強度。
[1]王冠,薛冰.基于TPM的可信存儲的雙向認(rèn)證的研究[J].通信市場,2009,03.
[2]朱寧太,姚智慧,張淑萍.基于可信存儲的固態(tài)盤安全機制研究[J].計算機工程與設(shè)計,2010,31(6).
Trusted Storage Key Management
Qiang shi1Xin zhang2
1.Mathematics and Computer Science, Hebei University,2.Water Supply Corporation, Baoding, Hebei 071002
Relying on trusted computing Trusted storage technology, and trusted computing technology and is based on cryptography. TCG specifications for trusted storage problems, the paper proposed the credibility of storage based on TPCM key management model, reliable storage for the future development of a role
10.3969/j.issn.1001-8972.2011.09.063