|
@@ -0,0 +1,213 @@
|
|
|
+> [TOC]
|
|
|
+
|
|
|
+# 1、TLS/SSL 协议的工作原理
|
|
|
+
|
|
|
+## 1.1、设计目的
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 1.2、TLS/SSL 发展
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 1.3、TLS 协议
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 2、对称加密的工作原理
|
|
|
+
|
|
|
+## 2.1、定义
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 2.2、AES 对称加密在网络中的应用
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 2.3、原理
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 2.4、填充
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 3、对称加密的工作原理(2):工作模式
|
|
|
+
|
|
|
+## 3.1、定义
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 3.2、ECB(Electronic codebook)模式
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 3.3、CBC(Cipher-block chaining)模式
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 3.4、CTR(Counter)模式
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 3.5、完整性校验
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 3.6、验证完整性:MAC(Message AuthenticationCode)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 3.7、GCM
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 4、AES算法
|
|
|
+
|
|
|
+## 4.1、定义
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 4.2、步骤
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 5、非对称密码与RSA 算法(解决密钥传递问题)
|
|
|
+
|
|
|
+## 5.1、定义
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 5.2、算法过程
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 5.3、RAS算法
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 6、非对称密码应用:PKI 证书体系
|
|
|
+
|
|
|
+## 6.1、定义
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 6.2、签发证书流程
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 6.3、签名与验签流程
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 6.4、证书信任链
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 6.5、PKI 公钥基础设施
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 6.6、证书类型
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 7、非对称密码应用:DH密钥交换协议(沟通协商AES使用的密钥)
|
|
|
+
|
|
|
+## 7.1、RSA密钥交换
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+* 前向保密性:如果破解server私钥,可以解出公钥
|
|
|
+
|
|
|
+## 7.2、DH 密钥交换
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 7.3、存在的问题
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+* 可以使用PKI解决
|
|
|
+
|
|
|
+# 8、ECC 椭圆曲线的原理
|
|
|
+
|
|
|
+## 8.1、定义
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 8.2、特性
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 9、DH 协议升级:基于椭圆曲线的ECDH协议
|
|
|
+
|
|
|
+## 9.1、定义
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 9.2、步骤和原理
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 10、TLS1.2 与TLS1.3 中的ECDH协议
|
|
|
+
|
|
|
+## 10.1、TLS1.2 通讯过程
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 10.2、FREAK 攻击
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 10.3、openssl 1.1.1 版本对TLS1.3 的支持情况
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 10.4、密钥交换
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 11、握手的优化
|
|
|
+
|
|
|
+## 11.1、session 缓存
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 11.2、session ticket
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 11.3、TLS1.3 的 0RTT 握手
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 11.4、0-RTT 面临的重放攻击
|
|
|
+
|
|
|
+
|