thn*_*new 19 security authentication mobile android whatsapp
我想开发一个移动应用程序并使用像用户注册的whatsapp.现在我记得几年前讨论过的安全问题.Whatsapp用于通过电话号码和IMEI对用户进行身份验证.现在当然这不是很安全,但我真的不知道如何更安全.
现在我已经很久没有听到有关Whatsapp身份验证问题的消息,所以我猜他们现在已经有了安全的方法.你知道Whatsapp今天是怎么做到的吗?
Far*_*ahi 14
我会抓住这个问题.
据我所知,Whatsapp仍然使用您的电话号码作为主要的唯一标识符.第一次登录Whatsapp时,您可以验证自己的电话号码.
但是,Whatsapp第二次在登录时提供密钥.这有助于避免一些像Telegram这样的攻击服务,其中可以在任何时刻调用和拦截SMS来访问帐户(看看他们的Web登录是如何工作的).
实际上,他们提供的这个密钥是您的标识符,它在本地安全存储,必须在所有进行中的请求中使用.当然,用户可以切换手机.在这种情况下,必须通过SMS重新激活帐户,其中将产生新的秘密ID,使前一个密码无效.
因此,攻击者可以通过重新激活来尝试我所说的SMS拦截协议.这个问题是你会发现有人会立即拦截你的流量,因为Whatsapp会在你自己的设备上被禁用.因此,如果你没有检查Whatsapp一段时间或者正在互联网中断,这只能是成功的.总的来说,这使他们的方法安全.
@Srinivas你所观察到的只不过是Whatsapp存储在接下来的两个小时内无法验证特定电话号码,无论请求的来源如何,都在他们的验证服务器上.
编辑:回应@ Srinivas的评论:
你答案的最后一部分绝对正确.我做了很少的测试,它就像你说的那样有效.谢谢.但我不清楚第一次登录和第二次登录.
我为不彻底而道歉.我会尝试重新解释.
正如我看到whatsapp,初始屏幕是注册(短信代码请求屏幕),第二次登录是验证码(验证短信代码).您能为我的理解提供更多信息吗?
我第一次登录时的意思是整个SMS验证过程.因此,我将它分为两部分:
首次登录:用户请求短信验证码.如果来自其他设备,他们需要正确输入代码,或者让Whatsapp识别SIM并自动完成验证.然后,如果它是以前存在的帐户,则会登录并访问其未传递或备份的邮件.
第二次登录:在此验证过程之后,Whatsapp立即提供秘密访问令牌,该令牌存储在设备本地.因此,只要他们打开应用程序并尝试连接到服务器,就需要使用此访问密钥.正如我所解释的,如果他们想要在另一台设备上重新激活他们的帐户,他们将不得不再次从新设备完成步骤1,然后生成一个新的密钥 - 使之前的密钥无效并使其成为只能使用新设备登录.
以下是我发现的一些创建类似api的文档:github.com/mgp25/Chat-API/wiki/WhatsApp-Registration-Flow.请提供宝贵的意见
我查看了文档,他们精确地遵循相同的模式.可能让您困惑的是最初的"代码请求令牌".这只是一个密钥,用于验证正在请求完成步骤1的设备的有效性.这可以确保尝试注册其设备的用户的来源的合法性.
这是如何工作的:
用户想要完成第一步.因此,他们向服务器发送请求令牌及其身份(电话号码).这是在加载到应用程序时传递的代码.
这仍然不足以在步骤1期间停止SMS拦截.鉴于请求的来源是合法的Whatsapp安装,SMS验证码可以使攻击者访问用户的帐户.但是,正如我之前提到的,这使得先前生成的密钥从步骤2无效.因此,只要用户正在积极使用Whatsapp并连接到Internet,用户就会注意到他们已经在本地登出.
让我知道是否有任何混乱.
归档时间: |
|
查看次数: |
12066 次 |
最近记录: |