如何阻止dos攻击暴力破解攻击

移动端防暴力破解的安全登录方法
移动端防暴力破解的安全登录方法
【专利摘要】本发明公开了一种移动端防暴力破解的安全登录方法,包括:所述移动端向服务端发送登录验证请求;所述移动端将用户名和明文密码经过消息摘要算法进行加密,以得到随机验证码;以及所述移动端将所述用户名和所述随机验证码发送到所述服务端以进行随机验证码验证。
【专利说明】移动端防暴力破解的安全登录方法
【技术领域】
[0001]本发明涉及移动端登录,更具体地,本发明涉及移动端防暴力破解的安全登录方法。
【背景技术】
[0002]现有移动端登录方式普遍采用明文用户名+MD5加密密码方式验证,然后在服务端采取用户验证频率以及ip请求频率限制策略,进行登录。如图1所示,其中图示了现有登录方式的框图。
[0003]虽然现有登录方案,能够解决针对单个用户的暴力破解问题,比如当一个用户名或者ip访问服务端登录验证接口时,过于频繁我们可以直接提示异常信息,从而拒绝海量的破解验证请求。
[0004]但是,当前互联网信息系统经常会存在不安全的情况,很多网站都暴出用户名甚至密码泄漏的问题,一旦黑客手中拥有几千上百万的用户名时,就可以利用这个用户名池来循环的进行验证攻击破解,一个用户有三次机会,那么100万个用户就有300万个机会进行破解,破解成功概率大大增加,已严重威胁互联网用户的账户安全。
[0005]因此,需要一种能够有效防止暴力破解的安全登录方法。
【发明内容】
[0006]本发明技术方案在现有登录方式上,针对黑客利用用户池的破解问题进行了改进加强,彻底避免了用户密码容易被破解的问题,为企业级用户信息安全提供了绝对安全的保障。
[0007]根据本发明的一个实施例,提供了一种移动端防暴力破解的安全登录方法,包括:所述移动端向服务端发送登录验证请求;所述移动端将用户名和明文密码经过消息摘要算法进行加密,以得到随机验证码;以及所述移动端将所述用户名和所述随机验证码发送到所述服务端以进行随机验证码验证。
[0008]优选地,所述消息摘要算法包括以下中的一个或多个:安全哈希算法SHA1、不可逆分布式发散加密算法、和消息摘要算法第五版MD5、多重SHA1、分布式发散加密算法。
[0009]根据本公开和附图的下面的详细描述,对本领域的普通技术人员来说其它的目的、特征、以及优点将是显而易见的。
【专利附图】
【附图说明】
[0010]附图图示了本发明的实施例,并与说明书一起用于解释本发明的原理。在附图中:
[0011]图1图示了现有登录方式的框图。
[0012]图2图示了根据本发明的实施例的防暴力破解登录方式的框图。
【具体实施方式】
[0013]根据本发明的实施例公开了一种用于移动端防暴力破解的安全登录方法。在以下描述中,为了说明的目的,阐述了多个具体细节以提供对本发明的实施例的全面理解。然而,对于本领域人员显而易见的是,本发明的实施例可以在没有这些具体细节的情况下实现。
[0014]密码是通信双方按约定的法则进行信息特殊交换的一种重要保密手段。按照这些法则,将明文变为密文,称为加密变换;将密文变为明文,称为脱密变换。
[0015]暴力破解法是一种针对密码的破译方法,即,将密码进行逐个推算,直到找到真正的密码为止。例如,一个已知是四位并且全部由数字组成的密码,其可以共有10000种组合,因此最多尝试9999次就能找到正确的密码。理论上,利用这种方法可以破解任何一种密码。
[0016]根据本发明的技术方案,可以实现具有持久防暴力破解能力的安全登录方法。本发明的技术方案通过安全可控的随机验证码的机制,可持久抵御黑客的暴力破解,从而保障了智能终端设备中的各类通信系统的信息安全。
[0017]图2图示了根据本发明的实施例的防暴力破解登录方式的框图。如图2所示,首先,移动端应用向服务端发送登录验证请求,然后,移动端将用户名和明文密码两者经过消息摘要算法进行加密,以得到随机验证码。进而,移动端将用户名和所得到的随机验证码一起发送到服务端登录接口,进而进行随机验证码验证。
[0018]消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。
[0019]在一个实施例中,消息摘要算法包括但不限于安全哈希算法SHA1、不可逆分布式发散加密算法、和消息摘要算法第五版MD5、多重SHA1、分布式发散加密算法,或其任意组合。本领域技术人员将理解,本发明不限于这些算法,还可以采用其他算法。
[0020]安全哈希算法(SHAl)主要适用于数字签名标准里面定义的数字签名算法。对于长度小于2~64位的消息,SHAl会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。
[0021]消息摘要算法第五版(MD5)是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护,从而使大容量信息在用数字签名软件签署私人密钥前被〃压缩〃成一种保密的格式。应用MD5算法摘要的消息有128位的输出。
[0022]从图2中可以看出提供了一种新的防暴力破解方式,该登录方式只需验证用户和随机验证码。移动端除了发送用户名外,还将用户名和明文密码经过安全哈希算法(SHAl)和消息摘要算法第五版(MD5)加密后以得到随机验证码,以便将用户名和所得到的随机验证码一起发送到服务端登录接口,进而进行随机验证码验证。
[0023]因为每个用户在登录时,经过加密用户和密码产生的随机验证码都不一样,所以黑客无法得知移动端应用和服务端的算法约定,那么黑客永远都不能进行破解;而且无需再单独传递MD5密码,有效避免了 MD5密码被反译。
[0024]本申请技术方案的关键点在于随机验证码,根据传统思维单纯验证用户名和密码是不可靠的,必须在验证时加入算法上的考虑,也就是随机验证码。然而在随机验证码中也包含了用户的密码使得随机验证码的信息更大,密码不被反译。
[0025]上述实施例仅是本发明的优选实施例,并不用于限制本发明。对本领域技术人员显而易见的是,在不脱离本发明精神和范围的情况下,可以对本发明的实施例进行各种修改和改变。因此,本发明意在涵盖落入如权利要求所限定的本发明的范围之内的所有的修改或变型。
【权利要求】
1.一种移动端防暴力破解的安全登录方法,包括:
所述移动端向服务端发送登录验证请求;
所述移动端将用户名和明文密码经过消息摘要算法进行加密,以得到随机验证码;以及 所述移动端将所述用户名和所述随机验证码发送到所述服务端以进行随机验证码验证。
2.根据权利要求1所述的方法,其中,所述消息摘要算法包括以下中的一个或多个:安全哈希算法SHA1、不可逆分布式发散加密算法、和消息摘要算法第五版MD5、多重SHA1、分布式发散加密算法。
【文档编号】H04W88/02GKSQ
【公开日】日
申请日期:日
优先权日:日
【发明者】罗劲松
申请人:北京京东尚科信息技术有限公司coolerfeng 的BLOG
用户名:coolerfeng
文章数:243
评论数:660
访问量:1392163
注册日期:
阅读量:5863
阅读量:12276
阅读量:415783
阅读量:1103310
51CTO推荐博文
托管在IDC的机器我们通常都用SSH方式来远程管理.但是经常可以发现log-watch的日志中有大量试探登录的
信息,为了我们的主机安全,有必要想个方法来阻挡这些可恨的"HACKER"
有很多办法来阻挡这些密码尝试1 修改端口2 健壮的密码3 RSA公钥认证4 使用iptables脚本5 使用sshd日志过滤6 使用tcp_wrappers过滤7 使用knockd
1 vi /etc/ssh/sshd_config#Port 22默认端口为22,为了避免被扫描,去掉#,改成一个其他的端口,比如45632保存后重启sshd服务.service sshd restart
2没什么可说的,密码的复杂性可以增加破解的难度,大小写混合加上数字并且有足够的密码长度就比较安全
了,唯一的问题就是要牢记密码.
3.默认的登录方式是password,如果需要用RSA公钥登录,需要先创建RSA Key#ssh-keygen -t rsa -b 1024会生成私钥/home/username/.ssh/id_rsa同时生成公钥/home/username/.ssh/id_rsa.pub输入一个加密短语(也可省略)
修改sshd 设置,编辑/etc/ssh/sshd_config'PasswordAuthentication no'RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile&&&&& .ssh/id_rsa.pub&将公钥下载到本地计算机,然后在ssh客户端软件Secure CRT中设置好,就可以登录了
4 iptbles脚本此脚本允许每分钟3个连接.有白名单,并有日志纪录
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set& --name SSHiptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELISTiptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update& --seconds 60 --
hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_forceiptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update& --seconds 60 --
hitcount 4 --rttl --name SSH -j DROPiptables的版本需要&1.2.11 (1.2不支持 --rttl参数)
5使用sshd日志过滤有几个软件(脚本)可以做到.sshfilter Fail2Ban& DenyHosts
需要sshd支持tcp_wrappers此功能.[root@as4test include]# ldd /usr/sbin/sshd | grep libwrap&&&&&&& libwrap.so.0 =& /usr/lib64/libwrap.so.0 (0x6c000)如果有libwrap.so.0这个库说明支持此功能另一种测试方法:在/etc/hosts.deny加入一行127.0.0.1然后ssh localhost,如果无法连接,说明支持.
$ tar zxvf DenyHosts-2.6.tar.gz&&&&&&
$ cd DenyHosts-2.6
# python setup.py install
#cd /usr/share/denyhost
# cp denyhosts.cfg-dist denyhosts.cfg配置文件&# cp daemon-control-dist daemon-control启动脚本# chown root daemon-control
# chmod 700 daemon-control
# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig --add denyhosts添加到开机启动服务中
6 使用tcp_wrappers过滤1 下载脚本2 设置可执行权限 chmod 755 /usr/local/bin/sshblock.sh3 在/etc/hosts.allow中添加以下内容#__START_SSHBLOCK__#__END_SSHBLOCK__sshd : ALL : spawn (/usr/local/bin/sshblock.sh %a)&设置&DONTBLOCK 白名单BURST_MAX=5BURST_TIM=6060秒内登录5次就封锁PURGE_TIM=36003600秒后解冻
7& 使用KNOCKDknockd 监视一个预定义模式在iptables的日志,例如一次击中端口6356,一次击中端口63356,两次击中端口
9356,这相当于敲一个关闭的门用一种特殊的暗码来被konckd识别,konckd 将使用iptables来打开一个预定
义端口例如ssh的22端口在一个预定定义时间.(比如一分钟),如果一个ssh session 在这个时间范围内打开,
这个端口会一直保留.直到预定义时间过期后ssh端口被knockd关掉.
缺点:比较复杂的方案,不适合普通人需要客户端(knockd-client)来实现port knocking",同时需要knockd-server来响应.实际上,很容易检测到这种通讯模式,一旦攻击者可以监控你的通讯,这种解决方案无法提供安全防护针对本
&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
21:55:29 17:26:13最好的阻止SSH暴力破解的方法(DenyHosts) - CNET科技资讯网
中关村,被称为中国的硅谷,这里除了熙攘的电子卖场,...
剥皮寮是这此次「推荐Google街景三轮车拍摄景点」票选...
话说,某日,祝英台与梁山伯去逛街……
6月22日上午,在大连世界博览广场举办的第八届中国国际...
大部分公司在走向死亡。本文分析了微软之所以处于危险...
苹果发布的最新产品似乎并没有给苹果联合创始人之一的...
最好的阻止SSH暴力破解的方法(DenyHosts)
  我的服务器每天都会有无数的SSH失败尝试记录,有些无聊的人一直不停的扫描,这些人真够无聊的,没事吃饱了撑着,老找些软件在那里穷举扫描,所以大家第一要记的设置一个好的够复杂的密码。
  怎么样防,如果要一条一条将这些IP阻止显然治标不治本,还好有DenyHosts软件来代替我们手搞定他。
  DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件,当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。
  DenyHosts官方网站为:
  以下是安装记录(以CentOS 5.1, DenyHosts 2.6 为例)
  http://nchc.dl.sourceforge.net/....../DenyHosts-2.6-python2.4.noarch.rpm
  #rpm -ivh DenyHosts-2.6-python2.4.noarch.rpm
  给denyhosts做成系统本身的服务
  # cd /etc/init.d
  # ln -s /usr/share/denyhosts/daemon-control denyhosts
  # chkconfig --add denyhosts
  默认是安装到/usr/share/denyhosts目录的。
  # cd /usr/share/denyhosts/
  # cp denyhosts.cfg-dist denyhosts.cfg
  # vi denyhosts.cfg
  根据自己需要进行相应的配置(解释见下文件的配置文件)
  DenyHosts配置文件:
  SECURE_LOG = /var/log/secure
  #ssh 日志文件,它是根据这个文件来判断的。
  HOSTS_DENY = /etc/hosts.deny
  #控制用户登陆的文件
  PURGE_DENY = 5m
  #过多久后清除已经禁止的
  BLOCK_SERVICE = sshd
  #禁止的服务名
  DENY_THRESHOLD_INVALID = 1
  #允许无效用户失败的次数
  DENY_THRESHOLD_VALID = 3
  #允许普通用户登陆失败的次数
  DENY_THRESHOLD_ROOT = 5
  #允许root登陆失败的次数
  HOSTNAME_LOOKUP=NO
  #是否做域名反解
  ADMIN_EMAIL =
  #管理员邮件地址,它会给管理员发邮件
  DAEMON_LOG = /var/log/denyhosts
  #自己的日志文件
  启动服务
  让他和系统启动时一起启动
  #/etc/ini.d/denyhosts start
  #chkconfig denyhosts on
  可以用一台电脑远程连接过来测试.如果可以看到/etc/hosts.deny内是否有禁止的IP,有的话说明已经安装成功了。
  注.我发现时间deny以后,删除ip的时间不是很准.解决的方法是改变DAEMON_PURGE = 这个的时间.我发现系统删除时间是以他为准.
  DAEMON_PURGE:预设清除:当DenyHosts在预设模式下执行,执行清除机械作用过期最久的HOSTS_DENY,这个会影响PURGE_DENY的间隔。
独家 | 原创
09/09/2008
09/09/2008
09/09/2008
09/09/2008
09/09/2008
09/09/2008
09/09/2008
09/09/2008
12/27/2011
09/26/2011
09/02/2011
07/21/2011
07/20/2011
07/04/2011
07/01/2011
07/01/2011
09/12/2012
09/04/2012
08/02/2012
07/24/2012
07/17/2012
07/04/2012
05/25/2012
05/09/2012

我要回帖

更多关于 如何阻止校园暴力 的文章

 

随机推荐