热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

HTTP网络协议五:混合加密、数字签名、证书学习总结

混合加密(HybridCryptosystem)对称加密(SymmetricCryptography)对称加密:加密解密使用的是同一个密钥产生的问题:一定会遇到密钥配送的问题,密钥
混合加密(Hybrid Cryptosystem)

对称加密(Symmetric Cryptography)

  • 对称加密:加密解密使用的是同一个密钥
    产生的问题:一定会遇到密钥配送的问题,密钥会被劫持

非对称加密

非对称加密可以解决密钥的配送问题

  • 非对称加密:密钥分为加密密钥解密密钥2种,他们并不是同一个密钥
    • 加密密钥:一般是公开的,因此该密钥被成为公钥(Public Key)
    • 解密密钥:由消息接收者自己保管,不能公开,因此也成为私钥(Private Key)
  • 公钥、私钥的特点:
    • 一对公钥和私钥统成为密钥对(Key pair)
    • 由公钥加密的密文,必须由该公钥对应的私钥才能解密
    • 由私钥加密的密文,必须使用与私钥对应的公钥才能解密

非对称加密解决密钥配送的过程

  1. 由消息接受者,生成一对公钥、私钥
  2. 将公钥发给发送者
  3. 消息的发送者使用公钥加密消息

新的问题:非对称加密解密的速度比对称加密要慢

混合密码系统:Hybrid Cryptosystem

  • 混合密码系统:是将对称加密和非对称加密的优势结合的方法
    • 解决了非对称加密速度慢的问题
    • 并通过非对称加密解决了对称加密的密钥配送问题

混合加密 – 加密、解密的流程

混合加密 – 加密流程

  • 会话密钥(session key)
    • 为本次通信随机生成的临时密钥
    • 作为对称加密的密钥,用于加密消息,提高速度
  • 混合加密的流程
    • 加密步骤(发送消息)
    1. 首先,消息发送者要拥有消息接收者的公钥
    2. 生成会话密钥,作为对称加密的密钥,加密消息、
    3. 用消息接收者的公钥,加密会话密钥
    4. 将前两步生成的加密结果,一并发送给消息接收者
  • 发出去的内容包括
    • 用会话密钥加密的消息(加密方法:对称加密)
    • 用公钥加密的会话密钥(加密方法:非对称加密)
      《HTTP网络协议五 :混合加密、数字签名、证书学习总结》

混合加密 – 解密流程
1. 消息接收者用自己的私钥解密出会话密钥
2. 在用解密出的会话密钥,解密消息
《HTTP网络协议五 :混合加密、数字签名、证书学习总结》

公钥的合法性

问题:如果遭到中间人攻击,那么公钥将可能是伪造的
解决:证书可以验证公钥的合法性
《HTTP网络协议五 :混合加密、数字签名、证书学习总结》

数字签名
  • 加密的问题解决了:
    • 新的问题:
      • 在消息发送的过程中如何确定是确定的发送者发送的如何识别篡改、伪装、否认?
    • 解决办法:
      • 数字签名

数字签名技术

  • 生成签名:由消息发送者完成,通过签名密钥生成
  • 验证签名:由消息接收者完成,通过验证密钥验证

用消息发送者的私钥进行签名,就能保证这个签名是消息发送者自己签的

数字签名的说明

  • 数字签名不是为了保证机密行,仅仅是为了能够识别内容有没有被篡改
    • 确保消息的完整性
    • 识别消息是否被篡改
    • 防止消息发送人否认

数字签名的流程图:
《HTTP网络协议五 :混合加密、数字签名、证书学习总结》

证书
  • 共钥证书(Publick-key Certificate PKC)
    • 包含姓名、邮件、个人信息、此人的共钥
    • 由认证机构(Certificate Authority、CA)施加数字签名

证书的流程
《HTTP网络协议五 :混合加密、数字签名、证书学习总结》
证书的注册和下载
《HTTP网络协议五 :混合加密、数字签名、证书学习总结》


推荐阅读
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文探讨如何设计一个安全的加密和验证算法,确保生成的密码具有高随机性和低重复率,并提供相应的验证机制。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • libsodium 1.0.15 发布:引入重大不兼容更新
    最新发布的 libsodium 1.0.15 版本带来了若干不兼容的变更,其中包括默认密码散列算法的更改和其他重要调整。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 本文介绍如何在QT框架中使用QWebSocket和QTcpSocket实现SSL加密通信,涵盖单向认证设置。单向认证常见于Web通信场景,其中客户端验证服务端证书,而服务端不验证客户端证书。 ... [详细]
  • 网易严选Java开发面试:MySQL索引深度解析
    本文详细记录了网易严选Java开发岗位的面试经验,特别针对MySQL索引相关的技术问题进行了深入探讨。通过本文,读者可以了解面试官常问的索引问题及其背后的原理。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • 用于图像集分类的混合黎曼图嵌入度量学习
    AMiner论文推荐论文名称:HybridRiemannianGraph-EmbeddingMetricLearningforImageSetClassificati ... [详细]
author-avatar
wuke85394
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有