服务器使用了anonymous套件

匿名加密套件检测(CVE-2007-1858),支持对SSL3.0、TLS1.0、TLS1.1、TLS1.2多种协议,19个ANON类加密套件,包含DES、AES、CAMELLIA和ARIA等算法。

TLS_DH_ANON_WITH_AES_256_GCM_SHA384
TLS_DH_ANON_WITH_AES_128_GCM_SHA256
TLS_DH_ANON_WITH_AES_256_CBC_SHA256
TLS_DH_ANON_WITH_AES_256_CBC_SHA
TLS_DH_ANON_WITH_AES_128_CBC_SHA256
TLS_DH_ANON_WITH_AES_128_CBC_SHA
TLS_DH_ANON_WITH_3DES_EDE_CBC_SHA
TLS_DH_ANON_WITH_RC4_128_MD5
TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5
TLS_DH_ANON_WITH_DES_CBC_SHA
TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA256
TLS_DH_ANON_WITH_CAMELLIA_128_GCM_SHA256
TLS_DH_ANON_WITH_CAMELLIA_256_GCM_SHA384
TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA
TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA
TLS_DH_ANON_WITH_ARIA_128_CBC_SHA256
TLS_DH_ANON_WITH_ARIA_256_CBC_SHA384
TLS_DH_ANON_WITH_ARIA_128_GCM_SHA256
TLS_DH_ANON_WITH_ARIA_256_GCM_SHA384

以上都是不安全套件,存在严重安全风险。

如何解决使用了anonymous套件?

SSL 配置生成器 https://ssl-config.mozilla.org/

服务器支持不安全的加密套件

不安全的加密套件,容易被攻击者破解,从而解密两端加密信息,影响网站安全。

如何设置安全的加密套件?

SSL 配置生成器 https://ssl-config.mozilla.org/

不建议加密协议上使用64bits块加密套件(3DES/DES/RC2/IDEA)

怎么解决使用了64bits块加密套件?

SSL 配置生成器 https://ssl-config.mozilla.org/

RC4密码套件

2015年3月26日,国外数据安全公司Imperva的研究员Itsik Mantin在BLACK HAT ASIA 2015发表论文《Attacking SSL when using RC4》阐述了利用存在了13年之久的RC4漏洞——不变性弱密钥(《Weakness in the Key Scheduling Algorithm of RC4》,FMS 发表于2001年)进行的攻击,并命名为“受戒礼”攻击(Bar Mitzvah Attack)。

根据《Attacking SSL when using RC4》中的阐述,漏洞的成因主要在于不变性弱密钥是RC4密钥中的一个L型的图形,它一旦存在于RC4的密钥中,在整个初始化的过程之中保持状态转换的完整性。这个完整的部分包括置换过程中的最低有效位,在由RPGA算法处理的时候,决定伪随机输出流的最低有效位。这些偏差的流字节和明文进行过异或,导致密文中会泄露重要明文信息。

怎么解决使用了RC4密码套件?

如果您的服务器需要支持IE6这种古董级别的浏览器,那么可以支持SSLv3版本协议,如果说对兼容性没有太大的需求,只要主流的浏览器能够访问那么就不要支持3DES系列的加密套件,如果说想要在保证安全性的同时,也要有最好的兼容性,那么就可以采取TLS1.x协议+FS加密套件配置方式进行配置。

服务采用了TLSv1.0+TLSv1.1+TLSv1.2的SSL协议,安全加密套件使用了不带RC4的加密套件,并且设置了优先使用FS系列加密套件。

服务器不支持安全的密钥交换参数

如何设置安全的密钥交换参数?

SSL 配置生成器 https://ssl-config.mozilla.org/

服务器支持弱Diffie-Hellman(DH)密钥交换参数

Diffie-Hellman:一种确保共享KEY安全穿越不安全网络的方法,它是OAKLEY的一个组成部分。Whitefield与Martin Hellman在1976年提出了一个奇妙的密钥交换协议,称为Diffie-Hellman密钥交换协议/算法(Diffie-Hellman Key Exchange/Agreement Algorithm).这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实现加密和解密消息。

怎么解决弱Diffie-Hellman(DH)密钥交换参数?

服务采用了TLSv1.0+TLSv1.1+TLSv1.2的SSL协议,安全加密套件使用了不带RC4的加密套件,并且设置了优先使用FS系列加密套件。

没有使用AEAD系列加密套件

AEAD的全称是Authenticated encryption (AE) and authenticated encryption with associated data (AEAD, variant of AE)。也就是带附加数据的加密和验证算法。

常见的 AEAD 算法如下:

  • AES-128-GCM
  • AES-192-GCM
  • AES-256-GCM
  • ChaCha20-IETF-Poly1305
  • XChaCha20-IETF-Poly1305

怎么解决加密套件问题?

使用以RSA和ECDSA键为对象的以下套件配置作为起点:

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256

没有优先使用FS系列加密套件

怎么解决加密套件问题?

需要配置符合PFS规范的加密套件,推荐配置:

ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE

需要在服务端TLS协议中启用TLS1.2,推荐配置:TLSv1 TLSv1.1 TLSv1.2;

服务器只使用SSL3作为最好的协议

ssl3 存在POODLE漏洞,并且最新浏览器的兼容性较差,不支持最新的安全特性。

如何设置服务器协议?

推荐配置:TLSv1 TLSv1.1 TLSv1.2;  SSL 配置生成器

服务器仅支持老的协议,没有启用安全性与兼容性最佳的TLSv1.2协议

怎么支持TLSv1.2协议?

SSL 配置生成器 https://ssl-config.mozilla.org/

启用了SSLv3协议

POODLE(在降级的传统加密上填充Oracle)是2014年10月14日发现的一个漏洞,它使攻击者可以通过执行中间人攻击来使用SSLv3协议读取任何加密信息。尽管许多程序使用SSLv3作为后备,但它已经到了应禁用的地步-因为许多客户端可能被迫使用SSLv3。强制客户端进入SSLv3会增加发生攻击的机会。本文将向您展示如何在当今常用的某些软件应用程序中禁用SSLv3。

怎么关闭SSLv3协议?

推荐配置:TLSv1 TLSv1.1 TLSv1.2;  SSL 配置生成器

主页面引用了不安全的HTTP资源

HTTP 协议在传输过程中是明文数据,很容易被第三方劫持和修改。

怎么解决不安全HTTP资源?

引用的资源都是用 Https 请求进行替换。

使用HSTS,但是使用的max-age属性小于180天(15768000秒)

HTTP严格传输安全(英语:HTTP Strict Transport Security,缩写:HSTS)是一套由互联网工程任务组发布的互联网安全策略机制。网站可以选择使用HSTS策略,来让浏览器强制使用HTTPS与网站进行通信,以减少会话劫持风险。

HSTS可以用来抵御SSL剥离攻击。SSL剥离攻击是中间人攻击的一种,由Moxie Marlinspike于2009年发明。他在当年的黑帽大会上发表的题为“New Tricks For Defeating SSL In Practice”的演讲中将这种攻击方式公开。SSL剥离的实施方法是阻止浏览器与服务器创建HTTPS连接。它的前提是用户很少直接在地址栏输入https://,用户总是通过点击链接或3xx重定向,从HTTP页面进入HTTPS页面。所以攻击者可以在用户访问HTTP页面时替换所有https://开头的链接为http://,达到阻止HTTPS的目的。

HSTS可以很大程度上解决SSL剥离攻击,因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。

另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告,但是许多用户会忽略警告。HSTS解决了这一问题,一旦服务器发送了HSTS字段,将不再允许用户忽略警告。

怎么设置HSTS?

HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。服务器开启HSTS的方法是,当客户端通过HTTPS发出请求时,在服务器返回的超文本传输协议(HTTP)响应头中包含Strict-Transport-Security字段。非加密传输时设置的HSTS字段无效。

比如,https://example.com/ 的响应头含有Strict-Transport-Security: max-age=31536000; includeSubDomains。这意味着两点:

  1. 在接下来的31536000秒(即一年)中,浏览器向example.com或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。比如,用户点击超链接或在地址栏输入 http://www.example.com/ ,浏览器应当自动将 http 转写成 https,然后直接向 https://www.example.com/ 发送请求。
  2. 在接下来的一年中,如果 example.com 服务器发送的TLS证书无效,用户不能忽略浏览器警告继续访问网站。

参考网址:

SSL 配置生成器 https://ssl-config.mozilla.org/