短信动态密码也称短信密码,是以手机短信形式发送的6位随机数的动态密码,是一种一次性口令,也称为手机动态口令。
用于生成一次性口令的方法除了短信动态密码,还有硬件令牌。硬件令牌需要发放额外的硬件设备,相对成本高、技术门槛高,而短信动态密码的核心优势在于成本低、便捷性高、易于推广普及。
相对于传统静态密码,短信动态密码只能使用一次并且有使用时间限制,所以能有效避免被黑客窃听后重用,安全性较高,目前有越来越多对安全要求比较高的网站和手机应用将随机短信动态密码(通常为6位数字)作为用户登录或交易时的认证方式。
然而,短信认证过程中涉及流程较多,每个步骤均存在被黑客攻破的风险,所以短信密码的广泛应用也带来了很多安全隐患。在介绍短信动态密码存在的安全隐患之前,先带大家了解一下短信动态密码的应用流程。
在典型的认证场景中,用户在登录或支付页面输入手机号码,并请求动态密码。后台认证服务接收到请求后通过特定算法生成动态密码,然后通知短信网关,短信网关通过运营商将密码发送给用户。最后用户输入短信密码并上传到认证服务器认证(具体流程如图所示)。
目前短信动态密码面临的最大风险是被黑客获取,而整个流程中的每个环节均存在这种可能。根据各项技术与业务的发展情况,目前主要的泄露途径有以下几种。
1、云服务
许多公司向客户提供云服务,供客户上传数据至云端作为备份(一般在设备连接WiFi的情况下备份),可通过web方式进行查询、管理,并可以便捷地共享给其他设备。例如苹果公司的iCloud、小米云服务、QQ同步助手等。此时,黑客只要能登录云端,即可获取用户短信等数据。目前来看,这种机制存在一定风险。
首先,提供云服务的网站以及业务逻辑可能存在安全缺陷,如存在漏洞或者为用户设定了默认密码。
其次,许多用户安全意识不高,使用了弱密码;或是与其他网站使用了相同的账号和密码,黑客利用撞库攻击获取登录名和密码;或是个人信息泄露过多,黑客可通过密码重置、安全问题等方式获取密码。进入系统后,黑客不仅能将用户的短信内容一览无遗,还可以使用手机号和短信密码登录网站、进行支付交易,甚至可以在云端删除手机端数据,使用户难以察觉。
2、短信仓库和短信转移
运营商提供了许多增值服务,如短信仓库业务和短信转移业务。短信仓库业务将客户短信保存在运营商的数据库中(如图2所示)。短信转移业务将发给某个手机号码的短信转移到另外一个手机号码上。此类业务的初衷是为了方便用户,然而实际应用中也为黑客提供了机会。大部分运营商提供网站办理业务途径,所以与云服务类似,同样也面临着网站安全性、业务逻辑安全性不足、用户信息泄露的问题。黑客利用漏洞登录系统或是将短信转移号码设置为自己手机号后,可实时通过短信内容掌握客户动态,使用客户账号登录网站或进行网银交易,危害性甚至超过云服务系统被入侵。
3、恶意软件
有监测数据显示,不同版本安卓系统获取root权限用户比例为5%-35%。由于用户设备获取root,权限比例较高,安卓应用市场管理不严格,一些用户因误装了恶意转件而导致相关短信被拦截甚至转发。这些软件往往通过钓鱼网站转播,并且针对银行或是第三方支付网站发出的短信,拦截用户收到的支付、转账验证短信,从而盗取资金(如图所示)。
4、伪基站和改号软件
伪基站通过伪装成运营商的基站,任意冒用其他号码(如10086、95588等),向用户群发短信。改号软件也可实现此类功能。单独使用这类方法并不能获取用户的短信内容,它们通常会与钓鱼网站、恶意软件等结合使用。
在不改变短信密码作为认证手段的前提下,若想改善上述问题,可以从以下两个层面着手:
国家层面,应加强对伪基站犯罪活动的打击;运营商应在推行新业务时,对安全性进行充分考量,对于敏感信息(如发现号码为6位的)不应进行存储和转发,云服务提供商也可采取类似策略;
用户层面,提高安全意识,防范钓鱼网站、不安装未经认证的软件。同时,由于目前伪基站仅针对GSM,升级手机卡和设备可以有效避免受到伪基站影响。