專利背景
隨著分散式系統的迅速發展,
自助服務終端已廣泛套用於銀行、電信、電力、醫療、航空和零售等行業。由於自助服務終端長時間處於無人看管的狀態,面臨著
計算機病毒、
惡意軟體和黑客攻擊等安全威脅,惡意用戶甚至會通過控制自助服務終端實施攻擊,篡改自助服務終端的軟體和輸入輸出硬體設備,進而上報虛假信息或盜取其他用戶的私密信息。因此,能否保障自助服務終端處於可信狀態,進而保障自助服務的安全可靠,是當前自助服務終端研究、生產和套用領域面臨的主要問題之一。
可信計算技術從體系結構入手,為構建自助終端的可信環境提供了一種全新的體系結構級解決方案。可信計算技術引入安全晶片作為平台信任根,建立平台信任鏈,從而保證計算平台可信。此外,安全晶片作為終端身份的唯一標識,通過對終端身份和環境的證明驗證進一步保證分散式環境中系統套用的安全。
遠程證明是可信計算技術提供的核心功能,TCG(TrustedComputingGroup,可信計算組織提供了兩種遠程證明方案:基於可信第三方隱私CA(CertificateAuthority,證書授權機構)的證明方案和直接匿名證明方案。
其中,基於可信第三方隱私CA的證明方案通過隱私CA實現通信,在完成終端在平台的身份認證的同時,保證終端身份的匿名性。然而,在該方案中,隱私CA容易成為系統的瓶頸,如果攻擊方攻破了隱私CA或者與隱私CA合謀,終端身份的匿名性必將遭到破壞。直接匿名證明方案通過採用數字簽名等密碼學機制,雖然解決了遠程證明時可信計算終端身份的隱私保護問題,但仍然存在很多性能缺陷和安全問題。
發明內容
專利目的
該發明提供了一種可信自助服務系統及其建立方法,以解決2014年10月之前技術中的性能缺陷和安全問題。
技術方案
《一種可信自助服務系統的建立方法》包括以下步驟:自助終端向服務端傳送終端在平台的身份信息,所述服務端將所述終端在平台的身份信息傳送給平台信任服務模組;所述平台信任服務模組判斷所述終端在平台的身份信息是否對應一個有效的密碼模組密鑰,如果是,所述平台信任服務模組向所述服務端傳送驗證成功訊息,所述服務端允許所述自助終端的訪問;否則,所述平台信任服務模組向所述服務端傳送驗證失敗訊息,所述服務端拒絕所述自助終端的訪問。
該發明還提供了一種可信自助服務系統,包括自助終端、服務端和平台信任服務模組;其中,所述自助終端,包括:第一傳送模組,用於向所述服務端傳送終端在平台的身份信息;所述服務端,包括:第一接收模組,用於接收來自所述自助終端的所述終端在平台的身份信息;第二傳送模組,用於將所述第一接收模組接收到的所述終端在平台的身份信息傳送給所述平台信任服務模組;所述平台信任服務模組,包括:第二接收模組,用於接收來自所述服務端的所述終端在平台的身份信息;判斷模組,用於判斷所述第二接收模組接收到的所述終端在平台的身份信息是否對應一個有效的密碼模組密鑰;第三傳送模組,用於在所述判斷模組判斷出所述終端在平台的身份信息對應一個有效的密碼模組密鑰時,向所述服務端傳送驗證成功訊息;在所述判斷模組判斷出所述終端在平台的身份信息沒有對應一個有效的密碼模組密鑰時,向所述服務端傳送驗證失敗訊息。
所述服務端,還包括:第三接收模組,用於接收來自所述平台信任服務模組的驗證成功訊息和驗證失敗訊息;控制模組,用於在所述第三接收模組接收到所述驗證成功訊息後,允許所述自助終端的訪問;在所述第三接收模組接收到所述驗證失敗訊息後,拒絕所述自助終端的訪問。
可選地,所述服務端,還包括:第四傳送模組,用於向所述自助終端傳送安全要求信息;所述自助終端,還包括:第四接收模組,用於接收來自所述服務端的安全要求信息;生成模組,用於從所述第四接收模組接收到的所述安全要求信息中提取安全屬性,根據所述安全屬性生成映射關係獲取請求;第五傳送模組,用於將所述生成模組生成的所述映射關係獲取請求傳送給所述平台信任服務模組。
所述平台信任服務模組,還包括:第五接收模組,用於接收來自所述自助終端的映射關係獲取請求;查詢模組,用於根據所述第五接收模組接收到的所述映射關係獲取請求,獲取安全屬性,根據所述安全屬性,查詢對應的屬性映射關係證書和最新的證書撤銷列表;第六傳送模組,用於將所述查詢模組查詢到的屬性映射關係證書和證書撤銷列表傳送給所述自助終端;所述自助終端,還包括:第六接收模組,用於接收來自所述平台信任服務模組的屬性映射關係證書和證書撤銷列表;遠程證明模組,用於基於所述第六接收模組接收到的所述屬性映射關係證書和所述證書撤銷列表,與所述服務端進行平台完整性的遠程證明。
可選地,所述第一傳送模組,還用於向所述服務端傳送終端在平台的身份密鑰證書;所述第一接收模組,還用於接收來自所述自助終端的所述終端在平台的身份密鑰證書;所述第四傳送模組,還用於向所述自助終端傳送隨機數和遠程證明請求;所述第四接收模組,還用於接收來自所述服務端的隨機數和遠程證明請求。
所述自助終端,還包括:獲取模組,用於獲取完整性度量結果;簽名模組,用於使用所述終端在平台的身份密鑰證書和所述隨機數對所述獲取模組獲取到的所述完整性度量結果進行簽名,得到簽名結果;組合模組,用於對所述完整性度量結果和所述簽名模組簽名得到的所述簽名結果進行組合,得到遠程證明結果;所述第一傳送模組,還用於將所述組合模組組合得到的遠程證明結果傳送給所述服務端;所述第一接收模組,還用於接收來自所述自助終端的遠程證明結果。
所述服務端,還包括:驗簽模組,用於從所述第一接收模組接收到的所述遠程證明結果中獲取所述簽名結果和所述完整性度量結果,使用所述隨機數和所述終端在平台的身份密鑰證書對所述簽名結果驗證;評估模組,用於在所述驗簽模組對所述簽名結果驗證通過後,根據所述完整性度量結果,對所述自助終端進行完整性評估;所述第四傳送模組,還用於將所述評估模組得到的完整性評估結果傳送給所述自助終端。
可選地,所述服務端,還包括:驗證模組,用於對所述第一接收模組接收到的所述終端在平台的身份密鑰證書進行驗證;所述第四傳送模組,具體用於在所述驗證模組對所述終端在平台的身份密鑰證書驗證通過後,向所述自助終端傳送隨機數和遠程證明請求;所述控制模組,還用於在所述驗證模組對所述終端在平台的身份密鑰證書驗證未通過後,斷開與所述自助終端之間的連線。可選地,所述自助終端,還包括:作業系統核心,用於計算所述自助終端中的組件的完整性度量值,將所述完整性度量值添加到度量日誌列表中;所述獲取模組,具體用於從所述度量日誌列表中讀取完整性度量值,作為完整性度量結果。
可選地,所述組件為用戶進程;所述作業系統核心,具體用於判斷所述度量日誌列表中是否包含所述用戶進程的完整性度量值;當所述度量日誌列表中不包含所述用戶進程的完整性度量值時,計算所述用戶進程的完整性度量值,將所述用戶進程的完整性度量值添加到所述度量日誌列表中;當所述度量日誌列表中包含所述用戶進程,且dirty位置位時,計算所述用戶進程的完整性度量值,並在判斷出所述用戶進程的完整性度量值與所述度量日誌列表中與所述用戶進程對應的完整性度量值不相等之後,將所述度量日誌列表中與所述用戶進程對應的完整性度量值刪除,將計算得到的所述用戶進程的完整性度量值添加到所述度量日誌列表中。
可選地,所述自助終端還包括安全晶片,所述度量日誌列表存儲在所述安全晶片的平台配置暫存器中。可選地,所述自助終端還包括基本輸入輸出系統、主引導記錄和作業系統裝載程式;所述安全晶片,用於對所述基本輸入輸出系統進行可信度量,並在驗證出所述基本輸入輸出系統可信後,將系統控制權轉移給所述基本輸入輸出系統;所述基本輸入輸出系統,用於對所述主引導記錄進行可信度量,並在驗證出所述主引導記錄可信後,將系統控制權轉移給所述主引導記錄;所述主引導記錄,用於對所述作業系統裝載程式進行可信度量,並在驗證出所述作業系統裝載程式可信後,將系統控制權轉移給所述作業系統裝載程式;所述作業系統裝載程式,用於對所述作業系統核心進行可信度量,並在驗證出所述作業系統核心可信後,將系統控制權轉移給所述作業系統核心。
該發明建立了包括自助終端、服務端和平台信任服務模組的可信自助服務系統,自助終端以安全晶片為信任根,從底層硬體出發,通過逐層度量和驗證,建立到達作業系統啟動的信任鏈,通過作業系統核心對各個組件進行完整性度量,將得到的完整性度量結果保存到的安全晶片的PCR中,通過遠程證明將完整性度量結果傳送給服務端,由服務端根據該完整性度量結果對自助終端進行完整性評估,能夠為自助終端的作業系統建立可信的運行環境,保證PCR中的完整性度量值能夠真實反映自助終端的狀態,向服務端證明終端在平台的身份和配置狀態可信,使得終端可信擴展至自助終端與服務端之間。此外,服務端通過終端在平台的身份證明查詢發起訪問的自助終端是否擁有與有效的EK對應的終端在平台的身份,根據查詢結果允許或拒絕自助終端的訪問,從而保證被允許訪問的自助終端是可信的,提高了可信網路的安全性。自助終端能夠向服務端證明自身的安全屬性,而不泄露自助終端的具體配置,且服務端也能夠基於安全屬性制定安全需求,提高了終端在平台的身份認證的安全性和靈活性。
該發明還提供了一種可信自助服務系統,包括自助終端和服務端,所述自助終端包括安全晶片、可信度量組件和可信接入客戶端,所述服務端包括可信接入服務端;所述安全晶片,用於進行完整性度量,將度量結果存儲到平台配置暫存器中,並生成度量日誌;所述可信度量組件,與所述安全晶片連線,用於與所述安全晶片進行互動,獲取所述安全晶片生成的度量日誌,從所述平台配置暫存器中讀取度量結果,獲取終端在平台的身份密鑰的公鑰、對所述公鑰的簽名以及對所述度量結果的密鑰簽名;所述可信接入客戶端,與所述可信度量組件連線,用於通過所述可信度量組件獲取所述終端在平台的身份密鑰的公鑰、對所述公鑰的簽名、所述度量日誌、所述度量結果以及對所述度量結果的密鑰簽名,根據所述終端在平台的身份密鑰的公鑰、對所述公鑰的簽名、所述度量日誌、所述度量結果以及對所述度量結果的密鑰簽名,組裝成遠程證明協定訊息,將所述遠程證明協定訊息傳送給所述可信接入服務端;所述可信接入服務端,用於接收來自所述自助終端的遠程證明協定訊息,根據所述遠程證明協定訊息對所述自助終端的身份和完整性進行認證。可選地,所述可信接入服務端,還用於與自助終端建立安全外殼信息通道,通過所述安全外殼信息通道與所述服務端進行通信。
可選地,所述服務端,還包括:可信接入管理系統,與所述可信接入服務端連線,用於配置完整性安全策略,並向所述可信接入服務端提供對終端在平台的身份和度量日誌進行認證的接口。可選地,所述可信接入管理系統為用戶互動界面系統,具體用於以用戶互動界面的方式為管理員提供配置完整性策略和查看可信連線日誌等功能,並通過WebService方法為所述可信接入服務端提供驗證所述自助終端的平台身份、度量過程和度量結果是否合法的接口;所述可信接入服務端,具體用於通過調用所述可信接入管理系統提供的WebService方法,對所述終端在平台的身份密鑰的公鑰的簽名進行驗證,判斷所述自助終端的身份是否合法,如果所述自助終端的身份不合法,則斷開與所述自助終端之間的連線;通過調用所述可信接入管理系統提供的WebService方法,對所述度量結果的密鑰簽名進行驗證,判斷所述度量結果是否為偽造或被篡改過,如果所述度量結果為偽造或被篡改過,則斷開與所述自助終端之間的連線;通過調用所述可信接入管理系統提供的WebService方法,對所述度量日誌進行驗證,判斷所述度量日誌是否被篡改過以及所述自助終端的完整性是否滿足安全策略,如果所述度量日誌被篡改過,或者所述自助終端的完整性不滿足安全策略,則斷開與所述自助終端之間的連線。
改善效果
《一種可信自助服務系統的建立方法》提供的可信自助服務系統中,自助終端通過內置的安全晶片進行完整性度量,並根據度量結果和終端在平台的身份密鑰,與服務端進行認證,向服務端證明自身的平台身份和配置狀態可信,使得終端可信擴展至自助終端與服務端之間,提高了可信自助服務系統的安全性。
附圖說明
圖1為《一種可信自助服務系統的建立方法》實施例中的一種可信引導流程圖;
圖2為該發明實施例中的一種完整性度量流程圖;
圖3為該發明實施例中的一種遠程證明流程圖;
圖4為該發明實施例中的一種終端在平台的身份認證流程圖;
圖5為該發明實施例中的一種平台完整性證明流程圖;
圖6為該發明實施例中的一種可信自助服務系統的結構示意圖;
圖7為該發明實施例中的另一種可信自助服務系統的系統結構示意圖。
權利要求
1.《一種可信自助服務系統的建立方法》其特徵在於,包括以下步驟:自助終端向服務端傳送終端在平台的身份信息,所述服務端將所述終端在平台的身份信息傳送給平台信任服務模組;所述平台信任服務模組判斷所述終端在平台的身份信息是否對應一個有效的密碼模組密鑰,如果是,所述平台信任服務模組向所述服務端傳送驗證成功訊息,所述服務端允許所述自助終端的訪問;否則,所述平台信任服務模組向所述服務端傳送驗證失敗訊息,所述服務端拒絕所述自助終端的訪問。
2.如權利要求1所述的方法,其特徵在於,所述服務端接收到所述自助終端的訪問之後,還包括:所述服務端向所述自助終端傳送安全要求信息;所述自助終端從所述安全要求信息中提取安全屬性,根據所述安全屬性生成映射關係獲取請求,將所述映射關係獲取請求傳送給所述平台信任服務模組;所述平台信任服務模組根據所述映射關係獲取請求,獲取安全屬性,根據所述安全屬性,查詢對應的屬性映射關係證書和最新的證書撤銷列表,將查詢到的屬性映射關係證書和證書撤銷列表傳送給所述自助終端;所述自助終端基於所述屬性映射關係證書和所述證書撤銷列表,與所述服務端進行平台完整性的遠程證明。
3.如權利要求2所述的方法,其特徵在於,所述自助終端通過所述服務端向所述平台信任服務模組傳送終端在平台的身份信息之前,還包括:所述自助終端向所述服務端傳送終端在平台的身份密鑰證書;所述服務端向所述自助終端傳送隨機數和遠程證明請求;所述自助終端獲取完整性度量結果,使用所述終端在平台的身份密鑰證書和所述隨機數對所述完整性度量結果進行簽名,得到簽名結果;所述自助終端對所述完整性度量結果和所述簽名結果進行組合,將組合得到的遠程證明結果傳送給所述服務端;所述服務端從所述遠程證明結果中獲取所述簽名結果和所述完整性度量結 果,並在使用所述隨機數和所述終端在平台的身份密鑰證書對所述簽名結果驗證通過後,根據所述完整性度量結果,對所述自助終端進行完整性評估,將得到的完整性評估結果傳送給所述自助終端。
4.如權利要求3所述的方法,其特徵在於,所述服務端向所述自助終端傳送隨機數和遠程證明請求之前,還包括:所述服務端對所述終端在平台的身份密鑰證書進行驗證;所述服務端向所述自助終端傳送隨機數和遠程證明請求,具體為:如果所述服務端對所述終端在平台的身份密鑰證書驗證通過,所述服務端向所述自助終端傳送隨機數和遠程證明請求;所述服務端對所述終端在平台的身份密鑰證書進行驗證之後,還包括:如果所述服務端對所述終端在平台的身份密鑰證書驗證未通過,所述服務端斷開與所述自助終端之間的連線。
5.如權利要求3所述的方法,其特徵在於,所述自助終端向所述服務端傳送終端在平台的身份密鑰證書之前,還包括:所述自助終端中的作業系統核心計算所述自助終端中的組件的完整性度量值,將所述完整性度量值添加到度量日誌列表中;所述自助終端獲取完整性度量結果,具體為:所述自助終端從所述度量日誌列表中讀取完整性度量值,作為完整性度量結果。
6.如權利要求5所述的方法,其特徵在於,所述組件為用戶進程;所述作業系統核心計算所述組件的完整性度量值,具體為:所述作業系統核心判斷所述度量日誌列表中是否包含所述用戶進程的完整性度量值;如果所述度量日誌列表中不包含所述用戶進程的完整性度量值,所述作業系統核心計算所述用戶進程的完整性度量值,將所述用戶進程的完整性度量值添加到所述度量日誌列表中;如果所述度量日誌列表中包含所述用戶進程,且dirty位置位,所述操作系 統核心計算所述用戶進程的完整性度量值,並在判斷出所述用戶進程的完整性度量值與所述度量日誌列表中與所述用戶進程對應的完整性度量值不相等之後,將所述度量日誌列表中與所述用戶進程對應的完整性度量值刪除,將計算得到的所述用戶進程的完整性度量值添加到所述度量日誌列表中。
7.如權利要求5或6所述的方法,其特徵在於,所述自助終端內置有安全晶片,所述度量日誌列表存儲在所述安全晶片的平台配置暫存器中。
8.如權利要求7所述的方法,其特徵在於,所述作業系統核心計算所述組件的完整性度量值之前,還包括:所述安全晶片對基本輸入輸出系統進行可信度量,並在驗證出所述基本輸入輸出系統可信後,將系統控制權轉移給所述基本輸入輸出系統;所述基本輸入輸出系統對主引導記錄進行可信度量,並在驗證出所述主引導記錄可信後,將系統控制權轉移給所述主引導記錄;所述主引導記錄對作業系統裝載程式進行可信度量,並在驗證出所述作業系統裝載程式可信後,將系統控制權轉移給所述作業系統裝載程式;所述作業系統裝載程式對所述作業系統核心進行可信度量,並在驗證出所述作業系統核心可信後,將系統控制權轉移給所述作業系統核心。
實施方式
《一種可信自助服務系統的建立方法》所述自助終端通過內置的安全晶片進行可信引導和完整性度量,根據完整性度量結果與服務端進行遠程證明,得到服務端對自助終端的完整性評估結果;自助終端向服務端發起訪問請求時,通過向服務端傳送終端在平台的身份信息進行身份認證,並在被服務端允許訪問後,根據來自服務端的安全屬性,從平台信任服務獲取屬性映射關係證書和證書撤銷列表,基於屬性映射關係證書和證書撤銷列表,與服務端進行平台完整性的遠程證明。
該發明實施例中,自助終端上電後,以內置的安全晶片作為信任根,執行如圖1所示的可信引導流程,包括以下步驟:
步驟101,安全晶片對BIOS(BasicInputOutputSystem,基本輸入輸出系統)進行可信度量,驗證BIOS是否可信,如果是,則執行步驟102;否則,提示可信引導失敗,結束流程。
步驟102,安全晶片將系統控制權轉移給BIOS。
步驟103,BIOS對MBR(MainBootRecord,主引導記錄)進行可信度量,驗證MBR是否可信,如果是,則執行步驟104;否則,提示可信引導失敗,結束流程。具體地,BIOS通過調用安全晶片對MBR進行可信度量,驗證MBR是否可信。
步驟104,BIOS將系統控制權轉移給MBR。
步驟105,MBR對作業系統裝載程式進行可信度量,驗證作業系統裝載程式是否可信,如果是,則執行步驟106;否則,提示可信引導失敗,結束流程。具體地,MBR通過調用安全晶片對作業系統裝載程式進行可信度量,驗證作業系統裝載程式是否可信。
步驟106,MBR將系統控制權轉移給作業系統裝載程式。
步驟107,作業系統裝載程式對作業系統核心進行可信度量,驗證作業系統核心是否可信,如果是,則執行步驟108;否則,提示可信引導失敗,結束流程。具體地,作業系統裝載程式通過調用安全晶片對作業系統核心進行可信度量,驗證作業系統核心是否可信。
步驟108,作業系統裝載程式將系統控制權轉移給作業系統核心。自助終端以安全晶片為信任根,從底層硬體出發,通過逐層度量和驗證,建立到達作業系統啟動的信任鏈,能夠為自助終端的作業系統建立可信的運行環境。進一步地,作業系統核心取得系統控制權之後,對組件映射到記憶體中的內容進行載入,並對組件執行如圖2所示的完整性度量流程,包括以下步驟:
步驟201,作業系統核心對組件進行判斷,如果是核心模組,則執行步驟202;如果是用戶進程,則執行步驟203。
步驟202,作業系統核心計算核心模組的完整性度量值,將核心模組的完整性度量值添加到度量日誌列表中。具體地,作業系統核心採用SM3算法,對核心模組進行計算,將計算得到的SM3散列值作為核心模組的完整性度量值,並將核心模組的完整性度量值和核心模組的標識信息作為新的度量日誌項,添加到度量日誌列表中。其中,核心模組的標識信息是能夠唯一標識核心模組的信息,可以是核心模組的名稱,也可以是核心模組的編號等信息。度量日誌列表存儲在安全晶片的PCR(PlatformConfigurationRegister,平台配置暫存器)中。
步驟203,作業系統核心判斷度量日誌列表中是否包含用戶進程,如果是,則執行步驟205;否則,執行步驟204。具體地,作業系統核心遍歷度量日誌列表中的各個度量日誌項,判斷各個度量日誌項是否包含用戶進程的標識信息,如果度量日誌列表中存在包含用戶進程的標識信息的度量日誌項,則確定度量日誌列表中包含用戶進程的完整性度量值;否則,確定度量日誌列表中不包含用戶進程的完整性度量值。其中,用戶進程的標識信息是能夠唯一標識用戶進程的信息,可以是用戶進程的名稱,也可以是用戶進程的編號等信息。
步驟204,作業系統核心計算用戶進程的完整性度量值,將用戶進程的完整性度量值添加到度量日誌列表中。具體地,作業系統核心採用SM3算法,對用戶進程進行計算,將計算得到的SM3散列值作為用戶進程的完整性度量值,並將用戶進程的完整性度量值和用戶進程的標識信息作為新的度量日誌項,添加到度量日誌列表中。
步驟205,作業系統核心判斷dirty位是否置位,如果是,則執行步驟206;否則,確定完整性度量完畢。
步驟206,作業系統核心計算用戶進程的完整性度量值。具體地,作業系統核心採用SM3算法,對用戶進程進行計算,將計算得到的SM3散列值作為用戶進程的完整性度量值。
步驟207,作業系統核心判斷的用戶進程的完整性度量值是否與度量日誌列表中與該用戶進程對應的完整性度量值相等,如果是,則確定完整性度量完畢;否則,執行步驟208。
步驟208,作業系統核心將度量日誌列表中與用戶進程對應的完整性度量值刪除,將計算得到的用戶進程的完整性度量值添加到度量日誌列表中。具體地,作業系統核心將度量日誌列表中與用戶進程對應的度量日誌項刪除,並將用戶進程的標識信息和計算得到的用戶進程的完整性度量值作為新的度量日誌項,添加到度量日誌列表中。自助終端通過作業系統核心對各個組件進行完整性度量,並將得到的完整性度量值保存到的安全晶片的PCR中,從而防止攻擊者篡改完整性度量值,保證PCR中的完整性度量值能夠真實反映自助終端的狀態。進一步地,自助終端完成可信引導和完整性度量後,執行如圖3所示的遠程證明流程,包括以下步驟:
步驟301,自助終端向服務端傳送PIK(PlatformIdentityKey,終端在平台的身份密鑰)證書。
步驟302,服務端對接收到的PIK證書進行驗證,如果驗證通過,則執行步驟303;否則,斷開與自助終端之間的連線,結束流程。
步驟303,服務端向自助終端傳送隨機數和遠程證明請求。
步驟304,自助終端獲取完整性度量結果。具體地,自助終端從PCR的度量日誌列表中讀取完整性度量值,作為完整性度量結果。
步驟305,自助終端使用PIK證書和隨機數對完整性度量結果進行簽名,得到簽名結果。
步驟306,自助終端對完整性度量結果和簽名結果進行組合,將組合得到的遠程證明結果傳送給服務端。
步驟307,服務端從接收到的遠程證明結果中獲取簽名結果和完整性度量結果。
步驟308,服務端使用隨機數和PIK證書對簽名結果進行驗證,如果驗證通過,則執行步驟309;否則,斷開與自助終端之間的連線,結束流程。
步驟309,服務端根據完整性度量結果,對自助終端進行完整性評估,將得到的完整性評估結果傳送給自助終端。自助終端通過遠程證明協定將完整性度量結果傳送給服務端,由服務端根據該完整性度量結果對自助終端進行完整性評估,從而向服務端證明自身的平台身份和配置狀態可信,使得終端可信擴展至自助終端與服務端之間。
該實施例中,自助終端向服務端發起訪問請求時,執行如圖4所示的終端在平台的身份認證流程,包括以下步驟:
步驟401,自助終端向服務端傳送終端在平台的身份信息。
步驟402,服務端將終端在平台的身份信息傳送給平台信任服務。
步驟403,平台信任服務判斷終端在平台的身份信息是否對應一個有效的EK(TCMEndorsementKey,密碼模組密鑰),如果是,則執行步驟404;否則。執行步驟406。
步驟404,平台信任服務向服務端傳送驗證成功訊息。
步驟405,服務端允許自助終端的訪問。
步驟406,平台信任服務向服務端傳送驗證失敗訊息。
步驟407,服務端拒絕自助終端的訪問。服務端通過終端在平台的身份證明查詢發起訪問的自助終端是否擁有與有效的EK對應的終端身份,根據查詢結果允許或拒絕自助終端的訪問,從而保證被允許訪問的自助終端是可信的,提高了可信網路的安全性。進一步地,自助終端被服務端允許訪問後,執行如圖5所示的平台完整性證明流程,包括以下步驟:
步驟501,服務端向自助終端傳送安全要求信息。
步驟502,自助終端從安全要求信息中提取安全屬性,根據該安全屬性生成映射關係獲取請求。
步驟503,自助終端向平台信任服務傳送映射關係獲取請求。
步驟504,平台信任服務根據接收到的映射關係獲取請求,獲取安全屬性。
步驟505,平台信任服務根據獲取到的安全屬性,查詢對應的屬性映射關係證書和最新的證書撤銷列表,將查詢到的屬性映射關係證書和證書撤銷列表傳送給自助終端。
步驟506,自助終端基於接收到的屬性映射關係證書和證書撤銷列表,與服務端進行平台完整性的遠程證明。
通過上述流程,自助終端能夠向服務端證明自身的安全屬性,而不泄露自助終端的具體配置,且服務端也能夠基於安全屬性制定安全需求,提高了終端在平台的身份認證的安全性和靈活性。
基於上述可信自助服務系統的建立方法,該發明實施例還提供了一種可信自助服務系統,如圖6所示,包括自助終端600、服務端700和平台信任服務800;其中,自助終端600,包括:
第一傳送模組601,用於向服務端700傳送終端在平台的身份信息;服務端700,包括:第一接收模組701,用於接收來自自助終端600的終端在平台的身份信息;第二傳送模組702,用於將第一接收模組701接收到的終端在平台的身份信息傳送給平台信任服務800;平台信任服務800,包括:第二接收模組801,用於接收來自服務端700的終端在平台的身份信息;判斷模組802,用於判斷第二接收模組801接收到的終端在平台的身份信息是否對應一個有效的密碼模組密鑰;第三傳送模組803,用於在判斷模組802判斷出終端在平台的身份信息對應一個有效的密碼模組密鑰時,向服務端700傳送驗證成功訊息;在判斷模組802判斷出終端自平台的身份信息沒有對應一個有效的密碼模組密鑰時,向服務端700傳送驗證失敗訊息。
上述服務端700,還包括:第三接收模組703,用於接收來自平台信任服務800的驗證成功訊息和驗證失敗訊息;控制模組704,用於在第三接收模組703接收到驗證成功訊息後,允許自助終端600的訪問;在第三接收模組703接收到驗證失敗訊息後,拒絕自助終端600的訪問。
進一步地,上述服務端700,還包括:第四傳送模組705,用於向自助終端600傳送安全要求信息;相應地,上述自助終端600,還包括:第四接收模組602,用於接收來自服務端700的安全要求信息;生成模組603,用於從第四接收模組602接收到的安全要求信息中提取安全屬性,根據安全屬性生成映射關係獲取請求;第五傳送模組604,用於將生成模組603生成的映射關係獲取請求傳送給平台信任服務800;上述平台信任服務800,還包括:第五接收模組804,用於接收來自自助終端600的映射關係獲取請求;查詢模組805,用於根據第五接收模組804接收到的映射關係獲取請求,獲取安全屬性,根據安全屬性,查詢對應的屬性映射關係證書和最新的證書撤銷列表;第六傳送模組806,用於將查詢模組805查詢到的屬性映射關係證書和證書撤銷列表傳送給自助終端600。
上述自助終端600,還包括:第六接收模組605,用於接收來自平台信任服務800的屬性映射關係證書和證書撤銷列表;遠程證明模組606,用於基於第六接收模組605接收到的屬性映射關係證書和證書撤銷列表,與服務端700進行平台完整性的遠程證明。進一步地,上述第一傳送模組601,還用於向服務端700傳送終端在平台的身份密鑰證書;上述第一接收模組701,還用於接收來自自助終端600的終端在平台的身份密鑰證書;上述第四傳送模組705,還用於向自助終端600傳送隨機數和遠程證明請求;上述第四接收模組602,還用於接收來自服務端700的隨機數和遠程證明請求。
相應地,上述自助終端600,還包括:獲取模組607,用於獲取完整性度量結果;簽名模組608,用於使用終端在平台的身份密鑰證書和隨機數對獲取模組607獲取到的完整性度量結果進行簽名,得到簽名結果;組合模組609,用於對完整性度量結果和簽名模組608簽名得到的簽名結果進行組合,得到遠程證明結果;上述第一傳送模組601,還用於將組合模組609組合得到的遠程證明結果傳送給服務端700;上述第一接收模組701,還用於接收來自自助終端600的遠程證明結果。
上述服務端700,還包括:驗簽模組706,用於從第一接收模組701接收到的遠程證明結果中獲取簽名結果和完整性度量結果,使用隨機數和終端在平台的身份密鑰證書對簽名結果驗證;評估模組707,用於在驗簽模組706對簽名結果驗證通過後,根據完整性度量結果,對自助終端600進行完整性評估;上述第四傳送模組705,還用於將評估模組707得到的完整性評估結果傳送給自助終端600。
進一步地,上述服務端700,還包括:驗證模組708,用於對第一接收模組701接收到的終端在平台的身份密鑰證書進行驗證;上述第四傳送模組705,具體用於在驗證模組708對終端在平台的身份密鑰證書驗證通過後,向自助終端600傳送隨機數和遠程證明請求;上述控制模組704,還用於在驗證模組708對終端在平台的身份密鑰證書驗證未通過後,斷開與自助終端600之間的連線。
該實施例中,上述自助終端600,還包括:作業系統核心610和安全晶片611;其中,作業系統核心610,用於計算自助終端600中的組件的完整性度量值,將完整性度量值添加到度量日誌列表中;具體地,上述組件為用戶進程時,上述作業系統核心610,具體用於判斷度量日誌列表中是否包含用戶進程的完整性度量值;當度量日誌列表中不包含用戶進程的完整性度量值時,計算用戶進程的完整性度量值,將用戶進程的完整性度量值添加到度量日誌列表中;當度量日誌列表中包含用戶進程,且dirty位置位時,計算用戶進程的完整性度量值,並在判斷出用戶進程的完整性度量值與度量日誌列表中與用戶進程對應的完整性度量值不相等之後,將度量日誌列表中與用戶進程對應的完整性度量值刪除,將計算得到的用戶進程的完整性度量值添加到度量日誌列表中。
其中,度量日誌列表存儲在安全晶片611的平台配置暫存器中。相應地,上述獲取模組607,具體用於從度量日誌列表中讀取完整性度量值,作為完整性度量結果;進一步地,上述自助終端600,還包括:基本輸入輸出系統612、主引導記錄613和作業系統裝載程式614;其中,上述安全晶片611,用於對基本輸入輸出系統612進行可信度量,並在驗證出基本輸入輸出系統612可信後,將系統控制權轉移給基本輸入輸出系統612;上述基本輸入輸出系統612,用於對主引導記錄613進行可信度量,並在驗證出主引導記錄613可信後,將系統控制權轉移給主引導記錄613;上述主引導記錄613,用於對作業系統裝載程式614進行可信度量,並在驗證出作業系統裝載程式614可信後,將系統控制權轉移給作業系統裝載程式614;上述作業系統裝載程式614,用於對作業系統核心610進行可信度量,並在驗證出作業系統核心610可信後,將系統控制權轉移給作業系統核心610。
該發明實施例提供的可信自助服務系統中,自助終端以安全晶片為信任根,從底層硬體出發,通過逐層度量和驗證,建立到達作業系統啟動的信任鏈,通過作業系統核心對各個組件進行完整性度量,將得到的完整性度量結果保存到的安全晶片的PCR中,通過遠程證明將完整性度量結果傳送給服務端,由服務端根據該完整性度量結果對自助終端進行完整性評估,能夠為自助終端的作業系統建立可信的運行環境,保證PCR中的完整性度量值能夠真實反映自助終端的狀態,向服務端證明自身的平台身份和配置狀態可信,使得終端可信擴展至自助終端與服務端之間。
此外,服務端通過終端在平台的身份證明查詢發起訪問的自助終端是否擁有與有效的EK對應的終端身份,根據查詢結果允許或拒絕自助終端的訪問,從而保證被允許訪問的自助終端是可信的,提高了可信網路的安全性。自助終端能夠向服務端證明自身的安全屬性,而不泄露自助終端的具體配置,且服務端也能夠基於安全屬性制定安全需求,提高了終端在平台的身份認證的安全性和靈活性。
該發明實施例還提供了另一種可信自助服務系統,如圖7所示,包括自助終端910和服務端920,自助終端910包括安全晶片911、可信度量組件912和可信接入客戶端913,服務端920包括可信接入服務端921和可信接入管理系統922。
其中,安全晶片911,用於進行完整性度量,將度量結果存儲到PCR中,並生成度量日誌;可信度量組件912,與安全晶片911連線,用於與安全晶片911進行互動,獲取安全晶片911生成的度量日誌,從PCR中讀取度量結果,獲取終端在平台的身份密鑰的公鑰、對該公鑰的簽名以及對度量結果的密鑰簽名;具體地,可信度量組件912,是一個用C語言實現的DLL庫,為可信接入客戶端913提供API,具體提供如下服務:
1、獲取終端在平台的身份密鑰的公鑰:輸入:空;輸出:終端在平台的身份密鑰的公鑰。
2、獲取度量結果:輸入:度量結果索引;輸出:度量結果。
3、獲取度量結果的密鑰簽名:輸入:無;輸出:度量結果的密鑰簽名。
4、獲取度量日誌列表:輸入:無;輸出:度量日誌列表。
可信接入客戶端913,與可信度量組件912連線,包含SSH(SecureShell,安全外殼)客戶端,用於通過可信度量組件912獲取終端在平台的身份密鑰的公鑰、對該公鑰的簽名、度量日誌、度量結果以及對度量結果的密鑰簽名,根據終端在平台的身份密鑰的公鑰、對該公鑰的簽名、度量日誌、度量結果以及對度量結果的密鑰簽名,組裝成遠程證明協定訊息,並將該遠程證明協定訊息作為SSH安全協定認證層訊息傳送給可信接入服務端921,請求與可信接入服務端921進行認證。
具體地,可信接入客戶端913,是一個用Java語言實現的應用程式,主要提供SSH安全協定的客戶端功能,並調用可信度量組件912的API,生成遠程證明協定訊息。其中,遠程證明協定訊息包含以下內容:PublicKey:終端在平台的身份密鑰的公鑰;PublicKeySigned:對終端在平台的身份密鑰的公鑰的簽名;Logs:度量日誌列表;FinalPcr:度量結果;FinalPcrSigned:對度量結果的密鑰簽名。
可信接入服務端921,包含SSH(SecureShell,安全外殼)服務端,用於接收來自自助終端910的遠程證明協定訊息,根據該遠程證明協定訊息對自助終端910的身份和完整性進行認證。此外,可信接入服務端921還用於與自助終端910建立SSH信息通道。當SSH信息通道建立之後,自助終端910與可信接入服務端921之間通過SSH信息通道進行通信。具體地,可信接入服務端921,是一個用Java語言實現的應用程式,主要提供SSH安全協定的服務端功能,並擴展了SSH的認證層協定,將傳統的密碼或證書的方式,改為遠程證明協定的方式。
可信接入服務端921通過調用可信接入管理系統922提供的WebService方法,採用SM2算法對終端在平台的身份密鑰的公鑰的簽名進行驗證,判斷自助終端910的身份是否合法,如果自助終端910的身份不合法,則斷開與自助終端910之間的連線;通過調用可信接入管理系統922提供的WebService方法,採用SM2算法對度量結果的密鑰簽名進行驗證,判斷度量結果是否為偽造或被篡改過,如果度量結果為偽造或被篡改過,則斷開與自助終端910之間的連線;通過調用可信接入管理系統922提供的WebService方法,採用SM3算法對度量日誌進行驗證,判斷度量日誌是否被篡改過以及自助終端910的完整性是否滿足安全策略,如果度量日誌被篡改過,或者自助終端910的完整性不滿足安全策略,則斷開與自助終端910之間的連線。
可信接入管理系統922,與可信接入服務端921連線,用於配置完整性安全策略,並向可信接入服務端921提供對終端在平台的身份和度量日誌進行認證的接口。具體地,可信接入管理系統922,是一個GUI(GraphicalUserInterface,用戶互動界面)系統,以GUI的方式為管理員提供配置完整性策略和查看可信連線日誌等功能,並通過WebService方法為可信接入服務端921提供驗證自助終端910在平台的身份、度量過程和度量結果是否合法的接口。
榮譽表彰
2021年11月,《一種可信自助服務系統的建立方法》獲得第八屆廣東專利獎優秀獎。