zoukankan      html  css  js  c++  java
  • HTTPS的原理

    之所以会去查找这些的资料,是因为之前我们的域名没有加证书,被部分浏览器拦截了,访问不了,后面才加了证书,这个证书到底有什么用呢?想必大多数人都会说安全啊,那具体是怎么做到更安全的呢?

    HTTP

    不安全的原因是:通过明文传输

    出现的问题:可能在传输的过程中,会被监听、篡改或者冒充。

    为了解决这个问题,我们就需要对传输的内容进行加密(即使监听到了数据,也看不懂),校验内容(防止被恶意篡改),验证身份(防止被冒充)。

    提出方案:SSL/TLS  (这是https的核心技术)

    HTTPS

    SSL/TLS:

      核心: RSA非对称加密 

      通过我们对RSA工作原理的了解,会发现有两个问题:(1)服务器需要向客户端发送公钥,这个过程不安全     (2)RSA计算量大,会影响到性能

    解决问题一:

      服务器对 发送给客户端的公钥 使用 CA私钥(这里就涉及到我们申请的证书,全称应该叫数字证书,它可以获取到CA 的 私钥。而且只有CA才有私钥,保证安全) 进行加密

      浏览器用  CA公钥(这是浏览器内置的,也很安全) 进行解密获得公钥

    解决问题二:

      更换成 对称加密 。其中密钥由双方协商生成。

    几个重要的流程:(1)数字证书获取公钥    (2)协商生成对话密钥(详细过程:四次握手)     (3)使用对话密钥进行加密

    四次握手:(1)ClientHello :  传送随机数n1 、 能支持的协议版本和加密方法

          (2)ServerHello:     传送随机数n2 、 数字证书,确定使用的协议版本和加密方法

          (3)客户端回应: 传送   经过公钥加密的随机数n3

          (4)服务器最后回应:  解密得到n3

          注:  n1、n2  、n3 通过相同的算法,生成对话密钥

    补充概念 

    这里需要补充两个概念,RSA和与RSA相对应的对称加密

    RSA:

       成员:会生成一把公钥和一把私钥;

         工作原理:公钥加密,私钥解密;私钥加密,公钥解密(二者的关系是双向)

         优点:安全

       缺点:计算量大,负担重

    对称加密:

       成员:会生成一把公钥和一把私钥;

         工作原理:使用同一把密钥进行加解密。

         优点:快

       缺点:需要传输密钥,不安全

  • 相关阅读:
    NET打包時加入卸载功能
    c#水晶报表注册码
    sqlserver:某年份某月份 是否在某时间段内的函数
    修改KindEditor编辑器 版本3.5.1
    Flash大文件上传(带进度条)
    让.Net程序脱离.net framework框架运行的方法(转载)
    夏天到了,什么时候园子的T恤可以出来?
    VS2005项目的安装与布署
    解决Select覆盖Div的简单直接的方法
    .Net向Page和UpdatePanel输出JS
  • 原文地址:https://www.cnblogs.com/zxn-114477/p/14578876.html
Copyright © 2011-2022 走看看