# HTTPS
# 什么是HTTPS?
HTTPS是添加了SSL/TLS安全层的HTTP协议。
# 为什么使用HTTPS?
# HTTPS的交互过程
在讨论HTTPS的交互过程之前,我们先对HTTPS协议的各部分产生逻辑进行一下推理:
目标:传输安全 -> 报文加密 -> 使用对称加密(非对称加密效率太低)-> 秘钥需要随机生成(秘钥协商)-> 秘钥传递如何保证安全 -> 使用非对称加密即公私钥加密“对称秘钥”,公钥可以明文传输 -> 如何保证公钥是真实的 -> 信任CA,客户端安装CA证书,CA来签发数字证书(数字证书里包含公钥) -> 如何确保证书不被拦截篡改 -> 使用摘要算法为证书添加摘要 -> 如何校验证书确实是CA签发的 -> CA使用私钥对证书摘要加密形成“数字签名”,客户端用CA证书中的公钥解密“签名”获取摘要,同时摘要校验通过。
上述逻辑的简化版本:
报文安全(机密性) -> (对称)秘钥安全(机密性) -> 公钥安全(完整性、身份认证、不可否认) -> 摘要+数字签名(CA)
HTTPS的交互过程主要分为三个部分:
证书验证:保证公钥安全(确认来源、没有篡改)
秘钥协商:通过随机字符串生成秘钥,通过非对称加密传递秘钥
加密传输:使用秘钥加密信息
HTTPS的前期准备
客户端:安装CA证书(校验数字证书,保证公钥安全)
服务端:存在数字证书和私钥
CA中间证书:通常CA会存在一份自签名的根证书,根证书是信任链源头,无条件信任;根证书再签发多个中间证书,CA通过中间证书签发数字证书,以确保根证书的安全(因为从不使用)。
参考资料:https://sg.godaddy.com/help/what-is-an-intermediate-certificate-868