我在我的银行账户上安装了2FA。当我登录时,我收到一个六位数的代码,作为我的手机上的一个即时通讯,我输入到网站。这些密码对他们来说总是有规律的。比如111xxx,123321,xx1212等等。
我认为,这些代码是有意容易记住的一瞥。是否有一种通用的业务实践/最佳实践,要求这些代码有一个模式来使它们更容易被记住?
发布于 2017-12-11 19:43:50
我也注意到了这一点,我认为这是人类大脑将模式应用于随机噪声的趋势的结果。当特别地试图记住一个数字串时,这种情况似乎更常见。
发布于 2017-12-11 21:03:30
大约85%的六位随机数中至少有一位重复数字,40%的人在彼此旁边有一个重复的顺序数字。(我很高兴在数学上得到纠正。)
这些键是使用标准TOTP算法生成的。本文总结了这个实现,表明没有任何努力来生成一个令人难忘的数字:
根据RFC 6238,参考执行情况如下:
尽管RFC 6238允许使用不同的参数,但验证器应用程序的Google实现不支持T0、TI值、散列方法和标记长度(与默认情况不同)。它还期望根据RFC 3548以基-32编码方式输入(或以QR码提供)K密钥。一旦商定了参数,令牌生成如下:
服务器和客户端都计算令牌,然后服务器检查客户端提供的令牌是否与本地生成的令牌匹配。有些服务器允许在当前时间之前或之后生成代码,以便考虑到轻微的时钟偏差、网络延迟和用户延迟。
发布于 2017-12-14 03:09:52
在我的手机上,我有来自不同公司的大约90个验证代码。其中62例为6位长。以下是每个数字的计数:


可能有点偏向1,8和9?几乎可以肯定的是,数据中只有噪声(62是一个小样本)。
两位数怎么样?

第一张图只是两位数边界上的两位数(即AABBCC),所以我们期望每对在186个可能的数字位置上出现大约1.86次。第二种是任何位置(即XXX99X算作两位数)。我们预计每对在310次放置约3.1次。
似乎没有任何明显的倾斜,更多的两位数比非两位数显示的橙色。在后一种数据中,我们预计大约有31位数,我们得到27位数。这似乎是合理的。
当然,这并不排除其他“非随机”模式--但诚实地说,人类很可能正在寻找模式--看看这些数据,这些数据摘自我的2 2FA应用程序: 365 595,111 216,566 272,468 694,191 574,833 043。
https://security.stackexchange.com/questions/175269
复制相似问题