51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

禁用TSL1.0 {#%E7%A6%81%E7%94%A8tsl10}

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

TSL1.0的功能和特点 {#tsl10%E7%9A%84%E5%8A%9F%E8%83%BD%E5%92%8C%E7%89%B9%E7%82%B9}

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 {#%E5%9C%A8nginx%E4%B8%AD%E7%A6%81%E7%94%A8tsl10}

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

                  
                    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

                  </code>
                </pre>



 
### 禁用TSL1.0的影响 {#%E7%A6%81%E7%94%A8tsl10%E7%9A%84%E5%BD%B1%E5%93%8D}


 
主要是对兼容性存在一定的影响,对于仍然使用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严格传输安全策略 {#%E4%BD%BF%E7%94%A8http%E4%B8%A5%E6%A0%BC%E4%BC%A0%E8%BE%93%E5%AE%89%E5%85%A8%E7%AD%96%E7%95%A5}
----------------------------------------------------------------------------------------------------------------


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

 
### HSTS的主要功能和特点 {#hsts%E7%9A%84%E4%B8%BB%E8%A6%81%E5%8A%9F%E8%83%BD%E5%92%8C%E7%89%B9%E7%82%B9}


 

  
* 强制HTTPS连接:当用户首次访问支持HSTS的网站时,网站会通过响应头指示浏览器在后续访问中自动使用HTTPS。这意味着即使用户输入了一个HTTP URL或点击了一个HTTP链接,浏览器也会自动将其转换为HTTPS请求。

  
* 预加载名单:为了进一步加强安全性,网站可以选择被加入到主流浏览器的HSTS预加载名单中。这意味着浏览器在首次访问网站之前就已经知道必须通过HTTPS来访问这些网站。

  
* 有效期:Strict-Transport-Security响应头包括一个max-age参数,指定浏览器应该多长时间内只通过HTTPS连接到网站。在这段时间过后,网站必须再次发送HSTS头来续期。

  
* 子域包含:可选的includeSubDomains指令可以添加到HSTS头中,指示浏览器对网站的所有子域也强制使用HTTPS。

 

 
![HSTS Response Header](http://static.51tbox.com/static/2024-12-06/col/8f6704094c35a364f4694ccdf28c4923/f5233900d96a49f7a221a2031c718c7d.png.jpg)

 
### 在Nginx中启用HSTS {#%E5%9C%A8nginx%E4%B8%AD%E5%90%AF%E7%94%A8hsts}


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

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

                  </code>
                </pre>



 
### 启用HSTS的注意事项 {#%E5%90%AF%E7%94%A8hsts%E7%9A%84%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9}


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

 
检查你的网站的安全评级 {#%E6%A3%80%E6%9F%A5%E4%BD%A0%E7%9A%84%E7%BD%91%E7%AB%99%E7%9A%84%E5%AE%89%E5%85%A8%E8%AF%84%E7%BA%A7}
------------------------------------------------------------------------------------------------------------------


 
  https://myssl.com/?ref=blog.freelytomorrow.com
  
    https://myssl.com 

  
 

```

赞(0)
未经允许不得转载:工具盒子 » 提升网站安全性和安全评估等级的方法