APP下载

基于MD5与随机数组合的加密算法在用户身份验证中的应用

2016-08-04湖南安全技术职业学院湖南长沙410151

电子测试 2016年13期
关键词:信息系统

徐 畅(湖南安全技术职业学院,湖南长沙,410151)



基于MD5与随机数组合的加密算法在用户身份验证中的应用

徐 畅
(湖南安全技术职业学院,湖南长沙,410151)

摘要:用户身份验证是保障信息系统安全的第一道关卡,本文选取了MD5加密算法,在此算法基础上将MD5与随机数相结合对用户信息进行加密,从而增强了用户身份的识别和验证,保障了整个系统数据信息的安全。

关键词:信息系统;用户身份验证;MD5算法改进

0 引言

随着互联网技术的迅速发展,现在的软件信息系统多半都是基于WEB应用,但是由于 Internet网络协议本身就存在着许多的安全隐患,所以在互联网上进行信息的传输存在着很大的风险,因此有关系统的安全问题变得越来越突出。

基于B/S模式的管理信息系统的登录模块,通常采用在系统登录页面由用户输入用户名和密码的方式进行用户身份认证,而这些用户名和密码信息都是存放在后台数据库的一张用户信息表中。由于用户名和用户密码信息都是通过Internet网进行传输,很容易被有心人盗取,这就意味着用户的所有信息将都被泄露。因此,如何对系统用户的身份进行验证,就变得尤为重要了。

1 用户身份验证过程中遇到的安全问题

系统一般通过输入用户名和密码的方式对用户身份的合法性进行认证。具体做法是:在后台数据库中建立一张用户信息表,这张表中至少包括两个字段:用户名字段和用户密码字段。当用户登录时,程序将用户输入的用户名和密码与数据表中的信息进行比对,如果用户名和密码都一致,说明这个用户是一个合法用户,通过身份验证,允许进入系统;反之,则是一个非法用户,拒绝进行系统访问。

由于用户名和密码在数据表中存储的时候,通常采用的就是原文保存,所以这一种用户名加密码的身份验证方式存在了很大的风险。首先,由于用户名和密码通过开放的互联网进行传输,很容易被监听软件窃取;其次,如果有人得到存放用户信息的数据表,这就意味着用户所有的信息都将泄露无疑;特别是具有系统最高权限的系统管理员,可以直接查看系统中的任何信息,这些对于系统来说都是很危险的。

对于以上所提到的用户身份验证的问题,其实可以采用MD5加密算法来解决。

2 MD5加密算法的一般应用

MD5的全称是Message一Digest algorithm5(信息一摘要算法),MD5算法是一种单向不可逆的算法,也就是说对于经过MD5算法所生成的密文求逆对应着无穷个解。

在新用户注册的时候,用户密码首先进行了一次MD5加密运算,然后才被保存到数据库当中。当用户在希望登录系统时,首先进入到登录页面,并且在页面里输入用户名和用户密码,客户端会对刚输入的用户密码进行一次MD5加密运算,然后再将用户名和加密后的用户密码传给服务器;服务器根据接收到的用户名,查找到数据库当中用户注册时保存的加了密的用户密码,再和刚接收到的加密用户密码进行比较;如果经过MD5加密运算后的用户密码和数据库中存储的用户密码密文一致,则通过该用户的身份验证,否则拒绝访问。整个认证过程如图1所示。

图1 采用MD5算法实现用户身份认证过程

在这一用户身份认证过程当中,用户密码经过MD5加密算法后以密文的形式在网络上进行传送,即使被黑客和监听软件盗窃,也需要进行解密,才能得到用户的真实密码。同时用户密码的存储是以密文的形式保存在数据库当中,这也可以防止有系统管理员权限的用户直接查看用户密码。

然而这种用户身份认证方式,却存在一个很大的安全隐患,那就是如果黑客窃取到了用MD5算法加密后的用户密码,他到底能不能解密。而目前对于MD5加密算法的攻击通常采用以下方式:

1)采用穷举法解密,也就是平时所讲的“暴力破解”。

2)生日攻击。这是一种应用概率统计的方式来对MD5进行破解,本质就是尝试找出一对不同的输入,对其采用哈希函数运算后得到产生的输出是相同的,这样的一对输入被称为匹配对。

3)利用模差分攻击方法和明文修改技术,在2005年山东大学的王小云教授在国际密码学会会议上公布了对MD5的碰撞结果,她利用模差分方法找到了两个有着相同MD5值的不同数据段。

4)利用已有的信息积累的数据查找相应的MD5结果值,例如彩虹表。

综上所述,MD5加密算法还是容易受到攻击的,如果一旦用户密码设置过短,或者密码组成太简单,那么这个密码就很容易被攻破。

3 基于MD5与随机数组合的加密算法的应用

鉴于以上情况,所以为了更好地保护用户密码的安全,系统在用户身份认证的过程中除了使用MD5加密用户密码,还增加了一个随机数。这使得每次客户端向服务器所传输的用户密码信息变成了一个随机产生的密文,这在很大程度上抵御了重放攻击和字典攻击,使系统更加安全。这种基于MD5与随机数组合的加密算法在用户身份认证过程当中的具体实现,如图2所示。

图2 采用优化后的MD5算法实现用户认证过程

具体实现步骤:

1)当用户提出登录请求时候,服务器会传给客户端一个随机数。

2)用户在登录页面中输入用户名和用户密码,客户端首先将用户密码进行一次MD5加密运算;然后将加密运算以后的结果和服务器传来的随机数合并,成为一个新的字符串。接着对这个新字符串再进行一次MD5加密运算,并将最后的结果连同用户名一起传给服务器。

3)服务器收到客户端传来的用户名和最后结果后,首先根据用户名在数据库中找到对应的用户密码密文,并将这一用户密码密文和之前产生的随机数合并后进行一次MD5加密运算。将这次运算的结果和客户端传来的最后结果进行比对,如果一致,则设置一个服务器端会话变量session返回客户端,确定用户认证通过。

这种基于MD5与随机数组合的加密算法的用户身份认证,由于服务器每一次产生的随机数都是不相同的,所以即使被黑客或监听软件窃取了用户的密码,也无法对系统进行重放攻击和字典攻击,使得在一定程度上大大地提高了系统的安全性。由于数据库当中的用户密码信息经过了MD5算法加密后才保存,所以即使是系统管理员也不能直接看到用户密码的明文。

4 结束语

本文将MD5与随机数相结合的加密算法的设计,是对MD5加密算法进行了一定的优化;在不改变原有MD5加密算法的基础上,提高了加密后密文的复杂度。这种加密技术,任何编程语言都能轻松、简单地实现。其他人在不清楚随机数生成方式的情况下,想采用一般的“彩虹表”或“跑字典”的MD5攻击方式,去破解出密码值,几乎是不可能的;从而增强了用户身份的识别和验证,保障了整个系统数据信息的安全。

参考文献

[1]王磊,常乐,姜立. 数字化校园统一身份认证系统设计研究[J].辽宁高职学报. 2013(05)

[2]孙维国,李浩然.MD5算法在数据安全中的应用及安全性分析[J]. 微计算机应用. 2010(10)

作者简介

徐畅(1982-)女,湖南安全技术职业学院讲师,主要研究方向:计算机应用

Application of Improved MD5 Algorithm for User Authentication

Xu Chang
(Hunan Vocational Institute of Safety Technology Hunan Changsha,410151)

Abstract:The user authentication is the first hurdle to ensure the security of information system,this paper selected the MD5 encryption algorithm,in this based on MD5 algorithm combined with a random number of user information encryption,thereby enhancing the user identity identification and verification,to ensure the safety of the whole system of data information.

Keywords:information system;The user authentication;The MD5 algorithm to improve

猜你喜欢

信息系统
企业信息系统安全防护
浅析建材监管信息系统的应用
基于并行构件技术的医疗信息系统的设计与实现
基于区块链的通航维护信息系统研究
装备保障信息系统集成研究现状
信息系统审计中计算机审计的应用
企业综合节能信息系统SciMES
基于环境的军事信息系统需求参考模型
高速公路信息系统维护知识库的建立和应用
基于SG-I6000的信息系统运检自动化诊断实践