信息摘要 秘钥签名 数字签名 数字证书 数字验证 数字信封 这都是什么东西?

本文主要是介绍信息摘要 秘钥签名 数字签名 数字证书 数字验证 数字信封 这都是什么东西?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

信息摘要 秘钥签名 数字签名 数字证书 数字验证 数字信封 这都是什么东西?

一下遇见这么多相近的名词,实在是难以区分理解,还是从这些概念产生的缘由理解吧

先看需求:如何保证 数据 在网络中传输时正确的?有没有被篡改?

一、信息摘要

dijest
就是做hash ,拿到唯一值,信息摘要可以防止信息传输途中的正确性

一段信息,经过摘要算法得到一串哈希值,就是摘要(dijest)。
在这里插入图片描述

常见的摘要算法有MD5、SHA1、SHA256、SHA512等。

摘要算法,是把任意长度的信息,映射成一个定长的字符串。
摘要算法,两个不同的信息,是有可能算出同一个摘要值的。
摘要算法与加密算法不同,不存在解密的过程。
摘要算法不用于数据的保密,而是用于数据的完整性校验。

也正因hash算法的安全性较低,因此只能做完整性校验,不能保证没有被篡改。

被信息摘要篡改的原理

增强碰撞攻击:尽管哈希算法具有不可逆性,但仍然可能存在两个不同的文本具有相同的摘要结果,这被称为碰撞。通过增强碰撞攻击,攻击者可以有意地查找具有相同摘要结果的两个文本,并将其中一个文本作为伪造的信息摘要。选择弱哈希算法:某些哈希算法可能存在安全漏洞,使其更容易受到碰撞攻击或其他攻击方式的影响。攻击者可以利用这些弱点来伪造信息摘要。

那么如何解决信息摘要的缺点的?

二、数字签名

digital signature 也叫 秘钥签名
信息是明文传输,但是对digital 做非对称加密
这样,攻击者就不能知道 hash的值了,就不能做digital的篡改

在这里插入图片描述

问题又来了,如果A的公钥被掉包了,B接收方不知道

数字前面的作用

1. 验证身份
2. 数据完整性
3. 防止抵赖:防止发送方否认曾经发过某个消息,私钥与数字前面绑定
4. 安全传输
5. 文件认证
6. 授权和许可

三、数字证书

那么就需要对A的公钥也做一次认证加密 , 数字证书(digital certificate)就诞生了
又称 公开密钥认证(英语:Public key certificate),或身份证书(identity certificate)
攻击者也能做公钥的加密啊,谁来做认证?
这就要牵扯公信力了,有人专门做这个:CA机构(Certificate Authority)
在这里插入图片描述
发送方A,明文发给CA机构 csr文件,包括

  • 将A的公钥
  • A的各种信息
  • A的域名

发送给CA机构,CA确定你就是你之后,打包:

  • hash(csr)。CA对A的签名
  • csr

这就是数字证书了,那么接收方如何使用?

在这里插入图片描述

这样就能保证 接收方B用的是A的公钥了

至于 CA的公钥,用户在之前连接CA的时候就已经获取。

3.2数字证书详情

扩展名

  • .crt证书文件:在unix中常见
  • .cer证书:Win中常见
  • .csr证书签名请求文件:请求方发给CA机构的
  • .key公钥私钥的扩展名
  • .p12证书文件:X509证书和一个被密码保护的私钥

3.2.1 证书种类

DV SSL

10min快速申请的认证,所有权简易Class1级别的SSL证书
能起到加密传输的作用,但是不能像用户证明真实身份

CA机构直接不做验证,所以这个证书 只提供了数据的加密

OV SSL

提供了对个人或者机构的审核,能确认对方的身份,安全性更高

CA收费

EV SSL

超安EV,最严格、最安全的证书
遵循全球统一的严格身份验证标准,是目前业界安全级别最高的顶级 (Class 4级)SSL证书

金融证券、银行、第三方支付、网上商城等,都需要这个等级的数字证书

3.2.2 本地的证书

设置 -> 隐私设置与安全性 -> 安全 -> 管理证书
在这里插入图片描述

四、数字信封

在这里插入图片描述
和数字签名的不同:
+ 数字签名 信息 是明文传输的,只能保证信息的完整性、来源和真实性
+ 数字信封 信息 对称加密算法加密的,保护数据的机密性和完整性

这篇关于信息摘要 秘钥签名 数字签名 数字证书 数字验证 数字信封 这都是什么东西?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/464467

相关文章

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

使用Python检查CPU型号并弹出警告信息

《使用Python检查CPU型号并弹出警告信息》本教程将指导你如何编写一个Python程序,该程序能够在启动时检查计算机的CPU型号,如果检测到CPU型号包含“I3”,则会弹出一个警告窗口,感兴趣的小... 目录教程目标方法一所需库步骤一:安装所需库步骤二:编写python程序步骤三:运行程序注意事项方法二

PostgreSQL如何查询表结构和索引信息

《PostgreSQL如何查询表结构和索引信息》文章介绍了在PostgreSQL中查询表结构和索引信息的几种方法,包括使用`d`元命令、系统数据字典查询以及使用可视化工具DBeaver... 目录前言使用\d元命令查看表字段信息和索引信息通过系统数据字典查询表结构通过系统数据字典查询索引信息查询所有的表名可

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统