專利名稱:Windows環(huán)境下基于PCI卡的硬盤加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)安全領(lǐng)域,具體的說是提供了一種防止硬盤數(shù)據(jù)泄露的方法。
背景技術(shù):
隨著信息化程度越來越高,信息安全顯得格外重要。計(jì)算機(jī)的數(shù)據(jù)一般存儲(chǔ) 在本地硬盤上,未授權(quán)的數(shù)據(jù)拷貝甚至直接盜走硬盤會(huì)給計(jì)算機(jī)用戶帶來嚴(yán)重的 損失。在眾多防止硬盤數(shù)據(jù)泄露的方案中,對硬盤數(shù)據(jù)進(jìn)行加密不失為一種有效 方法。目前存在的硬盤加密方案普遍需要結(jié)合復(fù)雜的硬件設(shè)備,如在計(jì)算機(jī)主板和 硬盤之間增加額外的硬件設(shè)備,使用成本較高。另外,由于和硬件結(jié)合比較緊密, 存在兼容性的問題。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種低成本的基于PCI卡的硬盤加密方法。本發(fā)明的技術(shù)方案是包括一個(gè)PCI卡, 一段存放在PCI卡擴(kuò)展ROM映像中的加載程序, 一段存放 在PCI卡非擴(kuò)展ROM中的硬盤加密解密程序;加載程序監(jiān)控Windows操作系統(tǒng)通 過INT13H中斷讀寫目標(biāo)硬盤,完成對目標(biāo)硬盤數(shù)據(jù)的加密和解密;同時(shí)在計(jì)算 機(jī)啟動(dòng)時(shí)把硬盤加密解密程序嵌入Windows操作系統(tǒng);硬盤加密解密程序監(jiān)控 Windows操作系統(tǒng)通過驅(qū)動(dòng)程序讀寫目標(biāo)硬盤,完成對目標(biāo)硬盤數(shù)據(jù)的加密和解 密;加載程序和硬盤加密解密程序獲取PCI卡的硬件序列號(hào)PID和目標(biāo)硬盤的硬 件序列號(hào)HID,通過函數(shù)f (PID, HID)計(jì)算出目標(biāo)硬盤加密和解密需要的密鑰。加載程序存放在PCI卡擴(kuò)展ROM的映像中;當(dāng)計(jì)算機(jī)BIOS執(zhí)行的自檢操作檢測 到PCI卡具有擴(kuò)展ROM時(shí),將擴(kuò)展R0M中的映像讀入內(nèi)存C0000H DFFFFH中的某一 個(gè)區(qū)域,然后作一個(gè)遠(yuǎn)程調(diào)用,執(zhí)行映像中的加載程序;加載程序監(jiān)控Windows操作系統(tǒng)通過INT13H中斷讀寫目標(biāo)硬盤,解密從目標(biāo)硬盤讀取的數(shù)據(jù),加密寫入目 標(biāo)硬盤的數(shù)據(jù);同時(shí)在內(nèi)存中修改讀取的注冊表信息和文件系統(tǒng)信息,把硬盤加 密解密程序作為磁盤過濾驅(qū)動(dòng)程序嵌入Wind(MS操作系統(tǒng)。硬盤加密解密程序存放在PCI卡的非擴(kuò)展ROM中;它是一個(gè)工作在Windows操 作系統(tǒng)內(nèi)核的磁盤過濾驅(qū)動(dòng)程序;當(dāng)Windows操作系統(tǒng)放棄使用INT13H中斷改用 驅(qū)動(dòng)程序讀寫目標(biāo)硬盤時(shí),硬盤加密解密程序接管對目標(biāo)硬盤數(shù)據(jù)的加密和解 密。當(dāng)計(jì)算機(jī)BIOS執(zhí)行的自檢操作檢測到PCI卡具有擴(kuò)展ROM時(shí),將擴(kuò)展R0M中的 映像讀入內(nèi)存C0000H DFFF冊中的某一個(gè)區(qū)域,然后作一個(gè)遠(yuǎn)程調(diào)用,執(zhí)行映像 中的加載程序。加載程序通過修改INT13H的中斷服務(wù)程序來監(jiān)控計(jì)算機(jī)對目標(biāo)硬 盤的讀寫。加載程序完成修改后,把硬盤0扇區(qū)的內(nèi)容讀入內(nèi)存0000: 7C00并執(zhí) 行,從硬盤上啟動(dòng)Windows操作系統(tǒng)。在隨后的啟動(dòng)過程中,硬盤上的Windows 引導(dǎo)程序(Osloader. exe)通過INT13H讀取注冊表信息和文件系統(tǒng)信息。加載程序 監(jiān)測到引導(dǎo)程序?qū)ψ员淼淖x寫,調(diào)用原始的INT13H中斷服務(wù)程序讀取硬盤上的 注冊表到內(nèi)存,并在內(nèi)存中修改讀取的內(nèi)容,讓引導(dǎo)程序加載一個(gè)硬盤上并不存 在的內(nèi)核驅(qū)動(dòng)程序。當(dāng)引導(dǎo)程序通過INT13H來讀取該內(nèi)核驅(qū)動(dòng)程序時(shí),加載程序 把讀操作重定向到PCI卡,讀取存放在PCI卡非擴(kuò)展ROM的硬盤加密解密程序。至 此,引導(dǎo)程序獲得了硬盤加密解密程序的內(nèi)容,并根據(jù)注冊表的指示將它裝入 Windows操作系統(tǒng)。引導(dǎo)程序完成系統(tǒng)初始化工作后,Windows操作系統(tǒng)開始啟動(dòng)。 此時(shí)刻開始,Windows操作系統(tǒng)將放棄使用INT13H中斷改用驅(qū)動(dòng)程序訪問硬盤等 存儲(chǔ)設(shè)備。作為磁盤過濾驅(qū)動(dòng)程序嵌入到Windows操作系統(tǒng)內(nèi)核的硬盤加密解密 程序接管對目標(biāo)硬盤讀寫操作的監(jiān)控,解密讀操作獲取的數(shù)據(jù),加密寫操作的數(shù) 據(jù)。本發(fā)明的有益效果是1) 設(shè)計(jì)新穎。不需要在計(jì)算機(jī)主板和硬盤之間增加額外的硬件設(shè)備。2) 使用成本低。僅需要一個(gè)PCI卡。3) 使用方便。PCI卡的硬件序列號(hào)和目標(biāo)硬盤的硬件序列號(hào)產(chǎn)生加密解密需 要的密鑰。該密鑰將PCI卡和目標(biāo)硬盤綁定為鑰匙和鎖的關(guān)系,插入匹配的PCI 卡即可,不需要輸入用戶名和密碼。
圖l一磁盤存儲(chǔ)驅(qū)動(dòng)程序?qū)哟问疽鈭D。圖2—PCI卡存儲(chǔ)空間的使用示意圖。圖3—從PCI卡啟動(dòng)的工作流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步詳細(xì)描述。本發(fā)明不僅限于 以下實(shí)施例,凡是利用本發(fā)明的設(shè)計(jì)思路,做一些簡單變化的設(shè)計(jì)都應(yīng)進(jìn)入本發(fā) 明的保護(hù)范圍之內(nèi)。PCI卡作為加載程序和硬盤加密解密程序的載體。加載程序存放在PCI卡擴(kuò)展 R0M的映像中,硬盤加密解密程序存放在PCI卡的非擴(kuò)展ROM中,如圖2。硬盤加密解密程序(DiskSecure. sys)工作在Windows操作系統(tǒng)內(nèi)核,位于 磁盤驅(qū)動(dòng)程序(Disk, sys)和分區(qū)驅(qū)動(dòng)程序(PartMgr. sys)之間,如圖1。 Windows 操作系統(tǒng)啟動(dòng)后,計(jì)算機(jī)對硬盤的讀寫操作通過輸入輸出請求包(IRP)來完成。 當(dāng)Windows操作系統(tǒng)需要訪問硬盤時(shí),構(gòu)造相應(yīng)的IRP并且層層下傳。硬盤加密 解密程序?qū)Ψ謪^(qū)驅(qū)動(dòng)程序傳下來的IRP進(jìn)行分析如果IRP為讀操作,硬盤加密 解密程序先將該IRP發(fā)送給磁盤驅(qū)動(dòng)程序,磁盤驅(qū)動(dòng)程序完成讀操作后將該IRP 返回給硬盤加密解密程序。硬盤加密解密程序使用密鑰解密IRP中的數(shù)據(jù);完成 解密后將IRP返回給Windows操作系統(tǒng)。如果IRP為寫操作,硬盤加密解密程序 根據(jù)該IRP重新創(chuàng)建一個(gè)新的IRP,且使用密鑰加密新創(chuàng)建的IRP中的數(shù)據(jù);完 成加密后,將新創(chuàng)建的IRP發(fā)送給磁盤驅(qū)動(dòng)程序。Windwos操作系統(tǒng)啟動(dòng)時(shí)需要很多初始化數(shù)據(jù),這些數(shù)據(jù)保存在注冊表中。 系統(tǒng)啟動(dòng)時(shí),引導(dǎo)程序讀取注冊表來完成初始化操作。加載程序監(jiān)控引導(dǎo)程序?qū)?注冊表和文件系統(tǒng)的讀操作,在內(nèi)存中修改引導(dǎo)程序讀取的數(shù)據(jù)。HKEY—LOCAL—MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E9 67-E325-11CE-BFC1-08002BE10318)中U卯erFilters鍵指示磁盤存儲(chǔ)驅(qū)動(dòng)程序 的層次順序PartMgr. sys, Diskperf. sys。其中Diskperf. sys為Windows 2000 獨(dú)有。這里我們需要將內(nèi)存中的UpperFilters鍵值進(jìn)行修改,層次順序變?yōu)镈iskSecure. sys, PartMgr. sys, Diskperf. sys。除此之外,我們還需要在內(nèi)存 中的HKEY—LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services鍵下面增加 DiskSecure鍵,且在HKEY—LOCAL—MACHINE\SYSTEM\CurrentControlSet\Servic es\DiskSecure鍵下增加Start, Group等鍵值并且賦予相應(yīng)的值。其中Start=0 表示DiskSecure. sys在計(jì)算機(jī)啟動(dòng)時(shí)裝入。對內(nèi)存中注冊表數(shù)據(jù)的修改生效后, 引導(dǎo)程序需要從文件系統(tǒng)獲取DiskSecure. sys文件的信息。加載程序截獲引導(dǎo) 程序?qū)YSTEM32\DRIVERS目錄信息的訪問,在內(nèi)存中增加DiskSecure. sys的信 息,如文件大小、文件位置等等。當(dāng)引導(dǎo)程序根據(jù)這些信息讀取DiskSecure. sys (DiskSecure. sys在硬盤上并不存在)時(shí),加載程序把讀操作且重定向到PCI 卡,讀取放在PCI卡非擴(kuò)展ROM的DiskSecure. sys。至此,引導(dǎo)程序獲得了 DiskSecure. sys的內(nèi)容,并根據(jù)注冊表的指示將DiskSecure. sys裝入Windows 操作系統(tǒng),如圖3所示。
權(quán)利要求
1. Windows環(huán)境下基于PCI卡的硬盤加密方法,其特征在于包括一個(gè)PCI卡,一段存放在PCI卡擴(kuò)展ROM映像中的加載程序,一段存放在PCI卡非擴(kuò)展ROM中的硬盤加密解密程序;加載程序監(jiān)控Windows操作系統(tǒng)通過INT13H中斷讀寫目標(biāo)硬盤,完成對目標(biāo)硬盤數(shù)據(jù)的加密和解密;同時(shí)在計(jì)算機(jī)啟動(dòng)時(shí)把硬盤加密解密程序嵌入Windows操作系統(tǒng);硬盤加密解密程序監(jiān)控Windows操作系統(tǒng)通過驅(qū)動(dòng)程序讀寫目標(biāo)硬盤,完成對目標(biāo)硬盤數(shù)據(jù)的加密和解密;加載程序和硬盤加密解密程序獲取PCI卡的硬件序列號(hào)PID和目標(biāo)硬盤的硬件序列號(hào)HID,通過函數(shù)f(PID,HID)計(jì)算出目標(biāo)硬盤加密和解密需要的密鑰。
2. 如權(quán)利要求1所述的Windows環(huán)境下基于PCI卡的硬盤加密方法,其特 征在于所述的加載程序存放在PCI卡擴(kuò)展ROM的映像中;當(dāng)計(jì)算機(jī)BIOS執(zhí)行 的自檢操作檢測到PCI卡具有擴(kuò)展ROM時(shí),將擴(kuò)展ROM中的映像讀入內(nèi)存 C0000H DFFFFH中的某一個(gè)區(qū)域,然后作一個(gè)遠(yuǎn)程調(diào)用,執(zhí)行映像中的加載程 序;加載程序監(jiān)控Windows操作系統(tǒng)通過INT13H中斷讀寫目標(biāo)硬盤,解密從目 標(biāo)硬盤讀取的數(shù)據(jù),加密寫入目標(biāo)硬盤的數(shù)據(jù);同時(shí)在內(nèi)存中修改讀取的注冊表 信息和文件系統(tǒng)信息,把硬盤加密解密程序作為磁盤過濾驅(qū)動(dòng)程序嵌入Windows 操作系統(tǒng)。
3. 如權(quán)利要求1所述的Windows環(huán)境下基于PCI卡的硬盤加密方法,其特 征在于所述的硬盤加密解密程序存放在PCI卡的非擴(kuò)展ROM中;它是一個(gè)工作 在Windows操作系統(tǒng)內(nèi)核的磁盤過濾驅(qū)動(dòng)程序;當(dāng)Windows操作系統(tǒng)放棄使用 INT13H中斷改用驅(qū)動(dòng)程序讀寫目標(biāo)硬盤時(shí),硬盤加密解密程序接管對目標(biāo)硬盤 數(shù)據(jù)的加密和解密。
全文摘要
本發(fā)明涉及計(jì)算機(jī)安全領(lǐng)域,具體的說是提供了一種防止硬盤數(shù)據(jù)泄露的方法。本發(fā)明包括一個(gè)PCI卡,一段存放在PCI卡擴(kuò)展ROM映像中的加載程序,一段存放在PCI卡非擴(kuò)展ROM中的硬盤加密解密程序。加載程序監(jiān)控Windows操作系統(tǒng)通過INT13H中斷讀寫目標(biāo)硬盤,完成對目標(biāo)硬盤數(shù)據(jù)的加密和解密;同時(shí)在計(jì)算機(jī)啟動(dòng)時(shí)把硬盤加密解密程序嵌入Windows操作系統(tǒng)。硬盤加密解密程序監(jiān)控Windows操作系統(tǒng)通過驅(qū)動(dòng)程序讀寫目標(biāo)硬盤,完成對目標(biāo)硬盤數(shù)據(jù)的加密和解密。本發(fā)明設(shè)計(jì)新穎,不需要在計(jì)算機(jī)主板和硬盤之間增加額外的硬件設(shè)備;使用成本低,僅需要一個(gè)PCI卡;使用方便,PCI卡的硬件序列號(hào)和目標(biāo)硬盤的硬件序列號(hào)產(chǎn)生加密解密需要的密鑰。該密鑰將PCI卡和目標(biāo)硬盤綁定為鑰匙和鎖的關(guān)系,插入匹配的PCI卡即可,不需要輸入用戶名和密碼。
文檔編號(hào)G06F21/00GK101236534SQ20071011981
公開日2008年8月6日 申請日期2007年7月31日 優(yōu)先權(quán)日2007年7月31日
發(fā)明者佐 王, 虞振飛, 譚毓安 申請人:北京理工大學(xué)