热门标签 | 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网络协议五 :混合加密、数字签名、证书学习总结》


推荐阅读
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文介绍了如何将PPT格式转换成PDF,并推荐了一款高效的PPT转换成PDF转换器。该转换器利用最新的超线程技术核心和多核心CPU性能,提高了转换效率和转换质量。同时,该转换器具备万能转换模式,可以轻松实现不同类型、不同内容和不同排版的PPT文件的转换。用户可以通过下载链接获取该转换器。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 用于图像集分类的混合黎曼图嵌入度量学习
    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社区 版权所有