【问题标题】:Alternative method for 2 factor authentication2 因素身份验证的替代方法
【发布时间】:2015-12-03 13:48:30
【问题描述】:

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

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

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

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

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

以这种方式做事有什么好处和坏处?是的,我知道 SMS 消息可以被伪造,但它比伪造也可以使用的电子邮件更难。我不会认为这是适当的 2 因素身份验证的替代方法,但这种方法值得作为一种成本较低的替代方法,不需要用户执行任何其他特殊操作。

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

【问题讨论】:

    标签: php objective-c security


    【解决方案1】:

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

    还有服务such as this one

    它所提供的只是一个非常薄的安全层,可以防止那些拥有用户密码但不知道上述信息或受害者手机号码的人。受害者的电话号码可以通过社会工程等其他方式获得。如果有一部单独的手机仅用于 2FA,它可能会起作用,但为什么不使用免费的 Google Authenticator API(适用于 iOS 和 Android 的 Google Authenticator 应用程序)?

    【讨论】:

    • 干杯,感谢您在这里的见解!
    猜你喜欢
    • 2021-09-08
    • 2011-03-19
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 2021-10-03
    • 1970-01-01
    相关资源
    最近更新 更多