对称加密 非对称加密 AC认证 https原理

文章目录

  • 对称加密及漏洞
  • 非对称加密及漏洞
  • 什么是数据摘要(也称数据指纹)
  • 什么是CA认证
  • CA证书签发过程
  • https通信方案

对称加密及漏洞

对称加密是一种加密算法,使用相同的密钥(也称为对称密钥)用于加密和解密数据。在对称加密中,发送方使用密钥对要发送的数据进行加密,接收方使用相同的密钥对接收到的密文进行解密,从而还原成原始的明文数据。
对称加密的特点包括:
快速高效:对称加密算法通常计算速度快,适合处理大量数据。
加密解密使用相同密钥:对称加密使用相同的密钥进行加密和解密操作,因此在通信双方之间需要共享密钥。这也意味着密钥的安全性非常重要,任何人获取了密钥都可以解密密文。
安全性依赖于密钥管理:对称加密的安全性取决于密钥的保密性和安全管理。如果密钥泄露,加密的数据将无法保护。
常见的对称加密算法包括DES(数据加密标准)、3DES(三重数据加密算法)、AES(高级加密标准)等。这些算法在加密过程中使用相同的密钥进行加密和解密操作,提供了保护数据隐私和保密性的机制。

图解:
在这里插入图片描述

非对称加密及漏洞

非对称加密是一种加密算法,使用一对不同但相关的密钥,分别称为公钥和私钥。公钥用于加密数据,私钥用于解密数据。在非对称加密中,公钥可以公开给任何人使用,而私钥必须保密。


加密解密使用不同密钥:非对称加密使用不同的密钥进行加密和解密操作。公钥用于加密数据,私钥用于解密数据。这意味着任何人都可以使用公钥加密数据,但只有私钥的持有者才能解密数据。
数字签名:非对称加密还可以用于数字签名。发送方可以使用私钥对数据进行签名,接收方可以使用公钥验证签名的真实性,确保数据的完整性和身份认证。
密钥分发和管理:非对称加密可以解决对称加密中密钥分发和管理的问题。发送方只需要知道接收方的公钥,而不需要共享私钥。这样可以降低密钥管理的复杂性。
常见的非对称加密算法包括RSA(Rivest-Shamir-Adleman)、ECC(椭圆曲线加密)等。这些算法在加密和解密过程中使用不同的密钥,提供了更高的安全性和灵活性。

图解:
在这里插入图片描述

什么是数据摘要(也称数据指纹)

数据签名是一种用于验证数据完整性和身份认证的技术。它通过使用加密算法和私钥对数据进行加密,生成一个唯一的数字签名。这个数字签名可以用于验证数据的来源和完整性,确保数据在传输过程中没有被篡改或伪造。

数据签名的过程如下:
数据摘要:首先,对要签名的数据应用一个哈希函数,生成一个固定长度的摘要(也称为哈希值)。这个摘要是根据数据内容计算出来的,具有唯一性和不可逆性。
私钥加密:使用私钥对摘要进行加密,生成数字签名。私钥只有签名者拥有,用于对数据进行加密和生成签名。
数字签名验证:接收方可以使用公钥对数字签名进行解密,得到摘要。然后,接收方对接收到的数据应用相同的哈希函数,生成一个新的摘要。接收方可以比较这两个摘要,如果它们匹配,则说明数据没有被篡改或伪造。

数据签名的作用包括:
数据完整性:数据签名可以验证数据在传输过程中是否被篡改。如果数据被篡改,数字签名验证将失败,接收方可以知道数据已被修改。
身份认证:数据签名可以验证数据的来源。由于私钥只有签名者拥有,其他人无法生成有效的数字签名,因此可以确保数据的身份认证。
防止抵赖:由于数字签名是使用私钥生成的,签名者无法否认自己对数据的签名。这可以防止签名者在后期否认自己的行为。

什么是CA认证

CA认证是指由CA(Certificate Authority,证书颁发机构)进行的数字证书的认证过程。CA是一个可信任的第三方机构,负责验证和签发数字证书,用于验证网站、服务器或个人的身份和安全性。

CA证书签发过程

  1. 服务方 S 向第三方机构CA提交公钥、组织信息、个人信息(域名)等信息并申请认证;

  2. CA 通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等;

  3. 如信息审核通过,CA 会向申请者签发认证文件和证书。
    证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名;
    签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA 的私钥对信息摘要进行加密,密文即签名;

  4. 客户端 C 向服务器 S 发出请求时,S 返回证书文件;

  5. 客户端 C 读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应 CA 的公钥解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性,即公钥合法;

  6. 客户端然后验证证书相关的域名信息、有效时间等信息;

  7. 客户端会内置信任 CA 的证书信息(包含公钥),如果CA不被信任,则找不到对应 CA 的证书,证书也会被判定非法。

在这个过程注意几点:
1.申请证书不需要提供私钥,确保私钥永远只能服务器掌握;
2.证书的合法性仍然依赖于非对称加密算法,证书主要是增加了服务器信息以及签名;
3.内置 CA 对应的证书称为根证书,颁发者和使用者相同,自己为自己签名,即自签名证书;
4.证书=公钥+申请者与颁发者信息+签名;

https通信方案

图解:
在这里插入图片描述

  1. 中证书无法伪造。
    2.形成签名的方法不公开是签名不会被伪造的关键,也是对比数据摘要判断是否可信任 这一方法的保障。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux中学习控制进程的要点

1. 进程创建 1.1 fork函数 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;自进程中返回0&#xff0c;父进程返回子进程id&#xff0c;出错返回-1 进程调用fork&#xff0c;当控制转移到内核中的fork代码后&#xff0c;内核会做以下操作 分配新的内存块和…

22.3D等距社交媒体菜单的悬停特效

效果 源码 <!doctype html> <html><head><meta charset="utf-8"><title>CSS Isometric Social Media Menu</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.…

vue从零开始学习

npm install慢解决方法:删掉nodel_modules。 5.0.3:表示安装指定的5.0.3版本 ~5.0.3:表示安装5.0X中最新的版本 ^5.0.3: 表示安装5.x.x中最新的版本。 yarn的优点: 1.速度快,可以并行安装 2.安装版本统一 项目搭建: 安装nodejs查看node版本:node -v安装vue clie : np…

【已解决】Java 后端使用数组流 Array.stream() 将数组格式的 Cookie 转换成字符串格式

&#x1f389;工作中遇到这样一个场景&#xff1a;远程调用某个接口&#xff0c;该接口需要用户的 Cookie 信息进行权限认证&#xff0c;认证通过之后才可以打通并返回数据。 在后端拿到 httpServletRequest 后&#xff0c;调用 getCookies() 方法&#xff0c;返回的是一个 Coo…

Adobe Illustrator 2023 for mac安装教程,可用。

Adobe Illustrator 是行业标准的矢量图形应用程序&#xff0c;可以为印刷、网络、视频和移动设备创建logos、图标、绘图、排版和插图。数以百万计的设计师和艺术家使用Illustrator CC创作&#xff0c;从网页图标和产品包装到书籍插图和广告牌。此版本是2023版本&#xff0c;适配…

STM32f103入门(10)ADC模数转换器

ADC模数转换器 ADC简介AD单通道初始化代码编写第一步开启时钟第二步 RCCCLK分频 6分频 72M/612M第三步 配置GPIO 配置为AIN状态第四步&#xff0c;选择规则组的输入通道第五步 用结构体 初始化ADC第六步 对ADC进行校准编写获取电压函数初始化代码如下 Main函数编写 ADC简介 ADC…

Qt应用开发(基础篇)——输入对话框 QInputDialog

一、前言 QInputDialog类继承于QDialog&#xff0c;是一个简单方便的对话框&#xff0c;用于从用户获取单个值。 对话框窗口 QDialog QInputDialog输入对话框带有一个文本标签、一个输入框和标准按钮。输入内容可以字符、数字和选项&#xff0c;文本标签用来告诉用户应该要输入…

Linux服务——nginx的配置及模块

目录 一、nignx配置 1、nginx的配置文件 2、使用server语句块构建虚拟主机 3、alias别名 4、location语句 二、nginx模块 access模块 验证模块 自定义错误页面 日志存放位置 检测文件是否存在 长连接设置 ngx_http_autoindex_module 模块 三、nginx的高级配置 1、…

leetcode 823. 带因子的二叉树(dp+双指针+Long类型)

leetcode 823. 带因子的二叉树(dp双指针Long类型) 题目表述 给出一个含有不重复整数元素的数组 arr &#xff0c;每个整数 arr[i] 均大于 1。 用这些整数来构建二叉树&#xff0c;每个整数可以使用任意次数。其中&#xff1a;每个非叶结点的值应等于它的两个子结点的值的乘积…

电商项目part10 高并发缓存实战

缓存的数据一致性 只要使用到缓存&#xff0c;无论是本地内存做缓存还是使用 redis 做缓存&#xff0c;那么就会存在数据同步的问题。 先读缓存数据&#xff0c;缓存数据有&#xff0c;则立即返回结果&#xff1b;如果没有数据&#xff0c;则从数据库读数据&#xff0c;并且把…

OTFS-ISAC通信最新进展

测试场景 Tx DD域帧结构导频区域 Rx DD域帧导频区域 原始星座图 信道估计及数据检测 经过MP算法后的星座图 误码率曲线

2023_Spark_实验二:IDEA安装及配置

一、下载安装包 链接&#xff1a;百度网盘 请输入提取码 所在文件夹&#xff1a;大数据必备工具--》开发工具(前端后端)--》后端 下载文件名称&#xff1a;ideaIU-2019.2.3.exe &#xff08;喜欢新版本也可安装新版本&#xff0c;新旧版本会存在部分差异&#xff09; IDEA …