2因素认证的替代方法

时间:2015-12-03 13:48:31

标签: php objective-c security

场景:我想创建一个用户注册帐户的应用程序,服务器向他们发送一次性密码以通过短信验证其联系人详细信息。用户输入收到的代码以验证其详细信息。

然而,发送短信需要花钱,但收到一个是免费的,而我的短信网关让我可以阅读收到的短信。

所以我可以在我的应用程序中创建一个屏幕,让用户通过预先填写的网关号码和消息向我的网关发送短信(例如,"嗨,请激活我的帐户,代码为:34GKTT551T") 。用户只需要按发送。

我的网关不会让用户键入他们已收到的代码并验证服务器上的代码,而是选择用户发送的代码并将消息发送到我的服务器,然后验证代码,从而验证代码。验证用户电话号码是他们在注册时输入的电话号码。

问题:这种方法有什么根本的错误吗?

以这种方式做事的利弊是什么?是的,我知道短信可以伪造,但比伪造一个也可以使用的电子邮件更难。我不认为这是正确的双因素身份验证的替代方法,但这种方法值得做,作为一种低成本的替代方案,不要求用户做任何其他特殊的事情。

PS。这是关于堆栈溢出的第一个问题,所以很好。

1 个答案:

答案 0 :(得分:1)

这不是安全的,因为SMS的发件人很容易被伪造。 Take these instructions for how to achieve this on Kali OS

还有服务such as this one

对于拥有用户密码但不知道上述信息或受害者手机号码的人来说,它所提供的只是一层非常薄的安全保障。受害者的电话号码可以通过社会工程等其他方式实现。如果有一个单独的手机用于2FA的唯一目的,它可能会有效,但为什么不使用免费的Google身份验证器API(适用于iOS和Android的Google身份验证器应用)?