为什么带有电话验证的应用会向用户发送消息,而不是让用户向他们发送消息?

信息安全 移动的 多因素
2021-08-22 07:18:53

许多应用程序允许用户使用他们的电话号码进行身份验证,方法是让用户输入它,然后发送带有要输入应用程序的代码的 SMS。很少(如果我能找到仍然处于活动状态的),只需显示 SMS 界面,并让用户向服务器发送带有验证码的 SMS。我可以想到一些原因,但似乎没有一个能真正排除我的可能性:

  • 发送短信可能会让用户付出代价,而且如果没有每个国家/地区的本地号码,则可能会花费大量费用
  • 用户可能希望在没有 SMS 功能的设备上登录,但可以将 SMS 发送到他们的手机而不是 [iPod/平板电脑等](这可以通过允许用户同时使用入站或出站来缓解验证取决于设备功能)
  • 用户对其他大牌应用程序的接收界面非常熟悉,因此可能会感觉更安全
  • 发送 SMS 是否看起来有点“狡猾”,有点像要求您向某个号码发送消息的老式骗局?
  • 它与产品的桌面 Web 版本不兼容

这些似乎都不是不这样做的真正理由,但出于某种原因,WhatsApp、SnapChat、Facebook 等大牌似乎都在避免这样做。谁能想到不这样做的任何主要原因,或者对为什么它不常见有任何见解?

4个回答

发送看似来自您选择的电话号码的SMS 消息非常容易,而无需实际控制该号码。因此,从某个号码发送 SMS 并不会像向某个号码接收 SMS 那样验证您的 ID。

由于没有人提到,发送短信(由客户)确实需要花钱,至少在发展中国家是这样。除了验证服务器可以在不同的国家。就个人而言,我不想从日本向美国发送昂贵的短信。由于服务器通过第 3 方 SMS 提供商发送 SMS,因此他们不必为每条 SMS 支付那么多费用。

短信验证的目的是确认您拥有手机,而不是让您联系。

两因素身份验证通常需要您知道的东西(密码)和您拥有的东西(安全密钥、加密狗或手机等)。

这个想法是,即使偏远地区的诈骗者要泄露您的密码,他们也无法从物理上抢走您的手机。

谁发送消息实际上并不重要。

由于其余部分已经解决,我将重点关注一个小点:

发送短信可能会让用户付出代价,而且如果没有每个国家/地区的本地号码,则可能会花费大量费用

这不是发送 SMS 的工作方式。您通常没有号码。您使用提供商,例如 clickatell.com。给你一个API,你可以用它来发送短信。实际成本通常取决于国家,发达国家通常更便宜 - 但不取决于它们离你有多近。

您通常可以使用此类服务​​自由选择显示的发件人,其中包括熟悉的字母数字发件人,例如 Google。由于您从不期望回复 2FA 消息,因此您并不真正想要一个号码。