專利名稱:一種基于可信計算實現(xiàn)可信ssh的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機信息安全領(lǐng)域,特別是指一種基于可信計算實現(xiàn)可信SSH的方 法。
背景技術(shù):
SSH (Secure Shell)協(xié)議是IETF的網(wǎng)絡(luò)工作小組制定了一個安全協(xié)議,用于保護 客戶端與服務(wù)器端之間傳輸?shù)臄?shù)據(jù)。SSH協(xié)議采用了分層結(jié)構(gòu)設(shè)計,包括四個子協(xié)議SSH 傳輸層子協(xié)議、用戶認證子協(xié)議、連接子協(xié)議和文件傳輸子協(xié)議。前兩個子協(xié)議首先依次被 執(zhí)行,其中SSH傳輸層子協(xié)議負責(zé)在服務(wù)器和客戶端建立安全通道,該子協(xié)議包括協(xié)議版 本交換、參數(shù)協(xié)商(包括密鑰交換方法和密鑰交換過程中使用的一系列算法)、和密鑰交換 三個過程,該子協(xié)議運行結(jié)束后將協(xié)商出一個會話密鑰,用于加密用戶認證階段的認證信 息、連接階段通信雙方的通信數(shù)據(jù)和文件傳輸階段通信雙方的通信數(shù)據(jù)。圖1是SSH協(xié)議規(guī) 范定義的傳輸層子協(xié)議的流程圖,其中K和ks分別為客戶端和服務(wù)器端產(chǎn)生的密鑰,signs 代表服務(wù)器的簽名信息,Cert(服務(wù)器)代表服務(wù)器的公鑰證書。SSH協(xié)議可用于安全的遠 程登錄、安全的遠程命令執(zhí)行、安全的遠程文件傳輸、TCP/IP端口轉(zhuǎn)發(fā)等等。雖然SSH協(xié)議 允許服務(wù)器與客戶端相互進行身份驗證,但是SSH協(xié)議沒有考慮通信終端(包括服務(wù)器和 客戶端)的安全性,對終端上運行的軟件不提供保護也不做驗證,也就是說目前的SSH協(xié)議 規(guī)范沒有實現(xiàn)可信通道??尚磐ǖ朗且粋€與終端的軟硬件配置狀態(tài)進行安全綁定的安全通 信通道。 現(xiàn)有的PC系統(tǒng)在網(wǎng)絡(luò)化時代容易遭受惡意代碼攻擊、信息非法竊取、數(shù)據(jù)和系統(tǒng) 非法破壞等安全威脅。許多損害終端的攻擊方法是通過注入病毒、蠕蟲、木馬、間諜軟件、 釣魚軟件等多種形式的惡意代碼而不是通過損害安全信道來實施的,因此在與未知端點通 信時,即使使用安全通道,仍然遭受一系列攻擊。計算機信息的安全問題很難單靠軟件解 決,為了解決現(xiàn)有PC機結(jié)構(gòu)上的不安全問題,從根本上提高其可信性,可信計算平臺聯(lián)盟 TCPA(后來更名為TCG)提出通過增強現(xiàn)有的終端體系結(jié)構(gòu)的安全性來保證整個系統(tǒng)的安 全,核心思想是在硬件平臺上引入具有安全存儲和加密功能的可信平臺模塊(又稱為可信 芯片)TPM??尚庞嬎闫脚_以TPM為信任根,借助可信度量功能對系統(tǒng)平臺配置進行度量,然 后安全地將系統(tǒng)運行情況記錄在TPM中的平臺配置寄存器(PCR),同時在系統(tǒng)保存代表了 被驗證的可信平臺的完整性度量歷史的度量存儲日志SML(storage measurement 1og)。遠 程用戶根據(jù)SML和相關(guān)PCR值來判斷該運行環(huán)境是否可信、某些環(huán)節(jié)是否出現(xiàn)安全問題,這 一過程被稱作遠程證明。在TCG規(guī)范中,TPM使用身份證明密鑰AIK (attestation identity key)來證明自己的身份,凡是經(jīng)過AIK簽名的實體,都表明已經(jīng)經(jīng)過TPM的處理。為了防止 重放、篡改、假冒等攻擊,遠程證明過程使用AIK來確保收到的信息是經(jīng)過某一指定TPM處 理的。圖2是美國IBM公司的研究人員設(shè)計的遠程證明協(xié)議的流程圖。在這個遠程證明過 程中,首先驗證請求者生成一個160bit隨機數(shù)并記為nonce,并發(fā)送給被驗證者;被驗證者 在收到nonce后,請求內(nèi)置TPM用AIK的私鑰SKAIK對指定的PCR的值和nonce進行簽名,
3簽名結(jié)果記為Quote,然后將Quote、SML和AIK公鑰證書Cert (AIK)發(fā)送給驗證請求者;最 后驗證請求者對接收的內(nèi)容進行驗證,確定遠程計算平臺身份及其所報告內(nèi)容的真實性。
可信計算可以通過提高終端的安全性來提高安全通道技術(shù)的安全強度,但是目前 還沒有關(guān)于將可信計算的遠程證明應(yīng)用于SSH協(xié)議的研究報告或軟件。
發(fā)明內(nèi)容
本發(fā)明的目的在于避免上述現(xiàn)有技術(shù)中的不足之處而提供一種基于可信計算實 現(xiàn)可信SSH的方法。本方法通過將可信計算的遠程證明與SSH協(xié)議的密鑰交換這兩個過程 進行有機整合,實現(xiàn)了平臺狀態(tài)信息驗證與會話密鑰協(xié)商的緊密結(jié)合,在保證數(shù)據(jù)安全傳 輸?shù)那疤嵯?,加強了?shù)據(jù)在通信端點的安全性。
本發(fā)明的目的可以通過以下措施來達到 —種基于可信計算實現(xiàn)可信SSH的方法,將可信計算的遠程證明與SSH協(xié)議的密 鑰交換這兩個過程進行有機整合,從而實現(xiàn)平臺狀態(tài)信息驗證與會話密鑰協(xié)商的緊密結(jié) 合,該方法涉及客戶端和服務(wù)器端,其方法的具體步驟如下 步驟l,參數(shù)協(xié)商客戶端與服務(wù)器端進行參數(shù)協(xié)商,協(xié)商內(nèi)容除了 SSH協(xié)議規(guī)定 的內(nèi)容以外,還包括平臺狀態(tài)信息驗證所要使用的PCR的編號;此外客戶端與服務(wù)器端分 別將參數(shù)協(xié)商過程中收到的信息和發(fā)送的信息記錄下來,并分別存放在MsglE和Msgls ;
步驟2,客戶端發(fā)送信息給服務(wù)器端客戶端首先選擇一個小于p且大于1的正整 數(shù)x,計算出kc = gx mod p,并對V—Cl |V_S| |Msglc| |Msgls| |PMAIK1 Ik。進行哈希運算,哈希 運算結(jié)果記為has『;然后客戶端從安裝在客戶端所在計算機的主板上的安全芯片TPM中 獲取步驟1中指定的PCR的內(nèi)容并記為PCR、使用SKm/対PCR1 |hashE進行簽名,簽名結(jié) 果記作sigr^ ;最后將My《4 SMIA F 、 、 Cer4.)發(fā)送給服務(wù)器端;其中P為
一個大素數(shù),g為一個正整數(shù),V_C和V_S分別代表客戶端的標識符和服務(wù)器端的標識符,符 號I I表示鏈接,SKAIKe、 PUKAIK1P CertA^分別為客戶端AIK的私鑰、公鑰和公鑰證書,SMLC 表示客戶端平臺的度量存儲日志; 步驟3,服務(wù)器端驗證客戶端服務(wù)器端收到Msg,后,首先驗證CertAI/的有效性 和合法性,如果驗證沒通過,則終止密鑰交換過程,如果驗證通過,則利用CertAIKe中的公鑰 PUKAI/從signe中獲得步驟2中的SMLe、 has『和PCR、并分別記作t_SMLs、 t_hashs和t_ PCRS ;然后對自身記錄的V_C和V_S和MsgJ和Msgls、以及所接收到的PUKAI/和Msg,中的 kE做哈希運算,哈希運算后的結(jié)果記作s_hashs,檢查t_hashs和s_hashs是否匹配,如果不 匹配,則終止密鑰交換過程;如果匹配,則根據(jù)t_SML重構(gòu)客戶端的整個完整性度量過程, 計算并得到最終值,記作s—PCRS,判斷s_PCRs與t_PCRs是否匹配,如果不匹配,則終止密鑰 交換過程;如果匹配,則進入步驟4 ; 步驟4,服務(wù)器端發(fā)送信息給客戶端服務(wù)器端首先選擇一個小于p且大于1 的正整數(shù)y,計算出ks = gy mod p和ksc = (kc) ymod p,并對V_C | | V_S | | MsgJ | | Msgls |Msg21 |PMAIKS| |k1 |ks| |『進行哈希運算,哈希運算結(jié)果記為hashs,然后服務(wù)器端 從安裝在服務(wù)器所在計算機的主板上的安全芯片TPM中獲取步驟1中指定的PCR的 內(nèi)容,記作PCR5,使用SKAIKS對PCR51 I hashs進行簽名,簽名結(jié)果記作signs ;最后將 My《=(SMLS、 F 、 、 O W:)發(fā)送給客戶端;其中SKAIKS、 PUKAIKS和CertAIKs為
4服務(wù)器端AIK的私鑰、公鑰和公鑰證書,SMLS表示服務(wù)器端平臺的度量存儲日志; 步驟5,客戶端驗證服務(wù)器端客戶端收到Msg2s后,首先驗證CertAIKs的有效性和
合法性,如果驗證沒通過,則終止密鑰交換過程,如果驗證通過,則利用CertAIKs中的公鑰
PUKAIKS從signs中獲得步驟4中的SMLS、 hashs和PCRS,并分別記作t_SMLe、 t_has『和t_
PCRe ;然后計算kes = (ks) xmod p,并對自身記錄的V_C和V_S和MsgJ和Msgls和Msg2e和ke、
以及接收到的PMAIKS和Msg2s中的ks、 kES進行哈希運算,哈希運算后的結(jié)果記作cjias『;
檢查t_hashE和c_hashE是否匹配,如果不匹配,則終止密鑰交換過程;如果匹配,則根據(jù)t_
SMLE重構(gòu)服務(wù)器端的整個完整性度量過程,計算并得到最終的值c—PCR、判斷c_PCRE與t_
PCRE是否匹配,如果不匹配,則終止密鑰交換過程;如果匹配,則進入步驟6 ; 步驟6,客戶端和服務(wù)器端互相發(fā)送"新會話密鑰確認"確認信息,結(jié)束密鑰交換過程。 本發(fā)明相比現(xiàn)有技術(shù)具有如下優(yōu)點本方法有效地防范了 SSH協(xié)議中存在的利用 安全通道與未知端點通信仍可能遭受各種攻擊的安全威脅,同時有效地防范了重放攻擊、 假冒攻擊和中間人攻擊。
圖1是SSH協(xié)議規(guī)范定義的傳輸層子協(xié)議的流程圖; 圖2是美國IBM公司的研究人員設(shè)計的遠程證明協(xié)議的流程圖; 圖3是本發(fā)明所提供的整合了圖1和圖2的密鑰交換方法的流程圖。
具體實施例 本發(fā)明提供的方法在硬件上假設(shè)服務(wù)器和客戶端都配有可信安全芯片,而且服務(wù) 器和客戶端的BIOS都支持TPM ;在軟件上假設(shè)服務(wù)器和客戶端安裝度量模塊和可信操作系 統(tǒng)。度量模塊決定被度量的實體、度量時間和安全維護度量結(jié)果的方法,其主要功能包括計 算那些被度量的實體的度量值、將度量事件記錄到度量存儲日志和把度量值記入TPM中指 定的PCR。度量值記入PCR的方法是新PCR值=hash (原PCR值| |度量值)。度量存儲 日志至少包括被度量的實體的信息,度量值和度量時間。 下面結(jié)合圖3對整合了可信計算遠程證明的SSH協(xié)議的密鑰交換流程作詳細說 明 步驟l,參數(shù)協(xié)商客戶端與服務(wù)器端進行參數(shù)協(xié)商,協(xié)商內(nèi)容除了 SSH協(xié)議規(guī)定 的內(nèi)容以外,還包括平臺狀態(tài)信息驗證所要使用的PCR的編號;此外客戶端與服務(wù)器端分 別將參數(shù)協(xié)商過程中收到的信息和發(fā)送的信息記錄下來,并分別存放在MsglE和Msgls。
步驟2,客戶端發(fā)送信息給服務(wù)器端客戶端首先選擇一個小于p且大于1的正整 數(shù)x,計算出kc二gXmod p,并對V—C |V_S| Msglc Msgls PMAIKC | kc進行哈希運算,哈希運 算結(jié)果記為has『;然后客戶端從安裝在客戶端所在計算機的主板上的安全芯片TPM中獲 取步驟l中指定的PCR的內(nèi)容并記為PCr,使用SK^對PCRl Ihas『進行簽名,簽名結(jié)果記 作sign、最后將Myg〗KSMlA F、 Wg^、 Cer4 )發(fā)送給服務(wù)器端;其中P為一個大 素數(shù),g為一個正整數(shù),V—C和V—S分別代表客戶端的標識符和服務(wù)器端的標識符,符號I 表示鏈接,SKAIKe、PUKAIKe和CertAIKe分別為客戶端AIK的私鑰、公鑰和公鑰證書,SMLe表示客
5戶端平臺的度量存儲日志。 步驟3,服務(wù)器端驗證客戶端服務(wù)器端收到Msg,后,首先驗證CertAI/的有效性 和合法性,如果驗證沒通過,則終止密鑰交換過程,如果驗證通過,則利用CertAIKe中的公鑰 PUKAI/從signe中獲得步驟2中的SMLe、 has『和PCR、并分別記作t_SMLs、 t_hashs和t_ PCRS ;然后對自身記錄的V_C和V_S和MsgJ和Msgls、以及所接收到的PUKAI/和Msg,中的 kE做哈希運算,哈希運算后的結(jié)果記作s_hashs,檢查t_hashs和s_hashs是否匹配,如果不 匹配,則終止密鑰交換過程;如果匹配,則根據(jù)t_SML重構(gòu)客戶端的整個完整性度量過程, 計算并得到最終值,記作s—PCRS,判斷s_PCRs與t_PCRs是否匹配,如果不匹配,則終止密鑰 交換過程;如果匹配,則進入步驟4。 步驟4,服務(wù)器端發(fā)送信息給客戶端服務(wù)器端首先選擇一個小于p且大于 1的正整數(shù)y,計算出ks = gy mod p禾Pk" = (kc)y mod p,并對V—Cl |V_S| |Msglc| |M Sgls| |Msg2e| |PMAIKS| |ke|ks| Ik"進行哈希運算,哈希運算結(jié)果記為hashs,然后服務(wù)器 端從安裝在服務(wù)器所在計算機的主板上的安全芯片TPM中獲取步驟1中指定的PCR 的內(nèi)容,記作PCRS使用SKAIKS對PCRS I I hashs進行簽名,簽名結(jié)果記作signs ;最后將 ( SMLS、 F 、 、 Cert:)發(fā)送給客戶端;其中SKAIKS、 PUKAIKS和CertAIKs為
服務(wù)器端AIK的私鑰、公鑰和公鑰證書,SMLS表示服務(wù)器端平臺的度量存儲日志。
步驟5,客戶端驗證服務(wù)器端客戶端收到Msg2s后,首先驗證CertAIKs的有效性和 合法性,如果驗證沒通過,則終止密鑰交換過程,如果驗證通過,則利用CertAIKs中的公鑰 PUKAIKS從signs中獲得步驟4中的SMLS、 hashs和PCRS,并分別記作t_SMLe、 t_has『和t_ PCRe ;然后計算kes = (ks) xmod p,并對自身記錄的V_C和V_S和MsgJ和Msgls和Msg2e和ke、 kES、以及接收到的PMAIKS和Msg2s中的ks進行哈希運算,哈希運算后的結(jié)果記作cjias『; 檢查t_hashE和c_hashE是否匹配,如果不匹配,則終止密鑰交換過程;如果匹配,則根據(jù)t_ SMLE重構(gòu)服務(wù)器端的整個完整性度量過程,計算并得到最終的值c—PCR、判斷c_PCRE與t_ PCRE是否匹配,如果不匹配,則終止密鑰交換過程;如果匹配,則進入步驟6。
步驟6,客戶端和服務(wù)器端互相發(fā)送"新會話密鑰確認"確認信息,結(jié)束密鑰交換過 程。 通過上述方法,SSH協(xié)議存在的利用安全通道與未知端點通信仍可能遭受各種攻 擊的安全問題得到了有效解決,實現(xiàn)了 SSH可信通道,而且重放攻擊、假冒攻擊和中間人攻 擊也得到了有效防范。
權(quán)利要求
一種基于可信計算實現(xiàn)可信SSH的方法,其特征在于將可信計算的遠程證明與SSH協(xié)議的密鑰交換這兩個過程進行有機整合,從而實現(xiàn)平臺狀態(tài)信息驗證與會話密鑰協(xié)商的緊密結(jié)合,該方法涉及客戶端和服務(wù)器端,其方法的具體步驟如下步驟1,參數(shù)協(xié)商客戶端與服務(wù)器端進行參數(shù)協(xié)商,協(xié)商內(nèi)容除了SSH協(xié)議規(guī)定的內(nèi)容以外,還包括平臺狀態(tài)信息驗證所要使用的PCR的編號;此外客戶端與服務(wù)器端分別將參數(shù)協(xié)商過程中收到的信息和發(fā)送的信息記錄下來,并分別存放在Msglc和Msgls;步驟2,客戶端發(fā)送信息給服務(wù)器端客戶端首先選擇一個小于p且大于1的正整數(shù)x,計算出kc=gxmodp,并對V_C||V_S||Msglc||Msgls||PUKAIKc||kc進行哈希運算,哈希運算結(jié)果記為hashc;然后客戶端從安裝在客戶端所在計算機的主板上的安全芯片TPM中獲取步驟1中指定的PCR的內(nèi)容并記為PCRc,使用SKAIKc對PCRc||hashc進行簽名,簽名結(jié)果記作signc;最后將發(fā)送給服務(wù)器端;其中p為一個大素數(shù),g為一個正整數(shù),V_C和V_S分別代表客戶端的標識符和服務(wù)器端的標識符,符號||表示鏈接,SKAIKc、PUKAIKc和CertAIKc分別為客戶端AIK的私鑰、公鑰和公鑰證書,SMLc表示客戶端平臺的度量存儲日志;步驟3,服務(wù)器端驗證客戶端服務(wù)器端收到Msg2c后,首先驗證CertAIKc的有效性和合法性,如果驗證沒通過,則終止密鑰交換過程,如果驗證通過,則利用CertAIKc中的公鑰PUKAIKc從signc中獲得步驟2中的SMLc、hashc和PCRc,并分別記作t_SMLS、t_hashS和t_PCRS;然后對自身記錄的V_C和V_S和MsgIc和MsgIs、以及所接收到的PUKAIKc和Msg2c中的kc做哈希運算,哈希運算后的結(jié)果記作s_hashS,檢查t_hashS和s_hashS是否匹配,如果不匹配,則終止密鑰交換過程;如果匹配,則根據(jù)t_SML重構(gòu)客戶端的整個完整性度量過程,計算并得到最終值,記作s_PCRS,判斷s_PCRS與t_PCRS是否匹配,如果不匹配,則終止密鑰交換過程;如果匹配,則進入步驟4;步驟4,服務(wù)器端發(fā)送信息給客戶端服務(wù)器端首先選擇一個小于p且大于1的正整數(shù)y,計算出ks=gymodp和ksc=(kc)ymodp,并對V_C||V_S||Msg1cMsg1cMsg2c||PUKAIKs||kc||ks||ksc進行哈希運算,哈希運算結(jié)果記為hashS,然后服務(wù)器端從安裝在服務(wù)器所在計算機的主板上的安全芯片TPM中獲取步驟1中指定的PCR的內(nèi)容,記作PCRS,使用SKAIKs對PCRS||hashS進行簽名,簽名結(jié)果記作signs;最后將發(fā)送給客戶端;其中SKAIKS、PUKAIKS和CertAIKS為服務(wù)器端AIK的私鑰、公鑰和公鑰證書,SMLS表示服務(wù)器端平臺的度量存儲日志;步驟5,客戶端驗證服務(wù)器端客戶端收到Msg2s后,首先驗證CertAIKS的有效性和合法性,如果驗證沒通過,則終止密鑰交換過程,如果驗證通過,則利用CertAIKS中的公鑰PUKAIKS從signs中獲得步驟4中的SMLS、hashS和PCRS,并分別記作t_SMLc、t_hashc和t_PCRc;然后計算kcs=(ks)xmodp,并對自身記錄的V_C和V_S和Msg1c和Msg1c和Msg2c和kc、以及接收到的PUKAIKS和Msg2s中的ks、kcs進行哈希運算,哈希運算后的結(jié)果記作c_hashc;檢查t_hashc和c_hashc是否匹配,如果不匹配,則終止密鑰交換過程;如果匹配,則根據(jù)t_SMLc重構(gòu)服務(wù)器端的整個完整性度量過程,計算并得到最終的值c_PCRc,判斷c_PCRc與t_PCRc是否匹配,如果不匹配,則終止密鑰交換過程;如果匹配,則進入步驟6;步驟6,客戶端和服務(wù)器端互相發(fā)送“新會話密鑰確認”確認信息,結(jié)束密鑰交換過程。F2009102417827C0000011.tif,F2009102417827C0000012.tif,F2009102417827C0000021.tif
全文摘要
本發(fā)明提供了一種基于可信計算實現(xiàn)可信SSH的方法。本方法通過將可信計算的遠程證明與SSH協(xié)議的密鑰交換這兩個過程進行有機整合,實現(xiàn)了平臺狀態(tài)信息驗證與會話密鑰協(xié)商的緊密結(jié)合,在保證數(shù)據(jù)安全傳輸?shù)那疤嵯?,加強了?shù)據(jù)在通信端點的安全性。本方法要求服務(wù)器端和客戶端都配有可信安全芯片,并且安裝了度量模塊和可信操作系統(tǒng),能夠?qū)Ω髯云脚_狀態(tài)進行度量。本方法不但有效地防范了SSH協(xié)議中存在的利用安全通道與未知端點通信仍可能遭受各種攻擊的安全威脅,同時有效地防范了重放攻擊、假冒攻擊和中間人攻擊。
文檔編號H04L9/08GK101741842SQ20091024178
公開日2010年6月16日 申請日期2009年12月7日 優(yōu)先權(quán)日2009年12月7日
發(fā)明者劉吉強, 劉新明, 左向暉, 常曉林, 邢彬, 韓臻 申請人:北京交通大學(xué)