暴力破解——在线和离线猜解的不同 |
在当前以及可预见的未来,密码是主要的在线身份验证方法。密码最讨厌的特性之一就是对密码最小长度、字母大小写、数字及特殊字符的复杂性要求。然 而,微软研究院的一份最新研究报告显示,大部分的复杂性努力都是徒劳的。在本文中,我们将解释一下微软的研究成果,然后再看看两个最新提出的解决方案是如何达到更好的密码安全的。
密码需要足够的强度才能够抵抗尝试性攻击,即通常所说的“暴力破解”。暴力破解有两种模式: ✋🚤🍍🈚🦮 在线模式,攻击者必须使用和用户应用程序相同的登录入口;与在线模式相对的是离线模式,攻击者需要首先窃取密码文件,但能够进行不受约束的破解尝试,并且没有应用程序和网络 的破解速度限制(即单位时间内允许口令输入次数的限制)。 👨🎨👙📮😰🤝 微软研究人员发现,“应对在线攻击和离线攻击所付出的努力有着巨大的差异。在线模式下,一个可以承受100万次猜解的密码,与离线模式下能够承受100万亿次猜解的密码,其安全性是一样的。”因此,一个可以承受100万次的破解并不复杂的密码,比如“tincan24”,和一个可以承受100万亿次破解的强密码“7Qr&2M”,其实区别不大。它们都足以应对在线破解,而在离线模式下,则可能双双被破解。但后者,则要难记得多。 此外,通过分解需要离线破解保护的用例,研究人员发现,“当密码文件泄漏并未被察觉,而且密码进行过适当的SALT加密和HASH加密的情况下,离线破解才会构成威胁。但如果发现了泄漏,只需要重设系统密码,就可以将离线破解拒之门外。” 因此,将防止密码破解的层层重担放在用户身上,让用户解决应用程序的问题,是非常低效的,也是不道德的。只有通过在应用程序端解决密码文件泄漏问题,才可以解除离线破解风险,释放对用户密码复杂性的要求。👳👓🩺🤩✋ 为了防止密码文件对外泄漏,需要将密码限定在应用程序环境之内。微软报告中提到,最常见的解决方案是对每个密码进行加密,并将密钥存储在硬件安全模块(HSM)中。因为硬件安全模块不为存储在里面的加密密钥提供入口,密码的解密只能在应用程序环境内进行。 最近提出的其他两个关于此问题的创新解决方案: 👩💍💊🤮🤳 引用 既然“除非尝试过其他所有的认证机制,否则密码就是最糟糕的认证方式”,也了解了密码的优劣是与系统的安全性密切相关的。因此,要对付离线破解,应该通过任何前面提到的方法,使用应用程序进行解决,而不是通过“密码复杂性”将其处理成用户的额外负担。
帖子热度 1.5万 ℃
小执念乐于助人,奖励 2 个 金币.
|
|