在云環境日志取證中實現數據完整性驗證的方法
【專利摘要】本發明涉及一種在云環境日志取證中實現數據完整性驗證的方法,其中包括:粗粒度時間服務器根據設定的粗粒度時間周期產生相應的數字簽名,并將粗粒度時間周期和數字簽名發送至日志監控服務器;可信計算模塊根據一時間間隔確定細粒度時間,并將細粒度時間作為公鑰;日志監控服務器根據公鑰更新細粒度時間敏感密鑰;日志監控服務器接收云環境的日志塊的哈希鏈和哈希消息認證碼,根據細粒度時間敏感密鑰生成相應的時間敏感數字簽名,并根據驗證算法進行日志數據完整性驗證。采用本發明的在云環境日志取證中實現數據完整性驗證的方法,無需將日志的具體內容提交到日志監控服務器,隱私保護性強,且結構簡單,易于實現,具有更廣泛的應用范圍。
【專利說明】在云環境日志取證中實現數據完整性驗證的方法
【技術領域】
[0001] 本發明涉及電子數據取證【技術領域】,尤其涉及云環境下的日志取證【技術領域】,具 體是指一種在云環境日志取證中實現數據完整性驗證的方法。
【背景技術】
[0002] 云環境中的日志是重要的證據來源,日志數據包含了系統運行狀況以及安全事件 的詳細記錄。調查者可以通過日志分析獲取重要的證據、加速調查進程。然而,由于調查者 缺乏對云環境物理資源的控制,從中收集日志的工作主要得依靠云服務提供者(CSP,Cloud Service Provider)來完成。在這樣的場景下,無法有效證明所獲取日志的完整性,不得不 假設CSP在記錄日志和生成日志完整性證明時是可靠的,但某些事件發生后CSP可能試圖 修改、篡改日志。
【發明內容】
[0003] 本發明的目的是克服了上述現有技術的缺點,提供了 一種將日志監控服務器部署 在云環境中,通過可信計算來產生日志完整性的證明,且日志的具體內容無需提交到日志 監控服務器的在云環境日志取證中實現數據完整性驗證的方法。
[0004] 為了實現上述目的,本發明的在云環境日志取證中實現數據完整性驗證的方法具 有如下構成:
[0005] 該在云環境日志取證中實現數據完整性驗證的方法,其主要特點是,所述的云環 境包括粗粒度時間服務器和日志監控服務器,所述的日志監控服務器包括可信計算模塊, 所述的方法包括以下步驟:
[0006] (1)所述的粗粒度時間服務器根據設定的粗粒度時間周期產生相應的數字簽名, 并將所述的粗粒度時間周期和所相應的數字簽名發送至所述的日志監控服務器;
[0007] (2)所述的可信計算模塊根據一時間間隔確定細粒度時間,并將所述的細粒度時 間作為公鑰;
[0008] (3)所述的日志監控服務器根據所述的公鑰更新所述的數字簽名相應的細粒度時 間敏感密鑰;
[0009] (4)所述的日志監控服務器接收云環境的日志塊的哈希鏈和哈希消息認證碼;
[0010] (5)所述的日志監控服務器根據所述的細粒度時間敏感密鑰對各個日志塊生成相 應的時間敏感數字簽名,并根據驗證算法進行日志數據完整性驗證。
[0011] 進一步地,所述的步驟(4)和(5)之間,還包括以下步驟:
[0012] (4. 1)所述的日志監控服務器根據說所述的哈希鏈驗證所述的哈希消息認證碼。
[0013] 進一步地,所述的可信計算模塊包括滴答計數器單元,所述的可信計算模塊根據 一時間間隔確定細粒度時間,具體為:
[0014] 可信計算模塊根據滴答計數器單元和粗粒度時間周期確定細粒度時間。
[0015] 進一步地,所述的可信計算模塊包括單調計數器單元,所述的步驟(1)和(2)之 間,還包括以下步驟:
[0016] (1. 1)所述的日志監控服務器驗證所述的數字簽名,并判斷驗證結果是否為通過 驗證,如果是,則繼續步驟(1. 2),否則提示驗證失敗;
[0017] (1. 2)所述的日志監控服務器將所述的粗粒度時間周期更新至所述的單調計數器 單元中。
[0018] 進一步地,所述的步驟(5)之后,還包括以下步驟:
[0019] (6)所述的可信計算模塊重新計算細粒度時間并繼續更新所述的數字簽名私鑰和 所述的公鑰。
[0020] 采用了本發明的在云環境日志取證中實現數據完整性驗證的方法,云取證過程 中,通過完整性的證明,調查者能夠確認CSPs提供的日志是否是可信的,而且,本方案的實 現中日志的具體內容無需提交到日志監控服務器,所以CSPs以及云計算客戶端的隱私信 息能很好地受到保護。
【專利附圖】
【附圖說明】
[0021] 圖1為本發明的在云環境日志取證中實現數據完整性驗證的方法的流程圖。
[0022] 圖2為本發明的一個具體實施例的系統結構圖。
[0023] 圖3為本發明的一個具體實施例的數據交互圖。
[0024] 圖4為本發明的云服務提供商將哈希消息認證碼傳送給日志監控服務器的流程 圖。
【具體實施方式】
[0025] 為了能夠更清楚地描述本發明的技術內容,下面結合具體實施例來進行進一步的 描述。
[0026] 本發明針對現有技術問題,增加日志監控服務器來解決云環境中日志取證中的完 整性證明問題。
[0027] 如圖2和3所示,為本發明的一個【具體實施方式】,其云環境中包括:云服務提供商 (Cloud Service Provider,CSP)、取證調查者(Forensics Server,FS)、粗粒度時間服務 器、日志監控服務器(Log Monitoring Server, LMS)、云服務客戶端,其中,CSP維護整個云 服務環境,LMS部署在云環境中同CSP配合,實時生成云日志的完整性證明數據,
[0028]此外,CSP包括虛擬機(Virtual Machine,VM),云服務提供商具有日子數據庫來存 儲日志塊的數據(Log DB),日志監控服務器具有日志證明數據庫,用于存儲日志完整性證 明(Proof)。
[0029] 由可靠的密鑰權威方(Key Authority,KA)為粗粒度時間服務生成公私鑰,該密 鑰用于對粗粒度時間服務發布的時間信息進行數字簽名(本文的數字簽名就是密碼學里 邊的數字簽名方案),該數字簽名采用"普通的數字簽名方案,如E⑶SA(Elliptic Curve Digital Signature Algorithm橢圓曲線數字簽名算法密鑰權威方為LMS生成主密鑰, 該密鑰為LMS生成細粒度時間敏感的數字簽名,該數字簽名用于實時生成日志完整性證明 項。LMS上的密鑰存儲、密鑰更新以及數字簽名算法在可信計算模塊(TPM)中實現。
[0030] 由于密鑰權威方主要作用是初始化整個系統的密鑰,當系統開始運作后,密鑰權 威方并不參與運行,故在圖2和3中未畫出。
[0031] LMS部署在云環境中同CSP配合,實時生成云日志的完整性證明數據。CSP需 要對日志進行集中管理,然后實時生成日志塊的哈希消息認證碼(HMAC)和哈希鏈(HC), 傳送給LMS。LMS通過哈希鏈驗證接收到的日志塊的HMAC,然后采用TPM中的細粒度 時間敏感密鑰,對該日志項生成數字簽名,該數字簽名采用" Sakai-Ogishi-Kasahara 基于身份的數字簽名方案(BELLARE M, NAMPREMPRE C, NEVEN G. Security Proofs for Identity-Based Identification and Signature Schemes[J]. Journal of Cryptology,2009, 22 (1) : 1 - 61.)",保存當前的時間數據(即驗證數字簽名用的公鑰)。
[0032] 本方案中LMS不屬于CSP,無法看到日志具體內容,同時LMS需要實時記錄CSP - 方日志生成的情況,故讓CSP發送日志塊的HMAC給LMS進行記錄,雖然LMS從HMAC難以獲 得日志具體內容,但是不同的日志塊幾乎不可能生成一樣的HMAC,所以采用HMAC來驗證取 證過程中獲得的日志數據的完整性。
[0033] LMS從粗粒度時間服務上獲取當前的粗粒度時間以后,在該時間段(下次接收到 粗粒度時間服務的時間消息之前)按照一定的時間間隔(如一個小時)生成細粒度時間 敏感的密鑰,LMS更新時間敏感密鑰,細粒度時間敏感的密鑰用于實時生成日志完整性證明 項。
[0034] 為了防止LMS上的時間敏感密鑰被更新到以前的時間段。通過LMS上的單調計數 器和滴答計數器來計算時間,生成細粒度時間敏感密鑰。其中單調計數器用來記錄從粗粒 度時間服務獲取的時間。
[0035] 取證階段中,FS從CSP獲取日志數據,從LMS獲取日志完整性證明,然后可驗證所 獲取的日志完整性。
[0036] 基于上述實施方式,本發明的一個具體實施例如下:
[0037] 本發明在Sakai-Ogishi-Kasahara基于身份的數字簽名方案(簡稱S0K-IBS)的 基礎上來實現細粒度時間敏感的數字簽名,如圖1所示,具體如下:
[0038] (1)KA 初始化
[0039] 按照S0K-IBS要求設定公開參數,選擇好哈希函數;為每個LMSi上配備的TPMi隨 機選擇主密鑰a i并計算相應公鑰Xp a ,安全地存于TPMi中,Xi可由FS保存。其中,Xi的 計算方法可參閱S0K-IBS方案文獻,其中有詳細的計算方法說明。
[0040] 粗粒度時間服務器初始化。該服務器可使用普通的數字簽名方案,如 ECDSA (Elliptic Curve Digital Signature Algorithm 捕圓曲線數字簽名算法)qKA需要 為粗粒度時間服務設定相應的私鑰并生成公鑰證書。公鑰證書由各個LMS保存。
[0041] 由于在標準的數字簽名方案中對"設定相應的私鑰并生成公鑰證書"都有詳細說 明,因此此處略去生成公鑰證書的方法步驟;一段數據可以用私鑰生成數字簽名,然后信息 接收方可用收到的數據和公鑰證書驗證該數字簽名是否有效,是否真是私鑰擁有者生成, 從而確保數據來源可靠。
[0042] (2)粗粒度時間同步
[0043] 粗粒度時間周期可以設定的比較長,如1天。當一個新的時間周期開始時,粗粒度 時間服務器生成時間周期d的數字簽名〇 d,并發送< d,〇 d >給各個LMS。
[0044] 其中,"〈,>"表示這里邊放置了一個n元組,跟"{}"等括號含義類同。數字簽名 0 d同KA設定的私鑰以及生成公鑰證書相關。
[0045] (3)細粒度時間敏感密鑰的更新
[0046] TPMi可從自己的主密鑰a ,生成細粒度時間敏感的數字簽名密鑰。細粒度時間t 由粗粒度時間d和TPMi的滴答計數器決定。例如粗粒度時間是一天,則細粒度時間可以是 一小時,細粒度時間(1小時)的字符串為"2014081224",即表示2014年08月12日24時。
[0047] 具體過程如下:
[0048] 當收到< d,〇 d >以后,LMSi驗證該數字簽名。通過驗證后,將d更新到TPMi的單 調計數器me中,由于單調計數器是只能單向更新,例如數值只能增加不能減小,這樣做為 了防止細粒度時間t被更新為以前的時間,進而偽造過去時間段日志的完整性證明。
[0049] TPMi通過d和滴答計數器計算出當前時間t,簡單的計算方法就是把兩個字符串 鏈接起來,并按S0K-IBS的做法,將字符串t作為公鑰更新數字簽名所需要的私鑰。更新成 功后t就成為了數字簽名驗證用的公鑰。但新的細粒度時間開始后,TPMi重新計算當前時 間t時(由于t由粗粒度時間和TPM滴答計數器共同生成,若細粒度時間為一小時,則每過 一個小時就產生一個新的t),繼續更新私鑰和公鑰。
[0050] S0K簽名方案的公鑰可是一段字符串,本實施方式中這個公鑰就是細粒度時間這 個字符串。S0K簽名方案的主密鑰是由TPM保留的,TPM可根據細粒度時間字符串的變化重 新生成對應的私鑰(數字簽名方案中,公鑰私鑰是一一對應的)。本實施方式中,為了保證 日志完整性記錄生成的時間戳正確,所以采用了以時間串作為公鑰的數字簽名方案。
[0051] (4) CSP傳送日志塊的HMAC給LMS
[0052] 如圖4所示,存儲于集中化日志數據庫中的未處理的云日志可以被分成多個塊, 這里采用了哈希鏈用來校驗網絡傳輸的日志塊校驗碼和劃分日志塊的順序。CSP通過以下 公式為日志塊log」計算校驗碼和哈希鏈:
[0053] HMACj = H(logj);
[0054] HCj = HMACj, machine, process);
[0055] 其中,H是哈希函數,可以是SHA_1,SHA_256等函數。1%等數據作為參數調用該 函數即可。
[0056] 然后傳送元組L」=〈Machine, Process, HMAC」,HC」〉給LMS。LMS可用HC」來對數據 進行驗證,由于LMS已保存過上次的哈希鏈HCy,此時,可直接比較已保存的上次的哈希鏈 與本次剛接收的哈希鏈是否滿足下列恒等式來驗證收到的數據是否正確:
[0057] HCj = H (HC^,HMACj, machine, process)。
[0058] (5)日志完整性證明
[0059] 在 t 時刻收到 L」=〈Machine, Process, HMAC」, HC」〉后,LMS 用沒算法為 Lj 計算時間敏感的數字簽名% (通過TPM)并放入LPEi中保存,如下所示:
[0060] LPEj =〈Machine,Process,HMACj, HCj, 〇』,t〉;
[0061] 其中,數字簽名5 =力^(以"/_(^//(:)〉),該數字簽名算法采用sok-IBS,其中, 為數字簽名算法,t為細粒度時間,m為消息,此處m為〈HMACp HCj ;LPE表示日 志完整性證明項的含義,即"Log、Proof、Entry"的縮寫;Machine就是產生日志的機器; Process是產生日志的進程。
[0062] 在取證時,取證人員收集到具體的日志后并從LMS獲得LPE后,計算日志對應的 HMAC和HC,與MAC」和HCj進行比較,并通過以下算法驗證數字簽名有效性,完成完整性驗 證:
【權利要求】
1. 一種在云環境日志取證中實現數據完整性驗證的方法,其特征在于,所述的云環境 包括粗粒度時間服務器和日志監控服務器,所述的日志監控服務器包括可信計算模塊,所 述的方法包括以下步驟: (1) 所述的粗粒度時間服務器根據設定的粗粒度時間周期產生相應的數字簽名,并將 所述的粗粒度時間周期和所相應的數字簽名發送至所述的日志監控服務器; (2) 所述的可信計算模塊根據一時間間隔確定細粒度時間,并將所述的細粒度時間作 為公鑰; (3) 所述的日志監控服務器根據所述的公鑰更新所述的數字簽名相應的細粒度時間敏 感密鑰; (4) 所述的日志監控服務器接收云環境的日志塊的哈希鏈和哈希消息認證碼; (5) 所述的日志監控服務器根據所述的細粒度時間敏感密鑰對各個日志塊生成相應的 時間敏感數字簽名,并通過驗證該時間敏感數字簽名來生成日志數據完整性證明。
2. 根據權利要求1所述的在云環境日志取證中實現數據完整性驗證的方法,其特征在 于,所述的步驟⑷和(5)之間,還包括以下步驟: (4. 1)所述的日志監控服務器根據說所述的哈希鏈驗證所述的哈希消息認證碼。
3. 根據權利要求1所述的在云環境日志取證中實現數據完整性驗證的方法,其特征在 于,所述的可信計算模塊包括滴答計數器單元,所述的可信計算模塊根據一時間間隔確定 細粒度時間,具體為: 可信計算模塊根據滴答計數器單元和粗粒度時間周期確定細粒度時間。
4. 根據權利要求1所述的在云環境日志取證中實現數據完整性驗證的方法,其特征在 于,所述的可信計算模塊包括單調計數器單元,所述的步驟(1)和(2)之間,還包括以下步 驟: (1. 1)所述的日志監控服務器驗證所述的數字簽名,并判斷驗證結果是否為通過驗證, 如果是,則繼續步驟(1. 2),否則提示驗證失敗; (1. 2)所述的日志監控服務器將所述的粗粒度時間周期更新至所述的單調計數器單元 中。
5. 根據權利要求1所述的在云環境日志取證中實現數據完整性驗證的方法,其特征在 于,所述的步驟(5)之后,還包括以下步驟: (6) 所述的可信計算模塊重新計算細粒度時間并繼續更新所述的數字簽名私鑰和所述 的公鑰。
【文檔編號】H04L29/08GK104392185SQ201410719425
【公開日】2015年3月4日 申請日期:2014年12月1日 優先權日:2014年12月1日
【發明者】張勇, 吳松洋, 熊雄, 何俊峰, 劉善軍, 孔華鋒 申請人:公安部第三研究所