【HTTPS】

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

HTTP明文传输问题

  • 窃听风险比如通信链路上可以获取通信内容用户号容易没。
  • 篡改风险比如强制植入垃圾广告视觉污染用户眼容易瞎。
  • 冒充风险比如冒充淘宝网站用户钱容易没。

TLS协议解决HTTP风险

  • 信息加密 HTTP 交互信息是被加密的第三方就无法被窃取
  • 校验机制校验信息传输过程中是否有被第三方篡改过如果被篡改过则会有警告提示
  • 身份证书证明淘宝是真的淘宝网
  • 双方在加密应用信息时使用的是对称加密密钥而对称加密密钥是不能被泄漏的为了保证对称加密密钥的安全性所以使用非对称加密的方式来保护对称加密密钥的协商这个工作就是密钥交换算法负责的。
  • RSA 密钥交换算法来看看它的 TLS 握手过程。

RSA算法的TLS握手流程

在这里插入图片描述
第一次握手:

  • Client Hello(TLS版本,加密套件,第1随机数)
    第二次握手:
  • Server Hello(TLS版本,加密套件,第2随机数)
  • 服务器将CA证书和公钥发送给客户端,并且回复一个Server Hello Done

第三次握手:

  • 客户端会生成第三个随机数叫预主密钥,用服务器的 公钥加密该随机数,然后发送给服务器
  • 客户端TLS协商没有问题了,加密可以开始
  • 服务端收到加密后的预主密钥,使用自己的私钥解密,获得预主密钥(只有客户端和服务器知道该预主密钥,除非私钥被泄露)
  • 双方根据已经得到的三个随机数生成会话密钥Master Secret它是对称密钥用于对后续的 HTTP 请求/响应的数据加解密。

第四次握手:

  • 服务器也是同样的操作发「Change Cipher Spec」和「Encrypted Handshake Message」消息如果双方都验证加密和解密没问题那么握手正式完成。最后就用「会话密钥」加解密 HTTP 请求和响应了。

客户端验证证书

个数字证书通常包含了

  • 公钥
  • 持有者信息
  • 证书认证机构CA的信息
  • CA 对这份文件的数字签名及使用的算法
  • 证书有效期
  • 还有一些其他额外信息

证书作用

  • 是用来认证公钥持有者的身份以防止第三方进行冒充。说简单些证书就是用来告诉客户端该服务端是否是合法的(百度是真百度不是假的)因为只有证书合法才代表服务端身份是可信的。

证书签发流程

CA 签发证书的过程

  • 首先 CA 会把持有者的公钥、用途、颁发者、有效时间等信息打成一个包然后对这些信息进行 Hash 计算得到一个 Hash 值
  • 然后 CA 会使用自己的私钥将该 Hash 值加密生成 Certificate Signature也就是 CA 对证书做了签名
  • 最后将 Certificate Signature 添加在文件证书上形成数字证书

客户端校验服务端的数字证书的过程

  • 首先客户端会使用同样的 Hash 算法获取该证书的 Hash 值 H1
  • 通常浏览器和操作系统中集成了 CA 的公钥信息浏览器收到证书后可以使用 CA 的公钥解密 Certificate Signature 内容得到一个 Hash 值 H2
  • 最后比较 H1 和 H2如果值相同则为可信赖的证书否则则认为证书不可信。
    在这里插入图片描述

RSA 算法的缺陷

  • 使用 RSA 密钥协商算法的最大问题是不支持前向保密。
  • 因为客户端传递随机数用于生成对称加密密钥的条件之一给服务端时使用的是公钥加密的服务端收到后会用私钥解密得到随机数。所以一旦服务端的私钥泄漏了过去被第三方截获的所有 TLS 通讯密文都会被破解。
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6