誉天教育,武汉誉天,誉天ICT认证培训.png/

Datapass

数通
当前位置:首页 > 誉天学堂 > 安全 > 誉天Security技术专栏:PKI证书体系

誉天Security技术专栏:PKI证书体系

  • 2023/08/31

640.png

思维导图


11111.png


数据安全通信技术演进过程

PKI的核心技术就围绕着数字证书的申请、颁发和使用等整个生命周期进行展开,而在这整个生命周期过程中,PKI会使用到对称密钥加密、公钥加密、数字信封和数字签名技术。


下图介绍这些技术的演进过程。甲和乙通过Internet进行通信,丙(模拟攻击者)专门破坏甲和乙间的通信。


640 (1).png


数字信封

数字信封是指发送方采用接收方的公钥来加密对称密钥后所得的数据。采用数字信封时,接收方需要使用自己的私钥才能打开数字信封得到对称密钥。数字信封加解密过程如下:


640 (2).png


发送方事先获得接收方的公钥,具体加解密过程如下:

  • 发送方使用对称密钥对明文进行加密,生成密文信息;

  • 发送方使用接收方的公钥加密对称密钥,生成数字信封;

  • 发送方将数字信封和密文信息一起发送给接收方;

  • 接收方接收到发送方的加密信息后,使用自己的私钥打开数字信封,得到对称密钥;

  • 接收方使用对称密钥对密文信息进行解密,得到最初的明文。

需要一种方法确保接收方收到的信息就是指定的发送方发送的。


数字签名

数字签名是指发送方用自己的私钥对数字指纹进行加密后所得的数据。


数字指纹又称为信息摘要,它是指发送方通过Hash算法对明文信息计算后得出的数据。采用数字指纹时,发送方会将数字指纹和明文一起发送给接收方,接收方用同样的Hash算法对明文计算生成的数据指纹,与收到的数字指纹进行匹配,如果一致,便可确定明文信息没有被篡改。


640 (3).png


发送方事先获得接收方的公钥,具体加解密过程如下:

  • 发送方使用接收方的公钥对明文进行加密,生成密文信息;

  • 发送方使用Hash算法对明文进行Hash运算,生成数字指纹;

  • 发送方使用自己的私钥对数字指纹进行加密,生成数字签名;

  • 发送方将密文信息和数字签名一起发送给接收方;

  • 接收方使用发送方的公钥对数字签名进行解密,得到数字指纹;

  • 接收方接收到发送方的加密信息后,使用自己的私钥对密文信息进行解密,得到最初的明文;

  • 接收方使用Hash算法对明文进行Hash运算,生成数字指纹;

  • 接收方将生成的数字指纹与得到的数字指纹进行比较。如果一致,接收方接受明文;如果不一致,接收方丢弃明文。

需要一种方法确保一个特定的公钥属于一个特定的拥有者。


数字证书

数字证书简称证书,它是一个经证书授权中心(即在PKI中的证书认证机构CA)数字签名的文件,包含拥有者的公钥及相关身份信息。数字证书技术解决了数字签名技术中无法确定公钥是指定拥有者的问题。


数字证书可以说是Internet上的安全护照或身份证。当人们到其他国家旅行时,用护照可以证实其身份,并被获准进入这个国家。数字证书提供的是网络上的身份证明。


640 (4).png


数字证书的生成:CA收到数字证书申请并认证申请者的真实身份后,把申请者的公钥、身份信息、数字证书的有效期等信息作为消息明文,进行Hash生成摘要,并用CA的私钥加密进行签名;数字签名与证书拥有者的公钥、身份信息、证书有效期等其他信息共同组成数字证书。简单地来说,把上面的明文换成公钥、身份信息、有效期等其他信息,就是数字证书的生成和验证过程。


使用CA公钥进行签名和解密,可以证明证书确实是由CA发布的。两份摘要的对比结果,可以证明证书内容是否在传输过程中被改动。如果消息明文中的公钥和身份信息是CA的,则是CA自签名的过程。数字证书的最初目的是建立公钥与用户之间的对应关系。

  • 由于公钥是随机产生的,从公钥无法直接判断属于哪个用户。为解决公钥与用户映射关系问题,PKI引入数字证书,用于建立公钥与用户之间的对应关系;

  • 由于数字证书中包含用户身份信息和公钥信息,根据数字证书就可以直接判断该公钥属于哪个用户;

  • 由于数字证书中不包含秘密信息,因此数字证书可公开发布。


数字证书结构

最简单的证书包含一个公钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效期,颁发者(证书授权中心)的名称,该证书的序列号等信息。证书的结构遵循X.509 v3版本的规范。


640 (5).png


证书内容中各字段含义如下:

版本:即使用X.509的版本,目前普遍使用的是v3版本(0x2);

序列号:颁发者分配给证书的一个正整数,同一颁发者颁发的证书序列号各不相同,可用与颁发者名称一起作为证书唯一标识;

签名算法:颁发者颁发证书使用的签名算法;

颁发者:颁发该证书的设备名称,必须与颁发者证书中的主体名一致。通常为CA服务器的名称;

有效期:包含有效的起、止日期,不在有效期范围的证书为无效证书;

主体名:证书拥有者的名称,如果与颁发者相同则说明该证书是一个自签名证书;

公钥信息:用户对外公开的公钥以及公钥算法信息;

扩展信息:通常包含了证书的用法、CRL的发布地址等可选字段;

签名:颁发者用私钥对证书信息的签名。


数字证书分类

数字证书有三种类型:CA证书、本地证书及自签名证书。

CA证书:CA自身的证书。PKI系统中没有多层级CA,CA证书就是自签名证书。PKI系统中有多层级CA,则会形成一个CA层次结构,最上层的CA是根CA,它拥有一个CA“自签名”的证书。申请者通过验证CA的数字签名从而信任CA,任何申请者都可以得到CA的证书(含公钥),用以验证它所颁发的本地证书。


本地证书:CA颁发给申请者的证书。本地证书就是通常意义上的证书,由用户向CA发起申请,CA审核通过后颁发给用户使用的证书。


自签名证书:自签名证书是设备为自己颁发的证书,由设备的预置CA进行签名。不带签名的证书是在设备上生成一本证书,但不进行签名,需要向CA机构申请签名,证书颁发者是CA。通过设备生成自签名证书和不带签名的证书,可以实现简单证书颁发功能。


数字证书格式

数字证书支持三种文件格式保存。


640 (6).png


数据通信全过程

数字证书提供了一种发布公钥的简便途径,大家通过向CA申请认证发布自己的公钥,通过向CA验证来确认自己获得了别人的公钥。


数字证书的申请、发布及使用具体流程如下:

  • 发送方先向CA发起数字证书申请;

  • CA对发送方进行身份认证,认证通过后生成数字证书;

  • CA将生成的数字证书发放给发送方;

  • 接收方下载发送方的数字证书;

  • 接收方收到数字证书后,使用CA公钥对数字签名解密生成消息摘要,对证书内容进行hash生成摘要,两份摘要进行比对可证明证书内容的完整性与真实性。

下图展示了通信双方互相获得公钥完成身份认证后的通信过程。


640 (7).png


发送方处理过程:

  • 发送方对要传输消息明文进行Hash,生成数字指纹,再用发送方的私钥生成数字签名;

  • 发送方随机生成对称秘钥,对明文加密,生成密文;

  • 发送方用接收方公钥加密对称秘钥;

  • 将加密后的对称秘钥、数字签名与密文一同发送给接收方。

接收方处理过程:

  • 接收方收到消息后,用自己的私钥解密对称秘钥;

  • 用对称秘钥解密密文,得到明文;

  • 对明文Hash得到数字指纹,用发送方的公钥解密签名得到数字指纹,对比两份数字指纹,如果相同接收消息,如果不同丢弃。

非对称加密安全性高,但计算量大效率低,因此使用对称秘钥对通信的主要内容进行加密。对称秘钥每次使用随机生成,用完即丢弃,降低风险。


用接收方公钥加密对称秘钥,保证了只有接收方才能对密文进行解密。用发送方私钥进行签名,使得接收方可以验证消息的发送方和消息是否被修改过,保证了信息的完整性和抗否认性。


2222.png


PKI是Public Key Infrastructure的缩写,是通过使用公钥技术和数字证书来提供系统信息安全服务,并负责验证数字证书持有者身份的一种体系。PKI的本质是把非对称密钥管理标准化。


640 (8).png


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


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


证书认证机构CA:CA是PKI的信任基础,是一个用于颁发并管理数字证书的可信实体。它是一种权威性、可信任性和公正性的第三方机构,通常由服务器充当。

  • CA通常采用多层次的分级结构,根据证书颁发机构的层次,可以划分为根CA和从属CA;

    • 根CA是公钥体系中第一个证书颁发机构,它是信任的起源。

    • 从属CA必须从上级CA处获取证书。

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

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


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


证书/CRL存储库:由于用户名称的改变、私钥泄漏或业务中止等原因,需要存在一种方法将现行的证书吊销,即撤消公钥及相关的PKI实体身份信息的绑定关系。


PKI证书流程

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


  • 证书申请:证书申请即证书注册,就是一个PKI实体向CA自我介绍并获取证书的过程。

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

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

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

  • 证书安装:PKI实体下载证书后,还需安装证书,即将证书导入到设备的内存中,否则证书不生效。该证书可以是自己的本地证书,也可以是CA/RA证书,或其他PKI实体的本地证书。通过SCEP协议申请证书时,PKI实体先获取CA证书并将CA证书自动导入设备内存中,然后获取本地证书并将本地证书自动导入设备内存中。

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

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

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


PKI证书申请流程

PKI证书申请流程如下:

  • 用户申请:用户获取CA的数字证书(根证书),与安全服务器建立连接,同时生成自己的公钥和私钥,将公钥和自己的身份信息提交给安全服务器。安全服务器将用户的申请信息传送给RA服务器。

  • RA审核:RA收到用户的申请,用户向RA证明自己的身份,RA进行核对。如果RA同意用户申请证书的请求,则对证书申请信息做数字签名,否则拒绝用户的申请。

  • CA发行证书:RA将用户申请和RA签名传输给CA,CA对RA数字签名做认证,如果验证通过,则同意用户请求,颁发证书,然后将证书输出。如果验证不通过,则拒绝证书申请。

  • RA转发证书:RA从CA得到新的证书,首先将证书输出到LDAP服务器以提供目录浏览,再通知用户证书发行成功,告知证书序列号,到指定的网址去下载证书。

  • 用户证书获取:用户使用证书序列号去指定网址下载自己的数字证书,只有持有与申请时提交的公钥配对的私钥才能下载成功。


证书申请方式

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


640 (9).png


PKI证书验证

PKI实体获取对端实体的证书后,当需要使用对端实体的证书时,通常需要验证对端实体的本地证书和CA的合法性。通常检查证书状态的方式有三种:CRL方式、OCSP方式、None方式。


  • CRL方式

    • PKI实体可以通过SCEP、HTTP、LDAP和LDAPv3模板方式下载CRL。

    • 当PKI实体验证本地证书时,先查找本地内存的CRL,如果本地内存没有CRL,则需下载CRL并安装到本地内存中,如果对端实体的本地证书在CRL中,表示此证书已被撤销。

  • OCSP方式

    • 在IPSec场景中,PKI实体间使用证书方式进行IPSec协商时,可以通过OCSP方式实时检查对端实体的证书状态。

    • OCSP克服了CRL的主要缺陷:PKI实体必须经常下载CRL以确保列表的更新。当PKI实体访问OCSP服务器时,会发送一个对于证书状态信息的请求。OCSP服务器会回复一个“有效”、“过期”或“未知”的响应。

  • None方式

    • 如果PKI实体没有可用的CRL和OCSP服务器,或者不需要检查PKI实体的本地证书状态,可以采用None方式,即不检查证书是否被撤销。

OCSP方式中,服务器的响应消息:

  • 有效表示证书没有被撤销;

  • 过期表示证书已被撤销;

  • 未知表示OCSP服务器不能判断请求的证书状态。


PKI证书注销流程

证书撤销流程如下:

  • 用户申请:用户向RA发送一封签名加密邮件,申请撤销证书;

  • RA审核:注册机构同意证书撤销,并对申请签名;

  • CA更新CRL:CA验证证书撤销请求的RA签名,如果正确,则同意申请,更新CRL,并输出;

  • RA转发CRL:注册中心收到CRL,以多种方式将CRL公布(包括LDAP服务器);

  • 用户告知:用户访问LDAP服务器,下载或浏览CRL。


33333.png


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


640 (10).png


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

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

PKI实体收到CA证书后,安装CA证书。

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


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

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

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

  • 额外证书方式:PKI实体对证书注册请求消息使用CA证书的公钥进行加密和PKI实体的额外证书相对应的私钥进行数字签名;

  • 消息认证码方式:PKI实体对证书注册请求消息使用CA证书的公钥进行加密,而且证书注册请求消息必须包含消息认证码的参考值和秘密值(与CA的消息认证码的参考值和秘密值一致)。


PKI证书应用场景 - 通过HTTPS登录Web

在设备上为HTTPS客户端指定本地证书,该证书由Web浏览器信任的CA颁发。这样,Web浏览器可以验证本地证书的合法性,避免了可能存在的主动攻击,保证了管理员的安全登录。


640 (11).png


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

  • HTTPS服务器向PKI认证中心申请本地证书;

  • PKI认证中心向HTTPS服务器颁发本地证书;

  • HTTPS服务器将携带自己公钥信息的数字证书发送给HTTPS客户端;

  • HTTPS客户端验证HTTPS服务器的本地证书合法后,利用证书中的公钥加密HTTPS客户端随机生成的密钥,并发送给HTTPS服务器;

  • HTTPS客户端和HTTPS服务器通过协商,最终确定所使用的密钥和加密套件;

  • 后续传输的数据,双方都会使用该密钥和加密套件进行加密处理。


PKI证书应用场景 - IPSec VPN

IPSec采用基于PKI的证书进行身份认证后,在进行IKE协商过程中交换密钥时,会对通信双方进行身份认证,保证了密钥交换的安全。


640 (12).png


因为公网是不安全的网络,为了保护数据的安全性,设备采用IPSec技术,与对端设备建立IPSec隧道。通常情况下,IPSec采用预共享密钥方式协商IPSec。但是,在大型网络中IPSec采用预共享密钥方式时存在密钥交换不安全和配置工作量大的问题。为了解决上述问题,设备之间可以采用基于PKI的证书进行身份认证来完成IPSec隧道的建立。


采用基于PKI的证书进行身份认证后,IPSec在进行IKE协商过程中交换密钥时,会对通信双方进行身份认证,保证了密钥交换的安全。而且,证书可以为IPSec提供集中的密钥管理机制,并增强整个IPSec网络的可扩展性。同时,在采用证书认证的IPSec网络中,每台设备都拥有PKI认证中心颁发的本地证书。有新设备加入时,只需要为新增加的设备申请一个证书,新设备就可以与其它设备进行安全通讯,而不需要对其他设备的配置进行修改,这大大减少了配置工作量。


PKI证书应用场景 - SSL VPN

SSL VPN可以为出差员工提供方便的接入功能,使其在出差期间也可以正常访问内部网络。为了提高出差员工访问内部网络的安全性,设备可以采用PKI的证书方式来对用户进行认证。


640 (13).png


在SSL VPN应用中,SSL VPN客户端可以通过证书验证SSL VPN网关的身份;SSL VPN网关也可以通过证书来验证客户端的身份。

返回列表
上一篇:
誉天Security技术专栏:加密技术应用
下一篇:
誉天Security技术专栏:加解密技术原理
免费试听
姓名
电话
城市
咨询课程