RC4算法是Ronald Rivest在1987年设计的密钥长度可变的流加密算法簇,这种算法的优点是速度快,和加密简单易用,所以非常流行。它被用于HTTPS的安全套接字层(SSL)和传输层安全(TLS)协议;事实上,在所有TLS流量中,约有50%的流量目前在使用RC4算法来保护。

伊利诺伊大学的教授Dan Bernstein披露了RC4中的一个漏洞,该漏洞允许攻击者从使用RC4加密的TLS连接中恢复有限数量的纯文本内容。这种RC4攻击适用于支持该加密算法的所有版本的SSL和TLS。这种针对RC4的攻击是可能的,因为该加密生成的密钥流中存在统计性缺陷,从而导致泄露部分加密信息,为攻击者提供了足够的样本来进行分析。

这个漏洞并不会给SSL/TLS用户带来直接的威胁,因为这是一个多会话攻击,目前还不太可能实施。攻击者必须能够捕获客户端和服务器之间的网络流量,以及在邮件中相同位置反复被发送的相同的加密内容。即使攻击者捕获了这些信息,攻击者仍然只能够恢复一小部分信息。然而,HTTP消息具有程式化表头,在对话中都是相同的,所以cookie的内容可能会被捕获,特别是当出现更有效的利用这个漏洞的方法时。如果攻击者能够访问存储在cookie中的数据,这将给企业带来巨大的危险。因为,cookie通常被用来存储用户账户信息或者用于身份验证的会话令牌,这样用户就不需要反复登录。如果攻击者可以拦截这些cookie,他们就可以冒充用户或者访问受感染网站或服务内的敏感数据。

SSL/TLS协议支持添加和选择不同的算法,但主要的web浏览器并不支持最新和更安全的算法。TLS 1.2支持AEAD(带关联数据的加密认证)加密,但这种版本的TLS还没有得到广泛部署。除了iOS上运行的Safari外,主要的浏览器要么根本不支持它,要么默认情况下将它关闭了。为此,你可以改变TLS使用RC4的方式,但你需要改变每个客户端和服务器的TLS部署,并能够抵挡未来改进的RC4攻击方法。