2FA:为什么不使用字典短语而不是数字?

信息安全 多因素
2021-08-21 03:19:17

这个问题的灵感来自这个问题: 2 因素身份验证码应该多长时间?

基本上,2FA 码长有一个实际的下限和上限。它不能太短,以至于拥有所有密码的攻击者可以暴力破解大部分帐户。但它也不能太长,以至于难以致力于短期记忆。

那么为什么不使用字典/diceware 短语呢?likepuppy banana galapagos moose和 一样容易记住327229,但提供了更多的熵。

唯一的缺点可能是打字更耗时,但使用具有自动完成功能的移动键盘,只需多花一两秒钟,同时大幅降低可能被暴力破解的帐户百分比。

3个回答

是的,您正在增加熵,但您正在降低可用性。

首先你需要一本好的词典。您需要考虑的事情是可访问性(它的可读性如何?是否存在 b、d 或 q、p 或 cl、d 或 I、l 混淆?字典中不能有 click 和 dick)凭记忆拼写?我不能拼出你用过的单词的 2/4,而且我有理学学士学位。你不能有任何技术或文化不敏感的东西(例如台湾)

其次,您说的是具有自动更正功能的移动键盘。自动更正出错了,您需要检查字典中的每个单词是否会在很长一段时间内出现(如果香蕉明天灭绝,这个词在 30 年后还会自动更正吗?)大小硬键盘

第三,您正在剔除所有不会说该语言的人,数字适用于所有语言。除了 123 数字之外,很少使用其他数字系统。

第四,你将如何展示它们?6位数字可以在6位7段显示器上,4个字至少需要20位或更好的复杂显示。“但他们可以在电话上”我听到你说,但有些地方你不能有电话,因为不允许使用无线设备(它是人间地狱,永远不要在这样的地方工作),这会分裂拥有移动设备和没有移动设备的市场

最后,它将分割市场。对于像这种碎片化这样的技术是不好的,我们相信它,因为它已经过大量的测试。除非旧的东西坏了,或者新的东西比原来的好 1,000,000%,否则它永远不会走上正轨。事实上,我们现在仍然有破坏加密方法,因为如果删除它们可能会破坏更糟糕的东西,并且银行仍然使用你知道的东西和你知道的东西(2个密码)

他们可以对 2fa 设备进行的改进是能够将代码在屏幕上的最长停留时间设置为 60 秒(出于可访问性原因,每个数字 10 秒),并将您输入的框标记为数字框,以便软键盘显示数字行或更好的数字键盘。

添加到@topher-brink awnser。

2fa 用于比人机通信更多的情况。在某些硬件设备中有使用 2fa 的实现(它们使用类似 he u2f 加密狗的东西)。

这些设备不能处理字符串(以及它们可能是什么编码方案),但对于数字则没有这样的问题。

作为此类系统的用例,请考虑需要与服务进行通信但还需要确保意图和机密性的医疗设备。(因此它使用客户端证书和 2fa 机制)设备可以向客户端显示接受拒绝对话框,但不能为其 2fa 提供数字或文本字符串。

这个答案已经说明了您的方案的可用性问题。

另一个值得一提的问题是执行。大多数当前的 OTP 方案都使用 IETF 指定的 HOPT/TOTP 算法。这些非常容易实现,只占用很少的代码空间,使其适用于小型嵌入式设备(如 OTP 令牌)。如果要将计算出的数字密码转换为单词列表,则代码需要包含一个长的(大小可能为 2 位千字节)预定义单词列表。除了使事情变得更复杂之外,这还可以证明受限设备的性能。