我的问题很简单。为什么 whatsapp 使用 6 位代码来验证设备?他们还可以使用 5 个或 7 个以上的数字和/或字母数字字符。
他们选择6有什么原因吗?
我的问题很简单。为什么 whatsapp 使用 6 位代码来验证设备?他们还可以使用 5 个或 7 个以上的数字和/或字母数字字符。
他们选择6有什么原因吗?
为什么不少于6位?
代码越长,越难猜。有人可能会争辩说,如果您在尝试失败后丢弃代码,那么 4 已经足够了,但是为什么要丢弃更多的安全性呢?
为什么不超过6位?
我认为这与安全性无关,而是与可用性有关。WhatsApp 会尝试自动读取验证短信,但在某些情况下用户必须手动输入验证码。例如,如果短信接收时间较长,应用程序不会等待,而是在您最终收到时提示您输入。
因此验证码应该很容易记住。米勒定律指出,普通人在工作记忆中可以持有的物体数量为 7 ± 2。七位数字是合乎逻辑的选择,但记住 6 位数字要容易得多,尤其是当您在使用您的设备时被环境分心时移动电话。
结论
这是一种妥协。
我不知道他们为什么选择 6 位验证码,但这是我的想法。
我假设设备的验证基于接收短信的能力,验证的目的是将电话号码与帐户联系起来。
假设您将自动化该过程。
如果一个电话号码有过多的验证尝试和短信,肯定有人会注意到。因此,假设您不关心您尝试将您的 whatsapp 帐户与哪个电话号码配对,并且会尝试针对任意电话号码。
如果他们使用 4 位数的验证码,平均只需要 10.000 次尝试就能猜出正确的密码。
对于 6 位验证码,平均需要 1.000.000 次尝试。
它在安全性和默默无闻之间取得了平衡。如果猜测验证码是可行的,人们会尝试,而whatsapp 发送所有这些验证短信是有成本的。
只需 10.000 次尝试,您就可以在几天或几个月内将这些尝试分散开来,仍然可以成功,也许不会那么容易被注意到。
但是对于 1.000.000 次尝试,它肯定会更难实现。
所以归根结底,代码的长度是安全性和可用性之间的平衡。