是否有一种向非math家提供密码安全性的标准方法?

我的客户端有一台服务器正在遭受来自僵尸networking的powershelllogin尝试。 由于服务器和客户端的变化无常,我们不能通过防火墙,端口更改或login帐户名称的变化轻易地阻止这些尝试。

已经做出决定让它公开进行攻击,但find一种保持密码安全的方法。 pipe理层和其他一些顾问已经确定,最好的办法是安装密码轮换软件,每10分钟轮换一次密码,并向需要login的用户提供新的密码。

蛮力企图每秒发生两次。

我需要certificate的是,使用12-15个字符来实现强密码是一个更简单和免费的解决scheme。 我知道如何用math来certificate这一点,但我只是写了类似于“我们的密码有许多可能的排列组合,攻击者每天只能尝试n次尝试,因此我们希望他们去x /平均2天之后,他们就猜测我们的密码。“ 有没有更标准的“证据”呢?

使用fail2ban与iptables是一个很好的方法。

这是你的math:

混合的大小写字母和常见符号,长度为8个字符,可以为您提供2.9万亿次的组合,而万次的尝试则需要9,488年的时间。 这当然是最大的 – 希望你的密码在4000年内被破解。 1000年,如果你不幸运。

正如你所看到的,你应该没有任何问题,如果你做一个15个字符的密码,如:

dJ&3${bs2ujc"qX 

除了fail2ban之外,

如果您正在运行任何现代UNIX,通常可以将错误的密码inputhibernate时间更改为5秒,使攻击速度减慢2000%。 [Solaris 10在/ etc / default / login中searchSLEEPTIME]使用相同的容差将意味着您可以每隔3小时20分钟轮换一次密码。

此外,locking之前尝试密码将是一个可行的select,但我怀疑这不适合你,因为你有多个用户共享一个帐户,并不希望它locking了所有的时间。

需要12-15个字符的密码有助于解决问题,但如果您不断受到攻击,另一种解决scheme可能会更好。 我不知道贵公司的预算容忍度是多less,但是每个需要login该帐户的人都可以使用RSA密钥卡来解决这个问题。 双因素authentication将概率推入量子计算时间。

蛮力的方法足以让你在这个板子上发布是非常令人惊讶的。 一般来说,它是相当低调的,充其量是一个日志填充,而真正的攻击正在进行。

如何呼吁权威? 你可以参考国防部安全技术实施指南(iase.disa.mil/stigs/stig),并说:“如果国防部足够好,对我们来说就够了”

需要考虑的事情是:如果你的密码没有改变,而蛮力攻击正在testing一个包含你的密码的宇宙,那么蛮力攻击最终会被击中,并且在此之后你将依然脆弱。

随机select会击中你的密码的“机会”可以按照你的build议计算出来,但这可能不能说明整个故事。

例如,如果你看看暴力破解企图,并且看到他们尝试的最长密码是10个字符,那么在12处挑选任何东西将确保你永远不会被击中。

试图将统计数据应用于特定案例时要非常小心; 他们只能预测大量样本的整体行为。

除此之外,如果math不能(或者不能)说服某人,那么试着去寻找一些发生但是很熟悉的事情,比如彩票或车祸,或者雷击。 如果你可以说“有人打这个密码的机会大约与六周中奖彩票相同”,这可能会给他们一个更好的感觉。

有一件事没有被考虑到,僵尸networking使用的是Bruteforce的用户名。 在所有我见过的例子中,暴力行为都是针对pipe理员和根的变体,在一些罕见的情况下,他们从公司网站上删除了用户名。

我还会更改交互式login限制,以便您的root帐户被禁用(首选)或限制到您的本地子网或类似的地址范围。

每秒两次也不错。 在实现fail2ban之前,我们曾经看到每分钟有数千次的尝试, fail2ban会在这么多失败的尝试(所有可configuration的)之后将特定的IP从networkinglocking一段时间。

这对我们来说很好。

其实,你可以有select地扫描使用iptables的蛮力ssh攻击,如果这适用于你。

这两个string:

 iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name sshscans iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 5 --name sshscans --rsource -j DROP 

会阻止任何人在60秒内尝试连接SSH 5次以上。 你可以改变“–hitcount”号码,如果你想要一个更大的数字比5每秒被允许。

我同意每10分钟更改密码似乎有点过分。 在这一点上,问题变成了如何安全地传输新的密码,并保持系统彼此同步。

这篇文章有一些关于破解速度的有趣的统计:

http://www.lockdown.co.uk/?pg=combi

http://en.wikipedia.org/wiki/Password_cracking

令人惊讶的是,有多less人不懂得指数曲线,但每个人都知道10,100和1000之间的差异,所以这可能是开始进行比较的好地方。

另一个策略可能是实际人们展示暴力破解6个字符密码需要多长时间。 如果你有任何编程知识,你可以把一个快速的工具,这样做。

你也可以向他们展示如何轻松地提供彩虹表:

http://project-rainbowcrack.com/table.htm

这可能有点偏离主题 ,但是我使用了denyhosts ,这大大减less了我的Linux机器上的暴力破解。