特别是在加密货币中,你经常听到人们说私钥/种子不应该由人类“随机”输入,而应该使用真正的随机数生成器。我知道,人类以某种方式行事,因此必须有一些模式可以显着缩小暴力攻击的搜索空间。
这就是理论。但在实践中,有人会如何模拟这样的攻击呢?我知道在随机性的感知和产生方面存在研究过的认知偏差,但是是否有模型,您将如何模拟人类“随机”敲击键盘的搜索空间?
特别是在加密货币中,你经常听到人们说私钥/种子不应该由人类“随机”输入,而应该使用真正的随机数生成器。我知道,人类以某种方式行事,因此必须有一些模式可以显着缩小暴力攻击的搜索空间。
这就是理论。但在实践中,有人会如何模拟这样的攻击呢?我知道在随机性的感知和产生方面存在研究过的认知偏差,但是是否有模型,您将如何模拟人类“随机”敲击键盘的搜索空间?
一个简单的答案是,人类倾向于更多地敲击键盘中间和/或“主行”上的键,并且倾向于更频繁地敲击彼此靠近的键(由于双击)。也可能有更多的“非移位”特殊字符和数字行字符。数字和特殊字符可以大写更可能被分组(或只是附加到)主“随机”字符串。
因此,您将获得更高频率的asdfghjkltyuivbnm
、 等序列sw
qd
l;
以及更多格式为oipynKJIU8767@~{&$
这些可以有意识地避免,但这可能来自其自身的模式或混合过于均匀(每种类型的数量几乎相同)。:dR%6Ni9)lI&6
...
这可能会在一定程度上削弱事物并为攻击者提供一些帮助,但对于很长的字符串来说,它不太可能很重要。它还要求攻击者知道这是人为生成的修改后的蛮力攻击
我对频率的建议都不是全面的,稍加努力就可以产生一个非常随机的字符串。
就我个人而言,我经常使用密码生成器然后更改几个项目或删除任何指向伪随机种子的链接(真的有点偏执)。