问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

CA证书及PKI详解

创作时间:
作者:
@小白创作中心

CA证书及PKI详解

引用
CSDN
1.
https://blog.csdn.net/Dean_xiu/article/details/139585362

在当今数字化时代,网络安全和数据加密技术变得越来越重要。CA证书和PKI(公钥基础设施)是保障网络安全的重要组成部分。本文将从基本概念出发,详细介绍CA证书的工作原理、PKI体系结构以及信任链和证书链的概念,帮助读者全面了解这一重要的安全技术。

概述

首先我们需要简单对证书有一个基本的概念,以几个问题进入了解

❓ Question1: 什么是证书?

证书是一种电子文档(可以理解为网络世界的身份证),用于在通信双方时验证对方的身份,它包含了证书持有者的信息,公钥以及由可信第三方(称为证书颁发机构,CA)对这些信息的数字签名

❓ Question2: 为什么需要证书?

证书的在网络安全通信中作用极大:

  • 身份验证: 证书用于验证通信双方的身份,通过证书可以确认对方是可信的,从而防止身份伪造和中间人攻击
  • 数据加密:证书包含的公钥用于加密数据,从而确保数据在传输过长中不被窃听和篡改,只有持有相应私钥的接收方来解密这些数据
  • 数字签名:证书用于对数据进行数字签名,以确保数据的完整性和不可否认性。数字签名可以证明数据在传输过程中未被篡改,且签名确实来自签名者
  • 安全通信:证书在安全协议(如SSL/TLS)中起着至关重要的作用。这些协议通过使用证书来建立安全的通信通道,保护数据的机密性和完整性
  • 信任建立:证书通过公钥基础设施(PKI)来建立信任链。根证书由权威的CA签发,任何经过根证书认证的证书都被认为是可信的,从而形成一个信任体系。

非对称加密

非对称加密在证书中扮演了非常重要的角色,甚至可以说是为了非对称加密这瓶醋才包了证书这盘饺子

公钥:可以向任何人公开,发送方使用接收方的公钥来加密消息

私钥:仅归自己所有,不可被公开,接收方使用自己的私钥来解密发送方加密的消息,只有拥有正确私钥的人才能解密由其公钥加密的数据。

User Case: 数据加密

公钥和私钥在数据加密中使用流程如下,图片十分清晰,我们不再赘述

User Case: 签名验证

辅助上图,描述下整体流程(我们以Server代发送方,Client代接收方):

  • Server生成数据签名流程
  1. Server对原始数据(文件或消息)使用Hash函数生成一个固定长度的hash值
  2. Server使用自己的私钥加密hash值
  3. Server添加证书或TimeStamp与hash值一起生产一个数字签名
  4. 发布数字签名
  • Client验证签名流程
  1. Client接受到 原始数据 和 附加的数字签名
  2. Client对 原始数据应用相同的散列函数,生成一个新的hash值 用于与签名中的hash值进行比较
  3. Client使用Server发布的公钥解密数字签名,获得Server端生成的hash值
  4. Client对比两个hash值(Client生产的和Server生产的),如果hash值一致则能确定数据未被篡改

潜在问题

公钥私钥已经保证了一定的安全性

发送者使用数字签名来认证自己

client验证身份后,双方在对称加密和hash算法保护的安全信道上发送消息

❓ 但是,Client如何确定sender是可信的呢?

例如:如果Server和Client发送数字签名时,数据被中间人截获,导致最终发送给Client的数据是中间人生成的签名怎么办呢?

解决方案是: 找个三方提前证明下Sender的身份,CA应运而生

CA

CA全称Certificate Authority,是一个受信的第三方机构,负责管理和签发证书,可类比理解为颁发身份证的官方机构

需要证书的S向CA申请签发证书,CA验证证书申请人S的身份并颁发含有S公钥的证书,然后,CA将使用自己的私钥对颁发的证书进行数字签名,以建立对证书的有效性的信任(即获得证书方可以通过CA签名确认签发机构是否合法)

CA证书的组成

一个证书主要由三大部分组成:申请者与颁发者信息,申请者公钥,CA签名

明文:申请者公钥,申请者的组织信息和个人信息,签发机构CA的信息,证书有效时间,证书序列号等信息

密文:CA数字签名

以下是google签发的一个证书样例:

CA签发证书流程

以下以Server代证书申请人

  1. Server生成自己的一对公钥和私钥,私钥一般由Server独自控制和拥有,但某些情况下,私钥可能会在颁发CA控制的硬件安全模块(HSM)中生成并安全存储
  2. Server向CA发送包含其公钥和其他识别详细信息的证书签名请求(CSR)
  3. CA采取措施验证Server的身份和在CSR中申领凭证的权力(如Server的域名是否有效或电子邮件证书的电子邮件地址是否有效),即确认提交的CSR确实由Server创建
  4. CA验证成功Server身份,为Server颁发包含CSR详细信息和公钥的证书。同时CA将使用自己的私钥对颁发的证书进行数字签名,并且将新签证书发布到证书库,以便其他用户和系统能够验证其有效性

CA验证签名流程

以下以Client代证书申请验证人

  1. Client向Server首次建立通信时,Server返回被签发的证书
  2. Client读取证书中相关明文的信息(明文中含有CA签名的Hash算法),Client采用相同的Hash算法计算明文信息的info digest,然后使用CA的公钥解密签名数据,对比证书的加密的info digest,如果一致,则可以确认证书的合法性
  3. Client验证证书相关的域名信息,有效时间等信息
  4. Client会内置安装CA本身的证书信息(由CA自签发),如果CA不被信任,Client找不到对应的CA证书,证书也会判定为非法

CA吊销证书流程

证书超过有效期时,证书就不再有效或不可信,证书持有者或第三方(如系统管理员)就会向CA提交吊销证书请求

CA也会通过自动检测(如发现私钥泄露,证书被滥用等)发起吊销流程

  1. CA验证吊销请求的真实性和合法性,可能包括身份验证、关联凭证检查等。
  2. CA在内部数据库中记录证书的吊销信息,包括吊销日期和原因
  3. CA更新证书吊销列表(CRL),将被吊销的证书信息添加到CRL中
  4. CA定期发布更新后的CRL,使依赖方(如客户端、服务器)能够获取最新的吊销信息
  5. CA更新在线证书状态协议(OCSP)响应数据,确保实时查询能够返回最新的吊销状态
  6. CA通知证书持有者其证书已被吊销,说明吊销原因和后续步骤
    CA可能通过公告或直接通知相关依赖方,确保其知晓证书吊销信息。

PKI

PKI 全称Public Key Infrastructure, 是一组构成加密框架的技术和流程,可以理解为PKI为减轻CA的负担搭建的一套以CA为核心的服务框架扩展,从而实现更系统化,标准化和大规模管理数字证书

PKI主要包含以下几部分

  • CA:这里的CA专职颁发,存储和签署数字证书
  • RA:RA分担了原来CA的功能,专门负责审查证书申请者的身份,判断是否同意CA向申请者签发证书
  • VA: Validation Authority, 由于证书具有有效期,VA负责的是证书状态的实时验证,以下简述VA的工作流程
  1. VA定期从CA下载最新的证书吊销列表(CRL)和获取实时证书状态并存储在本地数据库
  2. Client发起证书验证请求(OCSP 在线证书状态协议),请求中包含要验证证书的唯一标识,OCSP请求会发送至VA的OCSP服务器
  3. VA解析请求内容,提取出待验证证书信息,查询本地数据库获取证书状态
  4. 根据查询结果生成OCSP响应并用自己的私钥对响应签名,确保响应的完整性和可信性
  5. 客户端拿到响应,根据证书状态确定下一步操作

CA会定期向VA发送更新的证书撤销清单(CRL)

接收方会将接收到的证书发送给VA,由VA进行验证证书是否依旧处于有效期

信任链

由于数字证书的广泛应用,CA机构的需求也随之上升,从而引入了中间证书,通俗的理解为 较大的公司(根CA)验证过一些可信的小公司(子CA),授权这些小公司也可签发证书。

PKI中出现了信任链的概念,信任链是指通过一系列信任关系建立的信任路径,从根证书(Root Certificate)到最终用户证书(End-Entity Certificate),信任链的核心思想是,如果你信任链中的每一个证书,那么你就可以信任链中的所有证书。

信任链所带来的好处:

  • 安全性:根证书至关重要,信任链减少了根证书的直接使用,转而由中间证书来签署最终用户证书,可以降低根证书的风险,增强了整个PKI体系的安全性
  • 灵活性:引入中间证书后,CA可以更灵活地管理和更新证书。如果某个中间证书出现问题或需要更换,只需替换中间证书而不影响根证书和最终用户证书的信任关系。
  • 可扩展性:随着数字证书的应用范围不断扩大,需要不断添加新的证书颁发机构(CA)。信任链的存在使得可以方便地添加新的中间证书,扩展PKI体系而不影响现有的信任结构。
  • 透明性:信任链清晰地展示了证书的层级关系和信任路径,使数字证书的验证过程更加透明和可理解。通过查看证书链,可以了解到证书的签发者和信任关系,从而更好地评估证书的可信度

证书链

证书链是信任链的具体实现,Client在验证证书时,如果认为当前证书不可性,可以从最终用户证书开始,逐级上溯到根证书进行验证。

证书链体现的是证书的层级关系,每一级CA的证书都是由上一级CA签发,最顶层的根证书是自签名的(即自己签发),证书链包括了最终用户证书、中间证书和根证书

🐖:根证书预安装在客户端操作系统和浏览器中,通常由大型受信任CA签发,如果根证书被信任,所有由其签发的中间证书和最终用户证书也会被信任。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号
CA证书及PKI详解