在OSI七层模型中,应用层是http协议;那么在http协议之下,我们的表示层也就是SSL协议所发挥作用的这一层;它通过握手,交换秘钥,告警,对称加密应用数据等方式使http层没有感知的情况下做到了数据的安全加密;那么TLS是怎么做到数据的安全加密的尼?
当我们抓包或者观察服务器端的配置的时候,我们可以看类似于上图的配置;
这个安全密码的配置决定了我们的TLS协议是怎么样保证明文被加密的?
这里主要有四个组成部分
(1):秘钥交换 秘钥交换是为了解决浏览器和服务器之间是怎样各自独立的生成秘钥 而最后生成的秘钥是相同的,接下来它们会用这个秘钥加密数据(ECDHE:椭圆曲线加密算法的表达)
(2):身份验证 在秘钥交换的过程中尼,我们需要验证各自的身份;而验证身份是需要算法的;(RSA算法用于身份验证)
(3):密码(算法,强度,模式) AES算法 128强度 GCM模式(提高多核CPU算法性能)
(4):MAC或PRF SHA256是一个摘要算法,它把一个不定长度的字符串,生成固定长度的更短的一个摘要;
TLS和SSL都是帮助您在Internet上安全地验证和传输数据的协议。但是TLS与SSL之间有什么区别?这是您需要担心的事情吗?
在本文中,您将了解TLS与SSL之间的主要区别,以及这两种协议如何连接到HTTPS。您还将了解为什么作为最终用户,您可能不需要过多担心TLS与SSL,或者您使用的是“SSL证书”还是“TLS证书”。
TLS和SSL之间有什么区别?
TLS是传输层安全的缩写,SSL是安全套接字层的缩写,都是加密数据和在Internet上移动数据时验证连接的加密协议。
例如,如果您在网站上处理信用卡付款,TLS和SSL可以帮助您安全地处理该数据,以便恶意行为者无法获得这些数据。
那么TLS与 SSL之间有什么区别呢?
好吧,TLS 实际上只是SSL的更新版本。它修复了早期SSL协议中的一些安全漏洞。
在您详细了解细节之前,了解SSL和TLS的基本历史非常重要。
SSL 2.0于1995年2月首次发布(由于安全缺陷,SSL 1.0从未公开发布)。尽管SSL 2.0已公开发布,但它也包含安全漏洞,并在1996年迅速被SSL 3.0取代。
然后,在1999 年,TLS (1.0) 的第一个版本作为对SSL 3.0的升级发布。从那以后,又发布了三个TLS版本,最新版本是2018年8月的TLS 1.3。
此时,两个公共SSL版本都已弃用,并且存在已知的安全漏洞(稍后会详细介绍)。
以下是SSL和TLS版本的完整历史:
- SSL 1.0 – 由于安全问题从未公开发布。
- SSL 2.0 – 1995年发布。2011年弃用。存在已知的安全问题。
- SSL 3.0 – 1996年发布。2015年弃用。存在已知的安全问题。
- TLS 1.0 – 1999年作为SSL 3.0的升级发布。计划在2020年弃用。
- TLS 1.1 – 2006年发布。计划在2020年弃用。
- TLS 1.2 – 2008年发布。
- TLS 1.3 – 2018年发布。
TLS和SSL如何保护数据?
以下是SSL和TLS工作原理的高级流程。
当您在Web服务器上安装SSL/TLS证书(通常简称为“SSL 证书”)时,它包含一个公钥和一个私钥,用于验证您的服务器并让您的服务器加密和解密数据。
当访问者访问您的站点时,他们的Web浏览器将查找您站点的SSL/TLS证书。然后,浏览器将执行“握手”以检查您的证书的有效性并验证您的服务器。如果SSL证书无效,您的用户可能会遇到“您的连接不是私密连接”错误,这可能会导致他们离开您的网站。
一旦访问者的浏览器确定您的证书有效并对您的服务器进行身份验证,它实际上会在它和您的服务器之间创建一个加密链接,以安全地传输数据。
这也是HTTPS的用武之地(HTTPS代表“HTTP over SSL/TLS”)。
HTTP和更新的HTTP/2是应用程序协议,在通过Internet传输信息方面发挥着重要作用。
使用普通HTTP,该信息容易受到攻击。但是,当您通过SSL或TLS (HTTPS)使用HTTP时,您会在传输过程中对该数据进行加密和身份验证,从而确保其安全。
这就是为什么您可以通过HTTPS而不是通过HTTP安全地处理信用卡详细信息的原因,也是Google Chrome如此努力地推动采用HTTPS的原因。
如果不推荐使用SSL,为什么将其称为SSL证书?
在上面,您了解到TLS是SSL的最新版本,并且SSL的两个公开版本都已弃用多年,并且包含已知的安全漏洞。
您可能想知道:为什么将其称为SSL证书而不是TLS证书?毕竟,TLS是现代的安全协议。
不,大多数人仍然将它们称为SSL证书的原因基本上是品牌问题。大多数主要的证书提供商仍然将证书称为SSL证书,这就是命名约定仍然存在的原因。
实际上,您看到的所有“SSL证书”实际上都是SSL/TLS 证书。
也就是说,您可以将SSL和TLS协议与您的证书一起使用。
没有SSL证书或TLS证书之类的东西,您无需担心将SSL证书替换为TLS证书。
您应该使用TLS还是SSL?TLS会取代SSL吗?
是的,TLS正在取代SSL。是的,您应该使用TLS而不是SSL。
正如您在上面了解到的,SSL的两个公开版本都已弃用,这在很大程度上是因为它们中存在已知的安全漏洞。因此,SSL在2019年及以后并不是完全安全的协议。
TLS是更现代的SSL版本,是安全的。此外,最新版本的TLS还提供了性能优势和其他改进。
TLS不仅更安全、更高效,而且大多数现代 Web浏览器不再支持SSL 2.0和SSL 3.0。例如,谷歌浏览器早在2014年就停止支持SSL 3.0 ,大多数主流浏览器都计划在2020年停止支持TLS 1.0和TLS 1.1。
事实上,谷歌开始在Chrome中显示ERR_SSL_OBSOLETE_VERSION警告通知。
那么如何确保您使用的是最新版本的TLS而不是较旧的、不安全的SSL协议?
首先,请记住您的证书与您的服务器使用的协议不同。你不会需要您的证书更改为使用TLS。尽管它可能被标记为“SSL证书”,但您的证书已经同时支持SSL和TLS协议。
相反,您可以控制您的网站在服务器级别使用的协议。
您可以使用SSL Labs工具检查为您的站点启用了哪些协议。
如何测试您的服务器使用哪些SSL/TLS协议
如果您发现您的服务器仍然支持已弃用的SSL协议,您可以联系主机支持部门寻求帮助或按照以下说明在两个最流行的Web服务器(Apache和Nginx)上禁用SSL :
为什么启用多个TLS协议?
如果TLS 1.3是最现代、性能最好的协议,为什么还要麻烦启用稍旧的TLS 1.2协议?
换句话说:启用多个协议有什么好处?
正如您在上面了解到的,SSL/TLS握手有两个部分:
- 您的网络服务器
- 客户端(通常是访问者的网络浏览器)
为了使握手工作,两者都需要支持相同的协议。
因此,拥有多个协议的主要好处是兼容性。
例如,虽然Chrome和Firefox在2018年发布后几乎立即添加了对TLS 1.3的支持,但苹果和微软花了更长的时间来添加TLS 1.3支持。
即使在2019年,以下浏览器仍然缺乏TLS 1.3支持:
- Internet Explorer
- Opera Mini
- Android Browser
- Opera Mobile
- UC Browser for Android
- Samsung Internet
- Baidu Browser
TLS 1.3网络浏览器支持
但是,虽然TLS 1.3仍未完全采用,但所有主要浏览器在2019年都支持TLS 1.2:
TLS 1.2网络浏览器支持
通过在您的服务器上同时启用TLS 1.3和TLS 1.2,您无论如何都可以确保兼容性,同时仍然可以为支持它的浏览器(如Chrome和Firefox)获得TLS 1.3的好处。
如果您想检查您的网络浏览器使用的是哪个SSL/TLS版本,您可以使用How’s My SSL工具:
如何测试浏览器使用的SSL/TLS协议
小结
总而言之,TLS和SSL都是对Internet上的数据传输进行身份验证和加密的协议。
两者紧密相连,而TLS实际上只是更现代、更安全的SSL版本。
尽管SSL仍然是Internet上的主导术语,但大多数人在说SSL 时真正指的是TLS,因为SSL的两个公共版本都不安全,并且早已被弃用。
要同时使用SSL和TLS协议,您需要在服务器上安装一个证书(这是在WooCommerce上安装SSL证书的方法)。同样,虽然大多数人都称这些为“SSL证书”,这些证书支持双方的SSL和TLS协议。
你没有必要担心“转”你的SSL证书为TLS证书。如果您已经安装了“SSL证书”,您可以确信它也支持TLS。
使用最新版本的TLS很重要,因为SSL不再安全,但您的证书并不能确定您的服务器使用的协议。相反,一旦您拥有证书,您就可以选择在服务器级别使用哪些协议。