斯琴,駱俊鋒,王鑫林
(北方工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,北京100144)
基于多重身份認(rèn)證的文件加密系統(tǒng)的實(shí)現(xiàn)
斯琴,駱俊鋒,王鑫林
(北方工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,北京100144)
針對計(jì)算機(jī)中重要文件明文存儲帶來的一系列隱患問題,該文利用MFC框架,通過對稱密碼體制中的Caesar、DES、AES算法,進(jìn)一步結(jié)合口令,USBKey,指紋識別儀等多重身份認(rèn)證,設(shè)計(jì)并實(shí)現(xiàn)了一款安全級別遞增的基于多重身份認(rèn)證的文件加密系統(tǒng)。在該基礎(chǔ)上,使用單向散列算法加密存儲后臺數(shù)據(jù),確保認(rèn)證信息及存儲文件的完整性和安全性。
身份認(rèn)證;文件;加密;USBkey
Abstract:In view of the hidden problems caused by the storage of important documents in plaintext,this paper aim to design and implement an encryption file system Based on multiple identity authentication.By using MFC framework and symmetric en?cryption,including Caesar,DES,AES algorithm,combining with the password,USBKey,fingerprint recognition,the system can finally achieve an increasing level of security among different users.What’s more,we use one-way hash algorithm for data en?cryption storage in the server database,which ensure the integrity and safety of the authentication information.
Key words:identity authentication;file encryption;USBkey
當(dāng)今社會,隨著科技高速發(fā)展,個人計(jì)算機(jī)大規(guī)模普及,文件數(shù)字化趨勢日益增強(qiáng)。當(dāng)不可避免的多用戶共用一臺計(jì)算機(jī)時,傳統(tǒng)方式將重要或私密文件明文存儲于計(jì)算機(jī)中會帶來的一系列安全問題,例如:違規(guī)篡改,秘密拷貝,敏感數(shù)據(jù)非法泄密等。[1]因此,如何保障文件安全存儲成為現(xiàn)在亟待解決的重中之重。
針對上述問題,相比較于其他系統(tǒng)單純依賴加密算法來保障文件安全,本文提出將身份驗(yàn)證與加密技術(shù)結(jié)合,通過后臺數(shù)據(jù)庫對注冊用戶信息集中鑒權(quán)管理。采用口令,usbkey和指紋識別儀等多重認(rèn)證方式,硬件軟件相輔相成,并設(shè)有一二三級用戶權(quán)限,分別對應(yīng)不同加密算法,權(quán)限越高,加密級別越高。最終達(dá)到基于多重身份認(rèn)證的文件一鍵加密,為個人或企業(yè)重要隱私文件的管理提供了一種更加安全可靠的解決思路。
1)哈希算法MD5
MD5,Message-Digest Algorithm 5(信息-摘要算法5),是計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),[2]通過相應(yīng)算法,可將任何長度的數(shù)據(jù)運(yùn)算為某一固定長度值,用于消息的完整性保護(hù)。具有壓縮性,容易計(jì)算性,抗修改性、強(qiáng)抗碰撞性。
根據(jù)上述特點(diǎn),本文后臺數(shù)據(jù)庫中將所有用戶注冊信息加密存儲,當(dāng)用戶傳入登錄數(shù)據(jù),系統(tǒng)自動通過MD5算法得到數(shù)值,與已存信息進(jìn)行比對,若匹配成功,則驗(yàn)證成功,允許登錄,反之則拒絕提供服務(wù)。
2)對稱密鑰體制
在常見的加密算法中,按密鑰類型分類,可以將加密算法分為以下兩類:對稱加密算法和非對稱加密算法。本文對三個級別的用戶文件均使用對稱加密算法,即加密解密共用同一密鑰,本文系統(tǒng)使用的是典型的對稱加密算法DES和AES。
DES(Data Encrypted Standard),1977年被美國聯(lián)邦政府的國家標(biāo)準(zhǔn)局確定為聯(lián)邦資料處理標(biāo)準(zhǔn)(FIPS),并授權(quán)在非密級政府通信中使用。[2]算法核心原則為混淆和擴(kuò)散。經(jīng)過初始置換,分組異或,16輪迭代,逆置換四個步驟得到密文,加密速度較快,安全級別較高。本文將其作為二級用戶的加密算法,保障文件安全。
三級用戶作為權(quán)限最高的用戶,我們賦予其最高級別的加密方式:AES(高級加密標(biāo)準(zhǔn))。AES,對稱密鑰加密中最流行的算法之一,是一種迭代分組密碼算法,加密效果最可觀,而且其加解密速度快的特點(diǎn),適合用戶頻繁加解密文件的需求。
1)基于簡單口令認(rèn)證
本文為一級用戶提供初級認(rèn)證機(jī)制,輸入正確用戶名密碼即可正確登錄系統(tǒng)。
2)基于USBkey的身份認(rèn)證
USBKey是一種USB接口的硬件設(shè)備,內(nèi)置智能卡芯片,可以存儲用戶的密鑰或數(shù)字證書。[3]基于USBKey的身份認(rèn)證安全方便,軟件硬件相結(jié)合,利用USBKey內(nèi)置的密碼算法可實(shí)現(xiàn)實(shí)體認(rèn)證,即Usbkey與文件加密系統(tǒng)認(rèn)證和身份認(rèn)證,即用戶與USBkey之間的認(rèn)證。其雙向認(rèn)證的特點(diǎn)可確保登錄系統(tǒng)的用戶身份。
3)基于指紋儀的身份認(rèn)證
基于指紋儀的認(rèn)證為最簡易可行,且需要認(rèn)證者親臨的驗(yàn)證方法。本指紋儀使用ZKFinger10.0版本高速算法,擁有識別精度高、比對速度快、硬件可靠耐用、系統(tǒng)穩(wěn)定、功能強(qiáng)大等優(yōu)點(diǎn)[4]。將其與用戶名口令,USBkey結(jié)合,完美的保障了登錄者的身份,確保了文件私密性的高度安全性。
本文系統(tǒng)以基于多重身份認(rèn)證的登錄方式為基礎(chǔ),同時結(jié)合改良版Caeser,DES和AES算法對文件進(jìn)行快速加密,滿足用戶多樣需求,保證私密文件的安全性和不可共享性。系統(tǒng)主要使用MFC類庫創(chuàng)建界面客戶端及登陸安全服務(wù),實(shí)現(xiàn)對驅(qū)動文件的加載及啟動。[5]系統(tǒng)運(yùn)行時,首先需要選擇用戶權(quán)限,一級權(quán)限用戶使用用戶名和密碼實(shí)現(xiàn)登錄。二級權(quán)限用戶在通過用戶名密碼的驗(yàn)證后,還需要經(jīng)過USBKey的身份驗(yàn)證方可進(jìn)入系統(tǒng)。三級權(quán)限用戶,作為最高級別用戶,需要經(jīng)過三重身份驗(yàn)證,即用戶名密碼,USBkey和指紋儀,其所享有的加密方法,也是安全級別最高的AES算法。
圖1 系統(tǒng)流程圖
3.2.1 認(rèn)證模塊
認(rèn)證模塊中重點(diǎn)技術(shù)為USBkey和指紋識別儀,下面進(jìn)行詳細(xì)論述。
1)USBKey
基于USBKey身份驗(yàn)證主要有兩種應(yīng)用模式:一是基于沖擊/響應(yīng)(挑戰(zhàn)/應(yīng)答)的認(rèn)證模式,二是基于PKI體系的認(rèn)證模式,在本套系統(tǒng)中,USBKey使用的模式是基于沖擊/響應(yīng)(挑戰(zhàn)/應(yīng)答)的認(rèn)證模式[5],它和傳統(tǒng)的用戶名、密碼方式相結(jié)合,提高登錄的安全性和非法入侵的難度。
使用USBKey進(jìn)行驗(yàn)證的流程如下:首先將USBKey插入USB接口中,客戶端向系統(tǒng)發(fā)出一個驗(yàn)證請求;系統(tǒng)接到驗(yàn)證請求后生成一個隨機(jī)數(shù)并傳送給客戶端,這一過程即為“沖擊”;USBKey使用從客戶端將收到的隨機(jī)數(shù)與存儲在USBKey中的密鑰進(jìn)行HMAC-MD5運(yùn)算并得到一個結(jié)果,并將該結(jié)果作為認(rèn)證證據(jù)傳給系統(tǒng),這一過程被稱為“響應(yīng)”;同時,系統(tǒng)也使用該隨機(jī)數(shù)與存儲在數(shù)據(jù)庫中的該用戶密鑰進(jìn)行HMACMD5運(yùn)算,如果計(jì)算出的兩個值結(jié)果一致,那么就認(rèn)定是合法用戶登錄,否則就是非法的。
圖2 USBKey登錄認(rèn)證界面
2)指紋儀
在指紋儀認(rèn)證模塊中,指紋儀采用的是ZKFinger10.0高速算法,需要對指紋識別閥值進(jìn)行設(shè)定,一般推薦為Threshold設(shè)置為10,此時的誤判率大約是0.001%,拒絕率大約在1.5%-2%之間,OneToOneThreshold的推薦值為10,Score推薦值為8。
首先在注冊時需要錄入指紋,錄入三次,如果指紋的質(zhì)量沒有達(dá)到要求,就需要繼續(xù)錄入直到三次的指紋質(zhì)量都達(dá)標(biāo)為止。在登錄驗(yàn)證時,需要認(rèn)證者親自認(rèn)證,如果驗(yàn)證時指紋質(zhì)量沒有達(dá)到要求,或者驗(yàn)證與存儲的模板不匹配,就不會登錄成功。
圖3 指紋驗(yàn)證登錄界面
3.2.2 加密模塊
加密模塊中所用到的重點(diǎn)技術(shù)為對稱密碼體制中典型加密方式:DES算法和AES算法。不同權(quán)限用戶可使用不同加密算法。本文為二級用戶提供DES加密,為三級用戶提供AES加密。實(shí)驗(yàn)效果如下:用戶選擇想要加密的文件。
圖4 加密文件選擇
選擇好后點(diǎn)擊確認(rèn),系統(tǒng)自動為文件一鍵加密,快速方便。解密過程同理。同時,解密后的文件可在系統(tǒng)右側(cè)進(jìn)行預(yù)覽,效果如下,十分便捷。
本文為解決不可避免多用戶共用一臺計(jì)算機(jī)時,私密文件遭到泄露和破壞的問題,設(shè)計(jì)并實(shí)現(xiàn)一款經(jīng)過身份驗(yàn)證后方可登錄,由用戶主動選擇加密方式的靜態(tài)文件加密系統(tǒng)。經(jīng)過可行性分析,達(dá)到為隱私文件添加多重保護(hù)的目的,同時,后臺認(rèn)證信息以MD5形式存儲,極大增強(qiáng)了破解難度,有效保障了文件的安全性。
[1]張媛媛,蘇靈波,崔燕.一種面向數(shù)字檔案文件的多重加密方法[J].業(yè)務(wù)研究,2012,6.
[2]谷利澤,鄭世慧,楊義先.現(xiàn)代密碼學(xué)教程[M].北京:北京郵電大學(xué)出版社,2002.
[3]王雄,婁嘉鵬,李冬冬.具有認(rèn)證的安全增強(qiáng)型文件加密系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(9).
[4]王輝,吳建文.指紋驗(yàn)證系統(tǒng)在社保管理中的應(yīng)用[J].多維空間,2002,11.
[5]劉樹鵬,戴舜,許博臣.基于Windows下的文件保密隱藏系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識與技術(shù),2016(9).
Implementation of File Encryption System Based on Multiple Identity Authentication
SI Qin,LUO Jun-feng,WANG Xin-lin
(College of Computer,North China University of Technology,Beijing 100144,China)
TP393
A
1009-3044(2017)24-0036-02
2017-07-15
該文受北京市大學(xué)生科學(xué)研究與創(chuàng)業(yè)行動計(jì)劃資助