ily*_* n. 36 security authentication passwords web-services
多年来,这一直困扰着我:为什么大多数在线服务高度重视密码的熵,引用它作为安全措施,并在用户选择密码时强制执行?
在阅读了"强大的网络密码完成任何内容?"之后,我决定提出这个问题.(当然还有经典的Dilbert卡通片).
在线网站的典型政策是要求至少6或8位大写+小写+数字密码.这个长度与蛮力攻击的难度有关,例如从哈希中恢复密码.但猜测在线发生的典型方式是有人试图登录到服务器,经过几次尝试后可以自由拒绝.
让我们想象一下,例如,我们用一个全数字的PIN来保护一些中型服务.人们会立即想到4位数或6位数的针脚,但这可能不是一个好主意,因为有太多人会想要进入他们孩子的生日,这本质上是一种公共知识.
所以,这是我的5位数PIN码建议.我为每个用户保留一个"可能的攻击"标志.
让我们假设用户名以某种方式已知(请注意,大多数网站都不会这样).对一个用户的暴力攻击是没有希望的 - 你在5次尝试后被锁定,所以你有1/200000的机会.如果你试图在一个月内猜测密码超过200次,那么国旗就会消失,你什么也得不到.如果你每个月尝试<200个用户,一年后你有1%的机会打破一个用户; 您可以通过网络钓鱼,病毒,社交工程或其他任何方式获得更好的收益.
网站的大小只是在没有误报的意义上是相关的,即真正忘记密码的用户(假设每月1%),恢复它,但不清除标志(让我们说1%的那些),当你无法自动清除标志时(比如10%).这使得每10 6个用户每月有10个预期误报标志- 这意味着中型网站进入"恐慌"模式的可能性相当低,无论如何都不是那么糟糕.
我相信这个方案非常实用.以下是关于它的一些明显的第一个事实(更新):
我的问题是:
注意:我不主张总是使用短密码.我自己的网络密码通常由密码管理器(1Password)随机生成和加密,密码为12个字符.但我认为上述方案往往比我们在实践中的方案更好.
Kse*_*pac 42
不,你错了.暴力攻击是一回事,但真正的危险是Rainbow Tables,它从哈希值中为您提供明文密码.
首先,你永远不会以明文形式存储任何内容.如果有人违反您的安全性(或者即使员工有恶意),您也不希望泄露用户的密码.所以你将使用正确的盐渍哈希.
然后,使用5位数的PIN,它太短,无法用哈希保护.有彩虹表(甚至谷歌搜索),如果他们得到哈希,将允许有人获取密码.
mer*_*uro 14
请记住,具有3.000次尝试的恶意用户可以在几分钟内成功阻止1.000个帐户.另一件事是他可以通过每天尝试数千个不同的账户来改变一次成功登录的几率.是的OpenID不是一种选择?
更新
只是对5位数的东西有点灵感.如果5位数(10 ^ 5 = 100.000)真的很容易记住并且同时安全,那么这些情况如何:
4 letters all lowercase (26^4 = 456.976) => abcd
3 letters with mixed cases (52^3 = 140.608) => aBc
3 letters lowercase + numbers (36^3 = 46.656) => ab1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10114 次 |
| 最近记录: |