• https 原理


    https 是在http协议基础上用ssl协议封装加密。ssl协议目前发展到了3.0。根据ssl3.0的升级版,出现了TSL协议。实际上https用的是TSL。
    https协议的通信过程用到了对称加密,非对称加密和哈希算法。

    假设有客户端c和网站w。 那么https的交流过程大致如下:

    c: 我想和你安全的通话,我这里的对称加密算法有DES,RC5,密钥交换算法有RSA和DH,摘要算法有MD5和SHA (浏览器告诉网站自己支持的加密方式)
    
    w: 我们用DES-RSA-SHA这对组合好了, 这是我的证书请查验。(网站选出一组加密方法,并且把证书发给客户端)
    
    c:(证书的验证过程随后再说,证书包含了网站地址,加密公钥,以及证书的颁发机构等信息。 所以验证证书可信后,浏览器要做以下事情:
        1. 生产对称加密用的密钥 m1 。并把该密钥用网站的公钥加密。 该对称加密密钥m1以后用来加密双方通话内容。
        2. 生成一个随机消息,用hash算法 SHA 生成一个哈希值,并且把消息加密。
        3. 把加密后的m1 , 哈希值,及加密后的消息发送给网站)
    
    w: (网站要做如下事情:
        1. 用自己的私钥解密出浏览器使用的对称密钥 m1。
        2. 用m1解密浏览器发送的消息,并且计算hash值,跟浏览器发送的hash值比较。
        3. 使用密码m1加密一段握手消息,发送给浏览器)
    
    c: (浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致 则握手结束)
    

    整个握手过程主要为了让双方都获得一个可以使用的对称加密密钥。并且真正的尝试通讯一次。

  • 相关阅读:
    CentOS 7搭建SVN服务器
    CentOS 配置MySQL允许远程登录
    使用nginx实现基于tcp协议的https协议多域名指向的分别转发功能
    centos7 设置内核启动顺序
    nginx 针对特定地区的ip进行规则匹配
    【转】golang 交叉编译
    linux修改用户id,组id
    etcd 增减节点
    [转]etcd 启用 https
    windows 多网卡路由设置
  • 原文地址:https://www.cnblogs.com/kramer/p/5976556.html
Copyright © 2020-2023  润新知