2017 年05 月19日

为什么双重身份验证还不够安全

安全性 新闻

人们一听到”你确实需要一款反病毒软件”这样的说法时,通常的反应是:

-我不需要反病毒软件!我没什么值得盗用的!病毒?勒索软件?来吧,尽管感染好了!我只要重装操作系统就行了,什么损失也不会有 – 我的电脑上没有任何有价值的数据。

-但是你有银行账户,对吧?你会网上购物,不是吗?

-嗤,银行的双重身份验证机制能保护我。就算黑客盗走我的卡号,他们也拿不走我的钱。

但是,很遗憾黑客是可以做到的。首先,并不是所有网店都会使用”3D验证”防御机制,这意味着并不是每笔交易都需要发送含有验证码的确认短信。即使CVC码(信用卡背面的三位数字)也不能保证杜绝盗用 – 因为并不是所有交易都需要CVC码。

此外,黑客可以拦截银行发送的短信,然后利用短信中的验证码获取帐户的完整访问权限。最近,德国有一批消费者非常倒霉,黑客正在利用这种办法盗用他们的帐户,导致经济损失惨重。下面我们来看看具体黑客是怎样得逞的。

SS7:电话中的漏洞

之所以能拦截短信,是因为一组电话信令协议中存在漏洞,这组协议常被称为SS7(即”信令系统7″,又名”公共信道信令系统7″)。

这些信令协议是现代电话通信系统赖以生存的支柱;它们用于在电话网络内传送所有服务信息。早在20世纪70年代就已开发出这些协议,但直到80年代才得到首次应用,从那时起,这些协议逐渐变成世界范围的电话通信标准。

最初,SS7协议是针对固定电话设计的,其想法是把语音和服务信号放在不同的信道上,在物理上实现语音和服务信号分享,这种做法能更有力地防御电话黑客 – 他们采用专用蓝盒(即电话盗打器)来模拟当时用于在电话网中传输服务信息的音频信号。(没错,苹果联合创始人乔布斯和史蒂夫·沃兹尼亚克早期就制造并销售过这种电话盗打器 – 在此就不细说了)

后来在移动网络中也实施了这组协议,开发人员在其中增加了一系列功能,因此SS7可用于执行短信传输等功能。

但在50年前信息安全并未引起人们的关注 – 至少民用技术没有。人们注重的是效率,因此就有了这种高效但并不安全的”信令系统7″。

这种系统(以及同时代设计的其他多种系统)的主要弱点在于它基于信任,假设只有网络运营商可以访问系统,而运营商通常被认为是好人。

然而,最终的系统安全级别取决于得到保护最少的用户。只要任何一家运营商被黑,整个系统都会发生泄露。如果为其中任何运营商服务的网络管理员决定越权并利用SS7达到个人目的,则也会发生同样情况。

SS7访问权允许他人窃听通话、确定用户位置并拦截短信,所以难怪各国情报机构和犯罪分子都是未经授权的SS7访问的活跃用户。

实际攻击方式

最近发生的德国攻击事件的攻击方式如下:

1.用户电脑被银行木马感染。如果不使用安全软件,电脑很容易感染上木马,木马运行几乎没有任何明显迹象,所以用户可能根本不会注意到已感染木马。

黑客利用木马盗取银行登录名和密码。(当然,在大多数情况下,仅盗取这些凭证是不够的 – 还需要银行通过短信发送的验证码)。

2.显然,同一木马被用来窃取用户的电话号码。这些数据是网上购物时通常会要求输入的,窃取起来并不难。所以,犯罪分子将同时拥有访问用户银行账户的凭证以及用户的手机号码。

3.犯罪分子利用盗取的银行登录凭证将资金转移到自己银行帐户中。在此之后,他们以某个外国运营商的身份访问SS7,使发送到相应手机号的短信转发到自己的手机上,从而接收完成登录和转账所需的验证码。银行甚至没有理由怀疑资金可能被盗用。

此案中被攻击用户所属的德国运营商证实了这次的攻击事件。利用其SS7网络接入进行攻击的外国运营商被封锁,并通知了受影响用户。我们不知道用户能否设法成功拿回损失的钱。

你仍然坚持不需要反病毒软件吗?

通常,人们认为双重身份验证是坚不可催的 – 如果只有你能访问自己的手机,那么还有谁可以读取手机上短信呢?事实是,只要有人有权访问SS7系统,并且有兴趣使用你的短信,就能盗走你的资金。

要构建正确的双重身份验证,并防范与本文中所述的类似攻击,该怎么做呢?下面有两点建议。

  • 短信并不是双重身份验证的唯一软件。请了解银行是否还支持其他更安全的验证方法,例如Google Authenticator应用和加密USB密钥。
  • 在每台设备上安装优秀的安全软件。很遗憾,银行可能不会使用替代类型的双重身份验证;有些银行只通过短信发送验证码,那么你唯一的希望就是有一个强大的安全软件。对于本文中描述的攻击,若安装了适当的反病毒软件,则一开始就不会允许银行木马感染电脑,这样银行登录凭证就不会被盗。从这点上来说,能不能获取短信就无关紧要了。