短信验证,安全吗?

信息安全 验证 短信
2021-08-18 10:24:35

在我的网络应用程序中(一切都使用 HTTPS),我向用户发送一条带有唯一 5 位数代码的 SMS 到他提供的手机号码。然后我要求用户在浏览器中输入他收到的代码。除了猜测 5 位数的纯运气之外,它是 100% 安全的还是有办法用这种方法来调整?

谢谢。

4个回答

我会说不。虽然 SMS 是普遍接受的第二个因素,但在许多情况下,攻击者使用社交工程侵入用户的运营商帐户并获取验证码并使用它。因此,要回答您的问题,除了猜测之外,它是否 100% 安全,不。

编辑:为了添加此信息,甚至NIST 也将 SMS 作为其安全标准中有效的第二个因素删除。

您所描述的绝对不是一种安全的方法。SMS 消息通过无线方式广播,不保证加密。

它们可以被拦截和记录

此外,您的 SMS 消息仅与您的提供商一样安全。黑客可以执行社会工程攻击:例如说服蜂窝运营商技术支持向黑客控制的设备发送消息

这是一个公共的、不安全的渠道,应该这样对待。添加短信验证总比没有好,但在您的应用程序的上下文中可能存在无法接受的风险。如果我们谈论的是身份验证,那么有更好的方法。

更多的:

https://www.ckn.io/blog/2015/11/29/gsm-sniffing-sms-traffic/

当然,它不是 100% 安全的。此外,NIST 正在更新其数字身份验证指南,并且即将禁止 SMS

您应该在用户注册时使用其他 2FA 方式。您甚至可以使用智能手机应用程序,尽管这也很糟糕

你不会得到 100%,但如果你想得到真正的高,你需要发送带有 x509 证书或至少一个自初始化 Yubikey 的智能卡。

它提供一定程度的安全性,但与您的运营商的客户服务一样安全。例如,人们可以知道一些关于您的基本信息,例如地址、母亲的娘家姓等……打电话给运营商,转移号码并劫持任何意图……