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