Whatsapp 身份验证如何运作?

2024-01-12

我想开发一个移动应用程序并使用类似whatsapp的用户注册。现在我记得几年前讨论过的安全问题。 Whatsapp 过去仅通过电话号码和 IMEI 来验证用户身份。当然,这并不是真正安全,但我真的不知道如何更安全。

现在我已经很长一段时间没有听到有关 Whatsapp 身份验证问题的消息了,所以我猜他们现在有安全的方法了。你知道今天 Whatsapp 是如何做到的吗?


我来尝试一下这个问题。

据我所知,Whatsapp 仍然使用您的电话号码作为主要唯一标识符。第一次登录 Whatsapp 时,您会验证该电话号码是您自己的。

然而,Whatsapp 第二次在登录时提供了密钥。这有助于避免像 Telegram 这样的服务遇到的一些攻击,这些服务可以在任何时候调用和拦截短信来访问帐户(看看他们的网络登录是如何工作的)。

事实上,他们提供的这个密钥是您的标识符,它安全地存储在本地,必须在所有正在进行的请求中使用。当然,用户会更换手机。在这种情况下,必须通过短信重新激活该帐户,此时将生成一个新的秘密 ID,从而使之前的秘密 ID 失效。

因此,攻击者可以通过重新激活来尝试我提到的短信拦截协议。这样做的问题是,您会立即意识到有人正在拦截您的流量,因为 Whatsapp 将在您自己的设备上被禁用。因此,只有当您有一段时间没有查看 Whatsapp 或处于互联网中断状态时,此操作才能成功。总的来说,这使得他们的方法安全。

@Srinivas您所观察到的只不过是Whatsapp在其验证服务器上存储了在接下来的两个小时内无法验证特定电话号码的信息,无论请求的来源如何。


EDIT:回应@Srinivas 的评论:

你的答案的最后一部分是绝对正确的。我做了一些测试,效果正如你所说。谢谢。但我不清楚第一次登录和第二次登录。

我为不彻底而道歉。我将尝试重新解释。

正如我看到的whatsapp,初始屏幕是注册(短信代码请求屏幕),第二次登录是验证代码(验证短信代码)。您能否提供更多信息以供我理解?

我所说的首次登录是指整个短信验证过程。因此,我将其分为两部分:

  1. 首次登录:用户请求短信验证码。如果来自其他设备,他们需要正确输入代码,或者让 Whatsapp 识别 SIM 卡并自动完成验证。然后,他们登录并可以访问未发送或备份的消息(如果该帐户是以前存在的帐户)。

  2. 第二次登录:在此验证过程之后,Whatsapp 会立即提供一个存储在设备本地的秘密访问令牌。因此,每当他们打开应用程序并尝试连接到服务器时,他们都需要使用此访问密钥。正如我所解释的,如果他们想在另一台设备上重新激活帐户,则必须在新设备上再次完成步骤 1,然后生成一个新的密钥 - 使前一个密钥失效并使其生效只能使用新设备登录。

以下是我发现谁创建了类似 api 的一些文档:github.com/mgp25/Chat-API/wiki/WhatsApp-Registration-Flow。请提供您的宝贵意见

我查看了文档,它们完全遵循相同的模式。可能让您感到困惑的是最初的“代码请求令牌”。这只是一个密钥,用于验证发出完成步骤 1 请求的设备的有效性。这可确保尝试注册其设备的用户来源的合法性。

其工作原理如下:

用户想要完成第一步。因此,他们将请求令牌及其身份(电话号码)发送到服务器。这是加载到应用程序时交付的代码。

这仍然不足以阻止步骤 1 中的 SMS 拦截。鉴于请求的来源是合法的 Whatsapp 安装,SMS 验证码可以让攻击者访问用户的帐户。然而,正如我之前指出的,这会使之前在步骤 2 中生成的密钥失效。因此,用户会注意到,只要他们正在积极使用 Whatsapp 并连接到互联网,他们就会在本地注销。

如果还有任何困惑,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Whatsapp 身份验证如何运作? 的相关文章

随机推荐