我会在这个问题上试一试。
据我所知,Whatsapp 仍然使用您的电话号码作为主要的唯一标识符。首次登录 Whatsapp 时,您会验证电话号码是您自己的。
但是,Whatsapp 第二次在登录时提供密钥。这有助于避免一些攻击服务,如 Telegram 已经看到的,在这些攻击中,可以随时调用和拦截 SMS 以访问该帐户(看看他们的 Web 登录是如何工作的)。
确实,他们提供的这个密钥就是您的标识符,它安全地存储在本地,必须在所有进行中的请求中使用。当然,用户切换手机。在这种情况下,必须通过 SMS 重新激活该帐户,其中将生成一个新的秘密 ID,使之前的秘密 ID 无效。
因此,攻击者可以通过重新激活来尝试我所说的 SMS 拦截协议。这样做的问题是您会意识到有人正在立即拦截您的流量,因为 Whatsapp 将在您自己的设备上被禁用。因此,只有当您有一段时间没有检查 Whatsapp 或处于互联网中断状态时,这才能成功。总的来说,这使他们的方法安全。
@Srinivas 你所观察到的只不过是 Whatsapp 在他们的验证服务器上存储了一个特定的电话号码在接下来的两个小时内无法验证,无论请求的来源如何。
编辑:回应@Srinivas 的评论:
你答案的最后一部分是绝对正确的。我做了一些测试,它就像你说的那样工作。谢谢。但我不清楚第一次登录和第二次登录。
我很抱歉没有彻底。我将尝试重新解释。
当我看到whatsapp 时,初始屏幕是注册(短信代码请求屏幕),第二次登录是验证码(验证短信代码)。您能否提供更多信息以供我理解?
我所说的第一次登录是指整个短信验证过程。因此,我将它分为两部分:
首次登录:用户请求短信验证码。如果来自其他设备,他们需要正确输入代码,或者让 Whatsapp 识别 SIM 卡并自动完成验证。然后他们登录并可以访问他们未传递或备份的消息(如果它是以前存在的帐户)。
第二次登录:在此验证过程之后,Whatsapp 会立即提供一个秘密访问令牌,该令牌存储在设备本地。因此,每当他们打开应用程序并尝试连接到服务器时,他们都需要使用此访问密钥。正如我所解释的,如果他们想在另一台设备上重新激活他们的帐户,他们必须从新设备再次完成第 1 步,然后新设备将生成一个新的密钥——使之前的密钥失效并使其只能使用新设备登录。
这是我发现的一些文档,他们创建了类似的 api:github.com/mgp25/Chat-API/wiki/WhatsApp-Registration-Flow。请提供您的宝贵意见
我查看了文档,它们完全遵循相同的模式。可能让您感到困惑的是最初的“代码请求令牌”。这只是一个验证请求完成步骤 1 的设备的有效性的密钥。这确保了尝试注册其设备的用户的来源的合法性。
工作原理如下:
用户想要完成第一步。因此,他们将请求令牌连同他们的身份(电话号码)一起发送到服务器。这是在加载到应用程序时交付的代码。
这仍然不足以在步骤 1 中停止 SMS 拦截。鉴于请求的来源是合法的 Whatsapp 安装,SMS 验证码可以让攻击者访问用户的帐户。但是,正如我之前提到的,这会使先前从步骤 2 生成的密钥无效。因此,只要用户正在积极使用 Whatsapp 并连接到 Internet,用户就会注意到他们已经在本地注销。
如果还有什么困惑,请告诉我。