Https原理及流程

我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在传输过程中拦截到数据也无法破译,这就保证了网络通信的安全。

HTTP协议由于是明文传送,所以存在三大风险:

1、被窃听的风险:第三方可以截获并查看你的内容

2、被篡改的危险:第三方可以截获并修改你的内容

3、被冒充的风险:第三方可以伪装成通信方与你通信

HTTPS的工作过程

  1. 客户端发送自己支持的加密规则给服务器,代表告诉服务器要进行连接了
  2. 服务器从中选出一套加密算法和hash算法以及自己的身份信息(地址等)以证书的形式发送给浏览器,证书中包含服务器信息,加密公钥,证书的办法机构
  3. 客户端收到网站的证书之后要做下面的事情:
    1. 验证证书的合法性
    2. 如果验证通过证书,浏览器会生成一串随机数,并用证书中的公钥进行加密
    3. 用约定好的hash算法计算握手消息,然后用生成的密钥进行加密,然后一起发送给服务器
  4. 服务器接收到客户端传送来的信息,要求下面的事情:
    1. 用私钥解析出密码,,用密码解析握手消息,验证hash值是否和浏览器发来的一致
    2. 使用密钥加密消息,回送
  5. 如果计算法hash值一致,握手成功

客户端证书验证

证书预置和申请
1:客户端浏览器会预置根证书, 里面包含CA公钥
2:服务器去CA申请一个证书
3: CA用自己的签名去签一个证书,指纹信息保存在证书的数字摘要里面, 然后发送给服务器

你可能感兴趣的:(前端)