HTTPS:TLS 握手与加密传输

HTTPS:TLS 握手与加密传输 由 Archify 生成的时序图。 请求建立 HTTPS 连接 出示证书(CA 签发的网站身份证) 防冒充:证书证明“我就是这个网站” 验证证书通过,协商密钥 核对在本机完成:信任的 CA 签发?域名对得上?不依赖网络里的任何人 双方得到只有彼此知道的会话密钥 防偷看:密钥每次连接临时协商,用完就换 HTTP 报文照常生成,TLS 加密发送 防篡改:每段密文附带校验值,改一个字节就暴露 解密还原,交回 HTTP 处理 途经者(咖啡馆 WiFi、路由器)只看到乱码 TLS 握手:验明正身,协商密钥 握手完成后:HTTP 全程密文 浏览器 · 本机内置 CA 根证书 · 时序参与者 浏览器 本机内置 CA 根证书 网站服务器 · example.com · 时序参与者 网站服务器 example.com 图例 请求 返回 默认消息

HTTPS = HTTP + TLS

  • • HTTP 报文照常生成,一个字不用改
  • • TLS 在下面一层:发送前加密,收到后解密
  • • 默认端口 443,网址以 https:// 开头

三个风险各有一手

  • • 防偷看:内容全加密,密钥临时协商
  • • 防篡改:每段数据带校验值,动一个字节就暴露
  • • 防冒充:CA 签发的证书证明网站身份

验证在本机

  • • CA 根证书预先内置在操作系统和浏览器里
  • • 核对签发者与域名,不依赖网络里的任何人
  • • 小锁只保证链路安全,不保证网站不是骗子