【加密】【计算机网络】网络传输加密协议 CA 签名

项目做的比较复杂,里面用了https传输通信,但是一直有bug,无法进行调用,怀疑签名问题,所以就深入研究一下这个是啥。

参考:https://yuhongjun.github.io/tech/2020/11/30/看懂HTTPS-证书机构-CA-证书-数字签名-私钥-公钥.html#对称加密

信息传输

传输信息时候,我们有两个大原则是期望能够做到的:

1.传输内容不想轻易被别人看懂
2.传输内容不想被别人篡改

后面弄的一系列套娃可以算是都是为了这个需求,当然可能还有额外一些额外的目标

内容加密

首先我们先来看看如何达到1这个目标:传输内容不想轻易被别人看懂

主要有两个一个是对称加密非对称加密

对称加密:双方约定一个钥匙,所有传输的内容都用钥匙进行加密,加密后的内容都可以用钥匙进行解密。
对称加密传输过程就变成:

  1. 约定钥匙
  2. 对内容进行钥匙加密
  3. 传输

非对称加密:公私钥。所有内容都可以用私钥加密公钥解密,或者私钥解密公钥加密。
传输过程:

  1. 让发送方知道接收方的公钥是什么
  2. 让发送方用公钥对内容进行加密
  3. 加密内容发送出去
  4. 接收方用私钥解密

似乎二者没有什么缺陷,但是有两个问题:

  1. 对称加密怎么让对方知道我们约定的钥匙是对的,没有被篡改的
  2. 非对称加密速度慢

所以后续采用了混合,用非对称搞定约定密钥,传输过程用对称加密。

似乎又天衣无缝,但问题又来了,仔细看非对称加密的第一个过程。让发送方知道接收方的公钥是什么。如果说发送方知道的是一个假的接收方的公钥怎么办?那么这个假的接收方就可以针对内容进行解析,可以篡改,可以伪造等等。所以依旧没有达到目标

CA

刚刚谈及的最大的问题是,如果发送方知道了错误的公钥那么整个信息传输也是不安全的

所以才有了CA(certification authorization)

这个是用来保证这个公钥一定是正确的发送方

在这里先插入信息的第二个问题:信息如何不被篡改

防篡改

一般信息传输遵从某种格式,假设说黑客知道了这个格式,然后加上一些莫名其妙的字段,这对于发送接收双方也是不能够接收的。

所以才有了签名

发送方对发送内容进行摘要提取,然后对提取之后的信息进行私钥加密

接收方接收到了信息,用同样算法对内容尽心提取,然后用公钥解密,比对这个摘要与自己计算出来的,没问题就说明内容没有被篡改。

细节点:

  1. 签名用的是私钥加密,这个私钥一定不会让别人知道,所以这个签名肯定是无法篡改的,这就杜绝了黑客在通信过程篡改信息内容的可能性
  2. 但这还是与刚才类似,如果一开始通信的对象就是黑客那该怎么办呢?

所以还是需要回到CA这个认证机构这里。

根据刚才所述,最重要的是,你怎么保证一开始跟你说话的就不是黑客,就是你的目标接收方呢?

所以引入了第三方机构CA,这个是被大家所信任的一个机构,大家只看他签发的,只要是他签发的人,我就相信这一定是我传输的目标。

所以一开始通信时候,大家直接亮出这个CA证书,一看这个CA证书就知道对方一定是我的通信对象

所以这里隐含了一个条件,也就是所有人都相信这个CA,所有人都知道这个CA的公钥是什么

具体过程:

  1. 发送方去CA机构认证,把自己相关信息发给CA,里面最关键的就是自己的公钥
  2. CA核对这个人的身份,没问题就把CA证书发给发送方。而这个CA证书的构成也有三部分:CA证书内容(含有发送方的公钥) + CA证书的签名算法 + 签名。而这里的签名就是CA机构用自己的私钥对内容提取加密后的结果。
  3. 然后发送方与接收方通信时候,直接亮出CA证书
  4. 接收方核对CA证书真伪,将内容用证书表示的算法进行计算得到签名,然后将自带的签名用已知的CA公钥解密,比对内容。相同即为真
  5. 这样接收方就知道发送方的公钥是什么

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/889746.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[mysql]多表查询详解

我们如果要查询,我们就要用 SELECT .... FROM .... WHERE AND/OR/NOT #我们需要用过滤的条件来对数据进行筛选,不然会有很多多余数据 ORDER BY (ASC/DESC)#排序 LIMIT....,#是在几个有限的数据库管理系统里所以,PGsql,mysql,等 多表查询的意义 我们目前为止的查询语句…

linux 安装gitlab

安装环境 CentOS 7.7 (centos6.10会报错)2g内存防火墙关闭 安装步骤: 1 安装gitlab # yum install -y git curl policycoreutils-python openssh-server # 安装依赖 # wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce…

IPv 4

IP协议 网络层主要由IP(网际协议)和ICMP(控制报文协议)构成,对应OSI中的网络层,网络层以实现逻辑层面点对点通信为目的。目前应用最广泛的IP协议为IPv4 基本概念给出 主机:配有IP地址但不具有路…

【原创】java+springboot+mysql劳动教育网系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

【数据结构-栈】【贪心】力扣2434. 使用机器人打印字典序最小的字符串

给你一个字符串 s 和一个机器人,机器人当前有一个空字符串 t 。执行以下操作之一,直到 s 和 t 都变成空字符串: 删除字符串 s 的 第一个 字符,并将该字符给机器人。机器人把这个字符添加到 t 的尾部。 删除字符串 t 的 最后一个 …

让AI像人一样思考和使用工具,reAct机制详解

reAct机制详解 reAct是什么reAct的关键要素reAct的思维过程reAct的代码实现查看效果引入依赖,定义模型定义相关工具集合工具创建代理启动测试完整代码 思考 reAct是什么 reAct的核心思想是将**推理(Reasoning)和行动(Acting&…

SDH8303直插DIP8,7W-12W非隔离升压降压转换器

SDH8303是用于开关电源的内置高压 MOSFET 的电流模式 PWM 控制器,采用DIP-8封装,全电压下典型功率7W-12W。 SDH8303芯片内置高压启动电路,在轻载下会进入打嗝模式,具有降频、抖频、软启动、VDD 打嗝功能,还集成了 VDD …

猿人学 — 第1届第17题(解题思路附源码)

猿人学 — 第1届第17题 根据题目“天杀的Http2.0”大概知道,请求的协议应该遵照的是Http2.0协议,并且目标网站专门对此进行了检测,在Network面板中右键表头,勾选Protocol 果不其然,一堆请求都是遵照Http2.0协议。而u…

论文阅读 BLIP-2

Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models 使用冻结的图像编码器和大型语言模型进行语言-图像预训练的引导 BLIP-2 通过一个轻量级的查询变换器弥合了模态之间的差距。 Querying Transformer 第一阶段通过冻结的图像编…

Word排版 | 如何文字部分固定行距、图片(嵌入型)单倍行距

问题描述 在写一个要求比较高的项目报告,总共有109页 89张图片,而且必须用word写 因此: 文字部分需要固定行距23磅图片部分需要单倍行距(不然无法使用嵌入式) 难点 文字和图片难以有效分离,无法分别设…

3D渲图软件推荐:打造高质量渲染效果

在现代设计领域,3D渲图已经成为展示设计方案和产品外观的重要手段。无论是建筑设计、产品设计还是影视动画,都需要借助专业的3D渲染图软件来实现逼真的视觉效果。 本文将为您介绍几款备受好评的3D渲染图软件,帮助您在项目中选择合适的工具。…

筛选因数快速法+map

前言:老是忘记怎么快速筛选因数,我们只需要枚举小于sqrt( num ) 的数,这样可以降低很多复杂度,而且我们的因数一定是成对出现的,所以我们遇到一个因数的时候x,判断 x 2 x^2 x2 是否…

【华为】配置RIP协议

RIP(Routing Information Protocol)是一种内部网关协议(IGP),主要用于小型网络中的动态路由。RIP有两个主要版本:‌RIPv1和‌RIPv2,它们之间存在一些关键区别: ‌分类支持‌&#xf…

STM32之CAN外设

相信大家在学习STM32系列的单片机时,在翻阅芯片的数据手册时,都会看到这么一个寄存器外设——CAN外设寄存器。那么,大家知道这个外设的工作原理以及该如何使用吗?这节的内容将会详细介绍STM32上的CAN外设,文章结尾附有…

树的中心——dfs

题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e510, M N*2; int h[N], e[M], ne[M], idx; int n; int ans 2e9; bool st[N]; void add(int a, int b) // 添加一条边a->b {e[idx] b, ne[idx] h[a], h[a] idx ; } int dfs(int u) {int…

系统移植一

使用设备是fs4412开发板 一、系统移植 系统移植是将一个操作系统或软件从一个硬件平台或处理器架构转移到另一个平台的过程。系统移植的主要目标是使软件在新的硬件环境下能够正常运行。在系统移植过程中&#xff0c;主要的改动集中在硬件相关的底层部分以及操作系统的核心模…

低代码工单管理app评测,功能与效率解析

预计到2030年&#xff0c;低代码平台市场将达1870亿美元。ZohoCreator助力企业构建定制化软件应用&#xff0c;以建筑行业工作订单管理app为例&#xff0c;简化流程&#xff0c;提升管理效率&#xff0c;降低成本。其用户友好界面、自动化管理、跨平台使用及全面报告功能受企业…

【高频SQL基础50题】31-35

又到SQL。 目录 1.查询结果的质量和占比 2.求关注者的数量 3.指定日期的产品价格 4.好友申请 II &#xff1a;谁有最多的好友 5.按日期分组销售产品 1.查询结果的质量和占比 聚合题。 # Write your MySQL query statement below SELECT t1.query_name,ROUND((SUM(t1.r…

【Linux探索学习】第四弹——Linux权限管理详解:理解用户、组和权限之间的关系

前言&#xff1a; 在前面我们已经学习了Linux的基础指令&#xff0c;相信大家对Linux已经有了一定的认识&#xff0c;今天我们来学习Linux权限的相关知识点&#xff0c;Linux权限是Linux初学者必须要掌握的内容 目录 一、Linux下用户类型 二、权限基本概念 三、权限的表示 四…

WebGoat JAVA反序列化漏洞源码分析

目录 InsecureDeserializationTask.java 代码分析 反序列化漏洞知识补充 VulnerableTaskHolder类分析 poc 编写 WebGoat 靶场地址&#xff1a;GitHub - WebGoat/WebGoat: WebGoat is a deliberately insecure application 这里就不介绍怎么搭建了&#xff0c;可以参考其他…