相关疑难解决方法(0)

什么是最好的分布式蛮力对策?

首先,一点背景:我正在为CodeIgniter实现一个auth + auth系统并不是什么秘密,到目前为止我赢了(可以这么说).但是我遇到了一个非常重要的挑战(大多数auth库完全错过了,但我坚持正确处理它):如何智能地处理大规模,分布式,可变用户名的暴力攻击.

我知道所有常用的技巧:

  1. 限制每个IP /主机的失败尝试次数并拒绝违规者访问(例如Fail2Ban) - 由于僵尸网络变得越来越智能,它们不再起作用
  2. 将上述内容与已知的"坏"IP /主机(例如DenyHosts)的黑名单相结合- 它依赖于僵尸网络下降为#1,它们越来越不会
  3. IP /主机白名单与传统的身份验证相结合(对于动态IP用户而言,在大多数网站上都是无用的)
  4. 在N分钟/小时内设置失败尝试次数的站点范围限制,并在此之后限制(暂停)所有登录尝试,持续数分钟/小时(DoS攻击你的问题变为僵尸网络儿童游戏)
  5. 没有登录/密码选项的所有用户的强制性数字签名(公钥证书)或RSA硬件令牌(毫无疑问是坚如磐石的解决方案,但仅适用于封闭的专用服务)
  6. 强制执行的超强密码方案(例如> 25个带有符号的无意义字符 - 再次对临时用户来说太不切实际)
  7. 最后,CAPTCHA(在大多数情况下都可以工作,但对用户来说很烦人,对于一个坚定的,足智多谋的攻击者几乎无用)

现在,这些只是理论上可行的想法.有很多垃圾想法可以打开网站(比如琐碎的DoS攻击).我想要的是更好的东西.更好的是,我的意思是:

  • 它必须安全(+)抵御DoS和暴力攻击,并且不会引入任何新的漏洞,这些漏洞可能会让稍微狡猾的机器人继续在雷达下运行

  • 它必须是自动化的.如果需要人工操作员验证每次登录或监控可疑活动,那么它无法在真实场景中运行

  • 它必须适用于主流网络使用(即可由非程序员执行的高流失率,高流量和开放式注册)

  • 它不会妨碍用户体验到临时用户会感到烦恼或沮丧(并可能放弃网站)

  • 它不能涉及小猫,除非它们真的是非常安全的小猫

(+)'安全',我的意思是至少和偏执的用户保密密码一样安全

所以 - 让我们听听吧!你会怎么做?你知道我没有提到过的最佳实践(哦,请你说)吗?我承认我对自己有所了解(结合3和4的想法),但我会让真正的专家在让自己尴尬之前说话;-)

security authentication brute-force

149
推荐指数
7
解决办法
2万
查看次数

标签 统计

authentication ×1

brute-force ×1

security ×1