如果这是一个愚蠢的想法,或者已经尝试过,我相信我会很快得到纠正。我的问题是:这个想法以前有没有尝试过?如果没有,是否有充分的理由它不起作用,或者不会提高安全性?
通过输入四个不同的部分,我更容易记住我当前的密码算法。为了正确输入这些片段,我必须四处移动光标,例如,首先我可能会输入(不是这样,只是类似):
ihate
然后我可能会这样做:
Dirtyihate
和:
DirtyihateCommies
最后:
Dirtyi9?7hateCommies
我突然想到:作为密码确认的一部分,您为什么不能不仅使用密码本身的文本,还使用输入的ORDER ......?
我看不出有任何理由这在技术上是不可能的。确实,让人们利用它需要改变用户心态,并且可能会有非常大的学习曲线。但是,与此同时,我假设 99% 的输入密码的人每次都以完全相同的方式输入密码,因此对于那些(绝大多数)他们不会受到更改的影响,除非他们愿意。
我还假设大多数人每次都直接按顺序输入他们的 PW(除非他们犯了错误并回去纠正它),所以他们不太可能注意到它。只有想要利用额外安全性的人才会受到影响。
包括输入每个字符的顺序会为密码增加大量额外的随机性(并且随机性的大小会随着添加的每个额外字符而增加 - 例如,对于 8 个字符的密码,如果我的数学是正确的,它会添加8! 更多可能的迭代,10! 用于 10 个字符的 pw,等等)。
另一个好处,我认为这可能是这个想法的最大潜力,就是您可以将密码(加密)字符串本身与服务器上的(也是加密的)订单分开存储。这样,如果攻击者想要窃取密码并使用它们,攻击者必须拥有两组数据才能使用它们!一个 20 个字符的密码——例如,从一张不小心存储的纸上获得——仍然有 >10^18 次可能的迭代。
因此,您(即比我聪明的人)可以想出一种方法来存储 - 完全分开 - 这两种交错形式的身份确认,这样每一种都同样难以窃取,但在输入密码时都会检查它们。
存储密码顺序也很容易。只需将其作为列表整数即可。因此,对于我上面的示例密码,20 个字符的顺序可能存储如下:
6 7 8 9 10 1 18 19 20 2 3 4 5 11 12 13 14 15 16 17
也许这个想法也可以扩展到诸如私钥之类的东西,尽管我对这个主题的了解还不够明确,无法如此明确地说出来。
编辑:
也许移动光标的要求太费力了。富文本密码呢?为什么不允许斜体、粗体、下划线等作为密码输入的一部分?颜色呢?与之前的想法一样,没有人会受到影响。只有那些选择受影响的人才会受到影响,并且与之前的想法类似,您可以将样式信息单独存储在服务器上,以增强对密码数据库的盗窃保护。