关于 https (浅入浅出)

124 阅读2分钟

通俗来说:https = http + ssl;

下面主要阐述ssl

为什么有这玩意

加密数据、防止被中间人攻击

怎么发展得来

设客户端为A,服务端为B

  1. 对称加密

A和B用同一个密钥加密解密,但A和B需私下约定密钥,不然在网上传输被截取就没有意义。

  1. 非对称加密

A后来要和不同个B通信,不可能每个都私下约定一个密钥。

后来提出用一个公钥和一个私钥配合加密解密。

现在客户端和服务端都各有公钥密钥,下面分别用公钥A,公钥B,私钥A,私钥B代替。

步骤如下:

1.客户端->服务端:用公钥B加密数据,私钥A加密hash值

2.服务端收到:用私钥B解密数据,公钥A解密hash值验证完整性

但是还是会有问题,公钥还是网络上传输的,中间在A和B约定公钥的时候替换成自己的也凉了。

所以后面问题就要解怎么保证这个公钥的真实性

  1. 数字证书

设数字证书机构为C,C也用非对称加密

步骤:

1.B把公钥B(和一些其他信息)给C,C用私钥C加密,加密完的数据叫数字证书

2.A用C证书里面的公钥C来解密数字证书获得公钥B

这样就可以保证公钥的真实性

总结步骤

  1. A发请求
  2. B返回C认证的数字证书(包含公钥B)
  3. A用公钥C解密数字证书获得公钥B,用公钥B加密通信用的密钥
  4. B用私钥B解密获得通信用的密钥
  5. B和A就用这个通信用的密钥进行对称加密通信了