云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云主机_医疗器械网站建设_怎么样

小七 141 0

随时掌握TLS攻击

CloudFlare在我们的整个服务中广泛使用TLS连接,这使得我们优先关注有关TLS安全问题的最新消息。我们在外部和内部都使用TLS,TLS的不同使用有不同的约束条件。一般来说,我们使用TLS有三种方式:处理来自访问使用CloudFlare网站的web浏览器的HTTPS连接,从我们的数据中心网络到客户的web服务器的HTTPS连接,以及在我们的网络内部。本周,针对某些TLS连接使用的RC4密码的新类型攻击的消息使我们(再次)重新评估我们使用TLS的所有情况,特别是我们正在使用的密码套件。这篇博客文章提供了一些关于TLS和密码套件的背景知识,最近的攻击,以及我们如何配置我们的系统来尽可能地保护我们的客户(及其客户)的安全。TLS和密码套件当两台计算机希望使用TLS进行安全通信时,其中一台(称为客户机)连接到另一台(服务器),并就使用何种加密方法进行协商。通信的核心是客户机和服务器之间的协议,将在其中使用密码套件。ciphersuite精确地指定将在客户端和服务器之间使用的加密类型。例如,当您访问诸如https://cloudflare.com/使用HTTPS,将在web浏览器和CloudFlare web服务器之间建立TLS连接。web浏览器通过告诉web服务器它支持哪些密码套件来启动TLS连接:它告诉web服务器它可以使用哪种加密类型。可用密码套件的列表因浏览器和版本而异。汉诺威大学有一个小网站,可以告诉你你的网络浏览器支持哪些密码套件。使用它只需访问https://cc.dcsec.uni hannover.de/。对于我的浏览器,最新版本的googlechrome,套件列表如下。该顺序给出了web浏览器对密码套件的首选项。例如,它更愿意使用ECDHE-ECDSA-AES256-SHA而不是ECDHE-RSA-AES256-SHA。ECDHE-ECDSA-AES256-SHAAESDHE256-AESHA公司DHE-RSA-CAMELLIA256-SHA公司DHE-DSS-CAMELLIA256-SHA型DHE-RSA-AES256-SHADHE-DSS-AES256-SHAECDH-RSA-AES256-SHAECDH-ECDSA-AES256-SHARSA-CAMELLIA256-SHA公司RSA-AES256-SHAECDHE-ECDSA-RC4128-SHAECDHE-ECDSA-AES128-SHAECDHE-RSA-RC4128-SHAECDHE-RSA-AES128-SHADHE-RSA-CAMELLIA128-SHA公司DHE-DSS-CAMELLIA128-SHA公司DHE-DSS-RC4128-SHADHE-RSA-AES128-SHADHE-DSS-AES128-SHAECDH-RSA-RC4128-SHADH-ECRSA-AESSA-128型ECDH-ECDSA-RC4128-SHAECDH-ECDSA-AES128-SHARSA-SEED-SHA公司RSA-CAMELLIA128-SHA公司RSA-RC4128-SHA公司RSA-RC4128-MD5RSA-AES128-SHA公司ECDHE-ECDSA-3DES-EDE-SHAECDHE-RSA-3DES-EDE-SHADHE-RSA-3DES-EDE-SHADHE-DSS-3DES-EDE-SHAECDH-RSA-3DES-EDE-SHAECDH-ECDSA-3DES-EDE-SHARSA-FIPS-3DES-EDE-SHARSA-3DES-EDE-SHA公司每个web服务器都有一个相似的密码套件列表,在TLS握手过程中(在TLS连接开始时),客户机和服务器将根据客户机和服务器的优先顺序商定一个他们都理解的密码套件。当我连接到https://cloudflare.com/我的浏览器和CloudFlare web服务器同意使用ECDHE-RSA-RC4128-SHA。那个神秘的字符串有很多信息。它解释了浏览器和服务器将如何交换或达成一致加密密钥和我做的实际网页浏览将如何加密。它分为以下几个部分:ECDHE意味着客户机和服务器将使用短暂的椭圆曲线Diffie-Hellman商定加密密钥。RSA意味着客户端将使用RSA算法进行通信来验证密钥是否有效。RC4128意味着我的web浏览会话的实际加密将使用带有128位密钥的RC4算法执行(这是客户端和服务器使用ECDHE-RSA协议的密钥)。最后,SHA意味着SHA算法将用于安全地散列部分TLS消息。CloudFlare针对TLS CipherSuite的服务器配置在nginx(我们广泛使用)中设置,使用以下配置命令:ssl协议SSLv3 TLSv1 TLSv1.1 TLSv1.2;ssl密码ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:RC4:高:!MD5:!阿努尔:!埃德:!山茶花;ssl首选服务器密码;(请注意,这篇博文的前一个版本有错误的配置,这是因为您确实复制/粘贴了错误的内容)。在提供以下密码套件的服务器上的结果(您可以使用SSL Labs报告自己检查):ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-RC4128-SHAECDHE-RSA-AES128-CBC-SHARSA-AES128-GCM-SHA256RSA-RC4128-SHA公司ECDHE-RSA-AES256-GCM-SHA384ECDHE-RSA-AES256-CBC-SHA384ECDHE-RSA-AES256-CBC-SHARSA-AES256-GCM-SHA384RSA-AES256-CBC-SHA256RSA-AES256-CBC-SHAECDHE-RSA-3DES-EDE-CBC-SHARSA-3DES-EDE-CBC-SHAECDHE-RSA-AES128-CBC-SHA256RSA-AES128-CBC-SHA256RSA-AES128-CBC-SHACloudFlare服务器的首选项是ECDHE-RSA-AES128-gcmsha256,但不幸的是,它没有得到广泛支持。然而。我待会再讨论密码套件。所以,我的浏览器和服务器同意使用服务器的第二个首选项ECDHE-RSA-RC4128-SHA。

转发保密

正向安全您会注意到,我们已经将CloudFlare服务器配置为首选使用ECDHE的密码。这是因为,与RSA开头的密码不同,它们提供了前向保密性。要理解前向保密性,最好先了解不提供这种保密性的系统,例如RSA。当使用RSA时,服务器的公钥用于加密客户端(web浏览器)创建的机密。因为服务器有私钥,所以它可以读取机密,然后客户端和服务器都知道一个共享机密,可以用于加密。但是服务器的公钥RSA密钥是服务器证书的一部分,并且通常很长。同一个公钥使用数月或数年并不少见(当前的CloudFlare RSA密钥不会在2013年12月5日之前过期)。这就产生了一个潜在的问题:如果一个SSL服务器的私钥被泄露或被盗,那么过去使用该密钥建立的所有连接都将受到攻击。有人记录了您的SSL连接就足够了:使用私钥,它们都可以被解密。但是ECDHE的前向保密意味着为每个连接创建一个新的公钥。这意味着敌方需要单独断开每个连接的密钥才能读取通信。密钥是短暂的:当连接完成时,服务器会忘记它们。所以没有什么可以泄露的。因此,我们对这些密码进行了优先排序,因为它们为接触CloudFlare站点的用户提供了更高级别的长期安全性。我在上面提到过,CloudFlare喜欢的密码套件是ECDHE-RSA-AES128-GCM-SHA256,ECDHE是首选的,因为它提供了前向保密性。密码套件的下一部分是RSA。在ECDHE方案中,它只是用来证明web服务器的身份,而不是用来保证连接的安全,所以上面关于私钥泄漏的担忧不适用。下一部分是AES128-GCM。这是用于加密在TLS连接中加密的实际HTTP请求和响应的密码。这个特殊的密码使用的是一个128位的密钥在Galois/计数器模式。不幸的是,这种非常强的密码只是TLSv1.2的一部分,web浏览器并不广泛支持它。CloudFlare已经为支持它的那一天做好了配置,因为它非常安全。双重麻烦由于TLSv1.2不受广泛支持,用于保护通过TLS连接发送的数据的两个流行密码是RC4和AES(在CBC模式下)。两者都有缺陷,而且都有可以用来对付它们的攻击。最近,针对RC4的新攻击被宣布,当使用RC4时,攻击者可以恢复原始HTTP消息的部分内容(例如cookie值)。CBC模式的密码有我们之前讨论过的Lucky-13攻击和BEAST攻击。由于BEAST和Lucky-13都攻击基于CBC的密码,CloudFlare过去决定优先使用其他密码:第四章。不幸的是,最近的攻击发生在RC4之后。所以现在这两个流行的密码都公布了缺陷。浏览器厂商越早转向TLSv1.2,在CBC模式下脱离RC4和AES,效果越好。

Vernam

RC4键流偏差新的RC4攻击基于RC4密钥流中的偏差。要了解攻击是如何工作的,有必要了解一下RC4是如何工作的。RC4通过生成一个名为keystream的数据字节的伪随机流来进行操作。这些字节与要加密的信息进行异或加密,并传输结果。例如,假设要使用RC4发送单词SECRET。在ASCII中,SECRET是以下六个十六进制数:S E C R E T公司83 69 67 82 69 84假设RC4在密钥流中生成以下六个字节:85 B8 D6 6B C7 51为了加密秘密,密钥流与单词SECRET逐字节进行异或,结果是06 D1 B1 E9 AE D5被传输。S E C R E T公司留言:83 69 67 82 69 84键流:85 B8 D6 6B C7 51异或-----------------密文:06 D1 B1 E9 AE D5(这种异或技术可以追溯到1919年的Vernam密码;阅读Wikipedia的文章,了解在密码中使用XOR的基本介绍。当然,RC4本身更近。)RC4生成的精确伪随机序列取决于使用的密钥。只要客户机和服务器都有相同的密钥,它们就可以生成相同的密钥流并执行相同的XOR操作集来加密和解密数据。这是因为XOR是它自己的逆:如果你做Z=xory,然后做zxory,你就会回到X。因此,当在另一侧接收到06 D1 B1 E9 AE D5时,它使用相同的keyst执行相同的异或操作