HTTPS 浅析

1,875 阅读1分钟

背景

HTTP明文传输存在的安全风险

  • 窃听 (信息加密)
  • 篡改 (校验机制)
  • 冒充 (身份证书)

一、基于RSA算法握手(已弃用)

共 1+3+3+2+1+1+1 = 12 步(未包括ack)

开始到结束一共12步

  • 1 客户端发送 Client Hello
  • 3 服务端:
    • 1、回应Server Hello
    • 2、发送证书certificate报文
    • 3、发生Server Hello Done
  • 3 客户端
    • 1、Client Key Exchange 随机密码串发送
    • 2、Change Cipher Spec 之后改用会话密钥通信
    • 3、Encrypted Handshake Message(Finishd)
  • 2 服务端
    • 1、Change Cipher Spec 之后改用会话密钥通信
    • 2、Encrypted Handshake Message(Finishd)
  • 1 客户端用私钥加密发送http请求
  • 1 服务端响应数据返回
  • 1 结束

RSA握手过程流程图 image

image

二、基于ECDHE密钥协商算法

四次握手 image image

三、TLS1.3优化

image image image TLS 1.3 把 Hello 和公钥交换这两个消息合并成了一个消息,于是这样就减少到只需 1 RTT 就能完成 TLS 握手

四、面试知识点总结

Http五大类面试题.png

五、总结

核心步骤,三步

1、身份认证:

  • pki技术,通过数字证书(主体名字、颁发者、有效期、公钥、签名、扩展信息等】),验证身份,拿到公钥

2、密钥协商:

  • 主密钥的公式:Client Random + Server Random + pre-master = master secret
  • 目的是双方保密的拿到 pre-master

3、数据加密

  • 双方利用拿到的主密钥,进行对称加密

参考

图解网络-HTTP篇

七十三、进阶篇-HTTPS协议完整流程抓包和分析

深入探究ECDHE算法

这些年背过的面试题——网络和操作系统基础篇

https技术鉴赏

透视HTTP协议- 27 | 更好更快的握手:TLS1.3特性解析