Forms 密码强度算法的标准化

Forms 密码强度算法的标准化,forms,passwords,standards,password-protection,Forms,Passwords,Standards,Password Protection,过去几个月,我一直在想网站上所有这些密码强度测试。如果您在每一个注册表格中使用相同的密码,则仪表上的结果有时会不同。一个说“强”,另一个说“正常”,可能有些人甚至会说“弱” 所以问题是,如果有一个标准,程序员可以在他们的工作中使用它,让它少一点混乱,有时让人讨厌,那该怎么办 如果你说是或不是,请给出一两个论点 谢谢 另外,不确定之前是否讨论过,如果这是“重复”,请保持冷静 编辑 看来问题已经解决了。我没有考虑开始讨论密码的优点。老实说,每个密码都可能被盗,只需要适当的工具 这与某个站点的安全无关

过去几个月,我一直在想网站上所有这些密码强度测试。如果您在每一个注册表格中使用相同的密码,则仪表上的结果有时会不同。一个说“强”,另一个说“正常”,可能有些人甚至会说“弱”

所以问题是,如果有一个标准,程序员可以在他们的工作中使用它,让它少一点混乱,有时让人讨厌,那该怎么办

如果你说是或不是,请给出一两个论点

谢谢

另外,不确定之前是否讨论过,如果这是“重复”,请保持冷静

编辑 看来问题已经解决了。我没有考虑开始讨论密码的优点。老实说,每个密码都可能被盗,只需要适当的工具

这与某个站点的安全无关。我还没有看到一个银行网站使用任何安全措施,他们自己做的每件事都是为了让它独一无二,也许

让我们再试一次。。如果有一个活动,程序员展示他们方法的代码,其他人必须按照一些投票准则投票,比如:你必须判断简单性、兼容性和安全性

然后,获胜的方法(由程序员投票)将被选为“标准”方法,并推广到表单中使用

您认为这种方法有什么用处吗?如果有,您会使用它吗?

来源:


随机密码的强度可以通过计算信息熵来计算。如果密码中的每个符号都是独立产生的,则密码的信息熵由以下公式给出:

其中N是可能的符号数,L是密码中的符号数。函数log2是以2为底的对数。H以位为单位测量


维基百科页面上有详细的计算。

使用“弱”和“强”等相对术语标准化密码强度,有点像使用类似术语标准化锁的强度。你无法衡量“弱”或“强”;您可以测量的是破解需要多长时间(类似于物理锁/保险箱的安全等级)、候选钥匙的可接受公差(指纹或钥匙研磨必须与锁的原始样本保持多近才能工作)等

Fredley的算法会给你一个数字。这个数字可以与任何其他数字进行比较,就像任何测量一样,你可以量化相对优势或劣势。至于定义“X弱”、“Y正常”等标准,我认为你不会得到所有相关方的同意,因为密钥的绝对强度必须始终与它所保护的资源的价值相关联。你(或你的女儿)不会把她的日记放在保险库门后银行的保险箱里;一个80美分的玩具锁可以提供“强大”的安全性,防止她不想看的人(鼻涕鼻子的小哥哥或大哥哥、过夜的客人等)。然而,80美分的玩具锁放在你的保险箱门上不会持续两秒钟,那里存放着你的房屋契据、汽车所有权和你曾祖母的一次性25克拉钻石项链

类似地,银行网站所需的密码(或者更准确地说是复合安全措施)将比在线论坛更强大,因为它所保护的资源具有更大的物质价值。论坛只是说说而已(尽管有一些著名的Facebook黑客事件导致泄露照片);如果黑客进入你的银行记录,他们会严重毁掉你的生活

因此,“MittensABC”对于大多数论坛来说都是可以接受的密码,因为它超过8个字符(26^8=大约2080亿个随机字母的组合),并且包含大小写字母(“暴力”所需的样本空间)此密码应为52^10=144万亿(10个区分大小写的字符串的可能组合)。但是,对于银行来说,这是完全不够的:它主要由一个字典单词组成,不同之处在于你添加了一个容易猜测的字母组合,因此“智能”破解alg可以将现代用法中的初始样本空间减少到100k左右的单词,再加上基本的字母和数字字符串,可能会产生几百万种可能性(这是电脑翻滚的儿童游戏)。出于同样的原因,许多提供访问非常私人信息的网站不允许在密码中使用生日、SSN等,因为如果这些信息被盗,可能会提示破解算法,从而进一步减少初始可能的样本空间


总之,什么是“好”密码取决于黑客/破解者坚持破解密码的可能性。还有其他有用的工具,如登录尝试之间的10秒冷却,或15分钟内的一定次数的尝试,这使得几乎不可能利用计算机的速度,但智能算法、网站漏洞、,或者,一个愚蠢的用户都可以增加黑客成功的机会。

你想要一个理论上的答案来衡量其强度,还是一个或多或少是事实标准的实际实现

如果是后者,这个老问题有一些很好的链接

还有一些jQuery插件可能是事实上的标准,例如

因为它们是可用的,而且很容易访问,即使强度算法背后没有任何被引用的研究。其中一个明显的遗漏是字典检查,以确保您没有使用字典中的单词或仅仅基于字典中的单词,这可能需要服务器端实现才能很好地完成。(没关系,