zoukankan      html  css  js  c++  java
  • https原理

    https原理

    导言:

      https的原理如果说简单点,就下面的三句话:

      1、客户端用企业的公钥加密对称加密的密钥和加密方法,传给服务端

      2、服务端收到以后,用企业的私钥来解密,得到对称加密的密钥和加密方法

      3、后续的通讯就用该密钥,采取对称加密,来进行服务端与客户端的通信

    然后有一些细节,解释如下:

    • 非对称加密:对于理解https的内容,可以简单理解为,是一对钥匙,分为公钥和私钥,只有这个公钥可以解开这个私钥加密的信息,也只有这个私钥可以解开这个公钥加密的信息,公钥可以全世界公开,但是私钥只有自己单位知道,绝不泄露到网上。
    • 企业有一对公私钥,这个公私钥,需要让第三方机构公证,公证这对钥匙真实可靠,这个第三方机构就是CA机构
    • CA机构负责给企业颁发证明其公私钥有效的证书。同时,CA机构自己也有一对公私钥。
    • CA机构的公钥已经安装到了每台客户端机器上,windows啊,macos啊都有,这个是操作系统默认带的,可以用CA的公钥解开CA的私钥加密的信息。
    • 证书上的信息有两部分:
      • 1、明文信息: 企业的信息,CA的信息,有效期啊等等,最重要的明文信息是企业的公钥,
      • 2、证书签名,用于证明证书不是伪造的,构造签名的过程是这样的:先把证书的明文信息做一个哈希值,然后用CA的私钥对哈希进行加密,就得到了证书的签名,其实就是一段字符串。

    • 客户端与服务端的沟通是这样的:

      • 1、客户端向服务端说,我们采用https吧
      • 2、服务端把企业的证书给到客户端,“呶,这是我的证书,你看下”
      • 3、客户端先检查证书的明文信息,知道了是哪个CA,然后用本地的CA的公钥,解密证书上的签名,得到了一段哈希值
      • 4、客户端再将证书上的明文信息哈希一遍,看与证书上的哈希一不一致,如果一致,证明明文信息没有被篡改过,所以明文的那个企业公钥,也是可信的
      • 5、于是就有了导言里的场景

    至此,https的流程,大家应该清楚了。不清楚的欢迎留言拍砖。

  • 相关阅读:
    Go控制协裎并发数量的用法及实际中的一个案例
    使用Go处理带证书的请求(含发送POST请求的具体实现)
    利用递归的方式获取restful风格有nextUrl接口返回的数据
    使用Go解析HTTP返回数据为struct并存入数据库的操作
    Windows下安装Redis
    PHP自动加载composer下载的类库
    composer安装第三方类库
    Windows上composer安装
    ThinkPHP5分布式数据库读写分离
    MySQL主从同步及读写分离
  • 原文地址:https://www.cnblogs.com/becker/p/9349894.html
Copyright © 2011-2022 走看看