基于B/S系统的暴力破解防御技术研究

2021-03-15 06:59刘世雄张俊
电脑知识与技术 2021年1期

刘世雄 张俊

摘要:随着互联网的普及和发展,基于B/S系统下的浏览器网站存在许多安全性问题,其中暴力破解是对B/S系统具有威胁的恶意攻击技术之一。其原理是攻击者系统的嵌套和循环组合有可能的用户信息,向服务器发送登录请求,直到登录成功为止。该文分析了暴力破解的原理及特点,研究了防止暴力破解的方法,针对B/S系统的特点,提出了验证码认证、限定失败登录次数、认证日志监控、增大密码复杂度、判断用户登录ip、Json Web Token安全认证机制等防范方法,能够有效增强B/S系统的安全性。

关键词:暴力破解;B/S系统;WEB安全;cookie泄漏

中图分类号:TP393        文献标识码:A

文章编号:1009-3044(2021)01-0058-03

Abstract:With the popularization and development of Internet, there are many security problems in browser websites based on B / s system, among which brute force attack is one of the malicious attack technologies that threaten B / s system. The principle is that the nesting and looping combination of the attacker's system may combine the user information and send the login request to the server until the login succeeds. This paper analyzes the principle and characteristics of brute force cracking, and studies the methods to prevent brute force cracking. According to the characteristics of B / s system, it puts forward some preventive methods, such as authentication code authentication, limiting the number of failed logins, authentication log monitoring, increasing password complexity, judging the user's login IP, and JSON web token security authentication mechanism, which can effectively enhance the security of B / S system.

Key words: crack by violence; B/S system; WEB security; cookie leakage

由于网络的快速发展,B/S系统的功能越来越强大。B/S系统通过浏览器即可进行访问,十分便捷。同时B/S系统也产生了许多安全性问题[1]。其中一个重要的web安全性问题就是暴力破解。目前的暴力破解主要通过字典、概率模型、穷举等方式进行破解[2]。一旦破解成功,就会造成敏感信息的泄漏,系统的崩溃等恶性结果。本文针对暴力破解的原理及特点,从验证码认证、限定失败登录次数、认证日志监控、增大密码复杂度、判断用户登录ip、JWT登录认证机制等几个方面提出了防止暴力破解的有效手段。增强了web系统的安全性。

1 暴力破解原理及方法

1.1 暴力破解的原理

暴力破解通过穷举、概率模型、字典匹配等方式对用户的账号密码进行破解,通过服务器的验证。最终达到侵入账号的目的。

1.2 暴力破解的方法

1.2.1 暴力穷举

针对大部分用户的账号密码简单等特点,攻击者通过一些特殊编写的软件随机生成用户名和密码,对后台系统发起登录请求。通常的暴力破解都有特定的字典庫,比如说学号、电话、身份证号等。确定一个账号之后,对密码进行大规模的匹配,直到匹配成功为止。不同密码的暴力破解时间如表1所示。

1.2.2 Cookie泄漏

近几年,HTTP协议利用其正确、高速、正确、无状态等特点对B/S系统的发展起了重要的推动作用。但正是由于HTTP的无状态协议,导致了B/S系统会因为cookie泄漏而造系统安全问题。攻击者在实施暴解之前,需要构造HTTP包所需要的参数。由于HTTP协议无状态的特点。在相同的数据的情况下,服务器无法区别攻击者还是一般用户。为了解决这个问题,传统网站一般会在服务器保存一份用户的登录信息,传递给浏览器,保存在Cookie中,方便服务器下次进行识别。大多数网站的Cookie都在网络传输中明文传输。极易被抓包程序截获,一旦获取了Cookie和服务器解析算法(md5, Base64,token等),就可以伪造登录令牌,获得网站的数据。

暴力破解成功后即可获取合法用户的权限,甚至可以破解管理员的密码以达到控制整个网站。暴力破解危害性极大。

2 暴力破解防御方法

2.1 使用验证码进行验证登录

传统的网站使用的验证码大都不会过期,以静态验证码居多。存在一个验证码反复使用的现象,容易被破解器进行扫描并解析。经过破解器解析过后的验证码就失去了验证的作用。

针对传统验证码存在的弊端,可以使用动态验证码、短信验证、语音验证、生成一些简单问题进行验证。动态生成不同类型的验证码,增加破解的难度。登录时先验证验证码是否正确,在一定程度上降低系统被暴力破解的风险。

2.2 限定失败登录次数

传统网站不会对同一用户失败登录次数进行限制,给使用穷举或字典的破解方式提供了可乘之机。通过限定失败登录次数,当账户失败登录达到一定次数时,对该账户进行临时锁定,限定账户状态图如图1所示。

2.3 认證日志监控

目前市面上的网站都不会对用户登录网站前后的行为或者页面停留的时间进行记录。这对于管理人员进行安全维护工作造成了极大的不便。

认证日志监控对异常登录、删除信息、修改信息等敏感操作进行日志记录[3]。当用户的敏感操作次数达到一定次数后触发报警机制,向管理员发送警告信息,管理员可对该相关信息和账号进行处理。

2.4 增大密码复杂度

传统网站在用户的密码没有加以限制,导致一些用户的密码过于简单甚至可能包含个人信息,在遇到穷举或者密码字典这类暴力破解方式时极易被破解,对网站及用户个人造成极大损失[4]。

增大密码复杂度,即在用户注册或者修改密码时,对用户输入的密码加以限制如表2所示。当用户输入的密码不符合要求时将无法进行注册或者修改密码直到用户输入的密码符合规则为止。

2.5 判断用户登录IP

传统网站忽略了对用户登录时的IP地址进行记录和判断等操作。即在用户每次登录时获取当次登录时的IP,通过一定的登录次数后确定用户常用的IP登录地址,当该用户下次进行登录时,将本次登录的IP地址与常用IP地址进行比较,若IP不相同,则进行其他方式验证,比如手机短信验证。

2.6 JsonWebToken 安全认证机制

在对用户登录身份的鉴定的实现中,传统网站是在服务器存储一个session,给客户端返回一个Cookie,存在着Cookie泄漏的风险。

基于JWT的token认证机制,token信息可能存放在Cookie中也可能在HTTP的Authorization头中[5],当用户使用用户名和密码来请求服务器后,服务器的登录处理的Login Action层调用认证服务进行用户名密码认证,验证通过后Login Action层调用用户信息服务获取用户信息并返回。之后Login Action从配置文件中获取Token签名生成的密钥信息,进行Token的生成,生成Token的过程中可以调用第三方JWT Lib生成签名后的JWT数据并将其设置到Cookie对象中,并重定向到首页,完成登录过程。

JWT验证方式会大大地降低Cookie泄漏的风险,独立的认证系统会有独一无二的“盐值”,相关信息系统不会进行验证和授权的功能。增强了系统的安全性。

3 结论

伴随B/S系统在互联网中的普及,用户的隐私数据和网站后台的安全性变得尤其重要,暴力破解不仅仅可以对普通用户的隐私数据进行窃取,还可以对管理员账户进行破解,进而控制整个网站。本文介绍的验证码认证、限定失败登录次数、认证日志监控、增大密码复杂度、判断用户登录IP、Json Web Token安全认证机制等,从各个方面叙述了暴力破解的防御方法,能够有效地防御暴力破解,保障用户、公司的隐私和安全。

参考文献:

[1] 吴涛,张俊.基于B/S系统的SQL注入防御技术研究[J].电脑知识与技术,2020,16(2):7-8.

[2] 尹芷仪,江伟玉,沈嘉荟.一种针对暴力破解的安全口令保管库方案[J].计算机应用与软件,2017,34(7):319-324.

[3] 赵星.网站暴力破解攻击及防御措施[J].山西电子技术,2016(1):52-54.

[4] 沈正,陈锺.HTTP(HTTPS)身份认证暴力破解[J].科技经济市场,2007(7):6-7.

[5] 李志鸿.密码暴力破解在FTP服务器下的防范策略[J].网络安全技术与应用,2014(1):40-41,73.

【通联编辑:代影】