为确保账户安全,双重验证已经成为网络服务的常规措施。但是对于大多数用户来说,双重设置需要有一个临时生成的验证码,或者额外地给你的手机发送一个密码,而这些验证码并不是不能破解的。尤其是那种通过短信形式发送的验证码。
在最近几个月里已经证实手机短信经常是双重验证中最薄弱的环节:黑客攻击了伊朗、俄罗斯甚至美国的政治活动家的手机短信。所以如果有可能的话,选择一种更好的验证方式是值得的,比如专门用于身份验证的智能手机app软件或者是能够生成一次性验证码的实物密码器。对于推特这类只能提供短信作为第二重验证的业务,是时候要清醒了,要察觉到可能的攻击,提供给用户更好的选择。
“短信并不是第二重验证的最佳方式,” 安全研究员兼法医专家Jonathan Zdziarski说:“它依赖你的手机进行验证,而这种验证能够受到侵犯并且失去控制。”
社交软件出问题不是空想出来的。在这个月初,Black Lives Matter的活动家DeRay McKesson发现,尽管他的推特账户有双重验证,但还是被黑了,黑客发了一条大选支持唐纳德·特朗普的消息。他说,黑客冒充他,打电话给Verizon(美国电信运营商),并让公司将他的短信发送至另一个不同的SIM卡上,从而截取他的一次性登陆密码。俄罗斯的活动家们近期也发现了他们的电报账号也被攻击了,可能是由国有电信公司帮助那些独裁政府劫持短信电报用于用户登录。
事实上,并不是只有公众人物才成为被攻击的目标。作为密码安全专家,Lorrie Cranor曾经历过一场相关的黑客攻击,她注意到这些身份识别攻击已经相当普遍,以至于纽约州发布了一个官方警告。
在你的登陆过程中,多增加一重基于短信验证的保障,势必要优于仅仅基于密码登陆的设置。但是Zdziarski指出,短信验证作为第二重验证却一点也不保险。双重验证是想确认人们的身份,基于一些他们知晓的信息(例如密码)以及他们拥有的一些物品(例如他们手机或其他设备)。
像“谷歌认证”和基于RSA加密算法的“令牌”就具有更好的安全性,它们可以通过网络服务商提供独一无二的一次性密码。经过测试,因为加密技巧的原因,这些安全信息无法在两台电脑之间互用。这样安全性就远远高于短信验证。不过,它方便性有所降低,这也可能是为什么没有那么普遍的原因吧。
“短信验证把你的登陆方式从‘你知晓的信息’变成了‘别人发送给你的信息’,” Zdziarski说:“如果交易发生了,这可能会被拦截。这也就意味着你的交易可能存在一定程度的风险。”
有一些策略诸如应用社交工程或者使用暴力手段,可以针对电话公司,从而破坏双重验证中的短信验证。被称为“国际移动用户识别码(IMSI)”和“黄貂鱼破解器”的假的手机信号塔也可以拦截短信。安全共同体最近呼吁关注七号信令系统(SS7),此协议允许网络通信彼此可以进行信息交流。黑客可以利用SS7,更改用户的电话号码,拦截他们的电话或短信。“现在任何网络可以告诉其他网络‘你的用户’信息,除非你的电话接通,否则电话和信息就会被转移到其他网络,”安全实验室的首席科学家Karstem Nohl说,此科学家最近演示了60分钟的攻击。“如果有一个攻击者,他们能得到你所有的短信。这确实千真万确……而且它是如此简单,简单到让人羞于说这是黑客行为。”
不过这些攻击准确的说也不是那么容易实现的,需要攻击者搞到用户的电话号码以及密码。这些号码可以是偷的,也可以是猜的,或者也可以是其他黑客组织泄露出的数据。因为任何一个人都有可能成为一个老练黑客的目标,所以这些基于短信服务的技术都应该避免任何登录相关信息的泄露。
幸运的是,大量的服务商提供了更好的选择。谷歌上周推出了“谷歌提示”,此服务可以直接从服务器发送第二重验证,到用户的安卓手机或者ISO系统的app应用“谷歌搜索”中。但是,更安全的应用应该不要求发送任何信息。像“谷歌认证”与“谷歌令牌”,以及RSA加密算法这样的app应用会生成一次性的密码,并且这些密码会在几秒之内就发生变更。这些由服务器产生的提取码被诸如Slack、WordPress或者Gmail这些服务商所应用,所以他们的用户可以说出密码来证明自己的身份,即使被泄露到网络上也是没有关系的。