三、从密码学的角度理解 HTTPS
HTTPS 使用 TLS 保证安全,这里的“安全”分两部分,一是传输内容加密、二是服务端的身份认证
1.TLS 工作流程
此为服务端单向认证,还有客户端/服务端双向认证,流程类似,只不过客户端也有自己的证书,并发送给服务器进行验证
2.密码基础
1)伪随机数生成器
为什么叫伪随机数,因为没有真正意义上的随机数,具体可以参考Random/TheadLocalRandom
它的主要作用在于生成对称密码的秘钥、用于公钥密码生成秘钥对
2)消息认证码
消息认证码主要用于验证消息的完整性与消息的认证,其中消息的认证指“消息来自正确的发送者”
消息认证码用于验证和认证,而不是加密
1.发送者与接收者事先共享秘钥
2.发送者根据发送消息计算 MAC 值
3.发送者发送消息和 MAC 值
4.接收者根据接收到的消息计算 MAC 值
5.接收者根据自己计算的 MAC 值与收到的 MAC 对比
6.如果对比成功,说明消息完整,并来自与正确的发送者
3)数字签名
消息认证码的缺点在于无法防止否认,因为共享秘钥被 client、server 两端拥有,server可以伪造client发送给自己的消息(自己给自己发送消息&#x