PKI - 04 证书授权颁发机构(CA) 数字证书

文章目录

  • Pre
  • PKI 、 CA 和 证书
    • PKI
    • CA
    • 数字证书
    • 签发数字证书
    • 返回给实体
    • 安全的交换公钥
  • IKE数字签名认证

在这里插入图片描述


Pre

PKI - 02 对称与非对称密钥算法

PKI - 03 密钥管理(如何进行安全的公钥交换)


PKI 、 CA 和 证书

用通俗易懂的语言来解释一下PKI(公钥基础设施)、CA(证书颁发机构)和证书之间的关系:

想象一下,你有一把特殊的锁,只有你能用你的特殊钥匙打开。现在,你想要把这把锁借给你的朋友,但是你不能亲自到场给他,你需要一张信封来让你的朋友确认这把锁确实是你的。

在这个场景中,你就是公钥基础设施(PKI)的一部分。PKI就像是一个信任网络,它确保了数字世界中的安全通信。CA是PKI中的一个关键角色,它就像是一个公证处或者证书颁发机构,负责颁发和管理数字证书。

  • PKI(公钥基础设施):PKI就像是一个信任网络,它包括了一系列的组件和协议,用于管理和保护公钥和数字证书的安全性。PKI确保了数字世界中的安全通信,包括了身份验证、数据加密和数字签名等功能。

  • CA(证书颁发机构):CA就像是公证处或者证书颁发机构,负责颁发和管理数字证书。数字证书就像是一张身份证,它包含了一个实体的公钥和一些其他信息,并由CA进行签名以确保其真实性和完整性。CA是PKI中的一个关键角色,它确保了数字证书的安全和可靠性。

  • 证书:证书就像是一张身份证,它包含了一个实体的公钥和一些其他信息,并由CA进行签名以确保其真实性和完整性。证书被用于进行安全通信和身份验证,确保通信的安全性和可信度。

所以,PKI是一个信任网络,而CA是PKI中的一个关键角色,负责颁发和管理数字证书。数字证书则用于进行安全通信和身份验证,确保数字世界中的安全通信。

PKI

在这里插入图片描述

PKI(公钥基础设施)继承了这个概念并使其具有可扩展性 :

  1. 一个受信任的介绍者:在PKI中,通常只有一个或少数几个受信任的证书颁发机构(CA),类似于一个受信任的介绍者。这些CA是负责颁发和管理数字证书的权威机构,它们被广泛信任,并负责确保数字证书的安全和可靠性。

  2. CA签署每一个人的公钥:每个人都需要向CA提交自己的公钥,并请求CA签发相应的数字证书。CA会对申请人的身份进行验证,并在验证通过后签署并颁发相应的数字证书。这样,每个人都拥有由CA签署的数字证书,证明了其身份和公钥的真实性。

  3. 每个人都拥有CA的公钥:在PKI中,每个人都会获取到CA的公钥,以确保能够验证由CA签发的数字证书的真实性。这使得任何人都可以验证其他人的数字证书,从而建立了信任和安全的通信环境。

总的来说,PKI通过引入一个受信任的介绍者(证书颁发机构),并使每个人都能够获取和验证CA的公钥以及获得由CA签发的数字证书,从而实现了可扩展的身份验证和安全通信机制。这种结构简化了信任关系,并确保了数字证书的安全性和可靠性,使得PKI能够应对不断增长和变化的数字环境的挑战。


CA

在这里插入图片描述

    1. 每个实体都要获取CA的公钥 (认证CA的过程)
    1. 每个实体都要提交自己的公钥给CA(注册到PKI)
    1. 这个初始步骤,必须手动认证或通过一个可信赖的传输网络来执行

更详细地解释一下这个过程:

  1. 获取CA的公钥(认证CA的过程):在建立PKI时,每个实体都需要获取到证书颁发机构(CA)的公钥,以确保它们能够验证由CA签发的证书的真实性。这个过程通常是手动的,实体可以通过信任的渠道或者可信赖的传输网络来获取CA的公钥。例如,实体可以直接联系CA并请求其公钥,或者从可信赖的网站或者证书存储中获取。

  2. 提交自己的公钥给CA(注册到PKI):每个实体都需要将自己的公钥提交给CA,以便CA可以生成并签发相应的数字证书。实体可以通过安全的通信渠道将其公钥发送给CA,以确保公钥在传输过程中不被篡改或者窃取。通常情况下,实体需要提供一些身份验证信息,以确保CA能够确认其身份并生成相应的证书。

  3. 手动认证或通过可信赖的传输网络来执行:在整个初始步骤中,安全性是非常重要的。因此,实体在获取CA的公钥和提交自己的公钥给CA时,必须确保采取安全可靠的方式。这可能涉及到手动验证CA的真实性,例如通过联系CA的官方机构或者通过信任的第三方确认CA的合法性。此外,实体还需要确保通过可信赖的传输网络来执行这些步骤,以防止公钥和其他信息被恶意篡改或者窃取。

总的来说,PKI的初始步骤涉及到获取CA的公钥和提交自己的公钥给CA两个关键步骤。在执行这些步骤时,实体必须确保采取安全可靠的方式,并通过手动认证或者通过可信赖的传输网络来确保安全性。

在这里插入图片描述

在PKI中,证书颁发机构(CA)使用自己的私钥为提交的公钥做数字签名,从而生成数字证书。

解释一下这个过程:

  1. 提交公钥:当一个实体(例如用户、服务器等)向CA请求数字证书时,它会提交自己的公钥给CA。

  2. 数字签名:CA收到实体提交的公钥后,会使用自己的私钥对该公钥进行数字签名。这个数字签名包含了公钥以及一些其他的信息,用于确保公钥的真实性和完整性。

  3. 生成数字证书:CA将数字签名与实体的公钥一起组合成一个数字证书,并将其签发给实体。这个数字证书包含了实体的公钥以及CA的数字签名,证明了公钥的来源和真实性。

  4. 验证证书:其他实体在与该实体进行通信时,可以获取到该实体的数字证书。然后,它们可以使用CA的公钥来验证数字证书的签名,从而确认公钥的真实性和完整性。

通过这个过程,CA使用自己的私钥为提交的公钥做数字签名,生成数字证书,从而确保了公钥的真实性和完整性。这样,其他实体可以信任并使用这个数字证书来进行安全通信和身份验证。


数字证书

在这里插入图片描述

签发数字证书

在这里插入图片描述

数字证书主要解决了公钥的真实性和所有者身份的问题。具体来说,数字证书确保了以下几点:

  1. 公钥的真实性:数字证书通过证书颁发机构(CA)的数字签名来验证公钥的真实性。实体可以使用CA的公钥来验证数字证书的签名,从而确认公钥的来源和真实性。

  2. 公钥持有者的身份:数字证书中包含了持有者的身份信息,通常包括名称、电子邮件地址等。这些信息可以帮助其他实体确认公钥持有者的身份。

  3. 有效期限:数字证书中还包含了证书的有效期限,确保了公钥的使用在一定时间内是安全的。过期的证书将不再被认为是有效的,需要及时更新或者重新颁发。

总的来说,数字证书确保了公钥的真实性和持有者的身份,帮助实体建立信任和安全的通信环境。虽然数字证书并不能解决所有安全问题,但它是构建公钥基础设施(PKI)的重要组成部分,为数字世界中的安全通信提供了可靠的基础。


返回给实体

在这里插入图片描述
当证书颁发机构(CA)使用自己的私钥对实体的公钥进行数字签名后,生成的数字证书可以返回给实体。实体收到数字证书后,可以将其用于进行安全通信和身份验证。

具体流程如下:

  1. 签发数字证书:证书颁发机构收到实体提交的公钥后,使用自己的私钥对该公钥进行数字签名,生成数字证书。

  2. 返回给实体:生成的数字证书被返回给实体。这可以通过安全的通信渠道进行,以确保证书在传输过程中不被篡改或者窃取。例如,证书可以通过加密的方式发送给实体,以确保其安全性。

  3. 使用数字证书:实体收到数字证书后,可以将其用于进行安全通信和身份验证。例如,在与其他实体进行通信时,实体可以将自己的数字证书发送给对方,以证明自己的身份和公钥的真实性。

通过这个过程,实体可以获得由证书颁发机构签名的数字证书,从而确保了公钥的真实性和持有者的身份,并可以用于建立安全的通信环境。


安全的交换公钥

在这里插入图片描述

  1. 通过非信任的网络交换签名的公钥:一旦实体收到被证书颁发机构(CA)签名的公钥(即数字证书),它们可以通过任何网络进行交换,即使是非信任的网络。因为数字证书是由可信的CA签名的,所以即使在非信任的网络上传输,也不会影响证书的真实性和完整性。

  2. 验证CA的公钥的有效性:为了确保对收到的数字证书的信任,每个实体本地都必须具有CA的公钥,并且该公钥必须是有效的。实体可以使用CA的公钥来验证收到的数字证书的签名,从而确认证书的真实性和完整性。因此,确保本地存储的CA公钥有效是非常重要的,这通常是通过定期更新CA证书或者从可信的渠道获取CA公钥来实现的。

总之,通过使用CA签名的公钥(数字证书),实体可以在任何网络上安全地进行交换,而且每个实体都必须确保本地存储的CA公钥有效,以保证对收到的数字证书的信任。


在这里插入图片描述

我们说一下这个地方:

  1. 这个证书 有 sig 签名, 签名是由 CA 的私钥来做的
  2. 同时User C 有 CA的公钥, 那么User C 就可以用CA的公钥来解密这个签名,得到一个Hash值1
  3. 同时证书还有 Pub 公钥,明文的,同样的也可以计算得到一个Hash值2
  4. 如果这两个Hash值相同,那么说明这个证书就是有效的。
  5. 那么我就知道,我收到了 ID 是谁 的公钥。
  6. 通过证书的交换,实现了安全的证书的交换。

具体来说:

  1. 证书包含了由证书颁发机构(CA)的私钥签名的签名(Sig)。这个签名用于确保证书的真实性和完整性,防止证书在传输过程中被篡改或伪造。

  2. 用户C拥有CA的公钥,因此可以使用CA的公钥来验证证书的签名。通过验证签名,用户C可以确认证书确实是由CA签发的,从而确保了证书的可信度。

  3. 证书还包含了公钥(Pub),这是一个明文的公钥,用于加密和解密数据。用户C可以使用证书中的公钥来计算出一个哈希值。

  4. 同时,用户C也可以使用CA的公钥来计算出另一个哈希值。如果这两个哈希值相同,就说明证书没有被篡改,是有效的。

  5. 通过验证证书的签名和比较哈希值,用户C可以确认收到的公钥确实是由特定的实体持有的,从而确定了该实体的身份。

  6. 通过证书的交换,用户可以安全地获取到其他实体的公钥,并确保公钥的真实性和完整性,实现了安全的证书交换和身份验证。

总的来说,数字证书通过CA的签名和公钥,以及证书中包含的公钥,确保了证书的真实性和持有者的身份,从而实现了安全的证书交换和身份验证。


IKE数字签名认证

在这里插入图片描述

IKE(Internet Key Exchange)数字签名认证是一种用于IPsec(Internet Protocol Security)VPN(Virtual Private Network)中进行身份验证和密钥协商的机制。

它的工作原理如下:

  1. 身份验证阶段(Phase 1)

    • 初始化:两个IPsec设备(例如VPN网关)需要建立安全通信连接。它们首先进行IKE协商,以确定用于保护通信的安全参数。
    • 协商加密和完整性算法:在这个阶段,设备协商用于加密和验证通信数据完整性的算法。它们还交换自己的身份证书或预共享密钥,用于后续的认证。
    • 数字签名认证:设备使用对方提供的证书验证对方的身份,并确保其真实性和完整性。这涉及到使用CA签发的证书进行数字签名认证,以确认对方的身份。
    • 协商共享密钥:一旦身份验证成功,设备使用协商的密钥来加密进一步的IKE通信。
  2. 密钥协商阶段(Phase 2)

    • 协商IPsec SA:在身份验证阶段成功完成后,设备开始协商用于IPsec安全关联(SA)的密钥。这些密钥用于加密和验证IPsec通信中的数据包。
    • 生成密钥材料:设备使用Diffie-Hellman密钥交换协议(DH)来生成共享密钥材料。
    • 建立IPsec SA:设备使用协商的密钥材料来建立IPsec SA,确保后续的通信数据的保密性和完整性。
      在这里插入图片描述

总的来说,IKE数字签名认证是通过使用数字证书进行身份验证,并协商用于保护通信的安全参数和密钥,确保IPsec VPN中的安全通信。这种机制使得设备能够安全地建立和维护VPN连接,保护数据的机密性和完整性。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【c++】STL详解(一):string类的使用

C标准模板库(STL)是C编程语言的重要组成部分,他提供了一系列模板化的通用类和函数,用于实现常见的数据结构和算法。 在STL中,string类作为处理字符串的基础设施,提供了丰富的功能来支持字符串的操作。本文将…

【MySQL】MySQL复合查询--多表查询/自连接/子查询

文章目录 1.基本查询回顾2.多表查询3.自连接4.子查询4.1单行子查询4.2多行子查询4.3多列子查询4.4在from子句中使用子查询4.5合并查询4.5.1 union4.5.2 union all 1.基本查询回顾 表的内容如下: mysql> select * from emp; ----------------------------------…

springboot整合rabbitmq,及各类型交换机详解

RabbitMQ交换机: 一.交换机的作用 如果直接发送信息给一条队列,而这一消息需要多个队列的的多个消费者共同执行,可此时只会有一个队列的一个消费者接收该消息并处理,其他队列的消费者无法获取消息并执行。所以此时就需要交换机接…

【复现】万户 ezOFFICE SQL注入漏洞_42

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 万户ezOFFICE协同管理平台分为企业版和政务版。 解决方案由五大应用、两个支撑平台组成,分别为知识管理、工作流程、沟…

JavaScript中闭包的定义、原理及应用场景

JavaScript是一门以函数为核心的编程语言,其独特的闭包特性是众多开发者所喜爱的特点之一。闭包是一种非常强大的概念,可以帮助我们实现许多复杂的功能和逻辑。本篇博客将为大家深入介绍JavaScript中闭包的定义、原理及应用场景,并通过示例代…

联合体的深入了解

1.联合体类型的声明 像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫:共用体。 给联合体其中一个成员赋值…

信钰证券:稀土板块集体爆发,十余股涨停!脑机接口新进展

脑机接口迎多重利好。 大盘指数早间延续反弹,深证成指一度涨逾3%,半导体芯片、医药医疗、军工等方向涨幅居前。白酒股震荡拉升,金徽酒涨超7%,老白干酒涨超5%,金种子酒、迎驾贡酒等跟涨。 高股息股逆势走弱&#xff0c…

vcomp140.dll丢失是什么意思,解决找不到vcomp140.dll无法继续执行代码的方法

在使用电脑过程,有时候我们会遇到各种问题,比如打开软件提示vcomp140.dll丢失或找不到vcomp140.dll文件之类的常见问题,那么为什么会出现这种情况,出现了需要如何解决问题,今天我给大家一一讲解。 一、为何会出现找不…

SpringBoot配置文总结

官网配置手册 官网:https://spring.io/ 选择SpringBoot 选择LEARN 选择 Application Properties 配置MySQL数据库连接 针对Maven而言,会搜索出两个MySQL的连接驱动。 com.mysql mysql-connector-j 比较新,是在mysql mysql-connect…

IS-IS P2P网路类型 地址不在同一子网建立邻居关系

拓扑图 由于IS-IS是直接运行在数据链路层上的协议,并且最早设计是给CLNP使用的,IS-IS邻居关系的形成与IP地址无关。但在实际的实现中,由于只在IP上运行IS-IS,所以是要检查对方的IP地址的。如果接口配置了从IP,那么只要…

年假作业6

#include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) { int data0; int a,b; printf("请输入数据data\n"); scanf("%d",&data); adata|1<<5; ba&~(1<<3); printf(&quo…

基于STM32平台的嵌入式AI音频开发

加我微信hezkz17&#xff0c;可申请加入 嵌入式人工智能开发交流答疑群。 1 stm32芯片AI开发流程 其中模型也可以选择tensorflow &#xff0c;pytorch 2 FP-AI-SENSING1 SDK开发包介绍 3 声音场景分类项目数据集选择 (1)自己采集数据打标签 (2) 使用专用数据集 4 完整参考

收到微信发的年终奖。。。

大家好&#xff0c;我是小悟 还剩一天就过除夕了&#xff0c;很多单位都已经放假了&#xff0c;街上的人越来越少&#xff0c;门店关着的很多&#xff0c;说明大家都陆陆续续回自己的家乡过年了。 或许你还在搬砖&#xff0c;坚守节前最后一波工作&#xff0c;或许你正在回家的…

数据结构-->线性表-->顺序表

对我个人来说&#xff0c;C语言基础相关的知识基本学完了&#xff0c;随后就该学数据结构了&#xff0c;希望以后自己复习能够用上今天自己写的哈哈。 如果你不理解什么是物理结构和逻辑结构&#xff0c;这里附上一个链接&#xff1a;逻辑结构和物理结构&#xff1a;逻辑结构与…

从Unity到Three.js(安装启动)

发现在3D数字孪生或模拟仿真方向&#xff0c;越来越多的公司倾向使用Web端程序&#xff0c;目前一直都是使用的Unity进行的Web程序开发&#xff0c;但是存在不少问题&#xff0c;比如内存释放、shader差异化、UI控件不支持复制或输入中文等。虽然大多数问题都可以找到解决方案&…

MySQL:从基础到实践(简单操作实例)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 下载前言一、MySQL是什么&#xff1f;二、使用步骤1.引入库2.读入数据 提交事务查询数据获取查询结果总结 下载 点击下载提取码888999 前言 在现代信息技术的世界…

RabbitMQ-6.延迟消息

延迟消息 6.延迟消息6.1.死信交换机和延迟消息6.1.1.死信交换机6.1.2.延迟消息6.1.3.总结 6.2.DelayExchange插件6.2.1.下载6.2.2.安装6.2.3.声明延迟交换机6.2.4.发送延迟消息 6.延迟消息 在电商的支付业务中&#xff0c;对于一些库存有限的商品&#xff0c;为了更好的用户体…

SpringBoot:web开发

web开发demo&#xff1a;点击查看 LearnSpringBoot05Web 点击查看更多的SpringBoot教程 技术摘要 webjarsBootstrap模板引擎thymeleaf嵌入式Servlet容器注册web三大组件 一、webjars webjars官网 简介 简介翻译 WebJars 是打包到 JAR&#xff08;Java Archive&#xff09;…

2024.02 国内认知大模型汇总

概述 大模型&#xff0c;又称为大规模机器学习模型&#xff0c;是一种基于大数据的人工智能技术。它通过深度学习和机器学习的方法&#xff0c;对大量数据进行训练&#xff0c;以实现对复杂问题的高效解决。大模型技术在语音识别、图像识别、自然语言处理等领域有着广泛的应用…