zoukankan      html  css  js  c++  java
  • 个人理解的 Https 通信流程

    https 简单理解是 http + ssl 安全协议。

    http 协议的问题是,数据在传递的过程中,会经过很多路由,网关等,可能会被恶意的路由器进行数据拦截,篡改等。

    https 的通信流程:1.首先确定服务器是经过安全机构认证的,是可信任的。2.通信过程是经过加密的。

    1.a. 首先公司向认证机构,申请证书,认证机构根据公司的信息等,生成 子证书,然后把 (子证书, (子证书通过HASH算法,进行安全哈希,生成消息摘要,用私钥加密生成的)数字签名, 公钥,私钥)给公司。

    1.b. 客户端向服务器发送请求。服务器把 (子证书, 数字签名,公钥)发给客户端。1>客户端首先验证 子证书 的安全性, 流程:客户端用 公钥,对数字签名进行解密。同时,对子证书进行安全HASH生成消息摘要,对比两个结果,如果一致,说明子证书是未经过篡改的。2>客户端验证子证书的有效性,客户端拿子证书去 自己电脑上的CA认证列表中进行验证,如果是未过期的,有效的,说明该服务器是 通过认证的,可信任的, 否则的话,会waring不信任,如果是自制的证书会弹出  需要安全认证等弹窗。

    2.通过认证,确认服务器可信任后,客户端会 生成一个 用于接下来进行数据传输加密的 密钥(接下来是 非对称加密)。客户端 拿公钥 对这个进行加密,返回服务器,服务器用私钥进行解密,拿到密钥。---》开始通信: 服务器用 密钥 对数据进行加密 传给客户端,客户端 接收到数据之后,用密钥解密。完成通信。

  • 相关阅读:
    .NET Core中的鉴权授权正确方式(.NET5)
    关于调试程序容易忽略的问题
    Activity组件的启动过程
    Service组件应用实例
    Navicat_Premium 支持mac m1芯片
    15种sql优化
    sql语句中with用法
    用传对象方式修改sql
    如何将java project转换成maven项目
    SQLSERVER 快速替换引号字段
  • 原文地址:https://www.cnblogs.com/yangzhifan/p/5423949.html
Copyright © 2011-2022 走看看