專利名稱:系統(tǒng)日志的安全審計(jì)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,涉及計(jì)算機(jī)系統(tǒng)的安全審計(jì),尤其涉及一種系統(tǒng)日志的安全審計(jì)方法。
背景技術(shù):
系統(tǒng)日志提供了一種分析復(fù)雜系統(tǒng)過(guò)去和現(xiàn)在所處狀態(tài)的一種手段,幾乎每個(gè)大型的系統(tǒng)都會(huì)有日志機(jī)制。對(duì)于攻擊者來(lái)說(shuō),日志是主要的攻擊目標(biāo),因?yàn)槿罩局邪艘恍C(jī)密數(shù)據(jù),如電子政務(wù)信息網(wǎng)站的登錄和修改記錄,銀行的交易記錄,攻擊者的入侵證據(jù)等等。在大多數(shù)情況下,日志經(jīng)常存儲(chǔ)在文本文件中,由操作系統(tǒng)的訪問(wèn)控制機(jī)制來(lái)保護(hù)日志記錄。但是由這種機(jī)制所保護(hù)的日志不能保證日志記錄的真實(shí)性和完整性,而且備份機(jī)制存在很多問(wèn)題,所以需要提供日志系統(tǒng)本身的靈活性,依靠日志系統(tǒng)的內(nèi)部機(jī)制來(lái)保護(hù)日志。目前已經(jīng)提出了一些安全審計(jì)日志機(jī)制來(lái)增強(qiáng)計(jì)算平臺(tái)的日志系統(tǒng)的安全性。
安全審計(jì)日志機(jī)制不僅能夠記錄用戶的行為,同時(shí)能夠檢測(cè)到篡改日志的行為。這種機(jī)制的特征有防篡改(Temper Resistance)保證除了日志的創(chuàng)建者之外,其它主體不能創(chuàng)建日志。一旦日志已經(jīng)創(chuàng)建,就不能更改。我們不能阻止已經(jīng)攻破系統(tǒng)的攻擊者將來(lái)在日志系統(tǒng)中添加自己的日志,也不能阻止攻擊者刪除日志。安全審計(jì)日志是一種對(duì)日志進(jìn)行有效的保護(hù)的技術(shù)手段,目的是保證攻擊者不能改變已經(jīng)存在的日志。如果試圖刪除這些日志,可以被日志系統(tǒng)檢測(cè)到。
可驗(yàn)證性(Verifiability)必須有辦法檢查日志中所有的條目都存在,并且沒(méi)有被修改過(guò)。日志可以是公開(kāi)的驗(yàn)證,任何人都可以驗(yàn)證,或者可以由一個(gè)可信的驗(yàn)證者來(lái)做驗(yàn)證。Hash鏈?zhǔn)侵С挚沈?yàn)證性的一個(gè)比較好的辦法。
數(shù)據(jù)訪問(wèn)控制和可搜索性審計(jì)日志中的很多數(shù)據(jù)是很敏感的,必須加密。但是為了使這些日志有用,又必須使得這些審計(jì)日志可以搜索。
目前已經(jīng)國(guó)際上已經(jīng)提出了一些安全審計(jì)日志的機(jī)制。如Mihir Bellare提出了安全審計(jì)日志的前向安全性問(wèn)題,提出了一種機(jī)制來(lái)實(shí)現(xiàn)一條日志鏈(M.Bellare,B.S.Yee,“Forward Integrity For Secure Audit Logs”1997 University of California,SanDiego.),能夠檢測(cè)到試圖改變或者刪除日志系統(tǒng)的動(dòng)機(jī),可以提供驗(yàn)證功能,減少了對(duì)持有驗(yàn)證密鑰的驗(yàn)證者的依賴。該安全審計(jì)日志機(jī)制具有防篡改和可驗(yàn)證的特性。
所有的這些安全審計(jì)日志機(jī)制都需要借助于一臺(tái)可信服務(wù)器才能完成所需要的日志的創(chuàng)建和訪問(wèn)功能。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種系統(tǒng)日志的安全審計(jì)方法,基于可信虛擬平臺(tái)創(chuàng)建和訪問(wèn)系統(tǒng)日志,消除對(duì)可信服務(wù)器的依賴,并保證日志數(shù)據(jù)的保密性和完整性。
本發(fā)明的系統(tǒng)日志的安全審計(jì)方法,其步驟包括創(chuàng)建系統(tǒng)日志1)運(yùn)行于可信虛擬平臺(tái)操作系統(tǒng)層用戶模式下的安全審計(jì)守護(hù)模塊請(qǐng)求運(yùn)行于可信硬件層安全內(nèi)核上的可信日志服務(wù)模塊產(chǎn)生秘密控制信息;2)可信日志服務(wù)模塊生成秘密控制信息,該秘密控制信息中包括用于加密系統(tǒng)日志的加密密鑰,用于保護(hù)系統(tǒng)日志完整性的認(rèn)證密鑰,并向安全審計(jì)守護(hù)模塊發(fā)送秘密控制信息,由安全審計(jì)守護(hù)模塊存儲(chǔ)該秘密控制信息;3)安全審計(jì)守護(hù)模塊生成日志明文信息,創(chuàng)建系統(tǒng)日志,系統(tǒng)日志包括訪問(wèn)控制信息,日志明文信息,和完整性保護(hù)信息,其中訪問(wèn)控制信息和日志明文信息由加密密鑰加密,完整性保護(hù)信息由認(rèn)證密鑰認(rèn)證;4)該條系統(tǒng)日志由安全審計(jì)守護(hù)模塊存儲(chǔ)在可信虛擬平臺(tái)的傳統(tǒng)操作系統(tǒng)中的文件系統(tǒng)下;5)按照1)-4)步驟繼續(xù)創(chuàng)建下條系統(tǒng)日志;訪問(wèn)系統(tǒng)日志6)驗(yàn)證者向可信日志服務(wù)模塊發(fā)送查看某條系統(tǒng)日志的請(qǐng)求消息;7)可信日志服務(wù)模塊向安全審計(jì)守護(hù)模塊請(qǐng)求傳送該條系統(tǒng)日志;8)安全審計(jì)守護(hù)模塊將該條系統(tǒng)日志發(fā)送給可信日志服務(wù)模塊;9)可信日志服務(wù)模塊根據(jù)該條系統(tǒng)日志的訪問(wèn)控制信息檢查驗(yàn)證者是否符合訪問(wèn)控制的要求,將系統(tǒng)日志、該條系統(tǒng)日志的加密密鑰和認(rèn)證密鑰發(fā)送給符合條件的驗(yàn)證者;10)驗(yàn)證者通過(guò)該條系統(tǒng)日志的完整性保護(hù)信息驗(yàn)證該條系統(tǒng)日志的完整性,解密得到日志明文信息。
本發(fā)明在創(chuàng)建第一條系統(tǒng)日志的秘密控制信息為初始秘密控制信息,后續(xù)創(chuàng)建的系統(tǒng)日志的秘密控制信息由創(chuàng)建上條系統(tǒng)日志的秘密控制信息通過(guò)函數(shù)運(yùn)算生成,如使用一個(gè)秘密函數(shù)或者是一個(gè)Hash函數(shù)作用于上條系統(tǒng)日志的秘密控制信息,產(chǎn)生當(dāng)前的秘密控制信息。
上述創(chuàng)建的系統(tǒng)日志存儲(chǔ)在本地后,安全審計(jì)守護(hù)模塊銷毀當(dāng)前的秘密控制信息。
本發(fā)明方法在安全審計(jì)守護(hù)模塊和可信日志服務(wù)模塊通信之前,通過(guò)離線的方式,由可惜平臺(tái)模塊生成用于雙方之間通信的加密密鑰和簽名密鑰,存放于可信平臺(tái)模塊內(nèi)部;所述加密密鑰和簽名密鑰都是非對(duì)稱密鑰,安全審計(jì)守護(hù)模塊和可信日志服務(wù)模塊知道彼此的簽名驗(yàn)證公鑰以及加密公鑰。
上述安全審計(jì)守護(hù)模塊收到可信日志服務(wù)模塊發(fā)送的秘密控制信息后,向可信日志服務(wù)模塊發(fā)送經(jīng)簽名的回復(fù)消息,可信日志服務(wù)模塊驗(yàn)證該回復(fù)消息,驗(yàn)證通過(guò)后向安全審計(jì)守護(hù)模塊發(fā)送確認(rèn)消息,安全審計(jì)守護(hù)模塊收到確認(rèn)消息后創(chuàng)建系統(tǒng)日志。
所述的秘密控制信息,包括一個(gè)時(shí)間戳t1,該時(shí)間戳證明了安全審計(jì)守護(hù)模塊請(qǐng)求的產(chǎn)生時(shí)間;安全審計(jì)守護(hù)模塊發(fā)送的回復(fù)信息中也包括一個(gè)時(shí)間戳t2,可信日志服務(wù)模塊在驗(yàn)證回復(fù)消息時(shí)比較t1和t2,確認(rèn)回復(fù)消息的發(fā)送是否超時(shí)??赏ㄟ^(guò)可信平臺(tái)模塊的單調(diào)計(jì)數(shù)器產(chǎn)生上述時(shí)間戳。
本發(fā)明的可惜日志服務(wù)模塊和安全審計(jì)守護(hù)模塊的交互過(guò)程由虛擬平臺(tái)的內(nèi)核通信機(jī)制來(lái)承載,安全審計(jì)守護(hù)模塊向可信日志服務(wù)模塊發(fā)送的請(qǐng)求消息中包含消息新鮮性標(biāo)識(shí)。
所述加密密鑰和認(rèn)證密鑰是對(duì)稱密鑰,密鑰生成過(guò)程為在第一次生成加密密鑰和認(rèn)證密鑰時(shí),可信日志服務(wù)模塊通過(guò)可信平臺(tái)模塊生成一個(gè)隨機(jī)數(shù),然后通過(guò)Hash函數(shù)轉(zhuǎn)換成一個(gè)對(duì)稱密鑰,在后續(xù)生成用于下一條目的加密密鑰和日志認(rèn)證密鑰時(shí),將Hash函數(shù)直接作用于當(dāng)前系統(tǒng)日志的加密密鑰和認(rèn)證密鑰,生成下一條條目系統(tǒng)日志的加密密鑰和認(rèn)證密鑰。
所述的系統(tǒng)日志由可信平臺(tái)模塊進(jìn)行封裝存儲(chǔ)。
上述驗(yàn)證者可對(duì)可信日志服務(wù)模塊的完整性進(jìn)行驗(yàn)證。
驗(yàn)證者通過(guò)如下步驟驗(yàn)證可信日志服務(wù)模塊的完整性1)驗(yàn)證者請(qǐng)求驗(yàn)證可信日志服務(wù)模塊的完整性信息;2)安全審計(jì)守護(hù)模塊所在的可信虛擬平臺(tái)使用可信平臺(tái)模塊的AIK密鑰對(duì)當(dāng)前的PCR值簽名,將經(jīng)過(guò)簽名的PCR值和完整性度量日志發(fā)送給驗(yàn)證者;3)驗(yàn)證者通過(guò)PCR值驗(yàn)證完整性度量日志的完整性,保證該系統(tǒng)日志沒(méi)有被篡改;同時(shí)驗(yàn)證者驗(yàn)證完整性度量日志中的條目的正確性和合法性。
本發(fā)明還在可信虛擬平臺(tái)上建立一條信任鏈,在信任鏈建立的過(guò)程中,生成完整性度量日志,并且更新可信平臺(tái)模塊中的PCR值。
上述信任鏈的建立過(guò)程可采用下述方式1)首先計(jì)算機(jī)啟動(dòng),可信平臺(tái)模塊度量監(jiān)控器的完整性,對(duì)監(jiān)控器代碼做Hash運(yùn)算,更新PCR值和完整性度量日志,度量完成后,啟動(dòng)監(jiān)控器;2)監(jiān)控器度量安全內(nèi)核,度量完成之后啟動(dòng)安全內(nèi)核3)安全內(nèi)核度量可信日志服務(wù)模塊的完整性,度量完成之后,啟動(dòng)可信日志服務(wù)模塊。
所述的可信日志服務(wù)模塊和驗(yàn)證者之間的交互過(guò)程由SSL協(xié)議承載。
上述驗(yàn)證者發(fā)送給可信日志服務(wù)模塊的請(qǐng)求消息驗(yàn)證者的身份信息。
本發(fā)明是建立在可信虛擬平臺(tái)基礎(chǔ)上的,如圖1所示,可信虛擬平臺(tái)在層次結(jié)構(gòu)上主要分為三層,分別為可信硬件層/虛擬監(jiān)控器層/操作系統(tǒng)層。
可信硬件層是構(gòu)建可信虛擬平臺(tái)的基礎(chǔ),由TPM/LT組成。TPM(可信平臺(tái)模塊)是遵循可信計(jì)算組織制定的規(guī)范的硬件模塊。該模塊具有加密解密等密碼學(xué)功能,而LT技術(shù)是Intel提出的一種支持虛擬技術(shù)的硬件結(jié)構(gòu)。
虛擬監(jiān)控器層,主要是在傳統(tǒng)的操作系統(tǒng)和硬件層之間引入的一個(gè)中間層次,該層直接與硬件層交互,同時(shí)在該層次之上可以架設(shè)多個(gè)操作系統(tǒng),不同的操作系統(tǒng)支持不同等級(jí)的安全應(yīng)用,如XEN虛擬監(jiān)控器。
操作系統(tǒng)層與傳統(tǒng)的操作系統(tǒng)的結(jié)構(gòu)是一樣的。
在本地可信虛擬平臺(tái)上引入如下兩個(gè)模塊可信日志服務(wù)模塊(trusted log service,簡(jiǎn)稱TLS)該模塊運(yùn)行于安全內(nèi)核之上,遠(yuǎn)程驗(yàn)證方可以通過(guò)遠(yuǎn)程證明驗(yàn)證可信日志服務(wù)的行為正確性。
安全審計(jì)守護(hù)模塊(secure logging daemon,簡(jiǎn)稱SLD)該模塊運(yùn)行于用戶模式之下,對(duì)運(yùn)行于傳統(tǒng)操作系統(tǒng)中的安全事件進(jìn)行記錄,并和可信日志服務(wù)通信,生成日志記錄。
位于普通模式的安全審計(jì)守護(hù)模塊生成系統(tǒng)日志時(shí)需要與可信日志服務(wù)模塊通信,該通信過(guò)程保證了生成的系統(tǒng)日志能夠防止攻擊者的篡改。
在TLS和SLD的交互過(guò)程中,通信消息通過(guò)TPM產(chǎn)生的密鑰進(jìn)行保護(hù),同時(shí)在系統(tǒng)日志的創(chuàng)建過(guò)程中,SLD需要向TLS請(qǐng)求得到日志的加密密鑰和認(rèn)證密鑰。
驗(yàn)證者需要查看系統(tǒng)日志時(shí),需要與可信日志服務(wù)模塊通信,從可信日志服務(wù)模塊處得到所需要的日志信息。,不僅TLS需要驗(yàn)證驗(yàn)證者的完整性,而且驗(yàn)證者也需要驗(yàn)證TLS的完整性。驗(yàn)證方可以確信所接收到的日志是沒(méi)有經(jīng)過(guò)篡改的,同時(shí)被驗(yàn)證方即TLS也是真實(shí)可信的。驗(yàn)證方得到相關(guān)的日志條目的明文信息,但是不能得到其他日志文件中的日志條目的明文信息。
本發(fā)明在基于可信計(jì)算的虛擬平臺(tái)上實(shí)現(xiàn)日志的創(chuàng)建和訪問(wèn)功能,由于用戶對(duì)TPM不可能在物理上,軟件上篡改,借助于TPM這個(gè)硬件信任根,系統(tǒng)日志的創(chuàng)建過(guò)程都是在本地以可信的方式創(chuàng)建的,可以將以前對(duì)服務(wù)器的信任轉(zhuǎn)移到可信平臺(tái)上來(lái),利用可信平臺(tái)提供的遠(yuǎn)程證明和封裝存儲(chǔ)性質(zhì),提高可信平臺(tái)日志存儲(chǔ)的可信度,不需要依賴于可信的第三方服務(wù)器,本機(jī)平臺(tái)便可完成高可信的安全審計(jì)。
基于可信平臺(tái)的系統(tǒng)日志創(chuàng)建和訪問(wèn)方法主要的特點(diǎn)在于1、將服務(wù)器的功能轉(zhuǎn)移到客戶端,消除對(duì)服務(wù)器的依賴,實(shí)現(xiàn)了分布式環(huán)境中無(wú)可信第三方的日志創(chuàng)建和訪問(wèn)方法2、對(duì)系統(tǒng)日志的創(chuàng)建和訪問(wèn)的協(xié)議流程進(jìn)行相應(yīng)的改進(jìn),保證了日志數(shù)據(jù)的保密性和完整性。
圖1為基于可信虛擬平臺(tái)的系統(tǒng)結(jié)構(gòu)示意2為可信日志服務(wù)模塊和安全審計(jì)守護(hù)模塊的交互流程3為日志驗(yàn)證的過(guò)程具體實(shí)施方式
如圖1所示為最簡(jiǎn)化模式下的一種安全審計(jì)日志的結(jié)構(gòu)示意圖。在圖中,安全審計(jì)守護(hù)模塊(SLD)和可信日志服務(wù)模塊位于虛擬平臺(tái)上,該虛擬平臺(tái)可以是微軟的下一代操作系統(tǒng)Vista或者基于微內(nèi)核的系統(tǒng)平臺(tái),如Nizza等。安全審計(jì)守護(hù)模塊運(yùn)行于傳統(tǒng)的操作系統(tǒng)之上,如windows系統(tǒng),該安全審計(jì)守護(hù)模塊負(fù)責(zé)生成日志信息,與可信日志服務(wù)模塊交互,保證生成的日志信息的防篡改。安全審計(jì)守護(hù)模塊保存有TPM產(chǎn)生的一對(duì)公私鑰對(duì)??尚湃罩痉?wù)模塊運(yùn)行于可信模式下,可信日志服務(wù)模塊保存有TPM產(chǎn)生的一對(duì)公私鑰對(duì),用于消息的簽名和認(rèn)證,可以通過(guò)可信計(jì)算的遠(yuǎn)程證明技術(shù)來(lái)驗(yàn)證該日志服務(wù)模塊的真實(shí)性和可信性。某外部驗(yàn)證者需要查看生成的日志記錄時(shí),需要與可信日志服務(wù)模塊交互來(lái)查看日志。安全審計(jì)守護(hù)模塊與可信日志服務(wù)模塊的交互(TLP協(xié)議)通過(guò)虛擬平臺(tái)提供的內(nèi)核通信機(jī)制來(lái)交換消息。
如圖2所示,在具體的實(shí)現(xiàn)方案中,由于監(jiān)控器是處于操作系統(tǒng)和硬件層之間的,虛擬平臺(tái)上進(jìn)程之間的通信過(guò)程由監(jiān)控器提供的內(nèi)核通信機(jī)制來(lái)實(shí)現(xiàn),因此TLS和SLD的交互在監(jiān)控器的嚴(yán)格控制之下。
如圖2所示,在創(chuàng)建日志之前SLD有一對(duì)由TPM產(chǎn)生的AIK公私鑰對(duì),用于對(duì)消息簽名,公鑰記為AIKPK_sld,私鑰記為AIKSK_sld,同時(shí)有一對(duì)用于加密的公私鑰對(duì),該公私鑰對(duì)由TPM產(chǎn)生,公鑰記為EncPK_sld,私鑰記為EncSK_sld。
TLS有一對(duì)AIK公私鑰對(duì),用于對(duì)消息簽名,公鑰記為AIKPK_tls,私鑰記為AIKSK_tls,同時(shí)有一對(duì)用于加密的公私鑰對(duì),該公私鑰對(duì)由TPM產(chǎn)生,公鑰記為EncPK_tls,私鑰記為EncSK_tls。
本實(shí)施方式所用標(biāo)記的含義為IDx實(shí)體X的唯一標(biāo)志符;PKE(PK_x,K)使用實(shí)體X的公鑰PK_x對(duì)K進(jìn)行加密;SIGN(SK_x,Z)使用實(shí)體X的私鑰對(duì)Z進(jìn)行數(shù)字簽名;E(K,X)使用X對(duì)K進(jìn)行對(duì)稱加密;HMAC(K0,X)是帶密鑰的消息認(rèn)證碼,K0是認(rèn)證密鑰,X是消息;hash(X)對(duì)消息串X做哈希運(yùn)算;X,Y表示X與Y的結(jié)合串;d0+超時(shí)時(shí)間,經(jīng)過(guò)這段時(shí)間后,將斷開(kāi)連接;pnounce,用來(lái)標(biāo)識(shí)執(zhí)行步驟;RK隨機(jī)密鑰;日志創(chuàng)建的過(guò)程包括了如下幾個(gè)步驟第一步安全審計(jì)守護(hù)模塊進(jìn)程(簡(jiǎn)稱SLD)向可信日志服務(wù)(簡(jiǎn)稱TLS)發(fā)出請(qǐng)求,請(qǐng)求TLS產(chǎn)生初始的秘密控制信息,包括初始時(shí)間戳d0,時(shí)間戳的產(chǎn)生可以通過(guò)TPM提供的單調(diào)計(jì)數(shù)器來(lái)實(shí)現(xiàn),初始認(rèn)證密鑰和加密密鑰A0,并且產(chǎn)生對(duì)稱密鑰Ktls,加密時(shí)間戳E(Ktls,d0),存儲(chǔ)A0,Ktls,E(Ktls,d0),并給SLD返回如下參數(shù)A0,E(Ktls,d0)。
第二步SLD收到TLS的秘密控制信息后,存儲(chǔ)秘密控制信息,產(chǎn)生如下參數(shù)隨機(jī)密鑰RK0;超時(shí)時(shí)間d0+;隨機(jī)生成數(shù)p;該日志的標(biāo)識(shí)符IDSLD;初始的認(rèn)證密鑰和加密密鑰A0;消息認(rèn)證碼X0=p,IDSLD,d0+;產(chǎn)生消息串M0=p,IDsld,PKE(EncPK_tls,RK0),E(RK0,X0,SIGN(AIKSK_sld,X0)),該消息串包含了TLS的身份信息,SLD的身份信息,時(shí)間戳信息,消息新鮮性標(biāo)識(shí),且經(jīng)過(guò)簽名;存儲(chǔ)hash(X0),留做以后驗(yàn)證時(shí)使用。
第三步將M0發(fā)送給TLS,SLD將M0發(fā)送給TLS的目的是證明SLD已經(jīng)接收到TLS發(fā)送的消息SLD向TLS發(fā)送確認(rèn)回復(fù)消息。
第四步通過(guò)TLS的私鑰解密得到RK0,得到X0,驗(yàn)證X0的簽名,產(chǎn)生如下參數(shù)隨機(jī)密鑰RK1;消息認(rèn)證碼X1=p,IDlog,hash(X0),確認(rèn)成功消息串M1=p,IDtls,PKE(EncPK_sld,RK1),E(RK1.X1,SIGN(AIKSK_tls,X1))。將M1發(fā)送給SLD第五步SLD得到RK1,得到X1,驗(yàn)證X1的簽名,比較hash(X0)。
通過(guò)驗(yàn)證這些信息,證明TLS已經(jīng)確信SLD得到了初始的密鑰,接下來(lái)開(kāi)始產(chǎn)生具體的日志信息。產(chǎn)生的日志信息包括如下的內(nèi)容訪問(wèn)控制信息W0,訪問(wèn)控制信息是為了控制對(duì)日志條目的訪問(wèn)而需要訪問(wèn)者提供的信息,包括可以訪問(wèn)該日志條目的主體身份信息,可以訪問(wèn)該日志條目的軟件實(shí)體的完整性信息等;要加密的日志明文信息數(shù)據(jù)D0=E(Ktls,d0),d0+,IDlog,M0;日志的加密密鑰K0=Hash(W0,A0);初始認(rèn)證值Y-1=”0000000000000000”,初始認(rèn)證值可以是其他的信息;初始哈希值Y0=hash(Y-1,E(K0,D0),W0);通過(guò)使用HMAC算法,利用該日志條目的認(rèn)證密鑰產(chǎn)生完整性保護(hù)信息HMAC加密認(rèn)證碼Z0=HMAC(A0,Y0),形成完整的日志條目L0=W0,E(K0,D0),Y0,Z0,銷毀秘密控制信息A0,K0。
第六步SLD請(qǐng)求產(chǎn)生新的認(rèn)證密鑰A1和時(shí)間戳d1。
第七步TLS產(chǎn)生A1,d1,返回A1,E(Ktls,d1)給SLD。
第八步SLD產(chǎn)生如下信息隨機(jī)密鑰RK2,超時(shí)時(shí)間d1+,日志標(biāo)識(shí)符IDlog;消息認(rèn)證碼X1=p,E(Ktls,d1);消息串M2=p,IDsld,PKE(EncPK_tls,RK2),E(RK2,X1,SIGN(AIKSK_sld,X1)),存儲(chǔ)hash(X1)第九步將M2返回給TLS,TLS解密得到RK2,得到X1,驗(yàn)證X1的簽名,產(chǎn)生如下的參數(shù)信息隨機(jī)密鑰RK3,消息認(rèn)證碼X2=p,IDlog,hash(X1);消息串M3=p,IDtls,PKE(EncPK_sld,RK3),E(RK3,X2,SIGN(AIKSK_tls,X2))第十步TLS將M3發(fā)送給SLD,SLD得到RK3,得到X2,驗(yàn)證X2的簽名,與hash(X1)比較,比較通過(guò)后,產(chǎn)生如下的日志的記錄信息訪問(wèn)控制信息W1=“TCApplication”,;要加密的日志明文信息數(shù)據(jù)D1=E(Ktls,d1),d1+,IDlog,M2,Data,;日志的加密密鑰K1=hash(“Encryptionkey”,W1,A1);Y1=hash(Y0,E(K1,D1),Y1,Z1);HMAC加密認(rèn)證碼Z1=HMAC(A1,Y1)。產(chǎn)生的完整的日志記錄信息為L(zhǎng)1=W1,E(K1,D1),Y1,Z1。銷毀A1,K1。
第十一步按照第七步到第十一步的步驟重復(fù)產(chǎn)生日志條目。
可以看出,初始秘密控制信息是剛開(kāi)始產(chǎn)生的,后面的秘密控制信息是在初始的秘密控制信息基礎(chǔ)上產(chǎn)生的,具體做法是使用一個(gè)秘密函數(shù),如一個(gè)Hash函數(shù)作用于前一輪的秘密控制信息,產(chǎn)生下一輪的秘密控制信息,因此可以通過(guò)初始的秘密控制信息,產(chǎn)生以后所有的秘密控制信息,只需要保存初始的秘密控制信息即可。
在SLD和TLS通信之前,可以通過(guò)離線的方式,由TPM生成用于SLD和TLS雙方之間通信的加密密鑰和簽名密鑰,存放于TPM的內(nèi)部。加密密鑰和簽名密鑰都是非對(duì)稱密鑰,SLD和TLS事先知道彼此的簽名驗(yàn)證公鑰以及加密公鑰。
可以看出,TLS和SLD的交互過(guò)程由虛擬平臺(tái)的內(nèi)核通信機(jī)制來(lái)承載,在SLD向TLS發(fā)送的請(qǐng)求消息中包含消息新鮮性標(biāo)識(shí),如現(xiàn)時(shí)標(biāo)識(shí)nonce,通過(guò)這種機(jī)制來(lái)防止重放攻擊。
生成的系統(tǒng)日志的加密密鑰和用于保護(hù)系統(tǒng)日志完整性的認(rèn)證密鑰是對(duì)稱密鑰,密鑰生成過(guò)程包括如下在第一次創(chuàng)建系統(tǒng)日志的加密密鑰和認(rèn)證密鑰時(shí),TLS通過(guò)TPM生成一個(gè)隨機(jī)數(shù),然后通過(guò)一個(gè)抗碰撞的Hash函數(shù)轉(zhuǎn)換成一個(gè)160比特的對(duì)稱密鑰,在接下來(lái)生成日志加密密鑰和日志認(rèn)證密鑰時(shí),將Hash函數(shù)直接作用于日志加密密鑰和日志認(rèn)證密鑰,生成下一條系統(tǒng)日志的加密密鑰和認(rèn)證密鑰。
上述產(chǎn)生的日志數(shù)據(jù)可以利用TPM提供的封裝存儲(chǔ)(sealed storage)功能進(jìn)行保護(hù)。
上述的日志條目的生成方式的特點(diǎn)是每次都需要可信TLS的參與,保證了日志生成過(guò)程的保密性和認(rèn)證性,同時(shí)在處理速度上,由于是TLS和SLD處于同一臺(tái)物理計(jì)算機(jī)之上,可以保證效率是比較高的。這就消除了很多日志機(jī)制中對(duì)于可信第三方的依賴。
日志驗(yàn)證的過(guò)程如下驗(yàn)證者與可信日志服務(wù)通信的過(guò)程(ATL協(xié)議)如附圖3所示。在ATL協(xié)議中,遠(yuǎn)程證明協(xié)議(Remote Attestation,簡(jiǎn)稱RA協(xié)議)是其中的一個(gè)子協(xié)議,其中RA協(xié)議是為了驗(yàn)證TLS的完整性和運(yùn)行環(huán)境的完整性的。
ATL協(xié)議是的具體步驟和過(guò)程如下1.驗(yàn)證方首先需要驗(yàn)證TLS運(yùn)行環(huán)境的完整性,向可信虛擬機(jī)監(jiān)控器發(fā)起驗(yàn)證其完整性的請(qǐng)求??尚盘摂M機(jī)監(jiān)控器收集完整性信息,由TLS所在的平臺(tái)使用TPM的AIK密鑰對(duì)當(dāng)前的PCR值簽名,將經(jīng)過(guò)簽名的PCR值,完整性度量日志發(fā)送給驗(yàn)證者;2.驗(yàn)證方驗(yàn)證TLS運(yùn)行環(huán)境的完整性,通過(guò)PCR值驗(yàn)證完整性度量日志的完整性,保證該日志文件沒(méi)有被篡改;驗(yàn)證完整性度量日志中的條目的正確性和合法性。正確性和合法性指的是TLS所運(yùn)行的平臺(tái)的環(huán)境沒(méi)有惡意的軟件。如果驗(yàn)證通過(guò),則繼續(xù)該協(xié)議,如果驗(yàn)證沒(méi)有通過(guò),則停止。
3.驗(yàn)證方向TLS發(fā)送消息,消息內(nèi)容包括驗(yàn)證者的身份信息,請(qǐng)求的日志條目,消息新鮮性標(biāo)識(shí)等,請(qǐng)求日志條目Lj的信息。
4.TLS向SLD請(qǐng)求日志條目Lj的信息;5.SLD將日志條目Lj的信息發(fā)送給TLS;6.TLS查看日志條目Lj的訪問(wèn)控制信息,檢查驗(yàn)證者是否符合訪問(wèn)控制的要求,如果符合,根據(jù)其初始密鑰A0,生成日志條目Lj的加密密鑰和認(rèn)證密鑰Ej,并將Ej和Lj發(fā)送給驗(yàn)證方。
7.只有當(dāng)驗(yàn)證方擁有訪問(wèn)控制秘密信息Wj時(shí)才能解密日志,驗(yàn)證者驗(yàn)證日志的完整性,解密得到日志條目。
為了支持驗(yàn)證者能夠驗(yàn)證TLS服務(wù)的完整性,可以在可信虛擬平臺(tái)上建立一條信任鏈,在信任鏈建立的過(guò)程中,生成完整性度量日志,并且更新TPM中的PCR值。其信任鏈的建立過(guò)程如下i.首先計(jì)算機(jī)啟動(dòng),TPM度量監(jiān)控器的完整性,對(duì)監(jiān)控器代碼做Hash運(yùn)算,更新PCR值和完整性度量日志,度量完成后,啟動(dòng)監(jiān)控器;ii.由監(jiān)控器度量安全內(nèi)核,度量完成之后啟動(dòng)安全內(nèi)核iii.由安全內(nèi)核度量TLS,度量完成之后,啟動(dòng)TLS服務(wù)。
所述的TLS和驗(yàn)證者之間的交互過(guò)程由SSL協(xié)議承載。
本發(fā)明的安全審計(jì)日志機(jī)制可以建立在微軟提出的NGSCB平臺(tái)以及基于微內(nèi)核或者虛擬機(jī)的安全主機(jī)平臺(tái)上。
權(quán)利要求
1.一種系統(tǒng)日志的安全審計(jì)方法,其步驟包括創(chuàng)建系統(tǒng)日志1)運(yùn)行于可信虛擬平臺(tái)操作系統(tǒng)層用戶模式下的安全審計(jì)守護(hù)模塊請(qǐng)求運(yùn)行于可信硬件層安全內(nèi)核上的可信日志服務(wù)模塊產(chǎn)生秘密控制信息;2)可信日志服務(wù)模塊生成秘密控制信息,該秘密控制信息中包括用于加密系統(tǒng)日志的加密密鑰,用于保護(hù)系統(tǒng)日志完整性的認(rèn)證密鑰,并向安全審計(jì)守護(hù)模塊發(fā)送秘密控制信息,由安全審計(jì)守護(hù)模塊存儲(chǔ)該秘密控制信息;3)安全審計(jì)守護(hù)模塊生成日志明文信息,創(chuàng)建系統(tǒng)日志,系統(tǒng)日志包括訪問(wèn)控制信息,日志明文信息,和完整性保護(hù)信息,其中訪問(wèn)控制信息和日志明文信息由加密密鑰加密,完整性保護(hù)信息由認(rèn)證密鑰認(rèn)證;4)該條系統(tǒng)日志存儲(chǔ)在本地安全守護(hù)進(jìn)程所在的文件系統(tǒng)中;5)按照1)-4)步驟繼續(xù)創(chuàng)建下條系統(tǒng)日志;訪問(wèn)系統(tǒng)日志6)驗(yàn)證者向可信日志服務(wù)模塊發(fā)送查看某條系統(tǒng)日志的請(qǐng)求消息;7)可信日志服務(wù)模塊向安全審計(jì)守護(hù)模塊請(qǐng)求傳送該條系統(tǒng)日志;8)安全審計(jì)守護(hù)模塊將該條系統(tǒng)日志發(fā)送給可信日志服務(wù)模塊;9)可信日志服務(wù)模塊根據(jù)該條系統(tǒng)日志的訪問(wèn)控制信息檢查驗(yàn)證者是否符合訪問(wèn)控制的要求,將系統(tǒng)日志、該條系統(tǒng)日志的加密密鑰和認(rèn)證密鑰發(fā)送給符合條件的驗(yàn)證者;10)驗(yàn)證者通過(guò)該條系統(tǒng)日志的完整性保護(hù)信息驗(yàn)證該條系統(tǒng)日志的完整性,解密得到日志明文信息。
2.如權(quán)利要求1所述的系統(tǒng)日志的安全審計(jì)方法,其特征在于創(chuàng)建第一條系統(tǒng)日志的秘密控制信息為初始秘密控制信息,后續(xù)創(chuàng)建的系統(tǒng)日志的秘密控制信息由創(chuàng)建上條系統(tǒng)日志的秘密控制信息通過(guò)函數(shù)運(yùn)算生成。
3.如權(quán)利要求1所述的系統(tǒng)日志的安全審計(jì)方法,其特征在于在安全審計(jì)守護(hù)模塊和可信日志服務(wù)模塊通信之前,通過(guò)離線的方式,由可信平臺(tái)模塊生成用于雙方之間通信的加密密鑰和簽名密鑰,存放于可信平臺(tái)模塊內(nèi)部;所述加密密鑰和簽名密鑰都是非對(duì)稱密鑰,安全審計(jì)守護(hù)模塊和可信日志服務(wù)模塊知道彼此的簽名驗(yàn)證公鑰以及加密公鑰。
4.如權(quán)利要求1所述的系統(tǒng)日志的安全審計(jì)方法,其特征在于安全審計(jì)守護(hù)模塊收到可信日志服務(wù)模塊發(fā)送的秘密控制信息后,向可信日志服務(wù)模塊發(fā)送經(jīng)簽名的回復(fù)消息,可信日志服務(wù)模塊驗(yàn)證該回復(fù)消息,驗(yàn)證通過(guò)后向安全審計(jì)守護(hù)模塊發(fā)送確認(rèn)消息,安全審計(jì)守護(hù)模塊收到確認(rèn)消息后創(chuàng)建系統(tǒng)日志。
5.如權(quán)利要求4所述的系統(tǒng)日志的安全審計(jì)方法,其特征在于所述的秘密控制信息,包括一個(gè)時(shí)間戳t1,該時(shí)間戳證明了安全審計(jì)守護(hù)模塊請(qǐng)求的產(chǎn)生時(shí)間;安全審計(jì)守護(hù)模塊發(fā)送的回復(fù)信息中也包括一個(gè)時(shí)間戳t2,可信日志服務(wù)模塊在驗(yàn)證回復(fù)消息時(shí)比較t1和t2,確認(rèn)回復(fù)消息的發(fā)送是否超時(shí)。
6.如權(quán)利要求5所述的系統(tǒng)日志的安全審計(jì)方法,其特征在于通過(guò)可信平臺(tái)模塊的單調(diào)計(jì)數(shù)器產(chǎn)生上述時(shí)間戳。
7.如權(quán)利要求1所述的系統(tǒng)日志的安全審計(jì)方法,其特征在于可信日志服務(wù)模塊和安全審計(jì)守護(hù)模塊的交互過(guò)程由虛擬平臺(tái)的內(nèi)核通信機(jī)制來(lái)承載,安全審計(jì)守護(hù)模塊向可信日志服務(wù)模塊發(fā)送的請(qǐng)求消息中包含消息新鮮性標(biāo)識(shí)。
8.如權(quán)利要求1所述的系統(tǒng)日志的安全審計(jì)方法,其特征在于所述加密密鑰和認(rèn)證密鑰是對(duì)稱密鑰,密鑰生成過(guò)程為在第一次生成加密密鑰和認(rèn)證密鑰時(shí),可信日志服務(wù)模塊通過(guò)可信平臺(tái)模塊生成一個(gè)隨機(jī)數(shù),然后通過(guò)Hash函數(shù)轉(zhuǎn)換成一個(gè)對(duì)稱密鑰,在后續(xù)生成用于下一條目的加密密鑰和日志認(rèn)證密鑰時(shí),將Hash函數(shù)直接作用于當(dāng)前系統(tǒng)日志的加密密鑰和認(rèn)證密鑰,生成下一條條目系統(tǒng)日志的加密密鑰和認(rèn)證密鑰。
9.如權(quán)利要求1所述的系統(tǒng)日志的安全審計(jì)方法,其特征在于驗(yàn)證者對(duì)可信日志服務(wù)模塊的完整性進(jìn)行驗(yàn)證,驗(yàn)證者通過(guò)如下步驟驗(yàn)證可信日志服務(wù)模塊的完整性1)驗(yàn)證者請(qǐng)求驗(yàn)證可信日志服務(wù)模塊的完整性信息;2)安全審計(jì)守護(hù)模塊所在的可信虛擬平臺(tái)使用可信平臺(tái)模塊的AIK密鑰對(duì)當(dāng)前的PCR值簽名,將經(jīng)過(guò)簽名的PCR值和完整性度量日志發(fā)送給驗(yàn)證者;3)驗(yàn)證者通過(guò)PCR值驗(yàn)證完整性度量日志的完整性,保證該系統(tǒng)日志沒(méi)有被篡改;同時(shí)驗(yàn)證者驗(yàn)證完整性度量日志中的條目的正確性和合法性。
10.如權(quán)利要求1所述的系統(tǒng)日志的安全審計(jì)方法,其特征在于驗(yàn)證者發(fā)送給可信日志服務(wù)模塊的請(qǐng)求消息中包含驗(yàn)證者的身份信息。
全文摘要
本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,涉及一種系統(tǒng)日志的安全審計(jì)方法,在基于可信計(jì)算的虛擬平臺(tái)上創(chuàng)建系統(tǒng)日志和訪問(wèn)系統(tǒng)日志。本發(fā)明借助于可信平臺(tái)模塊這個(gè)硬件信任根,系統(tǒng)日志的創(chuàng)建過(guò)程都是在本地以可信的方式創(chuàng)建的,可以將以前對(duì)服務(wù)器的信任轉(zhuǎn)移到可信平臺(tái)上來(lái),利用可信平臺(tái)提供的遠(yuǎn)程證明和封裝存儲(chǔ)性質(zhì),提高可信平臺(tái)日志存儲(chǔ)的可信度,不需要依賴于可信的第三方服務(wù)器,本機(jī)平臺(tái)便可完成高可信的安全審計(jì)。可廣泛用于計(jì)算機(jī)系統(tǒng)的安全審計(jì)。
文檔編號(hào)H04L12/24GK101039186SQ200710098998
公開(kāi)日2007年9月19日 申請(qǐng)日期2007年5月8日 優(yōu)先權(quán)日2007年5月8日
發(fā)明者馮登國(guó), 陳小峰, 張立武 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所