初羿瑩,施 陽
基于Hash加密的軟件密碼認證方案探究
初羿瑩,施 陽
(佳木斯大學信息電子技術學院,佳木斯154007)
對于軟件密碼尤其是網絡軟件的密碼,如果使用明文進行管理與保管,一旦系統(tǒng)被黑客攻擊或者某一管理人員出于經濟利益進行竊取,可能會產生較為嚴重的用戶經濟或其它方面的損失,出于對保護用戶經濟利益以及個人隱私方面的考慮,一種能夠有效的保護用戶密碼信息并能夠同時進行密碼認證的方案亟待提出。從描述Hash加密的基本原理出發(fā),提出了一種基于Hash加密的網絡軟件密碼認證方案,以此解決網絡軟件的密碼安全問題。最后,通過對不同Hash加密算法在認證過程中的時間對比,確認該方案能夠應用在網絡軟件系統(tǒng)認證的實踐之中。
軟件密碼認證;Hash加密;認證方案
網絡化技術水平的進步以及網絡經濟的發(fā)展,使得當前軟件行業(yè)進入到網絡化的大時代。以各種網絡管理系統(tǒng)為主體的網絡化軟件,已廣泛深入到人們的日常生活當中。毫無疑問,若想獲得網絡化軟件所帶來的便利,用戶首先需要注冊網絡化軟件,并通過軟件的登錄界面進入到系統(tǒng)中,然后才能使用該軟件所提供的各種功能。因此,軟件的服務器保存了大量用戶設定的登錄服務密碼,這些密碼能夠保障用戶正常使用軟件所提供的服務,并為用戶帶來便利。然而,使用明文將這些密碼保存在系統(tǒng)所在的服務器中,可能會存在兩方面的安全隱患。一方面,以黑客攻擊為首的攻擊行為,可能在服務器被攻破的情況下獲取大量的用戶密碼,進而對用戶的隱私或者經濟安全帶來威脅;另一方面,以資質較差的管理人員為首的攻擊行為,可能利用用戶當前的明文密碼去分析用戶其它不同類別的相關軟件的用戶信息,進而對用戶的信息安全造成威脅。因此,如何安全有效地對網絡化軟件的密碼進行管理,使得各種攻擊行為都無法有效獲得用戶密碼成為了當前網絡化軟件研究的一個主要方面,并引起廣大研究者的普遍關注,目前也獲得了一定的研究成果。但這些研究成果尚存在多種亟待改善的不足。針對當前該領域研究存在的不足,以及用戶密碼這一敏感信息自身的特殊性,提出了一種基于Hash加密的網絡軟件密碼認證方案。該方案無需對數據庫中的密碼進行特殊處理,且能夠有效地將用戶密碼進行加密處理,同時由于該方案采用單向加密方式,使得攻擊者無法通過其它手段獲得密鑰進而識別潛在的用戶密碼,具有最大程度的密碼安全保護能力。
Hash加密是一種能夠將任意長度的二進制數值轉換映射為一段固定非等長度的二進制數值的轉換算法,其中轉換后的二進制數值被稱為Hash值,且Hash值是一段數據唯一且極其緊湊的數值表示形式[1]。Hash的加密過程可以形式化表示為:
其中,無論n的取值為多少,k為一個固定取值。
如果Hash一段明文或該段明文中的任一一個字母更改后,其計算后產生的Hash值都將不同,且若要找到Hash值為同一個值的兩個完全不同的輸入,在計算上是不可能實現的。因此,數據的Hash值可以用來檢驗數據的完整性[2]。
目前典型的Hash算法包括MD2、MD4、MD5、SHA-1和SHA256等等。由于Hash加密具有以上優(yōu)點,因此很多人考慮將這樣一種加密算法應用在對密碼等多種信息的認證方案使用上?;谶@樣一種思想,Hash加密算法被首先嘗試用在口令保護的策略研究方面,王新房等人設計了一個Active X Server部件,并基于這種部件給出了相應的C++實現代碼[3],在利用Hash加密進行認證方面進行了有益的嘗試。在此之后,王寧等人為了增強這種Hash加密方法在認證方面的能力,提出了一種能夠克服傳統(tǒng)挑戰(zhàn)/應答方案認證開銷大的缺點,并提供通信雙方的相互認證、避免各種攻擊且能夠有效地保護用戶身份信息的方法[4]。在2014年,張磊等人在總結前人工作的基礎上,開始嘗試在網絡化的教務管理系統(tǒng)中使用Hash加密方法對用戶密碼加以保護[5]。但是,以上種種嘗試僅是對某一特殊指定的軟件系統(tǒng)進行Hash加密的測試和探索,其研究成果不能形成有效的基于Hash加密的密碼保護方案,不能在實踐領域提供較強的理論參考與技術。鑒于此,新提出的保護方案無論在理論參考還是在實踐探索方面均具有較高的參考價值。
一般情況下,網絡化軟件系統(tǒng)的使用包含注冊和登錄兩個基本過程,這樣的一種數據處理方式決定了Hash加密在密碼管理中的應用同樣需要分為兩個主要方面,一方面可認為是利用Hash加密產生密文,密碼在用戶注冊過程中產生;另外一個過程應用在用戶登錄計算,即用戶輸入的登錄密碼在Hash加密狀態(tài)下與系統(tǒng)保存的密碼之間的認證過程,以便用戶登錄軟件系統(tǒng),使用軟件系統(tǒng)的基本功能,這一過程可認為是密碼的認證使用過程。以上這兩個方面可以表示為如圖1所示的兩個子密碼管理功能。
圖1 Hash加密的密碼管理
由這兩個主要的加密密碼處理過程,可以得出基于Hash加密的密碼處理基本流程:
用戶首先在注冊時輸入自身的明文密碼,由系統(tǒng)使用Hash加密將明文密碼加密后獲得密文密碼并保存在服務器當中。由于Hash函數自身的特性,這個保存的密文密碼即使攻擊者獲得之后,也無法獲知密碼的真實情況,且無法通過尋找能獲得相同Hash值的方法對該密碼進行猜測。在用戶登錄階段,用戶輸入明文密碼,系統(tǒng)將明文密碼使用Hash函數進行加密,并獲得加密后的密文密碼。同時,系統(tǒng)從數據庫中調用已保存的密文密碼,并將密文密碼與當前用戶數據與加密后的密文密碼進行比對,當兩組密碼能夠吻合時,用戶登錄該網絡系統(tǒng),否則當前用戶為非法用戶,系統(tǒng)拒絕該用戶的登陸行為,用戶無法獲得系統(tǒng)提供的任何服務。
為了便于理解,算法1給出了使用Hash加密方法進行密文驗證的整個過程:
算法1密文驗證
輸入:密碼明文p、系統(tǒng)保存密碼密文c
int i=3;//此處為第1行,設定用戶可嘗試輸入3次密碼while(i>0)
用戶輸入自身密碼明文p;
系統(tǒng)調用Hash函數對p加密獲得c’;
系統(tǒng)調用保存密文c;
if(c’==c)
輸出1;
break;
else
i--;
end if
輸出0;
end
在算法1中,第1行設定了用戶嘗試登錄輸入密碼的次數,以此防止攻擊者通過窮舉攻擊猜測獲得用戶密碼。第3-12行給出了算法通過Hash加密獲得用戶密文密碼并與系統(tǒng)中保存的密文密碼進行比較并驗證登錄的整個過程,若比較成功則輸出1,此時表示用戶輸入密碼吻合,用戶可進行登錄之后的操作,否則在嘗試3次之后,輸出0,表示當前用戶為非法用戶,可以在規(guī)定的時間范圍之后再次嘗試登錄。
從對算法1的分析中可以獲知,采用Hash加密進行用戶密碼管理的主要手段,是通過登錄過程中加密后的密文與系統(tǒng)中保存的密文之間對比實現的。這種安全機制實際上是取決于Hash函數加密后的密文具有強抗碰撞性的特點,即在計算上是無法找到能夠與當前明文不同的另一段明文在加密后具有相同的Hash值的。因此,使用該方法是能夠為用戶的密碼提供有效的保護的。同時,由于對用戶密碼使用Hash獲得的Hash值,具有與原密碼完全不同的數值或字符組成方式,使得攻擊者即使獲得該值也無法獲知用戶密碼,因而無法通過該密碼猜測用戶在當前網絡化軟件系統(tǒng)中的隱私信息,更無法猜測獲得其它網絡化軟件系統(tǒng)的用戶信息[6]。
在對算法的測試過程中,使用了MD5、SHA1和SHA256作為Hash加密的主要方法對用戶密碼加以測試,測試主要從算法的加密時間和密碼比對兩方面進行[7]。算法的執(zhí)行時間表示為:
其中,te表示加密時間,tp表示加密后字符比對時間。通過實驗比對得到了如圖2所示的幾種Hash加密算法執(zhí)行時間隨密碼長度的變化曲線[8]。
圖2 Hash加密算法的執(zhí)行時間對比
從圖2中可以看到,盡管Hash加密算法在登錄認證的過程中所需的執(zhí)行時間隨用戶密碼長度的增長而逐漸增加,若是所增加的時長尚在用戶可承受的等待時間范圍之內,即使耗時最多的SHA256在輸入密碼較長的情況下,其處理時間仍在微秒級的范圍,因此該方法可應用于具體網絡化軟件密碼管理的實踐當中[9]。
針對網絡化軟件用戶密碼使用明文保存可能會產生信息安全威脅的問題,提出了一種基于Hash加密的網絡化軟件密碼管理方案,該方案通過單向加密利用當前存在的主流Hash加密方法對用戶輸入明文密碼信息進行加密,使得攻擊者無法通過獲得的加密密文獲得用戶密碼信息,更無法分析用戶其它相關隱私信息。同時,利用Hash加密后信息的強碰撞性,使用加密和系統(tǒng)保存密碼校驗的方法,實現非解密情況下的用戶登錄驗證,在保障系統(tǒng)順利運行的情況下,有效保障了用戶個人密碼信息的安全。最后,對實驗獲得的算法執(zhí)行時間進行比對分析,進一步證明了所提出的方法具有較強的實踐性,能夠廣泛應用在各種網絡化軟件的密碼認證過程中,且對軟件的正常運行毫無影響。
[1]Boesgaard C.Applied Cryptography[J].Protocols Algorithms&Source Codein CChapter,2001,9(1-2):873-874.
[2] 谷利澤,鄭世慧,楊義先.現代密碼學教程[M].北京郵電大學出版社,2009.Gu Lize,Zheng Shihui,Yang Yixian.Modern Cryptography Course[M].Beijing University of Posts and Telecommunications Press,2009.
[3] 王新房,易文飛,鄧亞玲.基于單向Hash函數的口令保護策略[J].現代電子技術,2016,(11):21-23+26.Wang Xinfang,Yi Wenfei,Deng Yaling.Password Protection Strategy Based on One-Way Hash Function [J].Modern Electronic Technology,2016,(11):21-23+26.
[4] 王寧,邱緒東,羅嬪.基于hash函數和公鑰算法的一次性口令方案[J].計算機應用研究,2009,26(02):716-718.Wang Ning,Qiu Xudong,Rowepin.One Time Password Scheme Based on Hash Function and Public Key Algorithm[J].Computer Application Research,2009,26(02):716-718.
[5] 張磊,陳美娜,薛丹.高校教務管理的數據安全研究[J].河北軟件職業(yè)技術學院學報,2014,16(02):55-57.Zhang Lei,Chen Meina,Xue Dan.Research on Data Security of University Educational Administration [J].Journal of Hebei Software Institute,2014,16(02):55-57.
[6] 劉軍霞,王曉燕,楊先文.一種基于對稱密碼的USB認證器設計與應用[J].微處理機,2015(3):68-71.Liu Junxia,Wang Xiaoyan,Yang Xianwen.Design and Application of a USBAuthenticator Based on Symmetric Cryptography[J].Microprocessor,2015(3):68-71.
[7] 高穎,葛飛,劉寧,郭淑霞.基于COM技術的虛擬儀表ActiveX 控件開發(fā)[J].微處理機.2013(06):42-45.Gao Ying,Ge Fei,Liu Ning,Guo Shuxia.Development of Virtual Instrument ActiveX Control Based on COMTechnology[J].Microprocessor.2013(06):42-45.
[8] 葉偉偉,歐慶于,柏小武.基于服務架構的密碼服務系統(tǒng)認證方案研究[J].信息網絡安全.2016(05):37-43.Ye Weiwei,Ou Qingyu,Bai XiaoWu.Research on authentication schemeof cryptographic servicesystembased on Service Architecture[J].Information Network Security.2016(05):37-43.
[9] 毛明,陳少暉,袁征,賈永興.關于Hash函數MD5的解析[J].計算機科學.2016(11):106-108.Mao Ming,Chen Shaohui,Yuan Zheng,Jia Yongxing.Analysisof Hash Function MD5,[J].Computer Science.2016(11):106-108.
Research on Software Password Authentication Scheme Based on Hash Encryption
The password used in software especially in network software is easy to be attacked by hackers or stolen by some administrator for commercial purpose,if administrated and stored in plaintext.Then serious economic or other losses will be incurred to the users.In order to cope with this condition,and protect the economic interests of the users and privacy concerns,a method which can provide the service of password information protection as well as password authentication scheme is urgently needed.Starting with describing the basic principle of Hash encryption,a network software password authentication scheme based on Hash encryption is proposed to solve the password security problem of network software.Finally,by comparing the timings of different Hash encryption algorithm during the authentication,it is confirmed that the scheme can be applied in the practice of network software system certification.
Software password authentication;Hash encryption;Authentication scheme
10.3969/j.issn.1002-2279.2017.06.014
A
1002-2279-(2017)06-0062-04
初羿瑩(1996—),女,黑龍江省哈爾濱市人,本科在讀,主研方向:計算機應用。
施陽(1981—),男,江蘇省鎮(zhèn)江市人,講師,主研方向:軟件工程,javaee網絡開發(fā),數據庫應用。
2017-10-24