專利名稱:利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護u盤的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種U盤保護的方法,特別是一種利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法。
背景技術(shù):
隨著計算機技術(shù)和信息存儲技術(shù)的快速發(fā)展,U盤已成為人們?nèi)粘I?、辦公和學(xué)習(xí)必不可少的設(shè)備。越來越多的用戶都習(xí)慣于將大量的文件存放到U盤之中,通過它很容易地傳遞文件,這種改進無疑給人們帶來便利,但是同時也帶來安全性的問題——很多U盤信息具有機密性,不能被隨意閱讀或篡改,U盤的不安全性給敏感信息安全帶來了極大的隱患。一般的U盤都不具備加密和身份認證功能,任何人都可以通過U盤看到其中的內(nèi)容。
目前人們主要利用加密和認證技術(shù)來控制非法用戶對敏感信息的訪問,例如利用各種密鑰機制對U盤加密,從而防止非法用戶閱讀;或者利用數(shù)字證書來認證用戶的身份,控制非法用戶訪問U盤。
人們還利用現(xiàn)有過濾驅(qū)動技術(shù)保護敏感信息,這種內(nèi)核級的保護模式具有極大的方便性和更高的安全性。過濾驅(qū)動主要基于WDM(Windows Driver Model)分層模式的思想,在此分層模式中,硬件設(shè)備之上至少有兩個驅(qū)動程序,分別為功能驅(qū)動程序(function driver)和總線驅(qū)動程序(bus driver),功能驅(qū)動程序?qū)崿F(xiàn)設(shè)備的具體功能(U盤的功能驅(qū)動程序在Windows2000及以上的操作系統(tǒng)已經(jīng)自帶)。一個設(shè)備還可能增加過濾驅(qū)動程序(filter driver)層,用來變更標準設(shè)備驅(qū)動程序的行為。這些服務(wù)于同一個設(shè)備的驅(qū)動程序組成了一個設(shè)備棧。在設(shè)備棧里,過濾驅(qū)動程序附加在功能驅(qū)動程序的上層或下層,攔截相應(yīng)IRP(輸入/輸出請求包,I/O Request Packet),并做相應(yīng)的處理,以改變設(shè)備的行為或添加新的功能。過濾驅(qū)動程序只處理那些它所關(guān)心的I/O請求,對其他的I/O請求不作處理,這樣可以非常靈活的改變設(shè)備的行為,IRP將會沿著一定的順序從上往下傳遞并返回。因此,我們可以使用過濾驅(qū)動程序來檢查、修改、完成它截獲的IRP,或者構(gòu)造自己的IRP。
但是,利用過濾驅(qū)動技術(shù)和智能密鑰裝置相結(jié)合來實現(xiàn)對U盤的保護在現(xiàn)有技術(shù)中尚不完善。
發(fā)明內(nèi)容
為了解決上述存在的問題,本發(fā)明提供一種方法,將智能密鑰裝置和U盤過濾驅(qū)動程序相結(jié)合,提供一種更安全的U盤保護方法。
本發(fā)明通過以下方案實現(xiàn)一種利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,包括如下步驟1.USB Mass Storage驅(qū)動程序下發(fā)對U盤的操作請求;2.U盤過濾驅(qū)動程序檢測智能密鑰裝置是否已經(jīng)插入計算機;3.判斷用戶是否已經(jīng)通過身份認證;4.用戶身份認證通過后,根據(jù)操作請求進行處理或不做處理。
所述U盤過濾驅(qū)動程序通過獲取智能密鑰裝置驅(qū)動的設(shè)備對象與智能密鑰裝置相關(guān)聯(lián),共同完成對U盤的保護。
所述步驟1中的USB Mass Storage為USB大量存儲設(shè)備。
所述步驟2如果沒有檢測到智能密鑰插入計算機,則進行錯誤處理;所述錯誤處理通過應(yīng)用監(jiān)控程序彈出界面或執(zhí)行內(nèi)部錯誤返回;所述步驟3如果沒有通過身份認證,則由智能密鑰裝置對用戶進行身份認證。
所述身份認證過程是過濾驅(qū)動通知應(yīng)用監(jiān)控程序顯示界面,該界面提示用戶進行身份驗證,所述用戶身份驗證包括但不限于下列方法,也可以為下列方法之一1)用戶輸入的PIN碼是否能夠通過智能密鑰裝置的驗證;2)用戶的生物特征能夠通過智能密鑰裝置的驗證;3)用戶提供的智能密鑰裝置中是否包含特定的數(shù)據(jù);4)將一些數(shù)據(jù)發(fā)送給智能密鑰裝置進行運算,檢查運算結(jié)果是否是期望的。所述應(yīng)用監(jiān)控程序用于監(jiān)控所述U盤過濾驅(qū)動程序以及與智能密鑰裝置進行數(shù)據(jù)通訊。
所述步驟3,如果用戶沒有通過認證,則進行錯誤處理。
所述步驟4中,所述操作處理可以是對U盤的讀寫操作請求,通過所述智能密鑰裝置對數(shù)據(jù)進行解密或加密處理;其過程表現(xiàn)為所述U盤過濾驅(qū)動程序根據(jù)所述智能密鑰物理裝置驅(qū)動設(shè)備對象將數(shù)據(jù)內(nèi)容發(fā)送至智能密鑰裝置驅(qū)動程序,進而實現(xiàn)所述智能密鑰裝置對數(shù)據(jù)的解密或加密處理。
如果是寫U盤操作請求,通過所述智能密鑰裝置對數(shù)據(jù)進行加密處理,如果是讀U盤操作請求,通過所述智能密鑰裝置對數(shù)據(jù)進行解密處理。
上述針對U盤的讀寫操作請求的處理,還可以通過所述U盤過濾驅(qū)動程序?qū)?shù)據(jù)進行加密或解密處理。
對U盤除讀寫以外的其他操作請求,如寫保護或取U盤信息操作請求,不需要智能密鑰裝置進行處理,由U盤過濾驅(qū)動程序直接設(shè)置IRP中相應(yīng)標志,作相應(yīng)的過濾處理;完成相應(yīng)過濾后,U盤過濾驅(qū)動程序?qū)⑦^濾結(jié)果信息發(fā)送到USB總線驅(qū)動程序或USB MassStorage驅(qū)動程序。
本發(fā)明通過在USB Mass Storage驅(qū)動程序和USB總線驅(qū)動程序之間插入過濾驅(qū)動程序,并通過該過濾驅(qū)動程序與智能密鑰裝置相關(guān)聯(lián),在應(yīng)用監(jiān)控程序的監(jiān)控下共同實現(xiàn)對U盤的保護,用戶若想對受保護的U盤進行操作必須通過身份認證和加解/密處理,提高了使用U盤的安全性。
圖1是本發(fā)明的原理框圖。
圖2是本發(fā)明的實現(xiàn)流程圖。
具體實施例方式
下面結(jié)合附圖和具體實施例對本發(fā)明進行更詳細的描述。
本發(fā)明將智能密鑰裝置與U盤過濾驅(qū)動程序相關(guān)聯(lián),共同實現(xiàn)對U盤的保護。
圖1為本發(fā)明的原理框圖。如圖所示,在Windows操作系統(tǒng)對U盤104進行訪問時,在USB Mass Storage(USB大容量存儲器)驅(qū)動程序101與USB總線驅(qū)動程序103之間,包括一個用于實現(xiàn)對U盤104讀寫等操作進行過濾的驅(qū)動程序——U盤過濾驅(qū)動程序102。當USB總線驅(qū)動程序103檢測到一個USB設(shè)備時,PnP(即插即用)管理器就馬上建立一個PDO(Physical Device Object即U盤相關(guān)設(shè)備)。當建立好PDO之后,PnP管理器通過查找注冊表來找到其他的過濾驅(qū)動程序和功能驅(qū)動程序。設(shè)備的安裝程序負責(zé)建立這些注冊表里的表項,驅(qū)動程序的安裝,是根據(jù)INF文件(Information File即驅(qū)動安裝文件)中的指令進行的。注冊表中的表項指明了各種驅(qū)動程序在數(shù)據(jù)對象堆棧中的位置,于是PnP管理器開始裝載最低層的過濾驅(qū)動程序,并調(diào)用該驅(qū)動程序的AddDevice函數(shù)。該函數(shù)在數(shù)據(jù)對象堆棧中建立一個FiDO(Filter Device Object即過濾設(shè)備),同時也將前面建立的PDO和這個FiDO聯(lián)系在一起。
用戶對U盤104進行操作時,U盤過濾驅(qū)動程序102截獲相應(yīng)的IRP,并根據(jù)請求包中的內(nèi)容判斷是否是對受保護U盤104的操作,如果是則讀取請求包中的數(shù)據(jù)內(nèi)容,并獲取智能密鑰裝置驅(qū)動程序106的設(shè)備對象,如果獲取失敗,則說明智能密鑰裝置107不存在,不能對受保護U盤104進行相應(yīng)操作,并通知應(yīng)用監(jiān)控程序105彈出界面要求插入智能密鑰裝置107。如果獲取成功,則說明智能密鑰裝置107已經(jīng)存在系統(tǒng)中,接下來驗證智能密鑰裝置持有者的身份,如果已經(jīng)驗證過智能密鑰裝置持有者的身份并且驗證通過,則不需要再進行驗證,否則U盤過濾驅(qū)動程序102通知應(yīng)用監(jiān)控程序105彈出界面要求用戶進行身份驗證,并將驗證結(jié)果返回U盤過濾驅(qū)動程序102,如果身份認證不成功,U盤過濾驅(qū)動程序102通知應(yīng)用監(jiān)控程序105彈出身份驗證不通過的提示;如果身份認證成功,U盤過濾驅(qū)動程序102根據(jù)智能密鑰裝置驅(qū)動程序106的設(shè)備對象把數(shù)據(jù)內(nèi)容轉(zhuǎn)發(fā)到智能密鑰裝置107,使其完成對數(shù)據(jù)的加密或者解密,該過程也可由U盤過濾驅(qū)動程序102完成。當加密或者解密后的數(shù)據(jù)內(nèi)容返回到U盤過濾驅(qū)動程序102后,用該數(shù)據(jù)內(nèi)容替換原來請求包中的數(shù)據(jù)內(nèi)容。完成替換后,根據(jù)請求包原來的傳遞方向把數(shù)據(jù)傳送到U盤濾驅(qū)動程序102的上層或者下層,最終實現(xiàn)本發(fā)明保護U盤的目的。
U盤104是一種特殊的USB設(shè)備,USB總線檢測到U盤104的插入時,自動在系統(tǒng)虛擬一個分區(qū),用戶對該分區(qū)操作時,實際上是對U盤104進行操作,主機與U盤104間的數(shù)據(jù)交互最終通過USBMass Storage驅(qū)動(usbstor.sys)才能完成正常的讀出寫入功能。在本實施例中將過濾驅(qū)動程序加載在USB Mass Storage驅(qū)動程序與USB總線驅(qū)動程序之間,捕獲類型為IRP_MJ_SCSI的IRP,對IRP中的相關(guān)內(nèi)容進行過濾或分析,從而實現(xiàn)對U盤讀寫進行監(jiān)控。在本實施例中,數(shù)據(jù)的加密解密均是在智能密鑰裝置中完成的。
如圖2所示步驟201,USB Mass Storage驅(qū)動程序下發(fā)操作請求。在本實施例中,所述USB Mass Storage驅(qū)動程序是U盤的功能驅(qū)動,實現(xiàn)設(shè)備的具體功能。
步驟202,U盤過濾驅(qū)動程序檢測智能密鑰裝置是否已經(jīng)插入計算機。如果已插入,則執(zhí)行步驟203,否則執(zhí)行步驟206。
步驟203,智能密鑰裝置判斷用戶是否已經(jīng)通過身份驗證。如果用戶已經(jīng)通過了智能密鑰裝置的身份認證,則不需要進行身份認證,直接由過濾驅(qū)動程序判斷對U盤的操作類型,即執(zhí)行步驟207,否則執(zhí)行步驟204。
步驟204,用戶沒有通過身份驗證,由智能密鑰裝置對用戶進行身份認證。
所述身份認證過程是過濾驅(qū)動通知應(yīng)用監(jiān)控程序顯示界面,該界面提示用戶進行身份驗證,所述用戶身份驗證包括但不限于下列方法,也可以為下列方法組合1)用戶輸入的PIN碼是否能夠通過智能密鑰裝置的驗證;2)用戶的生物特征能夠通過智能密鑰裝置的驗證,例如指紋、聲音、視網(wǎng)膜等等。
3)用戶提供的智能密鑰裝置中是否包含特定的數(shù)據(jù);4)將一些數(shù)據(jù)送給智能密鑰裝置進行運算,檢查運算結(jié)果是否是期望值;智能密鑰裝置完成對用戶身份的驗證后把證結(jié)果返回到過濾驅(qū)動程序,由過濾驅(qū)動程序開始作下一步處理。
在本實施例中,通過U盤過濾驅(qū)動程序與應(yīng)用監(jiān)控程序相關(guān)聯(lián),實現(xiàn)與用戶的交互,用戶可以通過應(yīng)用監(jiān)控程序配置U盤的保護策略;監(jiān)控U盤過濾驅(qū)動程序,等待驅(qū)動程序發(fā)來的事件并進行相應(yīng)的處理。除此以外,應(yīng)用監(jiān)控程序可以實現(xiàn)安裝、卸載過濾驅(qū)動程序,指定所受保護的硬件對象,以及控制U盤過濾驅(qū)動程序和智能密鑰裝置驅(qū)動程序之間規(guī)則的功能。
步驟205,U盤過濾驅(qū)動程序確認身份認證是否通過。若通過則執(zhí)行步驟207。否則執(zhí)行步驟206。
步驟206,用戶未通過認證,提示錯誤。
步驟207,U盤過濾驅(qū)動程序在截獲到來自USB Mass Storage驅(qū)動程序的IRP后,分析IRP中的SRB包類型,判斷是哪種SCSI命令。
1)如果是SCSIOP_READ或者SCSIOP_READ6,步驟208將請求提交給USB總線驅(qū)動程序。
步驟209,USB總線驅(qū)動程序?qū)⒁x取的數(shù)據(jù)返回給U盤過濾驅(qū)動程序。
步驟210,利用智能密鑰裝置中的密鑰解密數(shù)據(jù),解密方法與加密方法類似,就是把密文數(shù)據(jù)發(fā)往智能密鑰裝置設(shè)備驅(qū)動程序后,經(jīng)智能密鑰裝置解密成明文。
步驟211,明文返回到U盤過濾驅(qū)動程序,然后由U盤過濾驅(qū)動程序返回給USB Mass Storage驅(qū)動程序。
1)如果是SCSIOP_WRITE或者SCSIOP_WRITE6,步驟212,使用智能密鑰裝置對數(shù)據(jù)進行加密處理,加密處理的方法就是由U盤過濾驅(qū)動獲取智能密鑰裝置驅(qū)動程序設(shè)備對象,通過該設(shè)備對象把請求包中的明文數(shù)據(jù)發(fā)往智能密鑰裝置設(shè)備驅(qū)動程序,從而使明文數(shù)據(jù)經(jīng)智能密鑰裝置加密處理后轉(zhuǎn)換成密文,智能密鑰裝置設(shè)備驅(qū)動程序?qū)⒚芪姆祷氐経盤過濾驅(qū)動程序,U盤過濾驅(qū)動程序用密文數(shù)據(jù)替換原來請包中的明文數(shù)據(jù)內(nèi)容,最后將請求包提交給USB總線驅(qū)動程序215。
3)如果是某些特定的SCSI命令(根據(jù)用戶特定要求),如SCSIOP_MODE_SENSE,步驟213,不需要關(guān)聯(lián)智能密鑰裝置,由U盤過濾驅(qū)動程序修改SRB的標志,把IRP傳遞給USB總線驅(qū)動程序215。
4)如果是其他操作,步驟214,不對請求作任何處理,傳遞IRP到USB總線驅(qū)動程序215。
以上對本發(fā)明所提供的利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,包括如下步驟(1)USB Mass Storage驅(qū)動程序下發(fā)對U盤的操作請求;(2)U盤過濾驅(qū)動程序檢測智能密鑰裝置是否已經(jīng)插入計算機;(3)驗證用戶身份;(4)用戶身份認證通過后,根據(jù)操作請求進行處理或不做處理。
2.根據(jù)權(quán)利要求1所述的利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,其特征在于所述U盤過濾驅(qū)動程序通過獲取智能密鑰裝置驅(qū)動程序的設(shè)備對象與智能密鑰裝置相關(guān)聯(lián),共同完成對U盤的保護。
3.根據(jù)權(quán)利要求1所述的利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,其特征在于所述步驟2如果沒有檢測到智能密鑰插入計算機,則進行錯誤處理;所述錯誤處理通過應(yīng)用監(jiān)控程序彈出界面或執(zhí)行內(nèi)部錯誤返回。
4.根據(jù)權(quán)利要求1所述的利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,其特征在于所述步驟3由智能密鑰裝置驗證用戶身份。
5.根據(jù)權(quán)利要求1所述的利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,其特征在于所述身份認證過程是U盤過濾驅(qū)動程序通知應(yīng)用監(jiān)控程序顯示界面,該界面提示用戶進行身份驗證,所述用戶身份驗證包括下列方法之一1)用戶輸入的PIN碼是否能夠通過智能密鑰裝置的驗證;2)用戶的生物特征能夠通過智能密鑰裝置的驗證;3)用戶提供的智能密鑰裝置中是否包含特定的數(shù)據(jù);4)將一些數(shù)據(jù)發(fā)送給智能密鑰裝置進行運算,檢查運算結(jié)果是否是期望值。
6.根據(jù)權(quán)利要求4所述的利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,其特征在于如果用戶沒有通過認證,則進行錯誤處理。
7.根據(jù)權(quán)利要求1所述的利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,其特征在于所述步驟4中,所述操作處理若是對U盤的讀寫操作請求,則通過所述智能密鑰裝置對數(shù)據(jù)進行解密或加密處理。
8.根據(jù)權(quán)利要求1所述的利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,其特征在于所述步驟4中,所述操作處理若是對U盤的讀寫操作請求,則通過所述U盤過濾驅(qū)動程序?qū)?shù)據(jù)進行解密或加密處理。
9.根據(jù)權(quán)利要求1所述的利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,其特征在于所述步驟4中,所述操作處理若是對U盤除讀寫以外的其他操作請求,則不需要智能密鑰裝置進行處理,由U盤過濾驅(qū)動程序直接作相應(yīng)的過濾處理;完成相應(yīng)過濾后,U盤過濾驅(qū)動程序?qū)⑦^濾結(jié)果信息發(fā)送到USB總線驅(qū)動程序或USB Mass Storage驅(qū)動程序。
全文摘要
本發(fā)明公開了一種利用過濾驅(qū)動程序結(jié)合智能密鑰裝置自動保護U盤的方法,包括如下步驟USB Mass Storage驅(qū)動程序下發(fā)對U盤的操作請求;U盤過濾驅(qū)動程序檢測智能密鑰裝置是否已經(jīng)插入計算機;判斷用戶是否已經(jīng)通過身份認證;用戶身份認證通過后,根據(jù)操作請求進行處理或不做處理。本發(fā)明通過在USB Mass Storage驅(qū)動程序和USB總線驅(qū)動程序之間插入過濾驅(qū)動程序,并通過該過濾驅(qū)動程序與智能密鑰裝置相關(guān)聯(lián),在應(yīng)用監(jiān)控程序的監(jiān)控下共同實現(xiàn)對U盤的保護,用戶若想對受保護的U盤進行操作必須通過身份認證和加解/密處理,提高安全性和使用的方便性。
文檔編號G06F21/00GK1877549SQ20061009018
公開日2006年12月13日 申請日期2006年7月5日 優(yōu)先權(quán)日2006年7月5日
發(fā)明者陸舟, 于華章 申請人:北京飛天誠信科技有限公司