提升网站安全性和安全评估等级的方法

介绍了通过禁用TSL1.0和启用HSTS策略提升网站安全性的两种方法。
提升网站安全性和安全评估等级的方法
Photo by FlyD / Unsplash

On this page

禁用TSL1.0

TLS 1.0(传输层安全协议第1.0版)是一种用于在网络上安全传输数据的协议。它在1999年由互联网工程任务组(IETF)发布,作为安全套接字层(SSL)3.0的继任者。SSL是一种早期的安全协议,由网景通讯公司开发。TLS 1.0与SSL 3.0非常相似,但包含了对安全性的改进。

TSL1.0的功能和特点

TLS 1.0的主要目标是在客户端和服务器之间提供隐私和数据完整性。这是通过在传输数据之前建立一个安全连接来实现的。这个过程包括几个关键步骤:

  • 握手协议:客户端和服务器之间的通信开始于一个握手过程,用于协商加密算法、交换密钥、验证服务器身份(可选地验证客户端身份)。
  • 密钥交换:在握手阶段,双方将商定一个共享密钥,用于对话的加密。
  • 加密:数据传输过程中,使用商定的密钥来加密数据,确保传输过程中数据的隐私性和安全性。
  • 完整性检查:确保数据在传输过程中未被篡改。

然而,随着时间的推移,TLS 1.0被发现有多个安全漏洞和限制。这些问题包括像BEAST(Browser Exploit Against SSL/TLS)攻击这样的漏洞,以及对现代加密算法的支持不足。这些安全问题促使了对TLS标准的进一步发展,导致了TLS 1.1、TLS 1.2以及最新的TLS 1.3版本的推出。随着这些更新版本的发布,TLS 1.0逐渐被认为是不安全的,并且许多现代浏览器和系统已经停止支持TLS 1.0,以提高安全性。

在Nginx中禁用TSL1.0

可以通过指定SSL协议的方式将TSL1.0排除在外

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

禁用TSL1.0的影响

主要是对兼容性存在一定的影响,对于仍然使用TSL1.0甚至更古老协议的浏览器和系统来说,禁用TSL1.0后会导致在握手阶段的失败。
目前已知在禁用TSL1.0后无法兼容的浏览器和系统:

移动端 桌面端 其他
Andriod4.3 IE6/XP OpenSSL0.9.8y
Andriod4.2.2 IE7/VISTA Java6u45
Andriod4.1.1 IE8/XP Java7u25
Andriod4.0.4 IE8-10/WIN7
Andriod2.3.7 Safari5.1.9/OSX10.6.8
IE10/WinPhone8 Safari6.0.4/OSX10.8.4

使用HTTP严格传输安全策略

HTTP严格传输安全,即HSTS(HTTP Strict Transport Security),是一种网络安全策略机制,用于保护网站免受中间人攻击,特别是SSL剥离攻击。HSTS通过强制浏览器仅通过安全的HTTPS连接与服务器通信,来提高安全性。这是通过在HTTP响应头中设置一个名为Strict-Transport-Security的特殊字段实现的。

HSTS的主要功能和特点

  • 强制HTTPS连接:当用户首次访问支持HSTS的网站时,网站会通过响应头指示浏览器在后续访问中自动使用HTTPS。这意味着即使用户输入了一个HTTP URL或点击了一个HTTP链接,浏览器也会自动将其转换为HTTPS请求。
  • 预加载名单:为了进一步加强安全性,网站可以选择被加入到主流浏览器的HSTS预加载名单中。这意味着浏览器在首次访问网站之前就已经知道必须通过HTTPS来访问这些网站。
  • 有效期:Strict-Transport-Security响应头包括一个max-age参数,指定浏览器应该多长时间内只通过HTTPS连接到网站。在这段时间过后,网站必须再次发送HSTS头来续期。
  • 子域包含:可选的includeSubDomains指令可以添加到HSTS头中,指示浏览器对网站的所有子域也强制使用HTTPS。

HSTS Response Header

在Nginx中启用HSTS

在NGINX中设置严格传输安全(STS)响应头相对简单,只需要一行配置:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

启用HSTS的注意事项

一旦启用HSTS,在设定的max_age时间内必须确保SSL证书的有效性,这是因为HSTS信息存储在用户浏览器中的一个专门列表中,通过清除缓存和Cookie的方式无法清除这个网站的HSTS的链接策略,因为HSTS是定义在服务器端的。而且大多数浏览器也不允许用户手动清理HSTS列表。
另外,即使在Web服务器中清除了HSTS策略,也只对未访问过网站的新用户有效,对既往用户是仍然无效的。
因此,在第一次尝试引入HSTS机制时,建议使用一个较短的max_age,过期时间短,因此如果出现问题的话也无需等待太长时间。

检查你的网站的安全评级

亚数信息-SSL/TLS安全评估报告
检测网站的SSL证书是否安全,是否存在漏洞,是否达到SSL行业标准,符合苹果ATS规范,能否通过微信小程序安全要求。同时提供证书格式转换,CSR,证书链,SSL配置生成等工具。

https://myssl.com