TLS与SSL差异比较介绍
在谈论Internet 和网站安全时,经常会提到 TLS(传输层安全)和 SSL(安全套接字层)。为了让外行人更加困惑,这些术语经常互换使用。 但是 TLS 和 SSL 实际是如何工作的,TLS与SSL有什么区别?你应该注意哪些差异? TLS与SSL哪个更好?在本教程中,我们将解释 TLS 和 SSL 安全协议、它们之间的区别以及你应该使用哪一个。TLS 与 SSL
TLS 和 SSL 都用作加密协议,用于加密 Web 服务器和用户之间的数据。 SSL 的原始版本由 Netscape 于 1994 年开发,但由于容易被利用的安全漏洞而从未正式发布。1995 年 2 月发布了升级版 2.0,但它有自己的严重缺陷,仅在一年后才被 SSL 3.0 修补。 TLS 由 Consensus Development 构想为 SSL 3.0 的升级。它于 1999 年发布,并将在 2006 年被 TLS 1.1 取代,后者增加了对 CBC(密码块链)的保护。2008 年,TLS 1.2 增加了一系列升级,最新版本是 TLS 1.3,于 2018 年发布。 TLS与SSL差异比较:虽然 TLS 和 SSL 从根本上是相似的,但考虑到 TLS 1.0 基于 SSL 3.0,它们的工作方式仍然存在差异:安全证书 | TLS | |
---|---|---|
加密套件 | 提供对 Fortezza 密码套件的支持。 | 提供对 RC4、Triple DES、AES、IDEA 的支持。 |
警报消息 | “无证书”警告消息。 | 根据情况不同的警报消息。 |
记录协议 | 使用 MAC(消息验证码)。 | 使用 HMAC(基于哈希的消息身份验证代码)。 |
握手过程 | 哈希计算包括主密钥和填充。 | 哈希是通过握手消息计算的。 |
消息认证 | 连接关键细节和应用程序数据的临时方法。 | 通过 HMAC 连接关键细节和应用程序数据。 |
握手的问题
“握手”是指 Web 服务器和用户之间建立安全连接并确定使用哪种加密类型的通信过程的一部分。 TLS与SSL有什么区别?一般而言,SSL 和 TLS 握手过程都遵循以下步骤: 1.最终用户的系统请求安全连接并从服务器接收密码套装列表,即用于加密数据的算法工具包。系统将其与它自己的密码套装列表进行比较,然后选择一个它和服务器都可以使用的密码套装。 2.服务器提供数字证书作为身份证明。用户机器收到证书并确认其真实性。 3. 使用服务器的公钥,最终用户的系统和服务器就他们用来加密数据的会话密钥达成一致。注意:顾名思义,会话密钥仅用于单个通信会话。如果用户和服务器之间的连接因任何原因中断,一旦通信恢复,就会创建一个新的会话密钥。
在执行握手时,SSL 使用一个端口来建立连接(默认情况下,这是端口 443)。另一方面,TLS 通过不安全的通道开始握手的第一步(请求安全连接),并在握手开始后切换到端口 443。
TLS 和 SSL 如何保护数据?
TLS与SSL有什么区别?如上所述,握手过程涉及服务器向最终用户的系统发送数字证书和公钥以建立安全连接。安装 SSL/TLS 证书对 Web 服务器进行身份验证并提供在握手期间使用的公钥和私钥。 如果没有证书,尝试访问 Web 服务器的用户会收到“你的连接不是私有的”错误消息。这向用户发出信号,表明他们的数据可能会被泄露,并可能导致他们离开你的网站。你应该使用 TLS 还是 SSL?
如今,SSL 和早期版本的 TLS 都被认为已过时。SSL 2.0 和 3.0 在 2015 年被 IETF 弃用,而 TLS 1.0 和 1.1 在 2020 年初被弃用,目前正在从新版本的浏览器中删除。 TLS与SSL哪个更好?在两者之间进行选择时,TLS 是显而易见的选择。它不仅可以作为 SSL 的升级,而且性能也更好。注意:较新版本的 Web 浏览器已停止支持 SSL,并鼓励网站所有者转向 TLS。例如,谷歌浏览器开始在仍然使用 SSL 的网站上显示ERR_SSL_OBSOLETE_VERSION警告。
如何检查启用了哪个 TLS/SSL 协议?
如果你不确定 Web 服务器是否使用过时的 TLS/SSL 版本,你可以使用 Web 浏览器快速检查。 在 Google Chrome 和 Microsoft Edge 中,右键单击网页的空白区域,然后单击“检查”。在检查窗口的安全选项卡下,找到网站数字证书的概述。如何禁用旧版本的 TLS 和 SSL?
TLS与SSL差异比较:TLS 1.3 是最新、最安全的加密协议,用于在用户系统和 Web 服务器之间建立安全通信。由于安全漏洞,不推荐使用的 TLS 和 SSL 版本会带来安全风险。出于安全原因,请在实时服务器上禁用 SSL 版本 2 和 3 以及 TLS 版本 1.0 和 1.1。 Web 服务器上唯一允许的协议应该是 TLS 1.2 和 TLS 1.3。 禁用 SSL 2.0 或 3.0 或 TLS 1.0 的步骤取决于服务器使用的是 Apache、NGINX 还是 Tomcat。Apache
要在 Apache 服务器上禁用 SSL 2 和 3 以及 TLS 1.0 和 1.1,请按照以下步骤操作。 1. 找到 Apache 配置文件。默认文件位置取决于你的系统:- 在基于 Debian/Ubuntu 的系统上,默认文件位置是
/etc/apache2/apache2.conf
- 在虚拟主机中配置的基于 Debian/Ubuntu 的系统上,默认文件位置是
/etc/apache2/sites-enabled/
- 在基于 Red Hat/CentOS 的系统上,默认文件位置是
/etc/httpd/conf/httpd.conf
- 在虚拟主机中配置的基于 Red Hat/CentOS 的系统上,默认文件位置是
/etc/httpd/sites-enabled/
SSLProtocol
条目。
3. 编辑条目以禁用 SSL 2.0、SSL 3.0、TLS 1.0 和 TLS 1.1:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
4. 重启Apache服务使更改生效:
service apache2 restart
或者
service httpd restart
注意:根据你的服务器配置,你可能需要在多个位置进行这些更改,而不仅仅是在默认配置文件中。
NGINX
要在 NGINX 服务器上禁用 SSL 2 和 3 以及 TLS 1.0 和 1.1,请按照以下步骤操作。 1.找到NGINX配置文件。全局配置文件的默认位置是/etc/nginx/nginx.conf
,但/etc/nginx/sites-enabled/
.
2. 编辑配置文件以启用 TLS 1.2:
ssl_protocols TLSv1.2;
3、重启NGINX服务:
service nginx restart
注意:了解如何在 NGINX 上安装 SSL 证书。
Tomcat
要在 Tomcat 服务器上禁用 SSL 2 和 3 以及 TLS 1.0 和 1.1,请按照以下步骤操作。 1、找到Tomcat的配置文件。默认位置是TOMCAT_HOME/conf/server.xml
。
2. 编辑配置文件以启用 TLS 1.2。
- 对于 Tomcat 5 和 6(6.0.38 之前的版本):
sslProtocols = "TLSv1.2"
- 对于 Tomcat 6 和 7(6.0.38 或更高版本),编辑以下行:
sslEnabledProtocols = "TLSv1.2"
3. 重启Tomcat服务使更改生效。