版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
精品文檔-下載后可編輯一種安全USB技術(shù)研究與實現(xiàn)-設(shè)計應(yīng)用大多數(shù)普通安全U盤通過使用軟件實現(xiàn)安全U盤加密功能。在使用過程中,用戶需要打開專用的U盤瀏覽器或管理工具等,不但操作不方便,而且不符合USB設(shè)備使用習(xí)慣和人性化設(shè)計。
本文通過對驅(qū)動層硬件插拔(PNP)的研究,PNP是由Microsoft提出的,英文Plugandplay的縮寫,中譯即插即用,意思是系統(tǒng)自動偵測周邊設(shè)備和板卡并自動安裝設(shè)備驅(qū)動程序,作到插上就能用,無須人工干預(yù),是Windows自帶的一項技術(shù)。所謂即插即用是指將符合PNP標準的PC插卡等外圍設(shè)備安裝到電腦時,操作系統(tǒng)自動設(shè)定系統(tǒng)結(jié)構(gòu)的技術(shù)。這就是說,當用戶安裝新的硬件時,不必再設(shè)置任何跳線器開關(guān),也不必用軟件配置中斷請求(IRQ)、內(nèi)存地址或直接存儲器存?。―MA)通道,Windows會向應(yīng)用程序通知硬件設(shè)備的新變化,并會自動協(xié)調(diào)IRQ、內(nèi)存地址和DMA通道之間的沖突。
在分析了WindowsDDK/FSD驅(qū)動開發(fā)技術(shù)、卷上過濾驅(qū)動技術(shù),提出了在Windows系統(tǒng)插入USB設(shè)備時,自動掛載符合規(guī)定卷格式的USB設(shè)備,映射為本地磁盤,USB(UniversalSerialBus)即“通用串行總線”是一種應(yīng)用在計算機領(lǐng)域的新型接口技術(shù)。USB的拓撲結(jié)構(gòu)中居于地位的是Host(也稱為主機)。任何USB的數(shù)據(jù)傳輸都必須由主機來發(fā)起和控制,所有的USB外設(shè)都只能和主機建立連接,任何兩個外設(shè)之間或是兩個主機之間無法直接通信。而目前,大量的扮演主機角色的是個人電腦PC。隨著USB應(yīng)用領(lǐng)域的逐漸擴大,對于USB的期望也越來越高。我們希望USB能應(yīng)用在各種計算機領(lǐng)域中,希望能通過PDA等移動設(shè)備直接和USB外設(shè)通信,使得USB能應(yīng)用在沒有PC的領(lǐng)域中。
1原理與架構(gòu)
系統(tǒng)分為驅(qū)動層和應(yīng)用層,驅(qū)動層包括一個卷過濾驅(qū)動程序和一個文件系統(tǒng)過濾驅(qū)動;應(yīng)用層包括一個應(yīng)用程序和與驅(qū)動交互的dll。應(yīng)用層是隱藏界面的應(yīng)用程序。卷過濾驅(qū)動對USB盤的(PNP)動作識別,讀移動硬盤卷的頭為512B,對特定標識識別,如果不符合卷標示,則可采用禁用或放行等;如果符合卷格式和標識,則對此卷進行映射。
普通U盤使用前需要格式化,物理U盤上的數(shù)據(jù)是隨機的數(shù)值。密碼算法采用基于口令的密碼系統(tǒng)(RFC2898),口令和鹽(salt)結(jié)合產(chǎn)生密鑰。鹽可看作是對口令導(dǎo)出的一個大密鑰集合的索引。鹽和迭代次數(shù)構(gòu)成了PKCS#5v1.5中基于口令加密基礎(chǔ)。系統(tǒng)總體架構(gòu)序列圖如圖1所示。
加密算法可采用AES-256、Serpent、Twofish等,解密時通過判斷廠商標識以及CRC-32校驗和是否正確,在此過程中在權(quán)限注冊區(qū)讀入相應(yīng)的注冊信息,如GUID和廠商標識等。如上述過程正確,則執(zhí)行正確的卷映射過程。
2研究與實現(xiàn)
系統(tǒng)應(yīng)用層主要由三個線程組成,主線程是應(yīng)用程序,剩下卷映射線程和卸下卷(unmount)線程分別用來在USB存儲設(shè)備做PNP時對本地盤進行卷映射和卸下卷。線程和驅(qū)動層采用事件通信機制。本系統(tǒng)定位于移動存儲設(shè)備,包括移動硬盤、U盤及移動存儲卡等移動存儲介質(zhì)。密文區(qū)是從內(nèi)部可信計算機拷貝數(shù)據(jù)到USB存儲設(shè)備,數(shù)據(jù)在后臺加密處理后存放的區(qū)域;權(quán)限注冊區(qū)則寫入GUID和必要的廠商、運行權(quán)限、內(nèi)外網(wǎng)策略等。
卷映射線程收到底層USB的PNP動作時,首先得到運行環(huán)境,根據(jù)運行環(huán)境得到USB存儲設(shè)備讀寫權(quán)限,然后根據(jù)相關(guān)密碼、密鑰等參數(shù)通過DEVICEIOCONTROL通知驅(qū)動創(chuàng)建本地虛擬盤,廣播DBT_DEVICEARRIVAL消息通知操作系統(tǒng)。
集中注冊與授權(quán),使用前必須經(jīng)過授權(quán)中心統(tǒng)一注冊與授權(quán),包括格式化、實名注冊、標識密級、指定授權(quán)計算機、是否采用口令保護等。授權(quán)后的移動存儲介質(zhì)在涉密計算機上能正常使用,當未授權(quán)的移動存儲設(shè)備接入計算機時,系統(tǒng)可自動關(guān)閉USB端口,使未授權(quán)移動存儲介質(zhì)無法在涉密計算機上使用。
對于正確安裝了移動存儲安全系統(tǒng)客戶端的計算機,客戶端自動上報該機狀態(tài),完成到控制臺服務(wù)器注冊功能,有效防止非法用戶安裝客戶端程序。靈活的注冊策略,可設(shè)定移動存儲介質(zhì)允許的計算機或組;管理員可隨時更改移動存儲介質(zhì)注冊策略和信息,包括遠程策略變更、掛失和注銷等;外出拷貝功能是將COPY到U盤內(nèi)安全存儲的數(shù)據(jù)與外界沒有安裝客戶端程序的計算機進行數(shù)據(jù)交互使用。
應(yīng)用層完成對移動存儲設(shè)備的格式化工作。對卷起始位置寫入密碼、校驗和等信息,提供了FAT32和NTFS兩種文件系統(tǒng)格式。在驅(qū)動中對移動存儲設(shè)備做卷映射,創(chuàng)建類型為FILE_DEVICE_DISK卷過濾驅(qū)動,使用不同的盤符。在IRP_MJ_WRITE和IRP_MJ_READ請求例程中進行加解密。在IRP_MJ_WRITE分發(fā)例程中把相關(guān)的IRP存入隊列。在新創(chuàng)建的系統(tǒng)線程內(nèi)進行卷加密。在IRP_MJ_READ中進行解密。
注冊主要由應(yīng)用層注冊工具完成,可由用戶選擇FAT32或NTFS格式。注冊流程如下:訪問移動存儲盤,輸入需要注冊信息。注冊信息包括:移動存儲盤密碼、標簽名、安全等級、客戶標識名、分區(qū)個數(shù)、內(nèi)網(wǎng)移動存儲策略、外網(wǎng)移動存儲策略、1~5等級的移動存儲策略。
插入安全U盤后,得到處理環(huán)境信息:是否為有效設(shè)備、是否有客戶端代理、客戶標識匹配、在內(nèi)網(wǎng)否、安全等級是否1~5,然后決定應(yīng)用不同策略。驅(qū)動只要掛載存儲卷的UpperFilter即可完成卷的加解密任務(wù)。
在PnP技術(shù)出現(xiàn)之前,中斷和I/O端口的分配是由人手工進行的,您想要這塊聲卡占用中斷5,就找一個小跳線在卡上標著中斷5的針腳上一插。這樣的操作需要用戶了解中斷和I/O端口的知識,并且能夠自己分配中斷地址而不發(fā)生沖突,對普通用戶提出這樣的要求是不切實際的。PnP技術(shù)就是用來解決這個問題的,PnP技術(shù)將自動找到一個不沖突的中斷和I/O地址分配給外部設(shè)備,而完全不需要人工干預(yù)。但是如果您讀懂了上面關(guān)于中斷沖突的那一部分,您就應(yīng)該了解,在中斷資源非常緊張的今天,即使是PnP技術(shù),也不一定能找到一個合適的中斷分配給您剛剛插入的設(shè)備,所以盡量釋放那些沒有必要的中斷,對PnP正常工作也是很有幫助的。
卷過濾驅(qū)動在IRP_MJ_PNP請求時監(jiān)控設(shè)備的插拔消息,程序判斷是否是指定的卷格式,如發(fā)現(xiàn)是移動存儲設(shè)備,則用DeviceIoControl與驅(qū)動層通信。通過對新加卷的監(jiān)控,實現(xiàn)對移動存儲設(shè)備的加解密。應(yīng)用層通過DeviceIoControl與應(yīng)用層的通信獲得用戶密鑰和權(quán)限策略。
在文件系統(tǒng)驅(qū)動層映射卷的流程如下:應(yīng)用程序調(diào)用ZwCreateFile或IoCreateFileSpecifyDeviceObjectHint,I/O管理器確定請求的目標是哪個邏輯卷,檢查是否設(shè)置了VPB_MOUNTED。如此卷在系統(tǒng)引導(dǎo)后未被卷映射,則I/O管理器發(fā)送卷映射請求(IRP_MN_MOUNT_VOLUME)。
對移動存儲設(shè)備的格式化可分為FAT32和NTFS兩種格式。卷過濾驅(qū)動監(jiān)控系統(tǒng)的PNP行為,如移動介質(zhì)頭512B符合卷頭格式,則使用事件通知應(yīng)用層對移動介質(zhì)卷映射,卷映射線程將相關(guān)參數(shù)(盤符、密碼、磁盤屬性)等傳遞到文件系統(tǒng)驅(qū)動,創(chuàng)建一個FILE_DEVICE_DISK類型的過濾設(shè)備;然后創(chuàng)建一個線程,在線程中應(yīng)用ZwCreateFile打開卷設(shè)備Handle,讀取卷頭信息,對卷頭信息進行驗證,如驗證卷頭信息成功,則創(chuàng)建相應(yīng)盤符的符號鏈接;對USB設(shè)備加密模式為XTS;卸下卷線程接到拔下USB存儲器通知事件后,對相應(yīng)盤符進行卸載,清理相關(guān)資源。
應(yīng)用層包括對卷格式化功能,對移動USB設(shè)備合法性驗證、得到USB運行環(huán)境信息、根據(jù)策略信息對USB設(shè)備進行讀寫、禁用等控制。在USB設(shè)備上單開辟一個區(qū)域,用來存取注冊信息以及寫入注冊信息和讀取注冊信息,生成GUID寫入USB設(shè)備的標示,完成卷映射功能。
安全U盤總體設(shè)計序列圖如圖2所示。
在PNP發(fā)生時,驅(qū)動層和應(yīng)用層通過事件進行通信。對卷映射和卸下卷過程各啟動一個線程等待PNP事件發(fā)生。首先驗證卷頭格式,卷頭信息讀到RAM中。卷頭64B是生成密鑰所需的鹽(salt),驅(qū)動層解密讀入的標準卷頭、解密過程中的所有數(shù)據(jù)保存在RAM中。在此過程中需要得到如下參數(shù):
卷頭導(dǎo)出函數(shù)用的PRF參數(shù)(見PKCS#5v2.0)可為:HMAC-SHA-512、HMAC_RIPEMD-160等;廠商標示密碼和讀入的鹽值傳給卷頭密鑰導(dǎo)出函數(shù),生成頭解密密鑰和扇區(qū)解密密鑰;使用的加密算法為AES-256;解密時對照廠商標示密碼及校驗和,密鑰用來解密卷上的扇區(qū)。
主要數(shù)據(jù)結(jié)構(gòu)和參數(shù)如下:
(1)卷映射數(shù)據(jù)結(jié)構(gòu)
typedefstruct
{
IntnReturnCode;//底層sys返回碼
ShortwszHsVolume[MAX_PATH];//卷名稱
PasswordVolumePassword;//用戶密碼
BOOLbCache;//是否在驅(qū)動中緩存密碼
IntnDosDriveNo;//需要卷映射的盤符號
IntBytesPerSector;//扇區(qū)字節(jié)數(shù)
BOOLbSystemVolume;//是否為系統(tǒng)卷
BOOLbPersistenVolume;//是否為隱藏卷
BOOLbMountReadOnly;//是否映射為隱藏卷格式
BOOLbMountRemovable;//是否映射為可移動
//存儲設(shè)備
}MOUNT_STRUCT;
(2)設(shè)備信息結(jié)構(gòu)
typedefstruct_SECDEVICEINFO
{
CHARszProvider[SD_MAX_PROVIDER_LEN];
//設(shè)備提供者名稱
DWORDdwDeviceType;//設(shè)備類型
CHARszDeviceID[SD_MAX_DEVICE_ID_LEN];
//設(shè)備標識
__int64dwDeviceCapacity;//設(shè)備容量
}SECDEVICEINFO,*PSECDEVICEINFO;
(3)策略數(shù)據(jù)結(jié)構(gòu)
typedefstruct_POLICYDATA
{
BOOLbEnableSecPart;//是否啟動保密區(qū)
BOOLbReadSecPart;//是否可讀保密區(qū)
BOOLbWriteSecPart;//是否可寫保密區(qū)
BOOLbEncryptSecPart;//是否加密保密區(qū)
BOOLbEnableExchPart;//是否啟用交換區(qū)
BOOLbReadExchPart;//是否可讀交換區(qū)
BOOLbWriteExchPart;//是否可寫交換區(qū)
BOOLbEncryptExchPart;//是否加密交換區(qū)
BOOLbExchPartToSecPart;
//是否允許從交換區(qū)復(fù)制到保密區(qū)
BOOLbsechPartToSecPart;
//是否允許從保密區(qū)復(fù)制到交換機
}POLICYDATA,*PPOLICYDATA;
應(yīng)用層創(chuàng)建雙線程,等待PNP消息,如接入USB盤符和特定卷格式,則對卷做相應(yīng)卷映射和卸下卷。
對卷卷映射函數(shù):
IntMountVolume(
intdriveNo,
char*volumePath,
Password*password,
MountOptions*mountOptions,
BOOLbReportWrongPassword);
對卷卸下卷函數(shù):
BOOLUnmountVolume
(intnDosDriveNo,BOOLforceUnmount);
創(chuàng)建內(nèi)存中卷格式:
intVolumeWriteHeader(char*header,intea,intmode,Password*password,
char*masterKey,
PCRYPTO_INFO*retInfo,
BOOLbWipeMode);
讀入USB卷頭:
intVolumeReadHeader(char*encryptedHe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 24503-2024礦用圓環(huán)鏈驅(qū)動鏈輪
- 幼兒園承包合同的人力資源配置
- 進出口貿(mào)易合同參考樣本
- 培訓(xùn)機構(gòu)講師合作合同示范
- 污水處理站運營托管合同
- 旅行社餐飲合作合同
- 規(guī)范的人民調(diào)解協(xié)議書格式
- 版權(quán)合作共享協(xié)議書
- 擔(dān)保期限的法律規(guī)定2024年
- 2024年噴漆工職業(yè)危害告知書
- 蘇科版三年級上冊勞動第一課《包書皮》課件(定稿)
- 慢阻肺上課完整版課件
- 銀監(jiān)會英語考試六篇英語閱讀理解和一篇完形填空
- 血液透析中心各項制度
- 聽覺理解能力評估記錄表
- 食品企業(yè)生產(chǎn)部門年終總結(jié)報告精編ppt
- DBJ50∕T-338-2019 輕質(zhì)隔墻條板應(yīng)用技術(shù)標準
- 通用版:溫濕度記錄表
- 《計算機視覺》教學(xué)大綱
- 小清新個人簡歷求職動態(tài)PPT模板
- 胸痹心痛PPT課件
評論
0/150
提交評論