对称加密 非对称加密 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.mzph.cn/news/60160.shtml

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

相关文章

从Gamma空间改为Linear空间会导致性能下降吗

1)从Gamma空间改为Linear空间会导致性能下降吗 2)如何处理没有使用Unity Ads却收到了GooglePlay平台的警告 3)C#端如何处理xLua在执行DoString时候死循环 4)Texture2DArray相关 这是第350篇UWA技术知识分享的推送,精选…

金仓数据库KingbaseES Windows版本启动时报错的问题

服务启动提示: 原因是使用的授权版本不对,导致服务总是启动不了 先卸载,重启,重新安装,选择下面这个授权文件 再启动开发工具,成功

学习pytorch7 神经网络的基本骨架--nn,module的使用

神经网络的基本骨架--nn,module的使用 官网Module介绍Python父类子类继承关系前向神经网络pycharm快捷键重写类方法codedebug B站小土堆视频学习笔记 官网Module介绍 https://pytorch.org/docs/stable/generated/torch.nn.Module.html#torch.nn.Module Python父类子类继承关系…

前端调用电脑摄像头

项目中需要前端调用,所以做了如下操作 先看一下效果吧 主要是基于vue3,通过canvas把画面转成base64的形式,然后是把base64转成 file文件,最后调用了一下上传接口 以下是代码 进入页面先调用一下摄像头 navigator.mediaDevices.ge…

人脸识别平台批量导入绑定设备的一种方法

因为原先平台绑定设备是通过一个界面进行人工选择绑定或一个人一个人绑定设备。如下: 但有时候需要在几千个里选择出几百个,那这种方式就不大现实了,需要另外一种方法。 目前相到可以通过导入批量数据进行绑定的方式。 一、前端 主要是显示…

42、Flink 的table api与sql之Hive Catalog

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

Redis初始以及安装

"梦却了无影踪,梦仍不曾改动" 初始Redis (1) Redis是什么? 要认识、学习一个软件,最重要的途径无一是去该软件的官方文档里瞅瞅、转悠转悠。 从官方文档的介绍中得知,Redis是一种工作于内存,…

juicefs源码format命令阅读

之前博文中介绍过在windows下安装GO和vscode windows下安装go环境 和vscode中go扩展调试 1、获取源码 git clone https://github.com/juicedata/juicefs.git 首先观察代码架构 上图是我已经编译过得代码,可能和刚git下来的有些出入。 2、编译 我是在windows上进…

Linux禅道上修改Apache 和 MySQL 默认端口号

1. 修改Apache默认端口号 80 cd /opt/zbox/etc/apachevim httpd.conf :wq 保存 2. 修改MySQL默认端口号 3306 cd /opt/zbox/etc/mysql vim my.cnf :wq 保存 3. 重启服务 ./zbox restart

GPT能否辅助数学学习

GPT4.0的数学能力怎么样?我们使用镜像站进行实验,通过不同水平的数学看看GPT4.0的数学能力得到进步没有。镜像站的地址我们放在了最后,各位读者也可以自行去测试。 笔者在ChatGPT镜像站进行测试,我们的实验是让GPT4.0自行出数学题…

2024王道408数据结构P144 T16

2024王道408数据结构P144 T16 思考过程 首先看题目,要求我们把二叉树的叶子结点求出来并且用链表的方式存储,链接时用叶结点的右指针来存放单链表指针。我们很清楚可以看出来能用中序遍历递归的方式实现,因为第一个叶子结点在整棵树的最左下…

入职字节外包一个月,我离职了

有一种打工人的羡慕,叫做“大厂”。 真是年少不知大厂香,错把青春插稻秧。 但是,在深圳有一群比大厂员工更庞大的群体,他们顶着大厂的“名”,做着大厂的工作,还可以享受大厂的伙食,却没有大厂…

eslint和prettier格式化冲突

下载插件 ESLint 和 Prettier ESLint 进入setting.json中 setting.json中配置 {"editor.tabSize": 2,"editor.linkedEditing": true,"security.workspace.trust.untrustedFiles": "open","git.autofetch": true,"…

基于Jenkins构建生产CICD环境(第二篇)

基于Jenkins自动打包并部署Tomcat环境 传统网站部署的流程 在运维过程中,网站部署是运维的工作之一。传统的网站部署的流程大致分为:需求分 析-->原型设计-->开发代码-->提交代码-->内网部署-->内网测试-->确认上线-->备份数据-->外网更新…

[ZenTao]源码阅读:自定义任务类型

1、module/custom/control.php 2、module/custom/model.php

QT基础教程之六布局管理器和常用控件

QT基础教程之六布局管理器和常用控件 布局管理器 所谓 GUI 界面,归根结底,就是一堆组件的叠加。我们创建一个窗口,把按钮放上面,把图标放上面,这样就成了一个界面。在放置时,组件的位置尤其重要。我们必须…

取数组中每个元素的最高位

1 题目 /*程序将一维数组a中N个元素的最高位取出,保存在一维数组b的对应位置。 程序运行结果为: a:82 756 71629 5 2034 b: 8 7 7 5 2 */ 2 思考 简单来说就是取一个数据的最高位。 一开始的笨方法没有办法判断数据的长度,后来…

Canvas实现3D效果

3D 球 效果图 代码 var canvas document.getElementById("cas"),ctx canvas.getContext("2d"),vpx canvas.width / 2,vpy canvas.height / 2,Radius 150,balls [],angleX Math.PI / 1000,angleY Math.PI / 1000,factor 0.0001 //旋转因子var An…

Spring Boot 中是使用 JDK Proxy 动态代理还是 CGLib ?

1. Spring Boot 中是使用 JDK Proxy 动态代理还是 CGLib ? 首先我们知道在 Spring 里面,动态代理的底层,默认使用的是 JDK Proxy 代理,这一点在官方文档有具体的说明: 既然 Spring 中的动态代理默认使用 JDK Proxy,那…