基于Hash加密的软件密码认证方案探究
2018-01-04初羿莹
初羿莹,施 阳
基于Hash加密的软件密码认证方案探究
初羿莹,施 阳
(佳木斯大学信息电子技术学院,佳木斯154007)
对于软件密码尤其是网络软件的密码,如果使用明文进行管理与保管,一旦系统被黑客攻击或者某一管理人员出于经济利益进行窃取,可能会产生较为严重的用户经济或其它方面的损失,出于对保护用户经济利益以及个人隐私方面的考虑,一种能够有效的保护用户密码信息并能够同时进行密码认证的方案亟待提出。从描述Hash加密的基本原理出发,提出了一种基于Hash加密的网络软件密码认证方案,以此解决网络软件的密码安全问题。最后,通过对不同Hash加密算法在认证过程中的时间对比,确认该方案能够应用在网络软件系统认证的实践之中。
软件密码认证;Hash加密;认证方案
1 引言
网络化技术水平的进步以及网络经济的发展,使得当前软件行业进入到网络化的大时代。以各种网络管理系统为主体的网络化软件,已广泛深入到人们的日常生活当中。毫无疑问,若想获得网络化软件所带来的便利,用户首先需要注册网络化软件,并通过软件的登录界面进入到系统中,然后才能使用该软件所提供的各种功能。因此,软件的服务器保存了大量用户设定的登录服务密码,这些密码能够保障用户正常使用软件所提供的服务,并为用户带来便利。然而,使用明文将这些密码保存在系统所在的服务器中,可能会存在两方面的安全隐患。一方面,以黑客攻击为首的攻击行为,可能在服务器被攻破的情况下获取大量的用户密码,进而对用户的隐私或者经济安全带来威胁;另一方面,以资质较差的管理人员为首的攻击行为,可能利用用户当前的明文密码去分析用户其它不同类别的相关软件的用户信息,进而对用户的信息安全造成威胁。因此,如何安全有效地对网络化软件的密码进行管理,使得各种攻击行为都无法有效获得用户密码成为了当前网络化软件研究的一个主要方面,并引起广大研究者的普遍关注,目前也获得了一定的研究成果。但这些研究成果尚存在多种亟待改善的不足。针对当前该领域研究存在的不足,以及用户密码这一敏感信息自身的特殊性,提出了一种基于Hash加密的网络软件密码认证方案。该方案无需对数据库中的密码进行特殊处理,且能够有效地将用户密码进行加密处理,同时由于该方案采用单向加密方式,使得攻击者无法通过其它手段获得密钥进而识别潜在的用户密码,具有最大程度的密码安全保护能力。
2 Hash加密
Hash加密是一种能够将任意长度的二进制数值转换映射为一段固定非等长度的二进制数值的转换算法,其中转换后的二进制数值被称为Hash值,且Hash值是一段数据唯一且极其紧凑的数值表示形式[1]。Hash的加密过程可以形式化表示为:
其中,无论n的取值为多少,k为一个固定取值。
如果Hash一段明文或该段明文中的任一一个字母更改后,其计算后产生的Hash值都将不同,且若要找到Hash值为同一个值的两个完全不同的输入,在计算上是不可能实现的。因此,数据的Hash值可以用来检验数据的完整性[2]。
目前典型的Hash算法包括MD2、MD4、MD5、SHA-1和SHA256等等。由于Hash加密具有以上优点,因此很多人考虑将这样一种加密算法应用在对密码等多种信息的认证方案使用上。基于这样一种思想,Hash加密算法被首先尝试用在口令保护的策略研究方面,王新房等人设计了一个Active X Server部件,并基于这种部件给出了相应的C++实现代码[3],在利用Hash加密进行认证方面进行了有益的尝试。在此之后,王宁等人为了增强这种Hash加密方法在认证方面的能力,提出了一种能够克服传统挑战/应答方案认证开销大的缺点,并提供通信双方的相互认证、避免各种攻击且能够有效地保护用户身份信息的方法[4]。在2014年,张磊等人在总结前人工作的基础上,开始尝试在网络化的教务管理系统中使用Hash加密方法对用户密码加以保护[5]。但是,以上种种尝试仅是对某一特殊指定的软件系统进行Hash加密的测试和探索,其研究成果不能形成有效的基于Hash加密的密码保护方案,不能在实践领域提供较强的理论参考与技术。鉴于此,新提出的保护方案无论在理论参考还是在实践探索方面均具有较高的参考价值。
3 Hash加密在密码管理中的应用
一般情况下,网络化软件系统的使用包含注册和登录两个基本过程,这样的一种数据处理方式决定了Hash加密在密码管理中的应用同样需要分为两个主要方面,一方面可认为是利用Hash加密产生密文,密码在用户注册过程中产生;另外一个过程应用在用户登录计算,即用户输入的登录密码在Hash加密状态下与系统保存的密码之间的认证过程,以便用户登录软件系统,使用软件系统的基本功能,这一过程可认为是密码的认证使用过程。以上这两个方面可以表示为如图1所示的两个子密码管理功能。
图1 Hash加密的密码管理
由这两个主要的加密密码处理过程,可以得出基于Hash加密的密码处理基本流程:
用户首先在注册时输入自身的明文密码,由系统使用Hash加密将明文密码加密后获得密文密码并保存在服务器当中。由于Hash函数自身的特性,这个保存的密文密码即使攻击者获得之后,也无法获知密码的真实情况,且无法通过寻找能获得相同Hash值的方法对该密码进行猜测。在用户登录阶段,用户输入明文密码,系统将明文密码使用Hash函数进行加密,并获得加密后的密文密码。同时,系统从数据库中调用已保存的密文密码,并将密文密码与当前用户数据与加密后的密文密码进行比对,当两组密码能够吻合时,用户登录该网络系统,否则当前用户为非法用户,系统拒绝该用户的登陆行为,用户无法获得系统提供的任何服务。
为了便于理解,算法1给出了使用Hash加密方法进行密文验证的整个过程:
算法1密文验证
输入:密码明文p、系统保存密码密文c
int i=3;//此处为第1行,设定用户可尝试输入3次密码while(i>0)
用户输入自身密码明文p;
系统调用Hash函数对p加密获得c’;
系统调用保存密文c;
if(c’==c)
输出1;
break;
else
i--;
end if
输出0;
end
在算法1中,第1行设定了用户尝试登录输入密码的次数,以此防止攻击者通过穷举攻击猜测获得用户密码。第3-12行给出了算法通过Hash加密获得用户密文密码并与系统中保存的密文密码进行比较并验证登录的整个过程,若比较成功则输出1,此时表示用户输入密码吻合,用户可进行登录之后的操作,否则在尝试3次之后,输出0,表示当前用户为非法用户,可以在规定的时间范围之后再次尝试登录。
从对算法1的分析中可以获知,采用Hash加密进行用户密码管理的主要手段,是通过登录过程中加密后的密文与系统中保存的密文之间对比实现的。这种安全机制实际上是取决于Hash函数加密后的密文具有强抗碰撞性的特点,即在计算上是无法找到能够与当前明文不同的另一段明文在加密后具有相同的Hash值的。因此,使用该方法是能够为用户的密码提供有效的保护的。同时,由于对用户密码使用Hash获得的Hash值,具有与原密码完全不同的数值或字符组成方式,使得攻击者即使获得该值也无法获知用户密码,因而无法通过该密码猜测用户在当前网络化软件系统中的隐私信息,更无法猜测获得其它网络化软件系统的用户信息[6]。
在对算法的测试过程中,使用了MD5、SHA1和SHA256作为Hash加密的主要方法对用户密码加以测试,测试主要从算法的加密时间和密码比对两方面进行[7]。算法的执行时间表示为:
其中,te表示加密时间,tp表示加密后字符比对时间。通过实验比对得到了如图2所示的几种Hash加密算法执行时间随密码长度的变化曲线[8]。
图2 Hash加密算法的执行时间对比
从图2中可以看到,尽管Hash加密算法在登录认证的过程中所需的执行时间随用户密码长度的增长而逐渐增加,若是所增加的时长尚在用户可承受的等待时间范围之内,即使耗时最多的SHA256在输入密码较长的情况下,其处理时间仍在微秒级的范围,因此该方法可应用于具体网络化软件密码管理的实践当中[9]。
4 结束语
针对网络化软件用户密码使用明文保存可能会产生信息安全威胁的问题,提出了一种基于Hash加密的网络化软件密码管理方案,该方案通过单向加密利用当前存在的主流Hash加密方法对用户输入明文密码信息进行加密,使得攻击者无法通过获得的加密密文获得用户密码信息,更无法分析用户其它相关隐私信息。同时,利用Hash加密后信息的强碰撞性,使用加密和系统保存密码校验的方法,实现非解密情况下的用户登录验证,在保障系统顺利运行的情况下,有效保障了用户个人密码信息的安全。最后,对实验获得的算法执行时间进行比对分析,进一步证明了所提出的方法具有较强的实践性,能够广泛应用在各种网络化软件的密码认证过程中,且对软件的正常运行毫无影响。
[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].河北软件职业技术学院学报,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 控件开发[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] 叶伟伟,欧庆于,柏小武.基于服务架构的密码服务系统认证方案研究[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—),男,江苏省镇江市人,讲师,主研方向:软件工程,javaee网络开发,数据库应用。
2017-10-24