zoukankan      html  css  js  c++  java
  • HTTPS协议

    后面有思维导图版

    HTTPS协议

    基础知识

    对称加密

    • 也被称为共享密钥加密, 也就是通信双方使用相同的公开秘钥进行加密解密
    • 优点是速度快, 缺点是客户端无法确保可以安全的把秘钥发给服务器
    • 子主题 3

    非对称加密

    • 有一对配对的公开秘钥和私有秘钥
    • 服务器拥有公钥, 这个是大家都知道的, 客户端拿了服务器这个公钥对报文加密, 那么全世界只有服务器可以解密, 服务器用私钥来解密.(在已知公钥和加密后的报文的情况下要(不知道私钥)要算出报文的难度是非常大的
    • 子主题 3

    HTTPS = HTTP + 加密 + 认证 + 完整性

    加密

    • 指的是HTTP传输时都是明文

      • 明文指的是未加密的报文

    认证

    • HTTP中 客户端无法确认和他通信的服务器是真正的服务器
    • 服务器无法确认和他通信的客户端是真正的客户端

    完整性

    • 无法保证报文是不是完整的, 有没有被篡改

    HTTPS是基于SSL的HTTP协议

    首先我们会用非对称加密, 客户端拿到服务器的公钥, 然后用这个公钥加密 一个后续通信的 共享秘钥, 服务器用自己的私钥解析出 这个共享秘钥. 再后来的通信, 就统一用 对称加密了.

    • 一个细节
    • 客户端怎么知道自己获取到的服务器公钥是真实可靠的服务器公钥呢, 其实要引入CA
    • 也就是 一些第三方的权威机构 服务器每年交几千块钱去购买证书
    • 流程: 服务器的运营人员向数字证书的运营人员提出公开秘钥的申请, 数字机构在判明身份后 ,会对这个公开密钥做数字签名, 然后把这个公开密钥 ,打包进公钥证书
    • 服务器会把这个证书发给客户端, 客户端使用数字证书认证机构的公开密钥 , 对证书的签名进行验证, 一旦验证通过, 就有以下两个结论
    • 1.这个数字证书机构是真实可靠的
    • 2.服务器的公开密钥是值得信赖的
    • 但是认证机关的公开密钥是怎么交给客户端呢?
    • 答案是浏览器内部植入, 浏览器开发厂商已经内置了

    子主题 3

    总的来说, 我们是先利用非对称加密的技术来加密共享密钥, 然后在双方获得这个共享密钥后, 利用共享密钥来加密解密

    • 一开始使用非对称加密是 基于 安全性的考量 后面使用对称加密是 在确保 共享密钥 安全性的情况下 对速度的考量
    • 在通常情况下 HTTPS比HTTP慢 2-100倍
    • 非对称加密比对称加密慢

    子主题 4

    子主题 5

    子主题 6

    XMind: ZEN - Trial Version

    思维导图里看不清的图我放下面






  • 相关阅读:
    spring mvc全局异常处理
    spring mvc URL忽略大小写
    easyui datagrid 加载两次请求,触发两次ajax 请求 问题
    根据多列去除重复记录,保留具有特殊列值的行,去除其他行
    ibatis 批量插入oracle总结
    ibatis 参数错误,无效字符
    jvm 原理和优化
    tomcat 内存问题 xms xmx permsize maxPermsize
    java 中与 或 非 异或 和位移运算
    项目jar包管理,使用 .userlibraries 文件增加jar包的可移植性,明确jar包依赖,多项目共用jar包里
  • 原文地址:https://www.cnblogs.com/yahoo17/p/13733988.html
Copyright © 2011-2022 走看看