1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

通过手机短信验证码验证身份,真的安全吗?

本帖由 漂亮的石头2015-07-03 发布。版面名称:知乎日报

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    486,020
    赞:
    46
    [​IMG] Flanker Edward,信息安全

    提问者说的是“短信验证码”,其实这个并不是手机相关的,那下面就讨论两个方面,一个是短信验证的安全和其他的二次验证,一个是手机本身如果被盗用的情况。事实上来说,由于手机是机卡分离的设计,在及时挂失的情况下,手机丢失反倒目前不是对短信验证最主要的威胁。不过,在换号之前,一定要把自己绑定过手机号的服务都注销或者更换掉。

    短信并不是最好的二次验证方法,但却是成本最低最容易实现的也基本靠谱的:用户绑定性较强,不需要额外设备,用户广泛拥有,校验成本极低。短信验证的预设是:

    1)认为用户的手机卡是不会轻易丢失和被窃取的,和用户绑定更紧密(相对于各种脱库事件,密码泄露的概率还是比丢手机的概率大多了,况且丢了手机可以立即去运营商挂失补卡,密码泄露了就是泄露了)

    2)认为有手机号可以做二次验证的用户是真实用户(所以手机验证码通常也会在要求比较高的场合被用来作反垃圾注册)(并且能获得更多用户的真实信息用来...)

    3)认为运营商维护的通讯信道比其他的都更安全

    这些预设基本上是靠谱的,只是在智能手机普及的大环境下各类短信木马此起彼伏,补卡攻击和无线电监听这些一直存在的问题也被关注和利用,短信验证的安全性就开始出现了问题。

    目前来说对于短信验证的威胁主要有如下三个方面:

    1)智能手机平台上的短信木马,这里【支付宝大盗分析报告】可以看到一个案例。这种木马的作用之前广泛用于支付宝诈骗,不法分子诱骗受害者通过二维码下载安装木马,随后重置受害者的支付宝、淘宝账户盗取钱财。因为之前支付宝的重置密码验证只通过短信验证码,木马在后台可以轻易窃取并转发给不法分子,实现对受害者的账号重置。这类木马编写简单,已经形成了非常完整的产业链:从制马人员到售马、租马,到实施钓鱼、欺骗、洗号、转移钱财。

    在智能手机的年代,由于 OS 开放了短信操作和拦截的接口(Android 直接提供,iOS 需要越狱),对于一个安装了支付类 App 的智能手机且绑定账户的 SIM 卡也安装在同一个手机的情况(绝大部分情况下是这样),短信验证事实上已经退化成了单因子验证,只要智能手机被安装了木马那么这些验证体系就会全线崩溃,攻击者甚至可以只通过钓鱼 wifi 全部搞定登陆密码、支付密码和短信验证,参见诸葛老师的演示:《每周质量报告》 20140615 移动支付的隐忧

    2)补卡攻击、克隆攻击。之前提到了短信验证码事实上是基于手机号(SIM 卡 / 运营商服务)而不是手机设备,那么如果能办一张和受害者相同的手机号(卡),自然就能狸猫换太子,接受受害者的验证码,重置各种账号。参考安卓系统手机绑定银行卡易成黑客“提款卡”,这里的薄弱环节就在运营商,部分地区的运营商对补卡人员身份验证不严导致出现了补卡攻击。在早些年 SIM 卡构造简单的时候甚至还能直接去克隆一张卡出来。

    3)无线电监听。这里主要包括 GSM 监听,包括监听空中短信,直接获取短信内容 - -b,但这个玩法成本和范围有限制,相对 1、2 来说用在真正犯罪的情况下还比较少。发一个入门教程,范围很小但是设备价钱很低:GSM Hackeing 之 SMS Sniffer 学习

    解决方案:

    1 的情况有很大部分其实是反木马和系统开放度的问题,目前 Android 在 4.4 之后已经收紧了短信权限,相信在 4.4 普及之后情况会有一定好转。TrustZone 这些耳熟能详方案就不提了。

    2 依赖于运营商的各大营业厅加强安全意识,目前来说各家公司应该是收到过公安部的通知,现在去营业厅补卡还是盘查的比较严格的。

    3 可以考虑使用 CDMA、3G、4G 等更安全的信号通道,但目前也有降维攻击,强制将用户信号降为(2G)GSM 之后进行监听。这种攻击的防御主要是使用非 GSM 制式的通讯服务,然后坐等 GSM 慢慢退出历史舞台。(移动用户哭了)

    (2、3 其实就是对运营商维护的信道安全提出了质疑。)

    短信之外自然有一些更好的二次验证,比如 OTP、指纹甚至虹膜也都可以使用。OTP(各种宝令、Google Authenticator、RSA token)已经比较普遍的。指纹随着具有指纹识别功能设备的普及也会流行开来,但如何在隐私和安全性上取得平衡还需要考量。

    至于手机可能存在的失窃情况,这些二次验证方案都有对策,首先给自己的手机设置锁屏密码是必须的步骤,防止手机丢失后被直接打开使用,增加犯罪成本。至于给 SIM 卡设置 PIN 这些,似乎用的人不多,这里就不讨论了。在假定设置了不会被轻易破解的锁屏密码的情况下,具体情况具体分析

    1)短信验证:攻击者可能在解不开锁屏后就直接取出 SIM 卡,这种情况下手机丢失后立即去营业厅或者电话挂失号码。

    2)OTP 类:这些基于 App 的验证相对来说还可靠一些,但保险起见也需要做一下吊销,以重新生成种子。

    3)指纹、虹膜:这种表示压力不大。

    查看知乎原文
     
正在加载...