数字证书与PKI解析

news2025/1/17 23:16:27

目录

1. 什么是数字证书

2. 为什么需要数字证书

3. 数字证书的格式

4. 什么是PKI

5. PKI的组成要素组件

5.1 用户

5.2 认证机构(CA)

5.3 仓库

5.4 PKI的体系结构

5.4.1 层次结构模型

5.4.2 交叉证明模型

5.4.3 混合模型


1. 什么是数字证书

        要开车得先考驾照,驾照上面记有本人的照片、姓名、出生日期等个人信息,以及有效期、准驾车辆的类型等信息,并由公安局在上面盖章。我们只要看到驾照,就可以知道公安局认定此人具有驾驶车辆的资格。

        公钥证书(Public-Key Certificate,PKC)其实和驾照很相似,里面记有姓名、组织、邮箱地址等个人信息,以及属于此人的公钥,并由认证机构(Certification Authority、Certifying Authority,CA)施加数字签名。只要看到公钥证书,我们就可以知道认证机构认定该公钥的确属于此人。公钥证书也简称为证书(certificate)。

2. 为什么需要数字证书

        用数字签名既可以识别出篡改和伪装,还可以防止否认。也就是说,我们同时实现了确认消息的完整性、进行认证以及否认防止。现代社会中的计算机通信从这一技术中获益匪浅。

        然而,要正确使用数字签名,有一个大前提,那就是用于验证签名的公钥必须属于真正的发送者。即便数字签名算法再强大,如果你得到的公钥是伪造的,那么数字签名也会完全失效。

        现在我们发现自己陷入了一个死循环一一数字签名是用来识别消息篡改、伪装以及否认的,但是为此我们又必须从没有被伪装的发送者得到没有被篡改的公钥才行。

        为了能够确认自己得到的公钥是否合法,我们需要使用证书。所谓证书,就是将公钥当作一条消息,由一个可信的第三方对其签名后所得到的公钥。

3. 数字证书的格式

        目前使用的数字证书格式遵循X.509标准;X.509定义了公钥证书结构的基本标准;X.509证书格式当前的版本是X.509v3。

4. 什么是PKI

        仅制定证书的规范还不足以支持公钥的实际运用,我们还需要很多其他的规范,例如证书应该由谁来颁发,如何颁发,私钥泄露时应该如何作废证书,计算机之间的数据交换应采用怎样的格式等。

        PKI(Public Key Infrastructure,公钥基础设施),是为了能够更有效地运用公钥而制定的一系列规范和规格的总称。通过数字证书管理加密密钥,提供认证、数据完整性、保密性和不可否认等安全服务。被广泛地用于电子商务中 ,最主要的任务就是确立可信赖的数字身份。

5. PKI的组成要素组件

        PKI的组成要素主要有以下3个:

  • 用户--使用PKI的实体

  • 认证机构CA--颁发证书的实体

  • 仓库---保存证书的数据库

5.1 用户

        用户就是像Alice、Bob这样使用PKI的人。用户包括两种:一种是希望使用PKI注册自己的公钥的人,另一种是希望使用已注册的公钥的人。我们来具体看一下这两种用户所要进行的操作。

  • 注册公钥的用户所进行的操作

    • 生成密钥对(也可以由认证机构生成)

    • 在认证机构注册公钥

    • 向认证机构申请证书

    • 根据需要申请作废已注册的公钥

    • 解密接收到的密文

    • 对消息进行数字签名

  • 使用已注册公钥的用户所进行的操作

    • 将消息加密后发送给接收者

    • 验证数字签名

5.2 认证机构(CA)

        认证机构(Certification Authority,CA)是PKI的核心,CA是公钥基础设施中受信任的第三方实体,对证书进行管理,是信任的起点。

        认证机构CA具体所进行的操作如下。

  • 生成密钥对(也可以由用户生成)
  • 在注册公钥时对本人身份进行认证
  • 生成并颁发证书
  • 作废证书

  • 我国依法取得数字证书认证资格的机构
    • 北京数字证书认证中心有限公司
    • 天津电子认证服务中心
    • 中国金融认证中心有限公司
    • 山东省数字证书认证管理有限公司
    • 陕西省数字证书认证中心有限责任公司
    • 深圳市电子商务安全证书管理有限公司
    • 江苏省电子商务证书认证中心有限责任公司
    • 浙江省数字安全证书管理有限公司
    • ...... 

5.3 仓库

        仓库(repository)是一个保存证书的数据库,PKI用户在需要的时候可以从中获取证书,它的作用有点像打电话时用的电话本。仓库也叫作证书目录。

5.4 PKI的体系结构

        PKI系统中可以包含多个CA,PKI体系结构使用的技术模型:层次结构模型、交叉证明、混合模型。

5.4.1 层次结构模型

        在一个层次结构中创建多个CA;最顶层是根CA,子CA在根CA下面;根CA具有亲自签署的证书,根CA向子CA发行证书;只要终端实体信任根CA,它也就信任子CA;终端实体可以从某个子CA及其同等逻辑层次上的CA上检索证书。

        优点:简单易用,灵活性大;如果一个主体信任根CA,则该主体也信任子CA。

        缺点:根CA是单一故障点;如果根CA受到损害,那么整个层次结构中的证书全都变得不可靠。

5.4.2 交叉证明模型

        交叉证明指CA之间互相证明以建立一种横向信任关系,这是一种对等信任模型

        交叉证明为不同PKI实现相互集成提供了方便途径

5.4.3 混合模型

        混合(Hybrid)模型是证书层次结构同交叉证明的结合;交叉证明可以在两个层次结构的任何两个CA间进行,信任仅存在于这两个CA及其下面的子CA之间;混合模型很灵活,公司可以根据不同的业务需要建立不同层次的信任。

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

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

相关文章

Django任意URL跳转漏洞(CVE-2018-14574)

目录 Django介绍 URL跳转漏洞介绍 Django任意URL跳转漏洞介绍 环境搭建 防御方法 前段时间在面试时,问到了URL跳转漏洞,我没有回答好,下午把URL跳转漏洞学习了,发现也不难,看来还需要学习的东西很多呀&#xff0c…

burp靶场xss漏洞(中级篇)下

靶场地址 All labs | Web Security Academy 第九关:反射型( 转义) 1.在搜索框随机输入字符并用Burp抓包 2.测试不同字符在JavaScript字符串中的反映,发现查询结果被包裹在script标签中 而单引号会被转义为 \ 3.构造payload跳出j…

Qt开发报错:Q_INTERFACES Error: Undefined interface

1、背景 VS2019qt5.12.10 从svn拉下来的项目,结果报错: Q_INTERFACES Error: Undefined interface 之前在VS的扩展中在线安装了qt插件, 安装了一半,比较慢,直接强行退出了。。 后来安装了qt官网的插件。。。。 2、报…

OpenCV 调用自定义训练的 YOLO-V8 Onnx 模型

一、YOLO-V8 转 Onnx 在本专栏的前面几篇文章中,我们使用 ultralytics 公司开源发布的 YOLO-V8 模型,分别 Fine-Tuning 实验了 目标检测、关键点检测、分类 任务,实验后发现效果都非常的不错,但是前面的演示都是基于 ultralytics…

【SpringCloud】Zuul源码解析

Zuul是一个网关组件&#xff0c;是微服务的入口&#xff0c;网关会根据配置将请求转发给指定的服务。本章分析Zuul组件是如何实现请求过滤和转发的 参考源码&#xff1a;<spring-cloud.version>Hoxton.SR9</spring-cloud.version> 1、过滤 spring-cloud-netflix-…

重温react-13(嵌套路由和重定向等)

重定向和404 import React from react; import { Routes, Route, Link,NavLink ,Navigate} from react-router-dom; import Home from ./Home/Home import About from ./About/About import News from ./News/News import NotFound from ./NotFound/NotFound; export default …

51单片机第18步_将TIM0用作13位定时器

本章重点学习将TIM0用作13位定时器。 1、定时器0工作在模式0框图 2、定时器0工作在模式0举例 1、Keil C51中有一些关键字&#xff0c;需要牢记&#xff1a; interrupt 0&#xff1a;指定当前函数为外部中断0&#xff1b; interrupt 1&#xff1a;指定当前函数为定时器0中断…

VUE 修改密码功能+密码强度校验

效果图 <template><el-dialogtitle"修改密码":visible.sync"dialog":before-close"cancel":close-on-click-modal"false"width"500px":modal"false"><el-form ref"form" :model"…

SpringMvc 执行原理

当用户请求 会发送到前端控制器&#xff0c;DisptcherServlet根据请求参数生成代理请求&#xff0c;找到对应的实际控制器&#xff0c;控制器处理请求&#xff0c;创建数据模型&#xff0c;访问数据库&#xff0c;将模型响应给中心控制器&#xff0c;控制器使用模型与视图渲染视…

算法题型归类整理及同类题型解法思路总结(持续更新)

1、最优路线 通用思路 1、递归 #案例1-最优路测路线 题目描述 评估一个网络的信号质量&#xff0c;其中一个做法是将网络划分为栅格&#xff0c;然后对每个栅格的信号质量计算。 路测的时候&#xff0c;希望选择一条信号最好的路线&#xff08;彼此相连的栅格集合&#x…

人工智能的目标分类

欢迎来到 Papicatch的博客 目录 &#x1f349;引言 &#x1f349;目标分类的概述 &#x1f348;背景 &#x1f348;分类的重要性 &#x1f34d;明确研究重点 &#x1f34d;促进应用推广 &#x1f34d;便于评估和比较 &#x1f348;分类的原则 &#x1f34d;基于应用领…

F_GETDOWN的例子

代码&#xff1a; 7:46 2024/7/1#include <unistd.h> #include <fcntl.h> #include <stdio.h> int main(void) {int uid;int fdopen("test.txt",O_RDWR);uidfcntl(fd,F_GETOWN);printf("the SIG recv ID is %d\n",uid);close(fd);retur…

使用 Vue 实现包含单选框的弹窗功能(附Demo)

目录 前言1. Vue22. Vue3 前言 如果在弹窗中单独增设一些选项或者少部分的数据&#xff0c;可用如下的方式 &#xff08;不用单独创建专门的表单样式&#xff09; 如果单纯可以通过基本的按钮传输给后端&#xff0c;可用如下知识点 对于弹窗的基本知识推荐阅读&#xff1a; …

了解 ZooKeeper:关键概念和架构

ZooKeeper 是一种分布式协调服务&#xff0c;广泛用于分布式系统中&#xff0c;用于维护配置信息、命名、同步和组服务。它最初由雅虎开发&#xff0c;现在是一个 Apache 项目&#xff0c;已成为许多大型分布式应用程序不可或缺的一部分。本文深入探讨 ZooKeeper 的关键概念和架…

(四)Appdesigner-文件存在判断及对话框设计

目录 前言 一、文件存在判断 &#xff08;一&#xff09;基础知识 &#xff08;二&#xff09;实际操作 二、对话框设计 &#xff08;一&#xff09;基础知识 1.提示对话框 2.询问对话框 3.文件选择对话框 &#xff08;二&#xff09;实际操作 1.提示对话框 2.询问…

考研生活day1--王道课后习题2.2.1、2.2.2、2.2.3

2.2.1 题目描述&#xff1a; 解题思路&#xff1a; 这是最基础的操作&#xff0c;思路大家应该都有&#xff0c;缺少的应该是如何下笔&#xff0c;很多同学都是有思路但是不知道如何下笔&#xff0c;这时候看思路的意义不大&#xff0c;可以直接看答案怎么写&#xff0c;最好…

关于内存和外存文件不同字符集下占用空间大小问题

关于内存和外存不同字符集下文件占用空间大小问题 存储&#xff08;外存&#xff09;的文件中的字符&#xff1a; ASCII&#xff1a;每个字符占用1个字节&#xff0c;用来存储英文字符和常用标点符号。ISO-8859-1&#xff1a;每个字符占用1个字节&#xff0c;向下兼容ASCII。G…

【代码随想录】【算法训练营】【第53天】 [739]每日温度 [496]下一个更大元素I [503]下一个更大元素II

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 48&#xff0c;周六&#xff0c;不能再坚持~ 题目详情 [739] 每日温度 题目描述 739 每日温度 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 C语言 [496] 下一…

【一篇搞懂】操作系统期末大题:进程同步与互斥 PV操作

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;☀️☀️☀️题型一&#xff1a;利用信号量实现前驱关系题型二&#xff1a;利用信号量实现资源同步与互斥 一、前言&#x1f680;&#x1f680;&#x1f680; 本文简介&#xff1a;这是一篇基于b…

Pycharm常用快捷键整理

1&#xff0c;格式化代码 【ctrlAltL】 写代码的时候会发现有很多黄色的波浪号&#xff0c;这个时候可以点击任意黄色波浪号的代码&#xff0c;然后按下【Ctrl Alt L】进行代码格式化 2&#xff0c;快速往返 ctrll Alt ⬅ &#xff0c;表示查看上一步调用函数位置&#xff0…