最近的一篇论文表明有攻击可攻破RC4加密以及解密用户cookie。那么,这种攻击的工作原理是什么,企业应该如何避免这种攻击?RC4是否还有用?
Michael Cobb:因为速度和简单性,RC4加密成为最广泛使用的流加密,并用于常用协议中,例如有线等效保密(WEP)和安全套接字层(SSL)以及传输层安全(TLS)等。虽然RC4一直被认为存在漏洞,但在现实世界中还没有针对它的攻击。随着越来越多的加密漏洞被发现,RC4似乎早在2013年就应该被淘汰。而现在密码分析结果逐渐将成为切实可行的漏洞利用,这意味着RC4无法再为企业数据提供足够安全。
两名比利时研究人员Mathy Vanhoef和Frank Piessens在52小时内解密了受TLS保护且使用RC4加密的HTTPS会话中使用的Web cookie,而此前利用RC4漏洞的攻击需要花费2000小时。通过使用固定纯文本恢复技术—被称为RC4 NOMORE(Numerous Occurrence Monitoring & RecoveryExploit),攻击者可诱骗用户访问代码来产生足够的数据,成功地确定用户的加密cookie值。被劫持的cookie可被用来获取对信息或服务的未经授权访问。
该攻击利用RC4密钥流中的偏差来恢复纯文本。密钥流需要都一致随机,否则就可能出现偏差。RC4产生的密钥流对某些序列有不同程度的偏差,例如,一些字节比它们原本更有可能采用特定值。这让RC4容易被辨识力强的攻击者攻击,因为攻击者可以区分加密数据与随机数据。RC4 NOMORE利用Fluhrer-McGrew和Mantin的ABSAB偏差来返回潜在纯文本cookie值列表,攻击者会使用暴力破解直到找到正确的。这种攻击在未来无疑将更有效。
这种攻击并不局限于解密cookie,任何被重复加密的数据或信息都可以被回复。例如,对于使用WI-Fi保护访问临时密钥完整性协议(WPA-TKIP)的无线网络,这种攻击只需要一个小时来执行。虽然Wi-Fi联盟正在逐步淘汰使用WPA-TKIP,但它的应用仍然很广泛。网络应该使用WPA2配置为仅使用加密算法AES-Counter Mode CBC-MAC协议。
在2015年2月,互联网工程任务组发布了RFC 7465,其中禁止在客户端和服务器建立TLS连接时使用RC4加密套件。微软和Mozilla也发布了类似的建议来淘汰和启用RC4加密以及其他弱算法,例如SHA-1。微软建议使用TLS 1.2 AES-GCM作为更安全的替代方法,同时提供相似的功能。
RC4加密是唯一幸免于2011年针对TLS 1.2的BEAST攻击的常用加密,因为该攻击利用了分组加密中的漏洞。这导致越来越多的网站开始使用RC4(约50%),但现在这个数字已经回落,根据加州大学伯克利分校计算机科学学院表示,目前全球约13%的网站仍然在使用RC4。使用RC4加密的网站管理员应该切换到AES,这是更安全的对称分组加密。此外,网站开发人员应确保用于访问敏感信息的会话cookie值是盐化哈希值,它会在每次服务器响应时变化,这种方法可抵御对cookie的暴力破解。与此同时,企业应确保用户的Web浏览器完全保持更新。现在所有最新版本的主流浏览器都开始避免使用RC4,相信与IE11一样,它们很快将完全停止使用RC4。