本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,具體涉及計(jì)算機(jī)運(yùn)行安全技術(shù)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,計(jì)算機(jī)已經(jīng)走入了各行各業(yè),并且扮演著越來越重要的角色,隨之而來的計(jì)算機(jī)安全與保護(hù)問題也得到了廣泛的關(guān)注。計(jì)算機(jī)安全包含硬件安全與軟件安全,硬件安全指計(jì)算機(jī)的硬件環(huán)境不被破壞,軟件安全包含指計(jì)算機(jī)的軟件環(huán)境不被木馬、病毒以及人為惡意篡改。
對(duì)于計(jì)算機(jī)的硬件安全,主要分為兩種:
一、芯片問題,將有安全隱患的芯片植入到計(jì)算機(jī)核心部分,從而破壞計(jì)算機(jī)的核心內(nèi)容,達(dá)到盜取數(shù)據(jù)或者破壞計(jì)算機(jī)系統(tǒng)的目的。
二、破壞硬件,通過損壞計(jì)算機(jī)的硬件和存儲(chǔ)器,導(dǎo)致數(shù)據(jù)或者存儲(chǔ)不能被使用。
目前針對(duì)計(jì)算機(jī)硬件安全的這兩種情況,主要應(yīng)對(duì)策略就是加固技術(shù),但是加固技術(shù)仍然存在一些局限性,所以就不能更好的保護(hù)計(jì)算機(jī)硬件。
對(duì)于計(jì)算機(jī)的軟件安全主要是木馬或者病毒。這些木馬或者病毒程序表面上是合法程序,其實(shí)是掩蓋表面事實(shí),從而用不正規(guī)手段竊取或者篡改用戶數(shù)據(jù)。
目前處理計(jì)算機(jī)安全威脅的常見措施有:安裝殺毒軟件、安裝木馬清查工具;控制網(wǎng)絡(luò)訪問;數(shù)據(jù)備份;應(yīng)用密碼技術(shù);切斷傳播途徑等。但是針對(duì)木馬或者病毒程序,現(xiàn)有一般的殺毒軟件難以發(fā)現(xiàn)。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有計(jì)算機(jī)安全與保護(hù)技術(shù)所存在的問題,需要一種新的計(jì)算機(jī)安全機(jī)制,同時(shí)保證計(jì)算機(jī)芯片安全與軟件安全。
由此,本發(fā)明的所要解決的技術(shù)問題是提供一種可信應(yīng)用運(yùn)行安全控制方法,該控制方法可實(shí)現(xiàn)對(duì)計(jì)算機(jī)硬件的檢查和對(duì)可信任程序的控制。
為了解決上述技術(shù)問題,本發(fā)明提供的可信應(yīng)用運(yùn)行安全控制方法,所述安全控制方法基于TCM安全芯片和內(nèi)核驅(qū)動(dòng)程序控制可信應(yīng)用的執(zhí)行,可信應(yīng)用的校驗(yàn)數(shù)據(jù)存儲(chǔ)于TCM安全芯片內(nèi),通過內(nèi)核驅(qū)動(dòng)程序控制可信應(yīng)用執(zhí)行。
優(yōu)選的,所述安全控制方法通過TCM安全芯片檢查硬件平臺(tái)的完整性。
優(yōu)選的,所述安全控制方法在TCM安全芯片檢查通過后,再由內(nèi)核驅(qū)動(dòng)程序控制可信應(yīng)用執(zhí)行。
優(yōu)選的,所述安全控制方法中內(nèi)核驅(qū)動(dòng)程序控制可信應(yīng)用執(zhí)行時(shí),內(nèi)核驅(qū)動(dòng)程序從TCM安全芯片內(nèi)獲取相應(yīng)的可信應(yīng)用的校驗(yàn)數(shù)據(jù),并計(jì)算當(dāng)前可信應(yīng)用的校驗(yàn)數(shù)據(jù),且兩者進(jìn)行比對(duì),根據(jù)比對(duì)結(jié)構(gòu)控制可信應(yīng)用是否運(yùn)行。
優(yōu)選的,所述安全控制方法中內(nèi)核驅(qū)動(dòng)程序通過鉤子程序,實(shí)現(xiàn)在Windows啟動(dòng)的時(shí)候,向Windows注冊(cè)一個(gè)新進(jìn)程創(chuàng)建通知函數(shù)。
優(yōu)選的,所述內(nèi)核驅(qū)動(dòng)程序在系統(tǒng)啟動(dòng)時(shí)向操作系統(tǒng)內(nèi)核注冊(cè)鉤子程序,之后任何新進(jìn)程創(chuàng)建,操作系統(tǒng)都會(huì)調(diào)用該鉤子程序,鉤子程序首先會(huì)計(jì)算當(dāng)前需要?jiǎng)?chuàng)建的進(jìn)程的校驗(yàn)數(shù)據(jù),并將該數(shù)據(jù)與從TCM安全芯片讀取的所有可信應(yīng)用校驗(yàn)數(shù)據(jù)進(jìn)行比對(duì),如果比對(duì)正確,則當(dāng)前進(jìn)程可以創(chuàng)建,如果不正確,則不能創(chuàng)建。
優(yōu)選的,所述TCM安全芯片在沒有所有者時(shí),將通過密碼模塊EK私鑰解密得到所有者授權(quán)數(shù)據(jù)并進(jìn)行驗(yàn)證,保證符合國(guó)家密碼規(guī)范定義的算法(SMS4)和長(zhǎng)度要求(128),根據(jù)密鑰參數(shù)創(chuàng)建SMK,將SMK和授權(quán)數(shù)據(jù)保存在芯片中。
優(yōu)選的,所述TCM安全芯片在通電時(shí),將進(jìn)行硬件完整性檢查、提供安全可信的存儲(chǔ)空間。
本發(fā)明提供的新計(jì)算機(jī)安全控制機(jī)制,通過內(nèi)核驅(qū)動(dòng)程序和TCM安全芯片相結(jié)合的方式,實(shí)現(xiàn)對(duì)硬件的檢查和合法程序的控制,在保證計(jì)算機(jī)安全可用的同時(shí),具有具有移植簡(jiǎn)單、安裝方便的特點(diǎn)。
附圖說明
以下結(jié)合附圖和具體實(shí)施方式來進(jìn)一步說明本發(fā)明。
圖1為本發(fā)明實(shí)例中TCM安全芯片的功能模塊圖;
圖2為本發(fā)明實(shí)例中TCM安全芯片的體系結(jié)構(gòu)圖;
圖3為本發(fā)明實(shí)例中應(yīng)用程序安全檢查的流程圖。
具體實(shí)施方式
為了使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合具體圖示,進(jìn)一步闡述本發(fā)明。
本實(shí)例中通過TCM安全芯片和內(nèi)核驅(qū)動(dòng)程序相結(jié)合的方式構(gòu)成計(jì)算機(jī)安全控制機(jī)制,并由此控制可信應(yīng)用的執(zhí)行。
這里的TCM(Trusted Cryptpgraphy Module)安全芯片,為可信密碼模塊,是可信計(jì)算平臺(tái)的硬件模塊,為可信計(jì)算平臺(tái)提供密碼運(yùn)算功能,具有受保護(hù)的存儲(chǔ)空間。
參見圖1,本實(shí)例中的TCM加密芯片(即TCM安全芯片)具有以下核心功能:一、度量平臺(tái)硬件完整性;二、平臺(tái)身份唯一標(biāo)識(shí);三、提供硬件級(jí)密碼學(xué)計(jì)算與秘鑰保護(hù)。
該TCM加密芯片提供了受保護(hù)的非易失性存儲(chǔ)器以及硬件完整性檢查。據(jù)此,該TCM加密芯片在應(yīng)用時(shí),應(yīng)用程序首先連接TCM芯片,連接成功后,芯片將檢查計(jì)算機(jī)系統(tǒng)的平臺(tái)完整性,如果檢查通過,則應(yīng)用程序正常啟動(dòng),如果檢查失敗,則應(yīng)用程序無法繼續(xù)運(yùn)行。
再者,本TCM加密芯片的體系結(jié)構(gòu)如圖2所示,應(yīng)用程序?qū)?shù)據(jù)、存儲(chǔ)秘鑰的授權(quán)信息、PCR值發(fā)送給TCM執(zhí)行引擎,TCM執(zhí)行引擎將數(shù)據(jù)加密并且密封成數(shù)據(jù)塊,存儲(chǔ)于非易失性寄存器中。當(dāng)應(yīng)用程序讀取數(shù)據(jù)時(shí),需要傳遞授權(quán)信息,TCM執(zhí)行引擎首先檢查授權(quán)信息是否正確,如果正確,則解密數(shù)據(jù)并返回,如果不正確,則返回失敗。
另外,本TCM安全芯片在沒有所有者時(shí),將通過密碼模塊EK私鑰解密得到所有者授權(quán)數(shù)據(jù)并進(jìn)行驗(yàn)證,保證符合國(guó)家密碼規(guī)范定義的算法(SMS4)和長(zhǎng)度要求(128),根據(jù)密鑰參數(shù)創(chuàng)建SMK,將SMK和授權(quán)數(shù)據(jù)保存在芯片中。該TCM安全芯片在通電時(shí),將進(jìn)行硬件完整性檢查、提供安全可信的存儲(chǔ)空間。
本實(shí)例中通過TCM加密芯片提供硬件完整性檢查和可信加密存儲(chǔ),配合內(nèi)核驅(qū)動(dòng)程序,可以實(shí)現(xiàn)從軟件和硬件方面對(duì)計(jì)算機(jī)的安全運(yùn)行進(jìn)行控制。即通過TCM安全芯片進(jìn)行硬件完整性檢查和可信應(yīng)用校驗(yàn)數(shù)據(jù)存儲(chǔ),通過內(nèi)核驅(qū)動(dòng)程序控制所有應(yīng)用的執(zhí)行。
本實(shí)例中的內(nèi)核驅(qū)動(dòng)程序,通過鉤子程序?qū)崿F(xiàn)在Windows啟動(dòng)的時(shí)候,向Windows注冊(cè)一個(gè)新進(jìn)程創(chuàng)建通知函數(shù)。
這里的鉤子程序即回調(diào)函數(shù),內(nèi)核驅(qū)動(dòng)程序通過在windows注冊(cè)鉤子程序,實(shí)現(xiàn)在進(jìn)程創(chuàng)建的時(shí)候回調(diào)注冊(cè)的鉤子程序。
具體的,內(nèi)核驅(qū)動(dòng)程序在系統(tǒng)啟動(dòng)時(shí)向操作系統(tǒng)內(nèi)核注冊(cè)鉤子程序(即注冊(cè)一個(gè)回調(diào)函數(shù)),之后任何新進(jìn)程創(chuàng)建,操作系統(tǒng)都會(huì)調(diào)用該鉤子程序,鉤子程序首先會(huì)計(jì)算當(dāng)前需要?jiǎng)?chuàng)建的進(jìn)程的校驗(yàn)數(shù)據(jù),并將該數(shù)據(jù)與從TCM安全芯片讀取的所有可信應(yīng)用校驗(yàn)數(shù)據(jù)進(jìn)行比對(duì),如果比對(duì)正確,則當(dāng)前進(jìn)程可以創(chuàng)建,如果不正確,則不能創(chuàng)建。
由此,通過該內(nèi)核驅(qū)動(dòng)程序,可以實(shí)現(xiàn)對(duì)應(yīng)用程序執(zhí)行的控制,即只允許有特定特征,即程序文件的MD5簽名滿足一定的條件的程序運(yùn)行。
基于上述方案的TCM加密芯片和內(nèi)核驅(qū)動(dòng)程序結(jié)合組成的控制機(jī)制,其可信應(yīng)用的校驗(yàn)數(shù)據(jù)存儲(chǔ)于TCM加密芯片內(nèi),通過內(nèi)核驅(qū)動(dòng)程序控制可信應(yīng)用執(zhí)行。
在該控制機(jī)制中,通過TCM安全芯片檢查硬件平臺(tái)的完整性,且在TCM安全芯片檢查通過后,再由內(nèi)核驅(qū)動(dòng)程序控制可信應(yīng)用執(zhí)行。
其中,內(nèi)核驅(qū)動(dòng)程序控制可信應(yīng)用執(zhí)行時(shí),內(nèi)核驅(qū)動(dòng)程序從TCM安全芯片內(nèi)獲取相應(yīng)的可信應(yīng)用的校驗(yàn)數(shù)據(jù),并計(jì)算當(dāng)前可信應(yīng)用的校驗(yàn)數(shù)據(jù),且兩者進(jìn)行比對(duì),根據(jù)比對(duì)結(jié)構(gòu)控制可信應(yīng)用是否運(yùn)行。
針對(duì)上述的計(jì)算機(jī)安全控制機(jī)制,以下通過一具體應(yīng)用實(shí)例來說明其整個(gè)運(yùn)行過程。
參見圖3,其所示實(shí)例中通過TCM安全芯片對(duì)計(jì)算機(jī)進(jìn)行安全控制與檢查的流程。
由圖可知,當(dāng)計(jì)算機(jī)操作系統(tǒng)啟動(dòng)時(shí),其首先連接TCM模塊,如果連接成功,則嘗試獲取EK,每個(gè)TCM的EK是唯一的,可以由TCM廠商、平臺(tái)廠商、應(yīng)用程序三者自行創(chuàng)建。
如果EK不存在,則生成一個(gè)EK并寫入TCM模塊。如果EK存在,則進(jìn)行硬件完整性檢查,只有通過硬件完整性檢查才可以進(jìn)行下一步操作,如果檢查失敗,則程序退出。
本實(shí)例中將系統(tǒng)允許執(zhí)行的所有程序分為兩部分,一部分是系統(tǒng)必要程序,這部分程序的啟動(dòng)能保證用戶使用操作系統(tǒng)的基本功能;另一部分是用戶自定義的允許執(zhí)行程序。
由于TCM的NV空間的大小有限(TCM的非易失性寄存器共有16個(gè),即16個(gè)NV空間,應(yīng)用程序可以自定義NV空間的名稱,每個(gè)NV空間可以存儲(chǔ)816長(zhǎng)的字符串),本實(shí)例中將系統(tǒng)必要程序文件的MD5簽名寫在內(nèi)核驅(qū)動(dòng)程序(該內(nèi)核驅(qū)動(dòng)程序?yàn)椴僮飨到y(tǒng)啟動(dòng)時(shí),開啟的一個(gè)內(nèi)核驅(qū)動(dòng)程序)中;用戶自定義允許執(zhí)行的程序文件MD5簽名寫在TCM的NV空間。
在寫入時(shí),需要先判斷對(duì)應(yīng)的TCM的NV空間是否存在,如果不存在,則通過TCM芯片提供的API新建一個(gè)NV空間(通過調(diào)用TCM芯片提供的API進(jìn)行新建),新建NV空間將導(dǎo)致TCM清空該寄存器的所有內(nèi)容。由此可實(shí)現(xiàn)將可信應(yīng)用數(shù)據(jù)存儲(chǔ)在TCM加密芯片中。
據(jù)此,在TCM進(jìn)行完硬件完整性檢查后,操作系統(tǒng)將讀取TCM各個(gè)寄存器中的值,并調(diào)用內(nèi)核驅(qū)動(dòng)程序,將允許執(zhí)行的應(yīng)用程序列表傳遞給內(nèi)核驅(qū)動(dòng)程序,由內(nèi)核驅(qū)動(dòng)程序?qū)ο到y(tǒng)運(yùn)行的程序進(jìn)行控制。
例如,當(dāng)有新的程序A運(yùn)行時(shí),系統(tǒng)將調(diào)用通過驅(qū)動(dòng)程序注冊(cè)的內(nèi)核驅(qū)動(dòng)程序,內(nèi)核驅(qū)動(dòng)程序首先計(jì)算當(dāng)前程序的MD5值,并將其與持有應(yīng)用程序MD5簽名列表進(jìn)行比對(duì),如果存在于該列表,則程序A可以運(yùn)行;如果不存在于該列表,則程序A直接退出。
據(jù)此實(shí)例可知,本安全控制機(jī)制通過內(nèi)核驅(qū)動(dòng)程序和TCM安全芯片相配合,不僅對(duì)整個(gè)計(jì)算機(jī)硬件進(jìn)行完整性檢查,保證芯片安全;同時(shí)還對(duì)各個(gè)合法程序進(jìn)行校驗(yàn),有效識(shí)別并禁止運(yùn)行木馬或者病毒程序,保證計(jì)算機(jī)軟件安全。
以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等效物界定。