Home 网络 提升网站安全性和安全评估等级的方法 By FreelyTomorrow Feb 21, 2024 6 min read 提升网站安全性和安全评估等级的方法 介绍了通过禁用TSL1.0和启用HSTS策略提升网站安全性的两种方法。 禁用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。 在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配置生成等工具。MySSL.comhttps://myssl.com Read Next By FreelyTomorrow Aug 16, 2024 使用Terraform在Ubuntu中部署KVM虚拟机 使用Terraform部署KVM虚拟机的详细流程 运维技术 Terraform KVM By FreelyTomorrow Jun 11, 2024 MySQL/Redis相关面试题 数据库运维(MySQL和Redis)的面试题总结 运维技术 MySQL Redis By FreelyTomorrow May 9, 2024 事件源模式和传统数据库方法在数据管理上的优劣分析 对事件源模式和传统数据库方法在应用程序性能影响、性能、扩展性和可靠性的分析;以及云原生环境下数据管理的最佳实践 云原生 By FreelyTomorrow Apr 24, 2024 关于Metrics_server在自托管环境下无法使用的问题 修复kubernetes的metrics server在自托管环境下因缺少CA证书而无法运行的问题。 Kubernetes
By FreelyTomorrow Aug 16, 2024 使用Terraform在Ubuntu中部署KVM虚拟机 使用Terraform部署KVM虚拟机的详细流程 运维技术 Terraform KVM
By FreelyTomorrow May 9, 2024 事件源模式和传统数据库方法在数据管理上的优劣分析 对事件源模式和传统数据库方法在应用程序性能影响、性能、扩展性和可靠性的分析;以及云原生环境下数据管理的最佳实践 云原生
By FreelyTomorrow Apr 24, 2024 关于Metrics_server在自托管环境下无法使用的问题 修复kubernetes的metrics server在自托管环境下因缺少CA证书而无法运行的问题。 Kubernetes
禁用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排除在外
禁用TSL1.0的影响
主要是对兼容性存在一定的影响,对于仍然使用TSL1.0甚至更古老协议的浏览器和系统来说,禁用TSL1.0后会导致在握手阶段的失败。
目前已知在禁用TSL1.0后无法兼容的浏览器和系统:
使用HTTP严格传输安全策略
HTTP严格传输安全,即HSTS(HTTP Strict Transport Security),是一种网络安全策略机制,用于保护网站免受中间人攻击,特别是SSL剥离攻击。HSTS通过强制浏览器仅通过安全的HTTPS连接与服务器通信,来提高安全性。这是通过在HTTP响应头中设置一个名为Strict-Transport-Security的特殊字段实现的。
HSTS的主要功能和特点
在Nginx中启用HSTS
在NGINX中设置严格传输安全(STS)响应头相对简单,只需要一行配置:
启用HSTS的注意事项
一旦启用HSTS,在设定的max_age时间内必须确保SSL证书的有效性,这是因为HSTS信息存储在用户浏览器中的一个专门列表中,通过清除缓存和Cookie的方式无法清除这个网站的HSTS的链接策略,因为HSTS是定义在服务器端的。而且大多数浏览器也不允许用户手动清理HSTS列表。
另外,即使在Web服务器中清除了HSTS策略,也只对未访问过网站的新用户有效,对既往用户是仍然无效的。
因此,在第一次尝试引入HSTS机制时,建议使用一个较短的max_age,过期时间短,因此如果出现问题的话也无需等待太长时间。
检查你的网站的安全评级
https://myssl.com
Read Next
使用Terraform在Ubuntu中部署KVM虚拟机
使用Terraform部署KVM虚拟机的详细流程
MySQL/Redis相关面试题
数据库运维(MySQL和Redis)的面试题总结
事件源模式和传统数据库方法在数据管理上的优劣分析
对事件源模式和传统数据库方法在应用程序性能影响、性能、扩展性和可靠性的分析;以及云原生环境下数据管理的最佳实践
关于Metrics_server在自托管环境下无法使用的问题
修复kubernetes的metrics server在自托管环境下因缺少CA证书而无法运行的问题。