HTTPS RSA#

四次握手
- Client Hello:TLS版本号,随机数,支持的密码套件列表
- Server阶段
- Server Hello:TLS版本,随机数2,选择的密码套件
- Server Certificate:证书
- Server Hello Done
- Client阶段
- Client Key Exchange:生成一个随机数(pre-master),用服务器公钥加密
- Change Cipher Spec:使用加密方式发送消息
- Finished:前面握手的摘要
- Change Cipher Spec:使用加密方式发送消息
- Finished:前面握手的摘要
数字证书
- 证书签名过程:
- 公钥,用途,颁发者,有效时间,进行HASH
- 使用CA私钥对HASH进行签名
- 合并签名和信息
- 客户端校验证书:
- 对信息HASH
- 使用CA公钥对签名进行解密
- 对比
HTTPS ECDHE#
DH算法:离散对数 DHE算法:临时生成离散对数,保证前向安全 ECDHE算法:椭圆曲线
握手过程
- 第一次握手
- Client Hello:TLS版本,客户端随机数,密码套件
- 第二次握手
- Server Hello:TLS版本,客户端随机数,密码套件
- Server Certificate:证书
- Server Key Exchange:交换公钥,用RSA签名
- Server Hello Done
- 第三次握手
- Client Key Exchange
- Change Cipher Spec:使用加密方式发送消息
- Finished:前面握手的摘要
- Change Cipher Spec:使用加密方式发送消息
- Finished:前面握手的摘要
HTTPS 优化#
协议优化#
- 密钥交换算法优化
- 使用ECDHE:2RTT->1RTT
- 选择x25519曲线
- AES_128_GCM
- TLS升级:TLS1.2->1.3减少两个RTT
证书优化#
- 使用ECDSA证书代替RSA证书
- CRL证书吊销列表->OCSP在线证书状态协议->OCSP Staping服务器提前缓存证书
会话复用#
- Session ID:缓存会话密钥
- Session Ticket:客户端缓存票据
