文章目录
前言
体能状态先于精神状态,习惯先于决心,聚焦先于喜好
最终目的是了解 HTTPS
从新系统学习 计算机网络 的最终目的是较为彻底的理解 https
互联网标准化:IETF 和 RFC
IETF(The Internet Engineering Task Force) 国际互联网工程任务组 https://www.ietf.org/
RFC(Request for Comments) 是“请求评论”,一部分 RFC 最终会成为 互联网正式协议标准 RFC +编号
关于 HTTPS 的 RFC 2818
官方连接为:http://www.rfc-editor.org/info/rfc2818
从文档的摘要描述中我们可以得知 :HTTPS 即使用 TLS 对 HTTP 在因特网对连接进行保护.
当前对实践是通过 SSL(TLS 是 SSL 的继任者,SSL 是 TLS 的前身) 传输 HTTP.
依靠一个不同的服务端口(HTTPS 的端口号是443)来区分非安全传输和安全传输.
本文档描述的是使用 TLS 的实践.
另一个相关的文档描述了如何使用和HTTP一样的普通端口来使用 HTTP/TLS —— RFC 2817
TLS 和 SSL
百度百科如下
- 安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。
- 该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)
- 其前身是 安全套接层(Secure Sockets Layer,缩写作SSL)
TLS 的RFC2246
TLS 的 RFC 2246
我的学习笔记 :计算机网络-TLS 协议
HTTP 的RFC2616
更多 RFC 文档
https://www.rfc-editor.org/rfc-index.html
HTTPS 的交互流程
先参考 TLS 规范 https://blog.csdn.net/bestcxx/article/details/90723283
实际的HTTPS 要简化一些
- 客户端向服务端发送 Client hello
- 服务端向客户端发送 Server hello
- 服务端向客户端发送 证书
- 服务端向客户端发送 Server hello done
- 客户端使用服务端证书中公钥 使用 RSA 非对称加密算法加密 premaster secret key
- 客户端和服务端分别计算对称加密端秘钥,该秘钥用于后期通信阶段数据端加解密:算法为
master_secret = PRF(pre_master_secret, “master secret”,ClientHello.random + ServerHello.random)
至此握手阶段对称加密秘药就完毕了,后面开始验证各自计算是否正确
- 客户端发送 Change cipher spec ,表示客户端信息将开始使用将数据加密、拆分、压缩传输
- 客户端第一条加密、拆分、传输数据 Finished
- 服务端发送 Change cipher spec ,表示服务端信息将开始使用将数据加密、拆分、压缩传输
- 服务端第一条加密、拆分、传输数据 Finished
参考资料
《计算机网络》谢希仁 第5版
互联网资料