1、什么是SSL

SSL(或安全套接字层)是基于加密的Internet安全协议。 它最初由Netscape1995年开发,旨在确保Internet通信中的隐私,身份验证和数据完整性。SSL是当今使用的现代TLS加密的前身。使用SSL/TLS的网站的URL中带有“ HTTPS”,而不是“ HTTP”

图十四:HTTP与HTTPS区别示意图的副本.jpg

2SSL/TLS如何工作?

1)为了提供高度的隐私,SSL会对通过网络传输的数据进行加密。这意味着任何试图拦截此数据的人都只会看到乱码,而且几乎无法解密。

2SSL在两个通信设备之间启动称为握手的身份验证过程,以确保两个设备确实是它们声称的真实身份。

3SSL还对数据进行数字签名,以提供数据完整性,并在到达目标收件人之前验证数据是否被篡改。

SSL已经进行了多次迭代,每次迭代都比上一次更安全。 SSL1999年更新为TLS

3、为什么SSL/TLS如此重要?

最初,Web上的数据是以明文形式传输的,任何人只要截获该消息都可以阅读。 例如,如果消费者访问了购物网站,下了订单并在网站上输入了他们的信用卡号,那么该信用卡号将在互联网上明文传播。

创建SSL是为了纠正此问题并保护用户隐私。 通过对用户和Web服务器之间传输的任何数据进行加密,SSL可确保拦截数据的任何人只能看到混乱的字符。 消费者的信用卡号现在是安全的,仅在他们输入该密码的购物网站上可见。

SSL还可以阻止某些类型的网络***:它对Web服务器进行身份验证,这很重要,因为***者通常会尝试建立伪造网站来欺骗用户并窃取数据。它还可以防止***者篡改传输中的数据。

4SSLTLS是一回事吗?

SSLTLS(传输层安全性)协议的直接前身。 1999年,IETF提出了要对SSL的更新。由于此更新是由IETF开发的,不再涉及Netscape,因此名称也更改为TLSSSL的最终版本(3.0)与TLS的第一版本之间的差异并不大。名称的更改更多的由于所有权变更造成的。

由于它们是如此紧密地联系在一起,因此这两个术语经常互换使用和混淆。有些人仍然使用SSL来指代TLS,其他人则使用术语“ SSL/TLS加密,因为SSL的名称仍然具有很高的辨识度。

5SSL还在更新吗?

1996年开始使用SSL 3.0以来,尚未对SSL进行任何更新,现在认为已弃用。SSL协议中存在多个已知漏洞,安全专家建议停止使用它。实际上,大多数现代网络浏览器根本不再支持SSL

TLS是最新的加密协议,它依然在用,尽管许多人仍将其称为“ SSL加密。对于购买安全解决方案的人来说,可能对这些概念发生混淆。事实是,如今提供“ SSL”的任何供应商几乎都可以肯定地提供TLS保护,这已经成为20多年来的行业标准。 但是,由于许多人仍在搜索“ SSL保护,因此该术语在许多产品页面上仍是醒目位置。

6、什么是SSL证书?

只有拥有SSL证书(技术上实际应该是“ TLS证书)的网站才能实施SSLSSL证书就像身份证或徽章一样,用来证明某人就是他们所说的真实身份。SSL证书由网站或应用程序的服务器存储并显示在Web上。

SSL证书中最重要的信息之一是网站的公钥,公钥使加密成为可能。用户的设备查看公共密钥,并使用它与Web服务器建立安全的加密密钥。同时,Web服务器还具有一个保密的私有密钥,私钥用来解密使用公钥加密的数据。证书颁发机构(CA)负责颁发SSL证书。

7SSL证书的类型是什么?

有几种不同类型的SSL证书。 一个证书可以应用于一个或多个网站,具体取决于类型:

1)单域:单域SSL证书仅适用于一个域(是网站的名称,例如www.cloudflare.com)。

2)通配符:与单域证书一样,通配符SSL证书仅适用于一个域。但是,它也包括该域的子域。例如,通配符证书可以覆盖www.cloudflare.comblog.cloudflare.comdevelopers.cloudflare.com,而单域证书只能覆盖第一个。

3)多域:顾名思义,多域SSL证书可以应用于多个不相关的域。

SSL证书还具有不同的验证级别。验证级别就像背景检查一样,并且级别会根据检查的彻底性而变化。

1)域验证:这是最严格的验证级别,也是最便宜的级别。企业要做的就是证明他们控制着域。

2)组织验证:这是一个更加实际的过程:CA直接与请求证书的人员或企业联系。这些证书更受用户信赖。

3)扩展验证:在颁发SSL证书之前,这需要对组织进行全面的后台检查。

8SSL/TLS密码套件介绍

任何受SSL/TLS保护的连接的安全性在很大程度上取决于客户端和服务器对密码套件的选择。但是什么是密码套件?如果您使用HTTPSFTPSAS2之类的文件传输协议,但不知道密码套件是什么,则需要阅读这篇文章。

密码套件的定义简单说来就是通过SSL/TLS保护网络连接所需的完整方法集(技术上称为算法)。每个集合的名称代表组成它的特定算法。构成典型密码套件的算法如下:

1)密钥交换算法:规定交换对称密钥的方式;

2)认证算法:指示如何执行服务器身份验证和(如果需要)客户端身份验证;

3)批量加密算法:指示将使用哪种对称密钥算法来加密实际数据; 

4)消息认证码(MAC)算法:指示连接将用于执行数据完整性检查的方法;

一个密码套件通常由一个密钥交换算法,一个身份验证算法,一个批量加密算法和一个MAC算法组成。密钥交换算法包含有RSA, DH, ECDH, ECDHE 等;身份验证算法包含有RSA, DSA, ECDSA; 批量加密算法包含有AES, 3DES, CAMELLIA; MAC算法包含有SHA, MD5等。下面我们来看一个密码套件的例子:

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 

让我们逐一拆解开来看:

1TLS代表使用的协议;

2ECDHE表示密钥交换算法;

3ECDSA表示认证算法;

4AES_256_CBC表示批量加密算法;

5SHA384表示MAC算法。

AES_256_CBC表示此密码套件专门使用以CBC(密码块链接)模式运行的256AES。同样,SHA384表示密码套件正在使用特定版本的安全哈希算法(SHA)。有时,会省略使用的协议,如下面的例子所示:

DHE_RSA_AES256_SHA
1DHE:表示密钥交换算法;

2RSA:表示认证算法;

3AES256:表示批量加密算法;

4SHA:表示MAC算法。

有时,重复的算法只写一次。例如,在密码套件RSA_AES256_SHA中,暗指了授权算法是RSA