1.概念
超文本传输安全协议 HTTPS(HyperText Transfer Protocol Secure,常称为HTTP over TLS、HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。
1.1 为什么需要HTTPS
之前http的协议的时候提到,它是采用文本明文传输,所以数据容易被窃取。
HTTPS 是对 HTTP 的扩展,保证了通信安全。
1.2 SSL与TLS的关系
传输层安全性协议 TLS(Transport Layer Security)的及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是保证数据的安全性和完整性。
协议 | 发布时间 | 状态 |
---|---|---|
SSL 1.0 | 未公布 | 未公布 |
SSL 2.0 | 1995年 | 于2011年弃用 |
SSL 3.0 | 1996年 | 于2015年弃用 |
TLS 1.0 | 1999年 | 于2021年弃用 |
TLS 1.1 | 2006年 | 于2021年弃用 |
TLS 1.2 | 2008年 | 是最常用的 TLS 版。 几乎所有服务支持 TLS 默认为1.2。 |
TLS 1.3 | 2018年 | 更高性能和安全性的协议 |
1.3 在OSI模型中的位置
在微软的官方文档中也只写了,TLS (和 SSL) 协议位于应用程序协议层和 TCP/IP 层之间。
SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
应该对应了表示层和会话层相关的功能,所以TLS是工作在表示层和会话层的协议。
2. TLS介绍
TLS 由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术。浏览器和服务器在使用 TLS 建立连接时需要选择一组恰当的加密算法来实现安全通信,这些算法的组合被称为“密码套件”(cipher suite,也叫加密套件)。
2.1 对称加密和非对称加密
对称加密是指加密和解密都用同一份密钥。如下图所示:
可以把对称加密,理解成对数据使用密码锁进行加锁,双方使用同一个密码进行加锁和解锁。
常见的对称加密算法有 DES、3DES 和 AES 等,其优缺点如下:
- ✅优点:算法公开、计算量小、加密速度快、加密效率高,适合加密比较大的数据。
-
❌缺点:① 需要密钥的传输,安全性得不到保证。
② 每对用户需要维护一个惟一密钥,密钥管理成为双方的负担。
③ 在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。
非对称加密,算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。如下图所示:
可以把公钥想象成锁头,私钥想象成钥匙。用公钥加锁后,只有用私钥才能打开,私钥由服务器保管,必须严格保密。即使攻击者抓到了数据,没有私钥也无法获取数据内容。
注意:锁头钥匙类比只为理解,密钥对儿的概念,并非公钥只用于加密,私钥只用于解密,实际上可以使用私钥加密然后使用公钥进行解密。
- ✅优点:算法公开,加密和解密使用不同的钥匙,私钥不需要通过网络进行传输,安全性很高。
- ❌缺点:计算量比较大,加密和解密速度相比对称加密慢很多。
对称加密的优点是运算速度快,缺点是互联网环境下无法将密钥安全的传送给对方。
非对称加密的优点是安全性更强,但是运算速度慢。
TLS把对称加密和非对称加密结合起来,用非对称加密解决对称加密中密钥交换的安全性问题。然后用对称加密来加密后续的数据
记录协议、握手协议、警告协议、变更密码规范协议 : todo
3.数字证书
因为谁都可以发布公钥,我们还缺少防止黑客伪造公钥的手段,也就是说,如何来认定一个公钥的权威性。
数字证书认证机构 CA(Certificate Authority),也称为电子商务认证中心、电子商务认证授权机构,是负责发放和管理数字证数的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
即只有通过CA认证的公钥,才会被认为是可信的合法的公钥。当https网址,CA认证不通过时,浏览器会提示: