加密与安全_密钥体系的三个核心目标之不可否认性解决方案

文章目录

  • Pre
  • 概述
  • 不可否认性
    • 数字签名(Digital Signature)
    • 证书是什么
      • 证书使用流程
  • PKI
    • CA
    • 证书层级
      • 多级证书
      • 证书链是如何完成认证的?
  • 其他疑问
    • 1. Alice能直接获取Bob的公钥,是否还需要证书?
    • 2. 为什么即使能直接获取公钥也需要加密?
    • 3. 使用约定的非公开加解密方式通讯,是否还需要证书?
    • 4. 公开算法与私有算法的安全性对比
    • 5. 信任CA的必要性

在这里插入图片描述


Pre

加密与安全_常见的分组密码 ECB、CBC、CFB、OFB模式介绍

加密与安全_ 解读非对称密钥解决密钥配送问题的四个方案

加密与安全_密钥体系的三个核心目标之完整性解决方案

密钥体系的三个主要目标

机密性:确保第三者无法通过密文猜测出明文。
完整性:确保第三者无法篡改原文内容。
不可否认性:确保第三者不能冒充其他人发送消息。


概述

  1. 解释消息认证码的基本概念及其局限性。
  2. 介绍数字证书及其在身份认证中的重要性。
  3. 解释CA的角色和PKI的基本概念。
  4. 描述CA的主要功能及证书的层级结构。
  5. 讨论证书在安全通信中的必要性。
  6. 说明信任CA的原因。

在消息认证码中,我们可以证明消息没有发生过篡改。但却无法证明这个消息就是 Alice 发给 Bob 的。 因为计算消息认证码所需的数据,Bob 和 Alice 都有,所以从理论上 Bob 是可以伪造这条"消息"的。

如果想做到消息的"无可抵赖性",就需要证明"Alice 是 Alice"。证书体系应运而生,就用在证明"我是我"的场景中。


不可否认性

不可否认性确保消息的发送者不能否认曾经发送过消息,这通常通过数字签名实现。

数字签名(Digital Signature)

定义:数字签名是一种基于非对称密码技术的认证机制,用于验证消息的发送者身份和消息的完整性。

工作原理

  1. Alice使用自己的私钥对消息的哈希值进行加密,生成数字签名,并将消息和数字签名一起发送给Bob。
  2. Bob使用Alice的公钥对数字签名进行解密,得到消息的哈希值,并计算接收到的消息的哈希值。
  3. Bob比较两个哈希值,若相同,则确认消息完整且由Alice发送。

优点

  • 提供身份认证和完整性验证。
  • 防止发送者否认发送过消息。

应用场景

  • 安全电子邮件、数字合同、软件分发等需要验证身份和完整性的场景。

证书是什么

证书是数字世界中的"身份证",证书中标记了姓名、组织、邮箱和地址等个人信息,以及属于这个人的公钥。

仅仅有这些信息还不足以让数字证书变成身份证,证书最关键的一个环节是经过"CA"认证并且施加了数字签名。换言之,CA 认定这个证书就是属于某个人的,在数字世界中无法抵赖。

为什么 CA 有这么大的权力呢? CA 有能力颁发证书,所以就有能力认定:“这个公钥的确属于某人”。某种意义上,我们信任数字证书更大程度上是信任 CA 中心。

证书使用流程

所有 CA 必须是可信的第三方。典型的证书使用流程是这样的
在这里插入图片描述


PKI

在证书体系中,为了能够有效的运用公钥而制定了一系列的规范,这些规范构成了证书体系的基础,因此被统称为 PKI(Public-Key Infrastructure)

PKI 和其他规范一样,只是规范规格,并没有强制如何实现。所以很多组织和公司自行实现了里面的细节,所以从理论上说我们每个人都可以自行实现一套 PKI 规范,这样你也可以成为一个 CA 中心。

但是如何得到广泛大多数人的承认,这个是最复杂也是最重要的一步。

一般来说 PKI 有三个要素:

  • 用户(使用 PKI 的人)
  • 认证机构(CA,也就是颁发证书的人)
  • 仓库(保存所有证书信息的地方)

用户就不说了,仓库就是保存证书的数据库,用户从仓库获取证书。

CA

下面我们说 CA

CA 最重要的几个功能:

  • 生成密钥对。 首先,密钥对可以由用户自己生成,也可以由 CA 来生成。
  • 注册证书。CA 会核对用户身份。当核对成功后,CA 使用自己的私钥来对用户的公钥数据进行数字签名,生成复合 X.509 规范的证书。
  • 作废证书和 CRL。当用户私钥丢失或者丢失时,CA 可以及时宣告证书作废。数字证书的作废并不是登报声明就能完成,而是会登记在一个证书作废清单(CRL)中。用户需要及时更新 CRL 内容,当需要验证的证书在 CRL 中时,就会按照作废处理。

证书层级

在最开始的时候,CA 对 Bob 的公钥进行了认证,并生成了证书。 此时的证书由两层,一层是 CA,另外一层是 Bob 公钥

在这里插入图片描述

多级证书

在实际情况中,证书会有很多层。上面一层负责给下面一层进行认证,而最上面的那一层就称为 Root CA(根 CA)

在这里插入图片描述

除去根 CA 和最底层的 Bob 之外,其余的中间 CA 就称为证书链(上面证明下面,就像一个认证链所以称为证书链)

证书链是如何完成认证的?

在这里插入图片描述

根证书怎么证明呢? 既然称之为根证书那就说明上面已经没有其他 CA 了。 此时此刻,根证书就需要自签名进行认证

在这里插入图片描述

由此可见,根证书的私钥绝对不能泄露。一旦泄露,就可以伪造出完整的证书链,那么这个 CA 就算是彻底废了


其他疑问

1. Alice能直接获取Bob的公钥,是否还需要证书?

即使Alice能直接获取Bob的公钥,仍然需要证书来验证公钥的真实性。获取公钥的通道可能不安全,可能被中间人攻击(Man-in-the-Middle Attack)篡改公钥。证书通过CA的签名,确保公钥确实属于Bob,防止伪造和篡改。

2. 为什么即使能直接获取公钥也需要加密?

即使Alice能通过安全通道直接获取Bob的公钥,仍需要加密通信来保护数据的机密性和完整性。加密可以防止数据在传输过程中被第三方窃取或篡改。证书体系通过验证公钥的真实性,确保加密通信的安全性。

3. 使用约定的非公开加解密方式通讯,是否还需要证书?

使用非公开的加解密方式并不安全。以下是原因:

  • 算法的安全性:私有算法可能存在未被发现的漏洞,容易被攻击。公开算法经过广泛审查和测试,更加安全。
  • 保密性:即使算法保密,也难以抵御高级攻击者。公开算法通过算子保密,实现更高的安全性。

4. 公开算法与私有算法的安全性对比

公开算法的优势:

  • 广泛测试:公开算法经过学术界和工业界的广泛测试,安全性更高。
  • 透明性:算法公开透明,易于发现和修复漏洞。
  • 标准化:公开算法遵循标准,确保互操作性和兼容性。

私有算法的劣势:

  • 不透明:算法未公开,可能存在未发现的安全漏洞。
  • 信任问题:依赖于开发者的能力和诚信,难以获得广泛信任。
  • 难以维护:私有算法难以与其他系统集成,维护成本高。

5. 信任CA的必要性

信任CA类似于信任政府发行的货币。CA通过签发和管理证书,为公钥提供信用背书,确保公钥的合法性和真实性。若不信任CA,需要自行验证每个证书节点的合法性,实际上等同于CA的工作。因此,信任CA可以简化验证过程,提高效率和安全性。

在这里插入图片描述

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

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

相关文章

理解机器学习中的潜在空间(Understanding Latent Space in Machine Learning)

1、什么是潜在空间? If I have to describe latent space in one sentence, it simply means a representation of compressed data. 如果我必须用一句话来描述潜在空间,它只是意味着压缩数据的表示。 想象一个像上面所示的手写数字(0-9&…

vue学习day01-vue的概念、创建Vue实例、插值表达式、响应式、安装Vue开发者工具

1、vue的概念 Vue是一个用于构建用户界面的渐进式 框架 (1)构建用户界面:基于数据动态渲染页面 (2)渐进式:循序渐进的学习 (3)框架:一条完整的项目解决方案&#xff…

GenAl如何改变 DevOps 中的软件测试?

TestComplete 是一款自动化UI测试工具,这款工具目前在全球范围内被广泛应用于进行桌面、移动和Web应用的自动化测试。 TestComplete 集成了一种精心设计的自动化引擎,可以自动记录和回放用户的操作,方便用户进行UI(用户界面&…

RTK_ROS_导航(2):卫星图查看

目录 1. 基于MapViz的卫星图查看 1. 基于MapViz的卫星图查看 安装 # 源码安装 mkdir -p RTK_VISION/src cd RTK_VISION/src git clone https://github.com/swri-robotics/mapviz.git --branchmelodic-eol sudo apt-get install ros-$ROS_DISTRO-mapviz ros-$ROS_DISTRO-mapviz-…

IP-GUARD如何禁止电脑自带摄像头

IP-GUARD可以通过设备管理模块禁止USB接口,所以USB外置摄像头很容易就可以禁止了。 但是笔记本自带摄像头无法禁止,配置客户端策略如下: device_control_unknown_mode1 device_control_unphysical_mode3

纯电车的OBD接口

尽管传统汽车的OBD接口主要用于监控和报告排放数据,但纯电动车辆作为零排放的交通工具,其设计初衷与需求截然不同。因此,从法律条文和车管所的规定来看,纯电动车辆是否仍需配置OBD接口这一问题,确实值得探讨。理论上&a…

ABAP中ARFC_GET_TID函数详细的使用方法

在ABAP中,ARFC_GET_TID 函数模块用于以十六进制形式返回终端的IP地址。这个功能在需要获取当前会话或终端的网络地址信息时非常有用,比如在日志记录、安全审计或网络诊断等场景中。 详细使用方法 调用函数模块 ARFC_GET_TID 函数的调用通常很直接&…

记一次 Qt installer framework安装程序过程中 安装驱动依赖

在installscript.qs 文件中该函数添加exe 依赖程序放置位置

Spring @Value获取数组、集合、map等不同结构方法

Spring 架构中,可以使用Value注解从配置文件或命令行参数中获取集合数据。 各种示例 获取基础类型 当没有配置时,可以设置默认值。无默认值时会抛出空值异常。 Value("${lizz.timeout:3000}")private int timeout;Value("${lizz.key:…

Python28-11 CatBoost梯度提升算法

CatBoost(Categorical Boosting)是由Yandex(一家俄罗斯互联网企业,旗下的搜索引擎曾在俄国内拥有逾60%的市场占有率,同时也提供其他互联网产品和服务)开发的一种基于梯度提升的机器学习算法。CatBoost特别擅长处理类别特征&#x…

什么是ThingsKit物联网平台?

在信息化时代的浪潮中,物联网(IoT)作为新一代信息技术的核心,已经逐渐渗透到我们生活的方方面面。而在这个大背景下,Thingskit物联网平台以其独特的技术优势和应用场景,成为了物联网领域的一颗璀璨明星。本…

AI和人工智能是啥关系?

AI(人工智能)与通用人工智能(AGI)是人工智能领域中的两个重要概念,它们在定义、技术基础以及应用领域等方面有所区别。人工智能(AI),是指使计算机和其他机器模拟人类智能的技术&…

3.flink架构

目录 概述 概述 Flink是一个分布式的带有状态管理的计算框架,为了执行流应用程序,可以和 Hadoop YARN 、K8s 进行整合,当然也可以是一个 standalone 。 官方地址:速递 k8s 是未来的一种趋势,对资源管控能力强。

Windows 控制中心在哪里打开,七种方法教会你

在 Windows 操作系统中,控制中心的概念可能稍有些混淆,因为 Windows 通常使用“控制面板”这一术语来指代用于配置系统设置和更改硬件及软件设置的中心区域。 不过,随着 Windows 的更新,微软也在逐步将一些设置迁移到“设置”应用…

关于Linux的操作作业!24道题

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

js如何要让一个对象继承另一个对象的原型属性和方法

js如何要让一个对象继承另一个对象的原型属性和方法 1、使用 Object.create() const parent {greet: function() {console.log("Hello from parent!");} };const child Object.create(parent); child.greet(); // 输出: Hello from parent!2、使用 proto 属性 …

【算法】贪婪算法介绍及实现方法

贪婪算法简介 贪婪算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪婪算法通常用于解决优化问题,如最小化成本、最大…

Tomcat打破双亲委派模型的方式

文章目录 1、前言2、标准的双亲委派模型3、Tomcat的类加载器架构4、Tomcat打破双亲委派模型的方式5、总结 1、前言 双亲委派模型是一种类加载机制,它确保了类加载器层次结构中的父加载器先于子加载器尝试加载类。这种机制有助于防止类的重复加载和类之间的不兼容。…

MySQL数据库基本操作-DDL和DML

1. DDL解释 DDL(Data Definition Language),数据定义语言,该语言部分包括以下内容: 对数据库的常用操作对表结构的常用操作修改表结构 2. 对数据库的常用操作 功能SQL查看所有的数据库show databases;查看有印象的数据库show d…

16 - Python语言进阶

Python语言进阶 数据结构和算法 算法:解决问题的方法和步骤 评价算法的好坏:渐近时间复杂度和渐近空间复杂度。 渐近时间复杂度的大O标记: - 常量时间复杂度 - 布隆过滤器 / 哈希存储 - 对数时间复杂度 - 折半查找(二分查找&am…