当前位置: 首页 > news >正文

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连接,保护数据的机密性和完整性。

在这里插入图片描述

相关文章:

  • Leetcode 322 零钱兑换
  • Hadoop搭建(完全分布式)
  • TI的电量计驱动在卸载时导致Linux卡死
  • C++ dfs搜索枚举(四十九)【第九篇】
  • Spark安装(Yarn模式)
  • WebAssembly002 FFmpegWasmLocalServer项目
  • 单选全选功能实现
  • k8s弃用docker后使用ctr导入镜像
  • 代码随想录算法训练营29期|day43 任务以及具体任务
  • leetcode-hot100树的专题
  • 验证码倒计时:用户界面的小细节,大智慧
  • 多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测
  • SSL协议是什么?关于SSL和TLS的常见问题解答
  • Map 集合
  • 编译原理实验1——词法分析(python实现)
  • 2017-09-12 前端日报
  • Android组件 - 收藏集 - 掘金
  • GraphQL学习过程应该是这样的
  • Linux快速复制或删除大量小文件
  • Linux中的硬链接与软链接
  • MySQL主从复制读写分离及奇怪的问题
  • PAT A1017 优先队列
  • Vue学习第二天
  • 利用DataURL技术在网页上显示图片
  • 前端之Sass/Scss实战笔记
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何选择开源的机器学习框架?
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • Python 之网络式编程
  • ​ArcGIS Pro 如何批量删除字段
  • ​Python 3 新特性:类型注解
  • ​queue --- 一个同步的队列类​
  • !!java web学习笔记(一到五)
  • #QT(一种朴素的计算器实现方法)
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (七)理解angular中的module和injector,即依赖注入
  • (十一)c52学习之旅-动态数码管
  • (五)MySQL的备份及恢复
  • *1 计算机基础和操作系统基础及几大协议
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .gitattributes 文件
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET Remoting学习笔记(三)信道
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET开源快速、强大、免费的电子表格组件
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .NET序列化 serializable,反序列化
  • @SentinelResource详解
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [AutoSar]BSW_OS 02 Autosar OS_STACK