网络通信与密码相关概念流程

news2024/11/25 6:43:41

文章目录

  • 前言
  • 一、明文通信
  • 二、密文通信
    • 1.对称加密
    • 2.非对称加密
  • 三、安全信任机制
    • 1.CA(Certificate Authority) 证书授权中心
    • 2.数字证书
  • 总结


前言

随着科技的发展,人们的通信都转化成电子通信,由于信息需要通过一个公有的网络进行传输,信息在网络传输的过程中很容易被截取篡改。所以对一些重要信息的传递需要保证其安全性,由此需要一系列的机制来保证。


一、明文通信

互联网早期一些门户网站都是一些新闻,主要提供的功能就是用户点击链接和对应的信息的返回,这些信息一般情况下不会有人恶意进行篡改,所以基本上都是明文通信。
在这里插入图片描述

二、密文通信

随着互联网的普及和安全性的重视,对信息传递的安全性有了更高的要求,所以在信息互相传递逐步都采用密文传递来保证安全性。这样密文在一个非安全的网络中传递,即使被截获由于没有对应密钥也无法破解信息,所以保证了信息传递的安全性。
在这里插入图片描述

1.对称加密

对称加密是指加密和解密都是使用同一个密钥,即使第三方截获到密文,由于第三方不知道密钥,所以保证了信息的安全。通信过程如下:

1.client将所要发送的明文信息使用密钥进行加密操作,得到密文
2.密文在互联网上从client传递到service所在位置
3.service用密钥进行解密操作,得到明文信息

目前主要需要解决的是client和service如何通过网络约定密钥?

2.非对称加密

非对称加密指的是加密和解密采用不同的两个密钥,一个是公钥可以公布出来供其他人使用,一个是私钥需要自己保存。用公钥加密的密文只能由私钥来解密,用私钥加密的密文只能由公钥来解密。

在这里插入图片描述
通信过程如下:

1.client将所要发送的明文信息使用service公钥进行加密操作,得到密文
2.密文在互联网上从client传递到service所在位置
3.service用service私钥进行解密操作,得到明文信息

由上可知,client发送给service的密文只能由service的私钥解密,所以只要service私钥没有泄露,那么client到servcie的单向通信就是安全的。如果用service的私钥加密成密文然后传递给client,由于service的公钥是公开的,所以截取之后用公钥解密即可获取明文,这属于不安全的通信。所以保证service到client的单向通行安全是需要service用client的公钥进行加密,然后client用client私钥解密。

三、安全信任机制

通过非对称加密仿佛很好的解决了安全通行问题,但是如何确认client得到的service公钥是正确的,如果client得到的是一个假的公钥,那么信息就可以被窃取和篡改,比如一些钓鱼和假网站等。

1.CA(Certificate Authority) 证书授权中心

为了解决公钥正确性问题就需要引入一个双方都信任的第三方机构,service端将自己的公钥向第三方机构进行注册认证,client可以通过第三方机构验证公钥的有效性。这个第三方机构就是CA证书授权中心。
CA证书授权中心是通过数字证书来对service端的公钥进行注册认证,client端也是通过对数字证书进行校验来确定公钥的有效性。具体流程如下:
在这里插入图片描述
引入CA之后,公钥的传递和验证问题转化成了对数字证书的验证问题。

2.数字证书

数字证书是互联网通讯中标识各方身份的一系列数据,由CA进行发行。最简单的数字证书包括一个公开密钥、名称以及证书授权中心的数字签名。

CA授权中心 数字证书生成过程:

1.创建一个文件包含申请者公钥、签名算法、有效期等
2.对这些信息进行hash算法加密、获取hash值
3.CA使用自己的私钥对上一步的hash值进行加密获取证书签名
4.证书签名加申请者信息就是数字证书全部信息

验证数字证书主要是要确定数字证书内容是否被篡改和伪造,验证过程:

1.对数字证书中申请者信息进行hash算法加密、获取hash值
2.使用CA颁发的公钥解密数字证书中的证书签名
3.比较数字证书中内容获取的hash值和解密证书签名的hash值是否一致

安全通信需要安全传递service公钥,安全传递service公钥引入了CA需要验证数字证书,验证数字证书又需要知道CA的公钥,似乎问题回到了起点。所以为了解决这个问题,CA会为自己生成一个自证证书包含CA的公钥,在系统里或者浏览器中会预制一些CA的数字证书。


总结

系统预制CA证书解决了CA机构的公钥获取问题,数字证书和数字签名解决了对公钥的传递和验证问题【无篡改无伪造】,非对称加密解决了通信中对称加密密钥的传递问题。通过以上机制在互联网中解决了安全通信问题。

参考:
1.https://blog.csdn.net/m0_52409770/article/details/123816890
2.https://blog.csdn.net/wekajava/article/details/121310977
3.https://www.cnblogs.com/saolv/p/12912924.html
4.https://blog.csdn.net/qq_39248307/article/details/123941576

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring IOC 源码解读

将回答以下问题: BeanFactory 和 ApplicationContext 之间的关系和区别。一个 Bean 是如何被注入到 IOC 容器里,中间经历了什么过程(Bean 的生命周期)。 先入为主 假设你已经有如下经验: 什么是 IOC。 don‘t call…

verilog手撕代码2——各种加法器介绍——真值表、表达式、电路图

文章目录 前言一、半加器二、全加器三、串行/行波进位加法器(Ripple-Carry Adder/RCA)四、超前进位加法器(Lookahead Carry Adder/LCA)五、进位保存加法器(Carry Save Adder/CSA) 前言 2023.4.25 一、半加…

Terraform

文章目录 简介安装简单使用案例 概念原理状态管理Backend 远程状态存储机制 配置语法Argument 参数Block 块terraform块required_providersbackend provider块: 与基础设施交互resource块: 定义基础架构data块: 数据源 表达式(Experssion)和函数(Functions)变量variable 输入变…

【Celery】任务Failure或一直超时Pending

编写背景 task进入队列后,部分任务出现Failure或者一直Pending,且业务代码没有报错。 运行环境 celery配置 from celery import Celery broker redis://:127.0.0.1:6379/1 backend redis://:127.0.0.1:6379/2 app Celery(brokerbroker,backendbackend,includ…

【文心一言】广告文案、演讲稿与请假条自动生成

前言 作为一名大学生而言,平时参加或者举办一些学校组织的活动的时候,总是避免不了需要准备一些演讲稿、广告宣传文案等内容,甚至于在疫情十分严重的这几年内,如何跟老师“委婉的”请假,也成为了我日常头疼的事情。但在…

React之redux的模板

文章目录 以下为模板代码安装(添加 Redux Toolkit 和 React-Redux 依赖包到你的项目中)以下为项目目录在store/index.js里面的模板创建模块(模块化思想),这里就是模板,所有模块通用(src/features/userSlice.js)在main.jsx引入模板(只需要看下面画横线的四行)在组件内使用 以下是…

【网课平台】Day16.项目优化:压测、加缓存优化与分布式锁

文章目录 一、压力测试1、优化需求2、性能指标3、安装Jmeter4、压力测试5、优化日志 二、缓存优化1、给接口加Redis缓存2、缓存穿透3、解决缓存穿透4、缓存雪崩5、缓存击穿 三、分布式锁1、本地锁的问题2、IDEA一个项目启动多个实例3、分布式锁4、Redis NX实现分布式锁5、Redis…

多项式加法(用 C 语言实现)

目录 一、多项式的初始化 二、多项式的创建 三、多项式的加法 四、多项式的输出 五、清除链表 六、主函数 用链表实现多项式时,每个链表节点存储多项式中的一个非零项,包括系数(coef)和指数(exp)两个…

Java8新特性函数式编程 - Lambda、Stream流、Optional

1.Lambda表达式 1.1 概述 ​ Lambda是JDK8中一个语法糖。他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象。而是更关注我们对数据进行了什么操作。 1.2 核心原则 可推导可省略 1.3 基本格式 (参数列表)->{代码}例一…

python毕业设计之django+vue公司企业物流信息管理系统

基于 开发语言:Python 框架:django Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyCharm 语言设计并实现了速运公司物流信息管理系统。该系统基于B/S即所谓浏览器/服务器模式&…

智慧物流信息系统开发需具备哪些功能?

智慧物流软件开发公司在制作管理系统的时候,需要具备的功能有哪些呢? 一、采集跟踪功能。 (1)、信息采集:信息采集跟踪系统是智能物流系统的重要组成部分。物流信息采集系统主要由RFID射频识别系统和Savan…

【Hadoop-HDFS】HDFS中Fsimage与Edits详解

【Hadoop-HDFS】HDFS中Fsimage与Edits详解 1)概述2)NameNode元数据解析3)Fsimage3.1.Fsimage 的作用3.2.FSimage 的文件信息查看 4)Edits4.1.Edits 的作用4.2.Edits 的文件信息查看 5)元数据信息目录的配置 1&#xff…

【2023.04.28】Windows配置MongoDB服务

【2023.04.28】Windows配置MongoDB服务 1、背景2、操作2.1 配置环境变量2.2 配置本地Windows MongoDB服务 环境:Windows11,Mongo 6.0.5【该版本没有mongo.exe】 1、背景 某一天想使用电脑以前安装的 MongoDB,发现用 Navicat 连接不了&#…

4个很多人都不知道的现代JavaScript技巧

JavaScript在不断的进化和升级,越来越多的新特性让我们的代码变得更加简洁。因此,今天这篇文章,我将跟大家分享 4 个不常用的 JavaScript 运算符。让我们一起研究它们。 1.可选的链接运算符 这个功能非常好用,它可以防止我的代码…

pwm调节亮度

文章目录 运行环境:1.1 pwm1)占空比2)A板原理图3)PE11引脚配置4)定时器Timers配置 2.1代码解释1)定时器1初始化函数2)启动定时器中断3)启动PWM/设置占空比4)launch设置5) 编译调试 3.1实验效果 运行环境: ubuntu18.04.melodic 宏基暗影骑士笔记本 stm32…

Leetcode202. 快乐数

Every day a leetcode 题目来源:202. 快乐数 解法1:hash 根据几个例子,我们发现只有2种结果: 最终会得到1最终进入一个循环 其实得到1后,继续计算(将该数替换为它每个位置上的数字的平方和&#xff09…

美妆“数字员工”来了!丸美:每月节省30人日!提升员工幸福感,企业效益稳增

美妆,因其效果可视觉化呈现的特征,决定了美妆品牌与直播带货的高匹配度。流量,是直播商家深入了解粉丝参与情况和商品销售状况的重要依据。因此,美妆商家需要每天下载直播数据报表,监测流量、成交变化趋势,…

数据可视化 —— 小练习1 KMeans聚类并数据可视化图像像素点

数据可视化Task1 任务描述:对图片RGB点进行Kmeans聚类,并将结果数据可视化于前端浏览器上 实验平台: Visual Studio CodeHTML/CSS/JavascriptEdge/Chorme/Firefox 浏览器Echart.min.js 3.8.5版 (过高的版本浏览器无法include&a…

Python采集豆Top250电影数据 , 看看质量及评分

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 本次案例涉及点: 1、动态数据抓包演示 2、csv文件保存 3、requests模块的使用 4、parsel解析数据的使用 环境介绍: 软件安装 python 3.8 pycharm 不会安装的可以文末名片我获取哦 😎 模块使用…

windows安装flutter

在flutter官网下载flutter 在 Windows 操作系统上安装和配置 Flutter 开发环境 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 下载文件后,解压文件把文件存放在指定位置 打开flutter_console.bat文件 输入flutter doctor flutter报错提示(…