基础-https-RSA握手解析


HTTPS RSA握手解析

TLS握手过程

解决明文传输的三个风险:

  • 窃听
    • 信息加密:http交互信息加密,第三方无法获取
  • 篡改
    • 校验机制:校验信息是否被篡改过,如果有,则警告提示
  • 冒充
    • 身份证书:证明支付宝是真支付宝
ClientHello: TLS Version, Client Random, Cipher Suites ->
<- ServerHello: TLS Version, Server Random, Cipher Suites
Certificate
ServerHelloDone
ClientKeyExchange: Pubkey ->
ChangeChipherSpec
Finished
<- ChangeCipherSpec
Finished
Application Data <-> Application Data

每行数一个记录,记录是TLS首发数据的基本单位,类似TCP里的segment。多个记录可以组合成一个TCP包发送,所以经过四个消息就可以实现TLS我收,也就是需要2个RTT的时延,然后就可以在安全的通信环境里发送HTTP报文,实现HTTPS协议。

RSA握手过程

在RSA密钥协商算法中,客户端会生成随机密钥,并使用服务端的公钥加密后再传给服务端。

img

img

RSA算法缺陷

使用RSA密钥协商算法的最大问题是不支持前向保密。

因为客户端传递随机数给服务端使用的是公钥加密的,服务端收到后会用私钥解密得到随机数。一旦服务器私钥泄露,过去被第三方截获的所有TLS通讯密文都会被破解。为解决这个问题,后面出现了ECDHE算法,现在大多数网站使用的都是ECDHE密钥协商算法。


  目录