HTTPS 整个知识体系非常庞大,我认识到的学习 HTTPS 的最佳步骤是:
- 基础部分:TCP/IP,可以参阅《TCP 传输原理》
- 安全部分:分别是学习密码学、OpenSSL命令行、TLS/SSL,可以参阅《密码学》和《SSL/TLS 协议》
- 应用部分:HTTP/2,可以参阅《HTTP/2 协议》
HTTPS 整个知识体系非常庞大,我认识到的学习 HTTPS 的最佳步骤是:
HTTP/1.1 与 HTTP/2 相隔了大概20年,但是从目前的研究和实验情况来看,我们不可能等上几十年才升级到下一个版本,h2 在逐渐的普及。 h2 和 h1 的最大差别在于在 http 层上增加了分帧层;把原来的 http 层的数据拆分成多种帧类型,并在每种类型前加上协议性的帧首部。基于二进制分帧的优点:
学习 HTTP/2 最好的文档是 RFC 7540。
SSL/TLS 是基于 TCP 之上,HTTP 之下的协议。从技术角度上看,HTTP/2 作为新一代的协议,虽然协议文本中并未强制要求加密,但主要的浏览器(Firefox、Chrome、Safari、Opera、IE、Edge)已共同宣布,他们只支持实现基于 TLS 的 HTTP/2,也就是说加密将是下一代协议的强制事实标准。
近代加密都是加密算法公开的,自行设计算法要求编程阶段就要进行协商开发,且存可能是不严格的数学模型存在安全漏洞。一般企业内部也是用流行的密码学算法(语言支持的加密算法函数)。学习密码学有利于分析安全工具其背后的密码学原理,比如数字证书、SSH、AES的密码原理等。
TCP的主要目的是在一个比较不可靠的相互通信上提供可靠的,安全的逻辑回路或者连接服务。为了实现这个服务,TCP 的设计 体系非常庞大,我对其理解只是冰山一角,此文只是将我学过的重点知识进行汇总。