SSL是什么?其含义和机制最易理解的解说!
SSL负责Internet通信的加密(https转换),我们将以浅显易懂的方式说明SSL的作用、术语的含义以及建立加密信道的过程等。
SSL是什么
简而言之,SSL是一种用于加密浏览器与网站之间数据交互(通信)的机制。
如果不使用SSL通讯,互联网将会怎样?
恶意第三方可能会窃取通信内容并在Internet上滥用它。这包括窃取您正在浏览的网站的地址,在公告板上编写的内容,在购物网站上输入的信用卡号和密码,等等。这意味着您不能安全地在Internet上购物,因此诞生了一种称为SSL的机制。
例如,如果您通过公司的计算机进行访问,则公司的网络管理员可以自由查看您的通信,这很容易做到。在餐馆等使用免费的Wi-Fi时,管理员只要有一点相关的知识,也可以嗅探非SSL通信。
为了弥补这一弱点,SSL会对浏览器和服务器之间的通信进行加密。这样,即使将数据从PC窃取到服务器,由于数据已加密,因此也难以解密。
使用证书的流程
使用证书之前,需要执行以下步骤。
- 生成私钥
- 使用私钥生成CSR
- 使用CSR生成证书
- 使用私钥和证书作为秘钥对来加密网站通信
小心处理私钥!
证书是通过CSR生成的,它与私钥配对。证书是公钥(Public key),可以重新颁发,但是私钥(private key)是唯一的。如果您使用的是一些旧的密码套件,则在私钥泄漏的情况下,任何人都可以解密与域服务器的通信,因此请确保不要丢失它。
但是,现在可以使用兼容PFS(完全前向保密)的密码套件的浏览器。如果使用支持PFS的密码套件,即使服务器的私钥被盗,由于每次会话都会生成另一个密钥(secret key / shared key),因此不会解密所有通信。
相反,如果您使用的加密套件不支持PFS,则如果私钥被盗,所有的通信都将被解密。尽管它被最新的浏览器淘汰,但RSA的密钥交换方法不支持PFS。
在建立SSL通信之前
现在让我们看看在对通信进行加密之前,浏览器和服务器之间发生了什么。
1、浏览器:请求SSL通信
2、服务器:发送SSL服务器证书
3、浏览器:生成公共密钥(secret key / shared key),使用接收到的证书的公钥(public key)加密公共密钥,并将其发送到服务器
4、服务器:使用私钥(private key)解密收到的公用密钥(secret key / shared key)
5、浏览器/服务器:使用相同的公共密钥(secret key / shared key)建立加密的通信来加密和解密要发送和接收的数据
为了清楚起见对过程进行了简化,但是浏览器和服务器之间的通信确实是以这种方式加密的。 执行这种复杂的过程的目的是为了让互不了解的双方能够进行加密通信。 此过程称为TLS握手,如果有多台服务器,必须与每台服务器都进行握手,因此如果Web页面需要加载大量外部文件,就需要执行多次TLS握手,这会导致页面显示需要花费一些时间。
在层次结构中验证有效性
此外,在SSL领域中,存在用于对SSL服务器证书进行签名的中间CA证书,以及对中间CA证书进行签名的根证书,由于采用了这种层级结构,可以用来验证服务器证书是否是正常颁发的。接下来描述防篡改、防冒充功能。
防篡改和防冒充
至此,已经说明了通信加密。 SSL的另一个重要作用是防止数据篡改和冒充。 首先,我将解释数据篡改。
什么是防篡改?
假设市政厅网站的某个网页上显示着用于税金缴纳的银行账户,纳税人通过这个账户缴纳税金。 如果对账户信息进行篡改,则可以从纳税人那里窃取钱款。
如果您将此市政厅的网站设置为SSL,则浏览器和服务器之间的通信将被加密(https),如果有人在途中篡改数据,您将能够获知“数据已被篡改!”。 这样您就可以丢弃不信任的数据,然后要求发送者再次发送它。 这是SSL篡改预防。
什么是防冒充?
那么,冒充是什么样的情况? 还是拿刚刚提到的数据被篡改的市政厅网站为例,这次是完全复制网站并部署在到了其他服务器上,而且还设置相同的URL,○○市政厅!像这种冒名顶替的事情是完全可能的。
但是,SSL通信所需的私钥却是无法复制的。 在没有私钥的情况下尝试进行SSL通信,仅使用公开的SSL服务器证书来执行SSL通信是不可能的,由于不能保证域名的合法性,浏览器端会告诉你:“此主页虽自称是○○.jp,但这实际上是一个不同的站点!” 在这种情况下,许多浏览器甚至不显示该页面,因此可以防止冒充性破坏。
由受信任的第三方“证书颁发机构”保证
为了防止篡改和假冒,对于SSL服务器证书来说,“证书颁发机构”组织的存在就显得尤为重要。虽然可以在没有证书颁发机构的情况下实现通信加密,但是由于证书颁发机构是既不是服务器也不是计算机的第三方机构,这个组织能保证“这个以○○.jp命名的站点是真正的○○.jp哦!”。
证书颁发机构颁发的“根证书”存储在计算机或智能手机中,它用来验证从服务器发送的SSL服务器证书和中间CA证书是否是授信的证书颁发机构颁发的。根证书存储在计算机本身中,恶意第三方很难对其进行篡改。自然,也有恶意攻击试图通过安装恶意根证书来证明恶意SSL服务器证书的合理性。
根据证书的类型,存在“ ○○.jp是由○○公司运营的站点”这种对运营组织的认证(OV / EV认证)。当您访问银行的主页并单击锁定图标时,将显示公司名称,因为您使用的是称为EV证书的特殊SSL服务器证书。
SSL限制
使用SSL通信时,并非所有通信都可以被加密,网络管理员可以看到通信的目标IP地址和数据量。 例如,如果您正在使用与公司工作时显然不相关的视频站点的IP地址进行大量数据通信,则可能会发现您正在观看视频。 在这方面不管好坏都是SSL的限制。
总结
到目前为止,什么是SSL? 我只介绍了皮毛, SSL是一项复杂且难以理解的技术。 能够达到通过服务器与SSL化的网站通信的程度,就足以了解私钥,CSR和SSL服务器证书的作用。
通过了解SSL的局限性以及了解您可以做和不能做的事情,您将变得更加安全地使用Internet。 让我们借此机会回顾一下如何使用Internet。