HTTPS = HTTP+TLS
前言
以下内容是学习从用户视角理解HTTPS, 以及 从开发者视角理解HTTPS 这两篇文章的笔记, 后续会进一步更新,感谢您抽出宝贵的时间阅读!欢迎批评指正!
握手
浏览器和服务器通信,并建立起安全连接的过程
- 客户端(浏览器)向服务器打招呼
- 浏览器将可以使用的SSL\TLS版本和加密算法的列表发给服务器(加密算法列表即密码套件)
- 服务器向客户端打招呼
- 服务器从客户端发送的SSL\TLS版本和加密算法的列表中选择想要的s\t版本和加密算法
- 服务器向客户端回复证书(证书中包含公钥)
- 客户端密钥交换
- 客户端检查服务器发送的证书是否合法
- 客户端生成一个“预主密钥(pre-master key)”,以便稍后生成唯一密钥(unique key)时可以使用它
- A代表服务器证书中包含的公钥,客户端用A加密预主密钥,然后把加密后的信息发送给服务器
- 更改密码规范
- 服务器使用私钥来解密刚才客户端发送过来的使用公钥加密的预主密钥(即用私钥解密预主密钥)
- 现在客户端,服务器都拿到了预主密钥,此时就可以把预主密钥用作对称密钥,且刚才的四步中,B和S之间的沟通都是公开的,他们使用非对称密钥(公钥和私钥)来加密预主密钥,因此没有人可以监视它。综上这解决了对称密钥分发难的问题!
HTTPS, SSL, TLS
-
HTTPS 是 HTTP 的安全版本:超文本传输协议。
-
HTTP 是您的浏览器和 Web 服务器用于通信和交换信息的协议。
-
当该数据交换使用 SSL/TLS 加密时,我们称之为 HTTPS。 “S”代表安全。
-
即 HTTPS = HTTP + SSL/TLS
-
-
SSL/TLS
- SSL 代表“安全套接字层”。 由 Netscape 创建的一种协议, 后面Netscape 将 SSL 协议的控制权交给了 IETF,在 1999 年结束之前,IETF 发布了 TLS 1.0 版(实际上是 SSL 3.1),TLS1.1 版于 2006 年发布。几年后的 2008 年,TLS 1.2 发布以解决一些缺陷和漏洞。然而,直到 2013 年浏览器才开始赶上并添加对 TLS 1.2 的支持。更令人困惑的是,SSL 3.0 在 2015 年才被正式弃用。TLS 1.3 于 2018 年 3 月获得批准,您的浏览器可能已经支持它。
- SSL 是 Netscape 在 90 年代中期创建的原始协议,现已弃用。TLS 是由 IETF 维护的用于 Web 上安全加密的新协议。
- SSL 已被替换为 TLS:传输层安全。 直到今天仍在制造混乱和混乱。
证书颁发机构
-
证书颁发机构 (CA) 是具有 3 个主要目标的第三方组织:
-
颁发证书。
-
确认证书拥有者的身份。
-
提供证书有效的证明。
-
-
(常见的机构 Symantec、Comodo 或 Let's Encrypt 等。)
-
成为 CA 是一项艰巨的安全要求和审计任务。您需要被信任才能被根存储所接受。
-
一个根存储基本上是一个可信 CA 的数据库。
-
Apple、Windows 和 Mozilla 运行它们自己的根存储(即可信CA的数据库),它们预先安装在您的计算机或设备中。
如何验证证书?:
- 当 CA 颁发证书时,他们会使用预安装在根存储中的根证书对证书进行签名
- 大多数情况下,它是使用根证书签名的中间证书。(如果发生灾难并且根证书被泄露,则更容易撤销中间证书,因为根证书安装在每个设备上。)
- 让我们来看看如何验证证书。 该过程基于“信任链”。若整个证书链都是可信的,则站点证书也是可信的。

浙公网安备 33010602011771号