蒙星潮 龍成 潘鵬羽 黃廣
桂林電子科技大學 廣西 桂林 541004
在信息發(fā)展迅速的今天,移動存儲設備的重要性也在逐漸提高,盡管現(xiàn)在有各種云空間、云服務可以用于上傳分享,但是在面對需要保密的文件或者大文件時,移動存儲介質更能夠保護文件使其不被其他公司竊取,傳輸起來更便捷,適合公司內部進行傳輸。而當公司采用移動存儲設備來對內部文件進行交換傳輸時,涉及設備的合法性問題,設備遺失之后文件的保密性問題等。
為了解決這些問題,使公司更好地使用移動存儲設備,提出一個移動存儲介質識別系統(tǒng),該系統(tǒng)能夠對接入系統(tǒng)的移動存儲設備進行合法性檢測,防止內部敏感文件非法復制;內部認證移動存儲設備遺失后存儲文件的保密性。
本系統(tǒng)通過C/S架構,利用四個模塊對移動存儲設備的合法性進行檢測驗證,分別是標簽注冊模塊、標簽認證模塊、進程駐留模塊、通信加密模塊、文件變更監(jiān)控模塊。
本系統(tǒng)通過對設備進行標簽注冊及驗證保證設備的合法性,每個電腦在使用移動存儲設備前都需要進行標簽的注冊,注冊之后通過認證即可使用,并且在注冊、認證以及日志記錄過程中采用國密算法對通信消息進行加密,防止中間人攻擊截取到敏感信息,保證傳輸過程中信息的安全。經(jīng)過注冊的設備的分區(qū)表通過國密算法進行加密,未通過認證的設備無法顯示文件內容,并且會被強制彈出,保證了文件的安全。為了防止人為關閉系統(tǒng),繞過監(jiān)管非法使用移動存儲設備,系統(tǒng)通過任務管理器進行HOOK,實現(xiàn)進程保護功能。文件變更監(jiān)控模塊是對移動存儲設備中的文件變化進行記錄,并且上傳到服務器作為日志保存。
(1)所有的USB設備都有VID(Vendor ID,供應商識別碼)和PID(Product ID,產(chǎn)品識別碼),VID由供應商向USBIF(Implementers Forum,應用者論壇)申請。供應商通常還會給USB設備分配一個SN序列號(SerialNumber)。本系統(tǒng)獲取移動存儲設備信息之后獲取到的PID、VID、SN等信息進行組合[2]生成GUID(Globally Unique Identifier,全局唯一標識符),將GUID寫入保護扇區(qū),將GUID傳輸?shù)紽lask服務端[3]記錄,F(xiàn)lask服務端對移動存儲設備和電腦信息進行記錄。
(2)注冊模塊需要對設備的分區(qū)表進行加密,本系統(tǒng)中采用SM4對稱加密技術對MBR、GPT分區(qū)表進行加密,利用生成的GUID和服務器分發(fā)的秘密值進行派生密鑰,該密鑰由SM3進行消息摘要運算,截取運算結果錢128位作為SM4的密鑰,保證服務器的秘密值的安全,利用生成的密鑰對分區(qū)表進行對稱加密,將加密信息存儲在指定扇區(qū)中,隨后清空分區(qū)表,以達到系統(tǒng)無法識別當前移動存儲介質的分區(qū)情況,進而保護介質內的文件資料安全。
標簽認證模塊是對移動存儲設備進行認證,保證設備的合法性以及設備的正常使用。標簽的認證主要是通過以下三個步驟進行認證。
(1)獲取當前電腦移動存儲設備的信息,如PID、VID、SN等,組合成GUID;
(2)系統(tǒng)將組合而成的GUID發(fā)送至Flask服務端,服務端對GUID做對比認證,將認證結果返回系統(tǒng);
(3)系統(tǒng)根據(jù)認證結果判斷是否對已加密分區(qū)表進行解密,如果標簽認證通過,則標簽認證模塊利用GUID生成的密鑰對加密的分區(qū)表進行解密,解密成功后移動存儲設備能夠正常使用,否則彈出插入的移動存儲設備[9],禁止使用。
進程駐留模塊是為了保證進程的正常運行,防止用戶手動關閉客戶端繞過監(jiān)管使用非法移動存好處設備的一個模塊,通過對任務管理器進行HOOK處理將Open Process函數(shù)進行一個攔截,并替換成自己自定義的Fake Open Process,實現(xiàn)了Ring3級別的進程保護,在任務管理器關閉一個進程時,檢測關閉的進程是否為需要保護的進程。如果是[4],則拒絕其操作,如果不是則正常處理。
文件變更監(jiān)控可以對存儲設備內的文件變更情況進行一個持續(xù)掃描監(jiān)控。系統(tǒng)采用Windows API 中的CreateFile 打開盤符的根目錄,然后利用ReadDirectory ChangesW去循環(huán)監(jiān)控目錄以及子目錄下的文件是否有變更[8]。如果有變更,則將變更內容保存至一個容器中,該容器以移動存儲介質的GUID作為標識符。這樣子可以保證到,一個插入使用過的移動存儲介質,第二次插入到計算機中,即使盤符號變更了,其內容的修改仍然記錄到其對應GUID的容器中,以便后續(xù)向服務器上傳文件變更歷史記錄。
本系統(tǒng)采用國密算法SM2、SM3、SM4進行通信的信息加密,以保證安全可信的消息傳輸,保護數(shù)據(jù)的安全[6-7]。這樣子即使數(shù)據(jù)被中間截獲,攻擊者也無法得知消息的原本內容是什么,也無法對數(shù)據(jù)進行篡改,一旦篡改則會在接收消息的一方校驗消息失敗。這套國密算法是由國家發(fā)布的商用密碼,SM2為公鑰密碼算法、SM3為摘要算法、SM4位為分組密碼算法。
對稱加密通信流程[1]如下:
2.5.1 發(fā)送方使用接收方的對稱加密密鑰對消息進行加密,得到密文。
2.5.2 發(fā)送方計算消息的Hash,并使用接收方的非對稱加密公鑰進行加密后,將二者發(fā)送到接收方。
2.5.3 接收方接收到密文后,使用對稱加密密鑰解密,得到消息明文
2.5.4 接收方使用非對稱加密私鑰解密,得到發(fā)送方的明文Hash。
2.5.5 接收方本地計算消息的Hash,與解密出來的Hash進行比較。如果相同則認為本次通信是可靠安全的,否則是不可信的。
3.1.1 測試客戶端的CPU占用率,如圖1所示。
圖1 客戶端的CPU占用率圖表
3.1.2 測試不同容量的移動存儲介質識別并解密所需時間情況,如圖2所示。
圖2 不同容量的移動存儲介質識別并解密所需時間情況圖表
通過對各個模塊的測試以及上述的系統(tǒng)性能表可以看到,本系統(tǒng)所占用的資源較少,解密速度也滿足正常需要,如果電腦的性能足夠強大,則解密速度可以得到更好的提升,減少解密所花費的時間,CPU的占用率也會減少[5]。本系統(tǒng)不采用傳統(tǒng)的DES密碼算法以及RSA算法,而是創(chuàng)新性地使用國密算法,保證了系統(tǒng)的安全性,增加了攻擊者對信息破譯的難度。
本系統(tǒng)優(yōu)點在于打破傳統(tǒng)加密模式,采用國密算法對通信過程以及分區(qū)表進行加密,在保證不拖慢通信速度的情況下,提升了系統(tǒng)的安全性。采用分區(qū)表加密也是一大優(yōu)勢,對分區(qū)表進行加密,提升了系統(tǒng)的運行速度,而且保證了移動存儲設備的合法性,防止移動存儲設備在陌生電腦上使用,造成信息泄露。缺點在于只支持Windows平臺,不能跨平臺使用;并且對于低性能的電腦不太兼容,需要占用資源稍大。