專利名稱:一種基于可信密碼模塊的數據安全傳輸方法
技術領域:
本發明涉及一種基于可信密碼模塊的數據安全傳輸方法,屬于計算機信息安 全技術領域,特別適合于可信計算平臺使用。
背景技術:
可信計算平臺在普通計算平臺上嵌入了一個單獨的安全模塊,能向該平臺 的訪問者提供平臺身份證明和完整性數據。該單獨的安全模塊稱之為可信密碼模 塊,原普通計算平臺稱之為可信計算平臺主機。相對于可信密碼模塊而言,可信 計算平臺主機上的驅動程序、操作系統或應用程序等稱之為外部實體。
在可信計算平臺里,外部實體調用可信密碼模塊的相關功能時,外部實體 和可信密碼模塊之間要進行數據傳輸。這些數據可能是敏感數據,這些敏感數據 要在外部實體和可信密碼模塊之間的線上傳輸,可能被竊聽或截獲,造成數據泄 露,帶來安全損失,需要對這些敏感數據進行傳輸保護,包括秘密性和完整性保 護。
為了保證外部實體和可信密碼模塊之間的數據傳輸安全,可信計算組織 (TCG)采用如下安全措施-
1. 需要傳輸保護的數據TranData長度小于等于160比特時,外部實 體和可信密碼模塊利用一個共享秘密SharedSecret和一個隨機數與需要傳輸 保護的數據進行異或運算,以保證線上傳輸數據的秘密性,EncTranData = XOR (TranData, SHA1 (SharedSecret, Random))
2. 需要傳輸保護的數據TranData長度大于160比特時,外部實體和 可信密碼模塊利用MGF1函數對一個共享秘密SharedSecret和一個隨機數根 據需要保護的數據長度生成一個密鑰序列,然后用這個密鑰序列與需要傳輸保護 的數據進行異或運算,以保證線上數據傳輸的秘密性,EncTranData = XOR
(TranData, MGF1 (SharedSecret, Random))無論需要傳輸保護的數據的長度大還是小,都是通過異或運算來保護其秘 密性,與其進行異或運算的密鑰是通過SHA1和MGF1運算產生的,加密強度不 高,顯得秘密性較為脆弱。攻擊者或截聽者截獲線上傳輸的數據后,比較容易還 原原始數據。
發明內容
本發明的目的在于,克服現有技術的缺點,為保護傳輸數據的秘密性,大大 增強數據傳輸保護的安全強度,提供一種基于可信密碼模塊的數據安全傳輸方 法。
本發明的技術方案是-
一種基于可信密碼模塊的數據安全傳輸方法,它包括下述步驟-
A、 用戶通過外部實體與可信密碼模塊創建共享秘密shareSecret生成會話 密鑰sessionKey;
B、 外部實體用會話密鑰sessionKey對要傳輸的數據進行加密并生成信息驗 證碼,tranDataMAC并送給可信密碼模塊驗證;
C、 可信密碼模塊對加密后的傳輸數據解密并重構傳輸數據的信息驗證碼
D、 用戶接受與重構的信息驗證碼進行驗證;
所述的外部實體包括CPU、 BIOS R0M、南橋、北橋、硬盤、鍵盤、顯示器、 內存。
所述的創建共享秘密是外部實體存儲有共享秘密shareSecre并生成的隨機 數callerNonce和可信密碼模塊存儲有共享秘密shareSecret并生成隨機數 TCMNonce共同創建共享秘密。
所述的生成會話密鑰是由外部實體向可信密碼模塊傳輸敏感數據時首先生 成會話密鑰,外部實體指定加密后共享秘密信息發送給可信密碼模塊進行解密和 比較,并與可信密碼模塊生成隨機數用HMAC方法生成會話密鑰。
所述的外部實體使用會話密鑰對需要傳輸的數據進行加密并使用對稱方法 對數據進行加密生成信息驗證碼,再將加密后的傳輸數據和信息驗證碼送給可信 密碼模塊。所述的可信密碼模塊對加密后的傳輸數據和信息驗證碼解密并重構,并使用 會話密鑰和對稱密碼方法再重構傳輸數據的驗證碼。
所述的可信密碼模塊對外部實體接受的信息驗證碼和重構的信息驗證碼的 比較,是相同的則通過,錯誤的被報告。
本發明的原理是利用外部實體和可信密碼模塊的共享秘密生成會話密鑰, 會話密鑰由HMAC算法計算外部實體生成的隨機數及可信密碼模塊生成的隨機 數得到,HMAC的密鑰為外部實體和可信密碼模塊的共享秘密。利用會話密鑰和 對稱密碼算法對敏感數據加密及和生成信息認證碼,信息認證碼由HMAC算法計 算敏感數據得到,HMAC的密鑰為會話密鑰。在鏈路上傳輸加密后的敏感數據及 信息認證碼。
本發明的優點在于提高了傳輸數據的秘密性,增強了數據傳輸保護的安 全強度。
圖1為本發明方法的示意方框圖。
圖2為可信計算平臺結構示意方框圖。
圖3為可信計算平臺中進行數據傳輸保護的外部實體和可信密碼模塊的 結構示意方框圖。
具體實施例方式
結合附圖和實施例對本發明作進一步說明如下
如圖1所示為外部實體和可信密碼模塊之間數據傳輸保護的一個實施例。 它體現了一種基于可信密碼模塊的數據安全傳輸方法,其步驟如下-
將可信密碼模塊載入密碼模塊密鑰EK的私鑰PRIEK,并對可信密碼模塊初始 化;然后-
A、 用戶通過外部實體與可信密碼模塊創建共享秘密shareSecret生成會話 密銷sessionKey;
B、 外部實體用會話密鑰sessionKey對要傳輸的數據進行加密并生成信息驗 證碼,tranDataMAC并送給可信密碼模塊驗證c、可信密碼模塊對加密后的傳輸數據解密并重構傳輸數據的信息驗證碼
tranDataMACj D、用戶接受與重構的信息驗證碼進行驗證
所述的外部實體包括CPU、 BIOS R0M、南橋、北橋、硬盤、鍵盤、顯示器、 內存。所述的創建共享秘密是外部實體存儲有共享秘密shareSecre并生成的隨 機數callerNonce和可信密碼模塊存儲有共享秘密shareSecret并生成隨機數 TC麗once共同創建共享秘密。所述的生成會話密鑰是由外部實體向可信密碼模 塊傳輸敏感數據時首先生成會話密鑰,外部實體指定加密后共享秘密信息發送給 可信密碼模塊進行解密和比較,并與可信密碼模塊生成隨機數用HMAC方法生成 會話密鑰。所述的外部實體使用會話密鑰對需要傳輸的數據進行加密并使用對稱 方法對數據進行加密生成信息驗證碼,再將加密后的傳輸數據和信息驗證碼送給 可信密碼模塊。所述的可信密碼模塊對加密后的傳輸數據和信息驗證碼解密并重 構,并使用會話密鑰和對稱密碼方法再重構傳輸數據的驗證碼。所述的可信密碼 模塊對外部實體接受的信息驗證碼和重構的信息驗證碼的比較,是相同的則通過, 錯誤的被報告。
按照圖l更具體地說-
開始,可信密碼模塊被載入密碼模塊密鑰EK的私鑰PRIEK (方塊200), 該過程可以由可信密碼模塊的制造商在生產階段完成。可信密碼模塊將PRIEK 保存在受保護存儲區域內,應保證PRIEK不會泄露到可信密碼模塊之外,而 PRIEK對應的公鑰PUBEK則予以公開。
用戶使用可信計算平臺的第一步是可信密碼模塊初始化(方塊205)。可信 密碼模塊接受到用戶的模塊初始化請求后,生成一個存儲主密鑰SMK。SMK是一 個對稱密鑰,其長度由可信密碼模塊所支持的對稱密碼算法決定。可信密碼模塊 將SMK保存在受保護存儲區域內,應保證SMK不會泄露到可信密碼模塊之外。
用戶請求可信密碼模塊創建共享秘密shareSecret (方塊210)。用戶輸入 一個秘密字符串secretString ,例如"123qse. #",應保證secretString在 輸入時沒有被泄露。然后用公開的密碼模塊密鑰公鑰PU服K對secretString 進行加密encSecretString = USymEnc (secretString, PUBEK),并用HASH算 法計算secretString的摘要值secretStrDigest 二 HASH (secretString)。 將
7encSecretString和secretStrDigest發送給可信密碼模塊。可信密碼模塊用 PRIEK 對 encSecretString 進 行 解 密 , secretString' = USymDec(encSecretString, PRIEK),再對解密之后的secretString, 進行 HASH計算,重構摘要值secretStrDigest' - HASH(secretString')。可信密 碼模塊比較secretStrDigest' 和secretStrDigest的異同,如果不同則創建 共享秘密失敗,返回錯誤碼。如果相同則secretString就是新創建的共享秘密 shareSecret,并生成一個單獨的標識符即共享秘密標識shareSecretID,然后 用 SMK 對 shareSecretlnfo = (shareSecret, shareSecretID) 進行力口密 encShareSecretlnfo = SymEnc(shareSecretlnfo, SMK), 將力口 密后的 encShareSecretlnfo 及 shareSecretID 返回給用戶,用戶存儲 encShareSecretlnfo和shareSecretID及兩者之間的對應關系,共享秘密創建 完成。可信密碼模塊可以創建多個共享秘密。
當外部實體需要向可信密碼模塊傳輸敏感數據時,首先生成會話密鑰(方 塊215)。外部實體指定共享秘密標識shareSecretID ,生成隨機數 callerNonce ,將 shareSecretID 、 加密之后的共享秘密信息 encShareSecretlnfo和callerNonce發送給可信密碼模塊。可信密碼模塊用 SMK 對 encShareSecretlnfo 進行解密 shareSecretlnfo = (shareSecret, shareSecretID' ) = SymDec(encShareSecretlnfo, SMK)。可信密碼模塊比較 shareSecretID和shareSecretID'的異同,如果不同則生成會話密鑰失敗, 返回錯誤碼。如果相同,可信密碼模塊生成隨機數TCMNonce,把shareSecret作 為密鑰,將callerNonce和TCMNonce連接成一個字符串,用HMAC算法計算 這個字符串生成會話密鑰 sessionKey = HMAC (callerNonce || TCMNonce, shareSecret)。可信密碼模塊將隨機數TCMNonce發送給外部實體,外部實體把 創建共享秘密時輸入的字符串作為密鑰,將callerNonce和TCMNonce連接成 一個字符串,用HMAC算法計算這個字符串生成會話密鑰sessionKey = HMAC (callerNonce U TCMNonce, shareSecret)。會話密鑰倉'J建完成。
外部實體使用會話密鑰對需要傳輸的敏感數據進行加密并生成敏感數據的 信息驗證碼(方塊220)。外部實體使用對稱算法對傳輸數據tranData加密 encT纖Data 二 SyraEnc(T雨Data, sessionKey)。把會話密鑰作為腿C算法的密鑰,計算 t,Data的信息驗證碼 t擺DataMAC = HMAC (t麗Data, sessionKey)。
外部實體將加密后的傳輸數據encTranData和信息驗證碼tranDataMAC 傳送給可信密碼模塊(方塊225)。
可信密碼模塊對加密后的傳輸數據解密并重構傳輸數據的信息驗證碼(方 塊230)。可信密碼模塊使用會話密鑰和對稱密碼算法對加密后的傳輸數據解密 得到tranData = USymEnc (encTranData, sessionKey)。把會話密鑰作為HMAC 算法的密鑰,重構tranData的信息驗證碼t織Dat遂C,=薩C(t麗Data, sessionKey)。
可信密碼模塊比較外部實體傳送過來的信息驗證碼tranDataMAC和重構 的信息驗證碼tranDataMAC' 的異同(235),如果兩者相同則成功,否則錯誤 被報告。
圖2是可信計算平臺的結構示意方框圖。該平臺包括依次連接的CPU(方塊 000)、圖形與存儲集中控制器(簡稱北橋)(方塊oio)及周邊設備集成集中控制 器(簡稱南橋)(方塊025),顯示器(方塊005)與內存(方塊015)分別與北橋連 接,鍵盤(方塊020)、硬盤(方塊040)、 BIOS ROM(方塊030)及可信密碼模塊(方 塊035)分別與南橋連接;其中除可信密碼模塊外的部分都可以看作是外部實體。
圖3是可信計算平臺中進行數據傳輸保護的外部實體和可信密碼模塊的結構 示意方框圖。可信計算平臺(方塊IOO)包括可信密碼模塊(方塊105)和外部實體 (方塊115)。其中可信密碼模塊存儲有共享秘密shareSecret并生成隨機數 TCMNonce(方塊110);外部實體存儲有共享秘密shareSecret并生成隨機數 callerNonce(方塊120)。可信密碼模塊與外部實體間通過安全信道(方塊125) 進行通信,其中安全通信是通過信息加密和數字簽名來實現的。
權利要求
1.一種基于可信密碼模塊的數據安全傳輸方法,其特征在于,它包括下述步驟A、用戶通過外部實體與可信密碼模塊創建共享秘密shareSecret生成會話密鑰sessionKey;B、外部實體用會話密鑰sessionKey對要傳輸的數據進行加密并生成信息驗證碼,tranDataMAC并送給可信密碼模塊驗證;C、可信密碼模塊對加密后的傳輸數據解密并重構傳輸數據的信息驗證碼tranDataMAC;D、用戶接受與重構的信息驗證碼進行驗證;
2. 根據權利要求1所述的可信密碼模塊的數據安全傳輸方法,其特征在于,所述的外部實體包括CPU、 BIOS R0M、南橋、北橋、硬盤、鍵盤、 顯示器、內存。
3. 根據權利要求1所述的可信密碼模塊的數據安全傳輸方法,其特征在 于,所述的創建共享秘密是外部實體存儲有共享秘密shareSecre并生 成的隨機數callerNonce和可信密碼模塊存儲有共享秘密shareSecret 并生成隨機數TCMNonce共同創建共享秘密。
4. 根據權利要求1所述的可信密碼模塊的數據安全傳輸方法,其特征在于,所述的生成會話密鑰是由外部實體向可信密碼模塊傳輸敏感數據 時首先生成會話密鑰,外部實體指定加密后共享秘密信息發送給可信 密碼模塊進行解密和比較,并與可信密碼模塊生成隨機數用HMAC方法 生成會話密鑰。
5. 根據權利要求1所述的可信密碼模塊的數據安全傳輸方法,其特征在于,所述的外部實體使用會話密鉤對需要傳輸的數據進行加密并使用對稱方法對數據進行加密生成信息驗證碼,再將加密后的傳輸數據和信息驗證碼送給可信密碼模塊。
6. 根據權利要求1所述的可信密碼模塊的數據安全傳輸方法,其特征在于,所述的可信密碼模塊對加密后的傳輸數據和信息驗證碼解密并重構,并使用會話密鑰和對稱密碼方法再重構傳輸數據的驗證碼。
7.根據權利要求1所述的可信密碼模塊的數據安全傳輸方法,其特征在 于,所述的可信密碼模塊對外部實體接受的信息驗證碼和重構的信息 驗證碼的比較,是相同的則通過,錯誤的被報告。
全文摘要
本發明涉及一種基于可信密碼模塊的數據安全傳輸方法,屬于計算機信息安全技術領域,特別適合于可信計算平臺使用。它包括下述步驟A.創建共享秘密生成會話密鑰;B.數據加密并生成信息驗證碼,并送給可信密碼模塊驗證;C.數據解密并重構傳輸數據的信息驗證碼;D.信息驗證碼進行驗證。本發明的優點在于提高了傳輸數據的秘密性,增強數據傳輸保護的安全強度。
文檔編號H04L9/08GK101651538SQ20091006382
公開日2010年2月17日 申請日期2009年9月4日 優先權日2009年9月4日
發明者余發江, 毅 劉, 張大鵬, 曉 胡, 韓勇橋 申請人:瑞達信息安全產業股份有限公司