代码之家  ›  专栏  ›  技术社区  ›  Biff MaGriff

使用短信作为网站的身份验证因素

  •  1
  • Biff MaGriff  · 技术社区  · 15 年前

    这个问题是我之前问过的问题的后续问题
    I'm trying to implement 2 factor authentication on the cheap. How would I do that?

    我正在探索使用android手机来发送短信息或机器人与用户的家庭电话或移动设备交谈pin/令牌代码的想法。我正在考虑使用android,因为硬件会很便宜,而且我可以毫无问题地安装我制作的应用程序。

    我有几个问题:
    这是第二种可行的身份验证形式吗?

    工作流程如下。

    用户进入webapp输入用户名,选择他们想要的通知类型、短信或语音并提交。

    webapp(在我的例子中是C#.net)验证用户是否存在,并查找我们记录的电话号码。

    web应用程序创建一个令牌,该令牌将在设定的时间内过期,并以某种方式将此令牌和电话号码发送到android设备。(XML、文件或任何真正的东西)

    然后,手机通知webapp消息已发送或失败,webapp通知用户。

    alt text

    谢谢你的反馈。安全不是我的强项。

    2 回复  |  直到 9 年前
        1
  •  2
  •   Chris Stratton    15 年前

    你可以这样做的短信,但不是语音记录。你也可能不想。。。但我马上就来。

    在今天的android手机上,您无法将录制的语音信息播放到通话音频中,因为通话音频绕过了linux子系统,由另一个(收音机等)处理器核心处理。你也许可以用耳机线连接到环回。。。但现在情况越来越极端了。

    也许android手机并不能解决你的应用程序问题。。。你将依赖于手机网络,依赖于维持一个计划,你的运营商可能会提出一些反对的理由。

        2
  •  1
  •   Cameron Skinner    15 年前

    原则上这听起来不错,但请记住要非常保守地知道这到底给了你什么信息:你已经证明了输入密码的人是拥有电话的,仅此而已。

    再加上他们也知道正确的密码这一事实,这通常足以确信正确的用户已经通过身份验证。你只需要确保攻击者不能猜测或嗅探代码。您可以通过生成加密随机代码来防止猜测,但您必须检查嗅探短信有多困难。我猜很难,除了特别专注的袭击者,但想必我们这里不是在谈论国家安全。

    当登录尝试失败或用户报告丢失或被盗电话时,请确保您有撤销密码/手机号码的机制。你还需要为那些没有手机的用户提供一个替代方案。

    认证通用咒语:你知道的,你持有的。你知道的密码,你拿的电话。