用户密码暴力破解攻击分析和解决

简介

暴力破解或称为穷举法,是一种针对于密码的破译方法,即将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。理论上利用这种方法可以破解任何一种密码,问题只在于如何缩短试误时间。有些人运用计算机来增加效率,有些人辅以字典来缩小密码组合的范围。

怎样检测暴力破解攻击?

暴力破解攻击是通过巨大的尝试次数获得一定成功率的的。因此在web(应用程序)日志上,你会经常发现有很多的登录失败条目,而且这些条目的IP地址通常还是同个IP地址。有时你又会发现不同的IP地址会使用同一个账户、不同的密码进行登录。

简单理解为:短时间同一个ip或者用户名,进行大量的登录操作。

怎样防御暴力破解攻击?

预防暴力破解可以通过以下几个方面解决,提供系统的安全性。

用户登录失败次数限制

可以通过用户名限制用户登录失败的次数,例如:用户一个小时内连续登录失败5次,那么就锁定当前用户,禁止此用户名继续登录,可以通过管理员手动解锁或者一个小时候自动解锁。

图形验证码

增加验证码拦截器,验证码验证成功后才能请求到登录接口。

为了保证客户友好的体验性,可以在用户输错密码3次后,再显示验证码信息。

保证验证码必须一次有效,不能重复使用,使用一次后,必须清空session中的验证码信息。

IP次数限制

后端设置阀值,检查同一IP在某一时间段是否超出阀值设置,如果超出说明非正常请求,限制IP用户操作或者加入IP黑名单。

例如:设置5分钟内同一IP不能超过100次登录请求,如果检测到这个ip登录超过阀值,就把这个IP限制了。

密码强度

增加密码的强度,尽量使用复杂的密码数字、字母或特殊字符组合的密码

密码定期修改

可以增加密码定期修改功能,避免密码长时间未修改导致隐患。

例如:3个月或者一年必须修改密码。