如今,网站和 App 越来越多,我的账号也随之增加,这为我们带来了不少的记忆负担,短信验证码作为一种便捷验证方式,被广泛使用在注册、登陆、重置密码、转账认证等关键场景,然而,今天的短信验证码还是安全的吗?
我们知道,通常的短信验证码是有效期 10 分钟的 6 位数字,所以,如果我们在有效期内遍历 000000 ~ 999999,肯定能找到有效验证码。国外网友确实基于这一点破解了 Instagram 账号,还顺手领取了 3 万美刀的奖励。像这种暴力破解的,只需要加尝试次数限制,当用户输入 10 次错误时,就强制验证码过期即可。
现在,也有了通过基站拦截短信验证码,从而将银行卡盗空的案例:央视:警惕!手机验证码已被骗子利用转空银行卡。这充分体现了短信验证码的存在的严重缺陷,基于此,目前国内运营商都有一键认证的方案,其原理是当用户点击一键认证时,App 调用运营商的 SDK 读取 SIM 卡认证,不通过网络发送认证信息,以下是三家的相关产品:
- 移动:https://dev.10086.cn/numIdentific
- 联通:https://onlinebusiness.10010.com/product/5302
- 电信:https://id.189.cn/banner/unPassword
就目前而言,绝大多数的产品都不会付费使用运营商的认证服务,所以使用短信验证仍然是存在很高的风险,如果网站支持两步验证,建议开启两步验证,这样就可以通过离线的随机验证码安全验证。