[發明專利]一種遠程動態驗證客戶端軟件完整性的方法無效
| 申請號: | 201010152836.5 | 申請日: | 2010-04-22 |
| 公開(公告)號: | CN101834860A | 公開(公告)日: | 2010-09-15 |
| 發明(設計)人: | 常曉林;崇信毅;王紹創;左向暉;韓臻;劉吉強;鞠頌 | 申請(專利權)人: | 北京交通大學 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 北京正理專利代理有限公司 11257 | 代理人: | 王德楨 |
| 地址: | 100044*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 遠程 動態 驗證 客戶端 軟件 完整性 方法 | ||
1.一種遠程動態驗證客戶端軟件完整性的方法,其特征在于:方法組件包括網絡服務器中的驗證模塊、網絡客戶端特權虛擬域的后端驗證代理模塊、網絡客戶端虛擬機監控器的內存度量模塊、網絡客戶端客戶虛擬域的前端驗證代理模塊,當網絡客戶端客戶虛擬域的自包含可執行軟件向網絡服務器發出服務請求時,網絡服務器對自包含可執行軟件進行遠程驗證的具體步驟如下:
步驟1.1,網絡客戶端客戶虛擬域的自包含可執行軟件向網絡服務器的服務程序發出服務請求;
步驟1.2,網絡服務器驗證模塊截獲服務請求包RequestPacket,獲取請求包中的源IP地址和源端口號;然后驗證模塊生成一個隨機數Nonce,并在客戶信息數據庫創建一條以源IP地址和源端口號為索引的記錄,將Nonce和RequestPacket存放在該記錄中;最后生成一個數據包發送給位于源IP地址的前端驗證代理模塊,該數據包包含有Nonce、RequestPacket和驗證內容VerifiedContent;其中VerifiedContent規定了是對自包含可執行軟件文件本身進行度量,還是對該軟件運行時在程序代碼段、程序數據段、程序堆棧段等中的數據進行度量,此外該驗證內容還包括PCR標號,后端驗證代理模塊將這些PCR標號所對應的PCR內容作為特權虛擬域和虛擬機監控器的平臺信息;
步驟1.3,前端驗證代理模塊從收到的數據包中獲取Nonce、RequestPacket、VerifiedContent;然后根據RequestPacket里的源IP地址和源端口號獲取自包含可執行軟件的進程號,用SAdd代表源IP地址和源端口號;如果VerifiedContentt規定了是對自包含可執行軟件文件本身進行度量,則根據該進程號獲取自包含可執行軟件的全路徑信息,否則根據該進程號和驗證內容獲取需要被度量的內存地址范圍,無論是全路徑信息還是內存地址范圍,都記作地址信息;最后前端驗證代理模塊將Nonce、SAdd、VerifiedContent、地址信息發送給后端驗證代理模塊;
步驟1.4,后端驗證代理模塊收到前端驗證代理模塊的信息后,首先對Nonce和SAdd做哈希運算,結果記作D1,用變量Vpcr表示VerifiedContent中PCR標號所對應的TPM內部PCR的值;然后再利用TPM設備對D1和Vpcr進行簽名,簽名結果記作Quote;最后將Quote和AIK證書發送給前端驗證代理模塊,前端驗證代理模塊再發給驗證模塊;其中AIK證書包含有網絡客戶端AIK公鑰PUK_AIK;
步驟1.5,后端驗證代理模塊將Quote做為參數,調用TPM的TPM_TickStampBlob命令生成一個時間戳,記作TS1=Sign(Quote||TCV1||TSN1;SK_AIK),然后將TS1發送給前端驗證代理模塊,前端驗證代理模塊再發給驗證模塊;其中符號||表示鏈接,Sign(string;key)表示用密鑰key對字符串string進行簽名,SK_AIK為客戶端AIK的私鑰,TCV1為用于產生時間戳的TPM滴答計數器的當前滴答值,TSN1為用于產生時間戳的TPM滴答計數器的時間會話隨機數;
步驟1.6,如果地址信息是全路徑信息,則后端驗證代理模塊根據全路徑信息獲得自包含可執行軟件文件,并對其進行哈希運算,結果記作M;如果地址信息是內存地址范圍,則后端驗證代理模塊將地址信息發送給內存度量模塊,內存度量模塊根據接收到的信息生成度量值M并發給后端驗證代理模塊;后端驗證代理模塊對TS1和M做哈希運算,結果記作D2,然后將D2做為參數,調用TPM_TickStampBlob命令生成一個時間戳,記作TS2=Sign(D2||TCV2||TSN2;SK_AIK),然后將TS2發送給前端驗證代理模塊,前端驗證代理模塊再發給驗證模塊;其中TCV2為用于產生時間戳的TPM滴答計數器的當前滴答值,TSN2為用于產生時間戳的TPM滴答計數器的時間會話隨機數;
步驟1.7,驗證模塊首先驗證AIK證書的合法性,如果不合法,則進入步驟1.11,否則從收到的信息中取出PUK_AIK并解密Quote,獲得D1和Vpcr,對所保存的Nonce和SAdd做哈希運算,如果哈希結果與D1不相等,則進入步驟1.11,否則根據保存的客戶端平臺信息驗證Vpcr值是否合法,如果不合法,則進入步驟1.11,否則進入步驟1.8;
步驟1.8,驗證模塊利用PUK_AIK解密TS1和TS2,獲得D1、TCV1、TSN1、D2、TCV2、TSN2;然后檢查TSN1是否等于TSN2,如果不等于,則進入步驟1.11,否則進入步驟1.9;
步驟1.9,驗證模塊計算TCV2-TCV1,看值是否在預期的時間差范圍內,如果不在預期的時間差范圍內,則進入步驟1.11,否則進入步驟1.10;
步驟1.10,驗證模塊對TS1和所保存的自包含可執行軟件度量期望值進行哈希運算,如果結果與D2不相等,則進入步驟1.11,否則驗證模塊將自包含可執行軟件的服務請求轉給服務程序,服務程序開始處理應用軟件的請求;
步驟1.11,中斷與網絡客戶端的連接,并從客戶信息數據庫中刪除相關信息。
2.基于權利要求1所述的一種遠程動態驗證客戶端軟件完整性的方法,其特征在于步驟1.10完成之后,網絡服務器利用步驟1.2在客戶信息數據庫所建立的信息,隨時對自包含可執行軟件進行遠程驗證,具體步驟如下:
步驟2.1,網絡服務器驗證模塊確定需要被驗證的軟件在客戶信息數據庫中所對應的記錄,然后生成一個隨機數Nonce,并用Nonce替代該記錄中的隨機數,并從該記錄中的服務請求包RequestPacket中獲取源IP地址和源端口號,最后生成一個數據包發送給位于源IP地址的前端驗證代理模塊,該數據包包含有Nonce、RequestPacket、驗證內容VerifiedContent;其中VerifiedContent規定了是對自包含可執行軟件文件本身進行度量,還是對該軟件運行時在程序代碼段、程序數據段、程序堆棧段等中的數據進行度量,此外該驗證內容還包括PCR標號,后端驗證代理模塊將這些PCR標號所對應的PCR內容作為特權虛擬域和虛擬機監控器的平臺信息;
步驟2.2,前端驗證代理模塊從收到的數據包中獲取Nonce、RequestPacket、VerifiedContent;然后根據RequestPacket里的源IP地址和源端口號,獲取自包含可執行軟件的進程號,如果VerifiedContentt規定了是對自包含可執行軟件文件本身進行度量,則根據該進程號獲取自包含可執行軟件的全路徑信息,否則根據該進程號和驗證內容獲取需要被度量的內存地址范圍,無論是全路徑信息還是內存地址范圍,都記作地址信息;最后前端驗證代理模塊將Nonce、SAdd、VerifiedContent、地址信息發送給后端驗證代理模塊;
步驟2.3,后端驗證代理模塊收到前端驗證代理模塊的信息后,首先對Nonce和SAdd做哈希運算,結果記作D1,用變量Vpcr表示VerifiedContent中PCR標號所對應的TPM內部PCR的值;然后再利用TPM設備對D1和Vpcr進行簽名,簽名結果記作Quote;最后將Quote和AIK證書發送給前端驗證代理模塊,前端驗證代理模塊再發給驗證模塊;其中AIK證書包含有網絡客戶端AIK公鑰PUK_AIK;
步驟2.4,后端驗證代理模塊將Quote做為參數,調用TPM的TPM_TickStampBlob命令生成一個時間戳,記作TS1=Sign(Quote||TCV1||TSN1;SK_AIK),然后將TS1發送給前端驗證代理模塊,前端驗證代理模塊再發給驗證模塊;其中SK_AIK為客戶端AIK的私鑰,TCV1為用于產生時間戳的TPM滴答計數器的當前滴答值,TSN1為用于產生時間戳的TPM滴答計數器的時間會話隨機數;
步驟2.5,如果地址信息是全路徑信息,則后端驗證代理模塊根據全路徑信息獲得自包含可執行軟件文件,并對其進行哈希運算,結果記作M;如果地址信息是內存地址范圍,則后端驗證代理模塊將地址信息發送給內存度量模塊,內存度量模塊根據接收到的信息生成度量值M并發給后端驗證代理模塊;后端驗證代理模塊對TS1和M做哈希運算,結果記作D2,然后將D2做為參數,調用TPM_TickStampBlob命令生成一個時間戳,記作TS2=Sign(D2||TCV2||TSN2;SK_AIK),然后將TS2發送給前端驗證代理模塊,前端驗證代理模塊再發給驗證模塊;其中TCV2為用于產生時間戳的TPM滴答計數器的當前滴答值,TSN2為用于產生時間戳的TPM滴答計數器的時間會話隨機數;
步驟2.6,驗證模塊首先驗證AIK證書的合法性,如果不合法,則進入步驟2.10,否則從收到的信息中取出PUK_AIK并解密Quote,獲得D1和Vpcr,對所保存的Nonce和SAdd做哈希運算,如果哈希結果與D1不相等,則進入步驟2.10,否則根據保存的客戶端平臺信息驗證Vpcr值是否合法,如果不合法,則進入步驟2.10,否則進入步驟2.7;
步驟2.7,驗證模塊利用PUK_AIK解密TS1和TS2,獲得D1、TCV1、TSN1、D2、TCV2、TSN2;然后檢查TSN1是否等于TSN2,如果不等于,則進入步驟2.10,否則進入步驟2.8;
步驟2.8,驗證模塊計算TCV2-TCV1,看值是否在預期的時間差范圍內,如果不在預期的時間差范圍內,則進入步驟2.10,否則進入步驟2.9;
步驟2.9,驗證模塊對TS1和所保存的自包含可執行軟件度量期望值進行哈希運算,如果結果與D2不相等,則進入步驟2.10,否則驗證模塊將自包含可執行軟件的服務請求轉給服務程序,服務程序開始處理應用軟件的請求;
步驟2.10,中斷與網絡客戶端的連接,并從客戶信息數據庫中刪除相關信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京交通大學,未經北京交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010152836.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種生物質燃料油及其制備方法
- 下一篇:一種共享網頁的方法、瀏覽器和通信系統





