什么是PKI

文章目录

    • 为什么需要PKI
    • PKI应用场景有哪些
    • PKI是如何工作的



公钥基础设施PKI(Public Key Infrastructure),是一种遵循既定标准的证书管理平台,它利用公钥技术能够为所有网络应用提供安全服务。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。


为什么需要PKI

随着网络技术和信息技术的发展,电子商务已逐步被人们所接受,并得到不断普及。但通过网络进行电子商务交易时,存在如下问题:

  • 交易双方并不现场交易,无法确认双方的合法身份。

  • 通过网络传输时信息易被窃取和篡改,无法保证信息的安全性。

  • 交易双方发生纠纷时没有凭证可依,无法提供仲裁。

为了解决上述问题,PKI技术应运而生,其利用公钥技术保证在交易过程中能够实现身份认证、保密、数据完整性和不可否认性。因而在网络通信和网络交易中,特别是电子政务和电子商务业务,PKI技术得到了广泛的应用。

PKI应用场景有哪些

SSH客户端可以通过SSH方式安全地访问SSH服务器的Web界面,并通过Web界面对设备进行管理。为了提高双方建立SSH连接时的安全性,在设备上为SSH客户端和服务器指定CA颁发的本地证书。这样,双方进行SSH连接时先验证双方的证书,证书验证通过后,双方才可以建立SSH连接,避免了可能存在的主动攻击。


在SSH中的应用组网图

在SSH连接建立的过程中,SSH客户端和SSH服务器之间的主要交互流程如下:

  1. SSH客户端和服务器向PKI认证中心申请本地证书。
  2. PKI认证中心向SSH客户端和服务器颁发本地证书。
  3. SSH客户端向SSH服务器发起SSH连接请求,并将携带自己的本地证书发送给SSH服务器。
  4. SSH服务器验证SSH客户端的本地证书合法后,向SSH客户端发起反向SSH连接请求,并将自己的本地证书发送给SSH客户端。
  5. SSH客户端验证SSH服务器的本地证书合法后,将认证结果发送给SSH服务器。双方的SSH连接建立成功。

PKI是如何工作的

PKI体系架构

如下图所示,一个PKI体系由终端实体、证书认证机构、证书注册机构和证书/CRL存储库四部分共同组成。


PKI体系架构

  • 终端实体EE(End Entity)
    终端实体也称为PKI实体,它是PKI产品或服务的最终使用者,可以是个人、组织、设备(如路由器、防火墙)或计算机中运行的进程。

  • 证书认证机构CA(Certificate Authority)
    CA是PKI的信任基础,是一个用于颁发并管理数字证书的可信实体。它是一种权威性、可信任性和公正性的第三方机构,通常由服务器充当,例如Windows Server 2008。
    如下图所示,CA通常采用多层次的分级结构,根据证书颁发机构的层次,可以划分为根CA和从属CA。

  1. 根CA是公钥体系中第一个证书颁发机构,它是信任的起源。根CA可以为其它CA颁发证书,也可以为其它计算机、用户、服务颁发证书。对大多数基于证书的应用程序来说,使用证书的认证都可以通过证书链追溯到根CA。根CA通常持有一个自签名证书。

  2. 从属CA必须从上级CA处获取证书。上级CA可以是根CA或者是一个已由根CA授权可颁发从属CA证书的从属CA。上级CA负责签发和管理下级CA的证书,最下一级的CA直接面向用户。例如,CA2和CA3是从属CA,持有CA1发行的CA证书;CA4、CA5和CA6是从属CA,持有CA2发行的CA证书。

当某个PKI实体信任一个CA,则可以通过证书链来传递信任,证书链就是从用户的证书到根证书所经过的一系列证书的集合。当通信的PKI实体收到待验证的证书时,会沿着证书链依次验证其颁发者的合法性。

CA层次示意图

CA的核心功能就是发放和管理数字证书,包括:证书的颁发、证书的更新、证书的撤销、证书的查询、证书的归档、证书废除列表CRL(Certificate Revocation List)的发布等。

  • 证书注册机构RA(Registration Authority)
    RA是数字证书注册审批机构,RA是CA面对用户的窗口,是CA的证书发放、管理功能的延伸,它负责接受用户的证书注册和撤销申请,对用户的身份信息进行审查,并决定是否向CA提交签发或撤销数字证书的申请。
    RA作为CA功能的一部分,实际应用中,通常RA并不一定独立存在,而是和CA合并在一起。RA也可以独立出来,分担CA的一部分功能,减轻CA的压力,增强CA系统的安全性。

  • 证书/CRL存储库
    由于用户名称的改变、私钥泄露或业务中止等原因,需要存在一种方法将现行的证书吊销,即撤销公钥及相关的PKI实体身份信息的绑定关系。在PKI中,所使用的这种方法为证书废除列表CRL。
    任何一个证书被撤销以后,CA就要发布CRL来声明该证书是无效的,并列出所有被废除的证书的序列号。因此,CRL提供了一种检验证书有效性的方式。
    证书/CRL存储库用于对证书和CRL等信息进行存储和管理,并提供查询功能。构建证书/CRL存储库可以采用FTP(File Transfer Protocol)服务器、HTTP(Hypertext Transfer Protocol)服务器或者数据库等等。

PKI的核心技术就围绕着本地证书的申请、颁发、存储、下载、安装、验证、更新和撤销的整个生命周期进行展开。

证书申请

证书申请即证书注册,就是一个PKI实体向CA自我介绍并获取证书的过程。通常情况下PKI实体会生成一对公私钥,公钥和自己的身份信息(包含在证书注册请求消息中)被发送给CA用来生成本地证书,私钥PKI实体自己保存用来数字签名和解密对端实体发送过来的密文。

PKI实体向CA申请本地证书有以下两种方式:

  1. 在线申请
    PKI实体支持通过SCEP(Simple Certificate Enrollment Protocol)或CMPv2(Certificate Management Protocol version 2)协议向CA发送证书注册请求消息来申请本地证书。

  2. 离线申请(PKCS#10方式)
    离线申请是指PKI实体使用PKCS#10格式打印出本地的证书注册请求消息并保存到文件中,然后通过带外方式(如Web、磁盘、电子邮件等)将文件发送给CA进行证书申请。

还有种方式,PKI实体可以为自己颁发一个自签名证书或本地证书,实现简单的证书颁发功能。

证书颁发

PKI实体向CA申请本地证书时,如果有RA,则先由RA审核PKI实体的身份信息,审核通过后,RA将申请信息发送给CA。CA再根据PKI实体的公钥和身份信息生成本地证书,并将本地证书信息发送给RA。如果没有RA,则直接由CA审核PKI实体身份信息。

证书存储

CA生成本地证书后,CA/RA会将本地证书发布到证书/CRL存储库中,为用户提供下载服务和目录浏览服务。

证书下载

PKI实体通过SCEP或CMPv2协议向CA服务器下载已颁发的证书,或者通过HTTP或者带外方式,下载已颁发的证书。该证书可以是自己的本地证书,也可以是CA/RA证书或者其他PKI实体的本地证书。

证书安装

PKI实体下载证书后,还需安装证书,即将证书导入到设备的内存中,否则证书不生效。该证书可以是自己的本地证书,也可以是CA/RA证书,或其他PKI实体的本地证书。

证书验证

PKI实体获取对端实体的证书后,当需要使用对端实体的证书时,例如与对端建立安全隧道或安全连接,通常需要验证对端实体的本地证书和CA的合法性(证书是否有效或者是否属于同一个CA颁发等)。如果证书颁发者的证书无效,则由该CA颁发的所有证书都不再有效。但在CA证书过期前,设备会自动更新CA证书,异常情况下才会出现CA证书过期现象。

PKI实体可以使用CRL或者OCSP(Online Certificate Status Protocol)方式检查证书是否有效。使用CRL方式时,PKI实体先查找本地内存的CRL,如果本地内存没有CRL,则需下载CRL并安装到本地内存中,如果证书在CRL中,表示此证书已被撤销。使用OCSP方式时,PKI实体向OCSP服务器发送一个对于证书状态信息的请求,OCSP服务器会回复一个“有效”(证书没有被撤销)、“过期”(证书已被撤销)或“未知”(OCSP服务器不能判断请求的证书状态)的响应。

证书更新

当证书过期、密钥泄露时,PKI实体必须更换证书,可以通过重新申请来达到更新的目的,也可以使用SCEP或CMPv2协议自动进行更新。

设备在证书即将过期前,先申请一个证书作为“影子证书”,在当前证书过期后,影子证书成为当前证书,完成证书更新功能。

申请“影子证书”的过程,实质上是一个新的证书注册的过程。

证书撤销

由于用户身份、用户信息或者用户公钥的改变、用户业务中止等原因,用户需要将自己的数字证书撤销,即撤销公钥与用户身份信息的绑定关系。在PKI中,CA主要采用CRL或OCSP协议撤销证书,而PKI实体撤销自己的证书是通过带外方式申请。

PKI工作机制

针对一个使用PKI的网络,配置PKI的目的就是为指定的PKI实体向CA申请一个本地证书,并由设备对证书的有效性进行验证。PKI具体工作过程如下图所示。


PKI工作过程示意图

  1. PKI实体向CA请求CA证书,即CA服务器证书。

  2. CA收到PKI实体的CA证书请求时,将自己的CA证书回复给PKI实体。

  3. PKI实体收到CA证书后,安装CA证书。
    当PKI实体通过SCEP协议申请本地证书时,PKI实体会用配置的HASH算法对CA证书进行运算得到数字指纹,与提前配置的CA服务器的数字指纹进行比较,如果一致,则PKI实体接受CA证书,否则PKI实体丢弃CA证书。

  4. PKI实体向CA发送证书注册请求消息(包括配置的密钥对中的公钥和PKI实体信息)。

  • 当PKI实体通过SCEP协议申请本地证书时,PKI实体对证书注册请求消息使用CA证书的公钥进行加密和自己的私钥进行数字签名。如果CA要求验证挑战密码,则证书注册请求消息必须携带挑战密码(与CA的挑战密码一致)。

  • 当PKI实体通过CMPv2协议申请本地证书时,PKI实体可以使用额外证书(其他CA颁发的本地证书)或者消息认证码方式进行身份认证。

1.额外证书方式
PKI实体对证书注册请求消息使用CA证书的公钥进行加密和PKI实体的额外证书相对应的私钥进行数字签名。
2.消息认证码方式
PKI实体对证书注册请求消息使用CA证书的公钥进行加密,而且证书注册请求消息必须包含消息认证码的参考值和秘密值(与CA的消息认证码的参考值和秘密值一致)。

  1. CA收到PKI实体的证书注册请求消息。
  • 当PKI实体通过SCEP协议申请本地证书时,CA使用自己的私钥解密和PKI实体的公钥解密数字签名并验证数字指纹。数字指纹一致时,CA才会审核PKI实体身份等信息,审核通过后,同意PKI实体的申请,颁发本地证书。然后CA使用PKI实体的公钥进行加密和自己的私钥进行数字签名,将证书发送给PKI实体,也会发送到证书/CRL存储库。

  • 当PKI实体通过CMPv2协议申请本地证书时:

1.额外证书方式
CA使用自己的私钥解密和PKI实体的额外证书中的公钥解密数字签名并验证数字指纹。数字指纹一致时,CA才会审核PKI实体身份等信息,审核通过后,同意PKI实体的申请,颁发本地证书。然后CA使用PKI实体的额外证书中的公钥进行加密和自己的私钥进行数字签名,将证书发送给PKI实体,也会发送到证书/CRL存储库。
2.消息认证码方式
CA使用自己的私钥解密后,并验证消息认证码的参考值和秘密值。参考值和秘密值一致时,CA才会审核PKI实体身份等信息,审核通过后,同意PKI实体的申请,颁发本地证书。然后CA使用PKI实体的公钥进行加密,将证书发送给PKI实体,也会发送到证书/CRL存储库。

  1. PKI实体收到CA发送的证书信息。
  • 当PKI实体通过SCEP协议申请本地证书时,PKI实体使用自己的私钥解密,并使用CA的公钥解密数字签名并验证数字指纹。数字指纹一致时,PKI实体接受证书信息,然后安装本地证书。

  • 当PKI实体通过CMPv2协议申请本地证书时:

1.额外证书方式
PKI实体使用额外证书相对应的私钥解密,并使用CA的公钥解密数字签名并验证数字指纹。数字指纹一致时,PKI实体接受证书信息,然后安装本地证书。
2.消息认证码方式
PKI实体使用自己的私钥解密,并验证消息认证码的参考值和秘密值。参考值和秘密值一致时,PKI实体接受证书信息,然后安装本地证书。

  1. PKI实体间互相通信时,需各自获取并安装对端实体的本地证书。PKI实体可以通过HTTP等方式下载对端的本地证书。在一些特殊的场景中,例如IPSec,PKI实体会把各自的本地证书发送给对端。

  2. PKI实体安装对端实体的本地证书后,通过CRL或OCSP方式验证对端实体的本地证书的有效性。

  3. 对端实体的本地证书有效时,PKI实体间才可以使用对端证书的公钥进行加密通信。

如果PKI认证中心有RA,则PKI实体也会下载RA证书。由RA审核PKI实体的本地证书申请,审核通过后将申请信息发送给CA来颁发本地证书。


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

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

相关文章

在Spring Boot项目中,Shiro和Spring Security该如何选择?

安全管理是Java应用开发中无法避免的问题,随着Spring Boot和微服务的流行,Spring Security受到越来越多Java开发者的重视,究其原因,还是沾了微服务的光。作为Spring家族中的一员,其在和Spring家族中的其他产品如SpringBoot、Spring Cloud等进…

2026软件测试金3银4常见的软件测试面试题

现阶段很多测试同行抱怨工作难找,网上的面试题又真不真实先不说,乱七八糟的,下面是我耗费了三个月时间的、结合真实的实际面试情况所写下的真实软件测试面试题以及,如何回答,总共十个章节以及写成一个文档全文8w多个字…

从GPT到智能体:OpenCSG带你看清提示词工程的“执行力升级”——拆分步骤、工具调用与安全边界

复杂任务失败的根源,常常不是模型不行,而是“一步到位”不成立。本文给出可落地的拆分方法、多轮调用策略,并补齐智能体场景下必须重视的安全边界。 一、复杂任务的第一原则:不要指望“一次调用做完一切” 当任务包含“理解→规…

计算机毕业设计springboot二手房租售管理系统设计与实现 基于Spring Boot框架的二手房交易与租赁管理系统开发与应用 Spring Boot驱动的二手房买卖及租赁信息管理平台设计与实现

计算机毕业设计springboot二手房租售管理系统设计与实现z86u2 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着房地产市场的不断发展,二手房交易和租赁的需求日益…

计算机毕业设计springboot校园服务平台 基于SpringBoot的校园综合服务平台设计与实现 SpringBoot框架下的校园服务管理系统开发

计算机毕业设计springboot校园服务平台alsns9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着信息技术的飞速发展,校园管理和服务的数字化转型已成为必然趋势。传…

强烈安利9个AI论文网站,本科生毕业论文轻松搞定!

强烈安利9个AI论文网站,本科生毕业论文轻松搞定! 2.「云笔AI」—— 解决 “杂事”,节省时间(推荐指数:★★★★☆) “云笔AI”是一款专为学术写作设计的智能工具,它的核心优势在于能够帮助用户高…

只需根据接口文档,就能轻松开发 get 和 post 请求的脚本

前言 一般的接口文档描述的内容: ​开发get请求的脚本,接口文档的描述如下: 在loadrunner里面创建一个空脚本: ​在action空白处,点击insert—>step 输入web_custom_request,双击选择该函数&#xff0c…

学Java后端必须学spring,spring框架为什么这么多人用?

Spring是我们Java程序员面试和工作都绕不开的重难点。很多粉丝就经常跟我反馈说由Spring衍生出来的一系列框架太多了,根本不知道从何下手;大家学习过程中大都不成体系,但面试的时候都上升到源码级别了,你不光要清楚了解Spring源码…

小程序搭建平台三大类型解析与选择建议

微信小程序已然成了连接线上与线下商业的关键桥梁,给企业以及商家给予了数字化的经营全新渠道。伴随微信小程序生态持续完善,市场当中涌现出多种类型的小程序搭建平台,从技术实现途径到功能定位各有侧重点。知晓不同平台的特性以及适用场景&a…

腾讯校招 C++ 一面:30道题

原文地址:腾讯校招 C 一面:30道题 最近有位粉丝朋友参加了腾讯C岗位的面试,面试官提出了30道技术问题,涵盖了C基础、网络编程、多线程、Web服务等多个方面。 我们来看一下腾讯校招的一面面经(30道题)&…

OpenCSG公益课揭秘:提示词工程到底在解决什么?把AI从“玄学”拉回“可控输出”

提示词工程不是“写一句咒语”,而是一套让大模型输出更稳定、更可控、更可复用的方法。本文用工程视角拆解提示词工程的目标、常见误区与可落地的写法框架。 一、提示词工程的本质:把“沟通”写成“规格说明书” 很多人使用大模型时最困扰的是&#xf…

学长亲荐!8款AI论文软件测评:继续教育科研写作全攻略

学长亲荐!8款AI论文软件测评:继续教育科研写作全攻略 推荐1:「千笔AI」—— 一站式学术支持“专家”,学术写作全场景王者(推荐指数:★★★★★) 在众多AI论文工具中,「千笔AI」凭借其…

场景化落地指南——金仓时序数据库在关键行业的应用实践

时序数据怎么“落到系统里”,往往比“概念讲清楚”更难。本文就以金仓时序数据库的工程落地为主线,把采集、存储、分析、看板到运维闭环串起来:能力怎么拆、模型怎么建、SQL怎么写、行业怎么用,尽量讲得清楚、也讲得能直接照着做。…

《创业之路》-843-商业模式的发展历史与演进

商业模式的发展历史与演进,是一部人类经济活动组织方式的进化史。从以物易物到平台生态,从实体交易到数据驱动,商业模式随着技术进步、社会结构变迁和消费者需求升级而不断演化。一、什么是“商业模式”?商业模式(Busi…

国际激光设备领军企业技术优势与行业格局分析

现代制造业里,激光技术属于核心工具之一,其发展水准直接关联高端装备制造、精密加工、新能源等关键领域的进展。世界上,一批技术积累丰厚、市场占比高的激光设备企业,凭借持续的技术革新与应用扩展,界定了行业的发展走…

3BHB003431R0001 节点ID控制模块(ABB)核心特性与应用

3BHB003431R0001是ABB推出的工业级节点ID控制模块,归属自动化控制系统网络配置核心组件,专为VMIVME-5565主机机箱配套设计,主打精准节点标识与网络协同适配。核心功能是通过内置八位开关S6配置节点ID,为网络中的每个节点分配唯一标…

大数据:python毕业生就业数据分析可视化系统 毕业去向 就业去向 考研分析 工作分析 大数据 毕业设计

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…

3BHL000570P0001 通讯适配控制模块(ABB)核心特性与应用

3BHL000570P0001是ABB推出的工业级通讯适配控制模块,归属自动化系统信号交互核心组件,主打多协议兼容与稳定通讯,专为工业设备跨系统协同场景设计。核心功能涵盖信号转换、协议适配及跨设备数据交互,可无缝对接ABB 800xA DCS系统、…

大模型实践(四):如何在Dify上利用工作流快速构建出一个基于用户意图识别以及RAG知识库检索增强的智能聊天机器人?

一、预备知识介绍 通过本篇文章,你将学习到:如何在Dify上利用工作流来快速构建一个可针对用户问题进行分类或者说意图识别,并能够根据分类结果自动选择检索相应的知识库后,结合大语言模型LLM进行回复的智能聊天机器人。 该实践中…

分布式事务的终极方案:从2PC到Saga模式,Seata在金融级场景的落地实践

大家好,聊下分布式事务。 在单体应用时代,Transactional 一个注解就能搞定一切,ACID(原子性、一致性、隔离性、持久性)那是数据库给我们的承诺。但自从微服务大行其道,数据库被拆得七零八落,这…