zoukankan      html  css  js  c++  java
  • 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一致 则握手结束)
    

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

  • 相关阅读:
    Teleport垃圾代码tppabs的清理
    MVC Action 返回类型[转]
    Jquery 技巧收集..慢慢添加吧..
    下拉框根据输入文字自动选择和输入提示
    Repeater中,寻找TextBox,Lable.等的值
    纯CSS列自适应高
    一些基本的项目开发规范.慢慢总结中..
    MSSQL触发器
    IIS错误集,以及解决方法!
    C#创建Windows服务
  • 原文地址:https://www.cnblogs.com/kramer/p/5976556.html
Copyright © 2011-2022 走看看