HTTPS协议简介

  

SSL/TLS

SSL协议是用来加密HTTP传输的信息, 到1999年, SSL应用广泛, 成了互联网的事实标准, 所以IETF把SSL标准化, 称为TLS协议,中文名叫传输安全层协议。

因此,SSL和TLS可以看做是同一个东西的不同阶段。

解决了使用http协议带来的三个问题:

  1. 窃听风险
  2. 篡改风险
  3. 冒充风险

SSL/TLS相当于在HTTP协议之外包裹了一层, 兼容原来的HTTP。

HTTPS相当于HTTP over SSL,实际上是HTTP + TSL, SSL/TLS协议除了跟HTTP协议搭配外, 还能跟其他应用层协议搭配。

SSL握手阶段

  1. 客户端向服务器发送请求, 提供支持的协议版本,一个由客户端生成的随机数,用于加密对称秘钥。
  2. 服务器回应,确认使用的加密通信协议版本,一个服务器生成的随机数,用于加密对称秘钥。
  3. 客户端收到回应后,生成一个随机数,使用数字证书里面的服务器公钥加密,防止被窃听, 发送给服务器。
  4. 服务器收到第三个随机数后,计算本次会话所使用的对称秘钥,然后回应客户端,握手结束。

在SSL握手阶段,全部是明文传输,接下来客户端和服务器进入加密通信,完全使用加密后的http协议.

HTTPS

内容加密

SSL协议采用公钥加密法, 客户端先向服务端获取公钥, 然后用公钥加密数据发送给服务端, 服务端再用私钥解密。

为了防止公钥被篡改, 可以将公钥放在数字证书里面。 

公钥加密计算量太大, 为了减小耗用的时间, 在每一次对话时客户端和服务端都生产一个对称秘钥, 用来加密信息, 而服务器公钥只用来加密对称秘钥本身。

1.对称加密:加密解密使用同一秘钥

2.非对称加密:加密和解密使用不同秘钥

数字签名

节点A将定长的报文提取为定长的摘要, 对该摘要应用一个签名函数, 这个函数将用户的私钥作为参数。 一旦计算出签名,就把签名附加在报文末尾, 全部发送给B.

节点B接收了带有私钥扰码的签名, 并应用了使用公开秘钥的反函数,如果拆包后的摘要与节点B自己的摘要版本不匹配, 要么就是报文被篡改了, 要么就是发送端没有节点A的私钥。

原文地址:https://www.cnblogs.com/tanxing/p/6984446.html