第 X 章:PKI 公钥基础设施
公钥基础设施(Public Key Infrastructure, PKI)是典型的密码应用技术。在 PKI 系统中, 由证书认证机构(Certification Authority, CA)签发数字证书、绑定 PKI 用户的身份信息和公钥。 PKI 依赖方(Relying Party)预先存储有自己所信任的根 CA 自签名证书,,用来验证与之通信的 PKI 用户的证书链,,从而可信地获得该用户的公钥、用于各种安全服务。
PKI 的发展简史
1978 年, L. Kohnfelder 首次提出证书的概念;1988 年,第一版本的 X.509 标准推出,发展至 2005 年的版本 3 标准;1995 年,IETF 成立 PKIX 工作组,将 X.509 标准用于 Internet, 2013 年,,IETF PKIX 工作组结束工作任务。经过多年的技术研究, PKI 技术已经有了长足的进展、广泛的应用, 在全球的信息系统中发挥了重要的安全支撑作用。
身份认证技术
身份认证技术是保护信息安全的第一道屏障,其核心技术是信息安全保障体系,也是最基本的环节。它的基本思路:经过验证用户所具有的属性,来判断用户身份是否真实。根据不同的标准身份认证技术,分为四种类型。
依据认证消息的不同性质,分为以下三种类型:一是物理介质认证是通过被验证方出据其持有的物理介质来身份认证,包括信用卡和令牌卡等;二是秘密知识验证是通讯两方应用一同拥有的秘密信息来身份认证,如口令、个人识别码等;三是实体特征验证一方面是实体具有的物理特性,如硬盘的序列号等,另一方面是个体的生物学特性,如指纹和声音等。
依据待认证的实体与实体之间的相关性,共有单、双向两种认证。单向系统中被验证方必须信任验证方,由被验证方向验证方提供认证信息,双向系统中两方必须互相为对方提供自己的身份证实信息,来相互验证。
根据认证对象分为实体身份认证和信息身份认证。前者主要用于鉴别实体的真实身份,后者主要是用于消息传递过程中的不可抵赖性、完整性和新鲜性。
根据双方的信任关系分为无仲裁认证和有仲裁认证两类。无仲裁认证体系里,进行消息传递的两方一起抵御敌方的进攻,而且都信任对方。在有仲裁认证系统中,通信过程中任意一方均有作弊的可能性,两方均不信任对方,如果出现纠纷的现象,则由可信的第三方进行仲裁。 当前广泛应用的主要有:基于口令的验证方法,基于生物特征识别的验证,基于 PKI 技术的验证等。在身份认证系统实际的设计及应用过程中,设计者经常同时使用多种认证机制,使两种及以上的认证方法相互配置,达到认证过程更加安全可靠的目标。
常用的身份认证方法
基于口令的身份认证技术
口令分为两种:静态口令和动态口令。前者为过去常用的方式,它的原理为系统有一个认证服务器。服务器提前保存每一个用户的一组信息,即用户名 ID 和密码 PW,当用户要求访问系统时,用户在客户机或终端上输入用户名和密码。系统将用户输入的用户名和密码与认证服务器内保存的合法用户的用户名和密码信息对进行匹配,如果匹配成功,则证明该用户为合法用户,允许用户访问系统资源,反之用户身份没有通过验证,系统拒绝用户登录和访问。静态口令的优点是方便使用,操作特别简单,成本低,运行速度快,但还有诸多安全隐患,例如易被盗取和冒充、窥探等。
动态口令是为处理静态口令或许会出现的安全隐患而产生的。动态口令亦称一次性口令,采用一次性使用口令的方法,用户每次使用动态口令牌生成动态密码,因为只有合法用户才能使用动态令牌,所以认证服务器可以通过验证密码来认证用户,保证了用户身份的安全性。动态口令分为同步和异步认证技术,其中同步认证技术有基于时间和基于事件两种方式;异步认证技术则是基于“挑战-应答”的认证技术。例如用基于时间同步认证技术时,若用户端和服务器端的时间未能一致,用户就可能无法登录系统。
基于生物特征的身份认证技术
基于生物特征识别的身份认证,是指用户特有的生物特征的使用,例如虹膜,指纹,声纹认证技术。基于生物特征识别的身份认证,基本上被认为最值得信任的认证方法,几乎找不到两个人会拥有一样的生物特性,用户信息是独一无二和无法替代的,用户也就不可能被假冒。
其中,指纹身份认证系统经过剖析、抽取和留存指纹的全部及部分特征,将用户的指纹与事先留存的指纹进行比对,用于验证用户身份的真实性。声纹身份认证是预先将说话人的语音波形保存起来,根据语音波形中反映说话人的声道和发音特征的语音参数,将待识别的语音信号与之进行比较来识别说话人的身份。 但是,生物特征识别技术还不完全成熟,其稳定性和准确性还不够高,例如指纹识别时,如果用户手指有污渍或受伤指纹改变,则系统不能正如通常情况一样识别出用户的指纹信息,则用户被系统拒绝访问。另外因为生物特征认证系统的研发成本投入高,而市场应用比较少,现阶段还无法广泛推广。
基于 PKI 的身份认证技术
PKI 即为公钥基础设施,是一种遵循公钥密码理论和技术为电子商务等提供普适性安全服务平台的基础设施。其基本原理是:第三方权威机构—身份认证中心 CA,将用户所持有的公开密钥与其身份信息(如名称、电话等)结合在一起。在两者相结合之前,由身份认证中心 CA 证实用户身份的真实性,而后身份认证中心 CA 给用户及其公开密钥捆绑的证书签名,则签名证书有效。
每个用户均拥有一对公钥和私钥,其中公钥在网络中是公开的,用于文件发送时对信息进行加密;私钥是保密的,只归用户所有,用于对文件信息进行解密和签名。当准备发送消息时,发送方使用接收方的公开密钥加密要传输的数据,接收方得到数据后用其所持有的私有密钥来解密灵气,这样,用户可以在 PKI 服务平台安全通信。
基于 PKI 的身份认证技术选用公开密钥技术,数字签名具有不可复制性,且数据得到完整和保密的保护。PKI 采用数字证书方式,由第三方可信任机构CA 颁发数字证书,同时存储在 USB Key、IC 智能卡等独立设备中,不在网络上传输,无需在线查询数字证书,即可证明用户的身份,能够扩展用户扩大服务范围,可以为大用户群服务。PKI 技术提供数字证书的恢复和撤销机制,如果用户的数字证书丢失或用户信息改变等情况,可以对恢复或撤销数字证书,防止数字证书被窃取或被恶意盗用。基于 PKI 的身份认证技术具有灵活性、可扩展性。
PKI 相关技术
对称密钥加密技术
对称加密技术,即专用密钥加密技术或单钥密码技术,加密密钥与解密密钥一致,发送方与接收方用同一组的公私密钥对加密或者解密信息。数据加密的一个关键要求是有相同的密钥才能解密。因为通信双方共享密钥,如果密钥丢失或泄露,那么获取密钥的人就可以加密或者解密数据,所以为保证消息的机密性必须保障密钥的安全。
目前经常使用的对称加密算法有 DES、AES 等。这种算法比较简单且计算量比较小,对网络开放、从而能够效率高地加密。同时存在的缺点,一是通讯双方基于通过非面对面的方式协商一个共同的密钥,因此不能保证协商过程的安全性。二是通讯双方每次进行数据传输时都使用惟一密钥,这使得对称加密技术在开放型的网络中需要使用和生成大量的密钥,对于密钥的管理就成为用户的很大负担。三是对称加密算法只能对数据进行加解密,保证数据的机密性,但无法验 证通讯双方的真实身份,不能确定数据的完整性。
非对称密钥加密技术
非对称密钥加密技术,由公钥和私钥形成一个密钥对,其中公钥向公众公开,私钥归密钥持有人单独保管。通讯双方使用非对称密钥对数据进行加密和解密时,必须使用相互匹配的公钥和私钥。这种算法包括 RSA,PKCS 等。
它有两种方式:一种是发送方用接收方的公钥来加密信息,接收方用其私钥解密信息,这样接收方可以收到多个发送方传来的加密数据,且此加密数据只有接收方一个用户可以解读;另一种即发送方利用自身的私钥加密信息,接收方用对方公钥解密信息,这样一个信息有可能被多个接收方解密。
非对称密钥加密技术的优点是简化了密钥的发放及管理的过程,支持数字签名等安全认证技术,缺点是加密和解密的计算过程特别复杂,运行数据加密和解密的速度比较慢。
在实际应用中,经常同时使用两种加密技术,解决数据加解密过程里的各种问题。
消息摘要
这种算法的核心特点:一是不使用密钥进行加密;二是如果需要得到相同的曾加密过的密文数据,要满足两个条件,使用同一个消息摘要算法和提供同一个原文数据;三是经加密完成的数据是无法被逆向解密的。消息摘要算法的适应范围很广,主要包括分布式网络等。
输入不同长度的原文数据经过同一个消息摘要算法计算,所得到的消息摘要的长度是一样的,即消息摘要的长度不因输入的原文数据的多或少而改变。然而不同的算法都有各自固定长度,如 MD5 算法为 128 个比特位,SHA-1 为 192和 256 比特位。普遍认为消息摘要算法的安全程度与计算出消息摘要的长度成正比,即摘要越长算法越安全。
消息摘要的内容看似有随机性,实质并不是随机的。这可以通过多次输入不同的原文数据来检验经消息摘要算法计算的结果是否相同来论证,通常输入的原始数据不同得到的消息摘要就不相同,如果真的具有随机性,那么每次输入相同的原文数据,得到的消息摘要应该不相同,每次得到的消息摘要都是不可重现的,但是,事实并非如此,经同一消息摘要计算的同一原文数据得到的相同的消息摘要,也就是说消息摘要并不是真正随机的。同时,两份原文数据内容基本相似,得到的消息摘要却相差很大。
消息摘要应用的是单向函数,只能将原文数据计算出消息摘要,但是不能依据消息摘要逆向得到原文数据,甚至是找不到原文数据任何相关信息。如果尝试强力攻击,倒推计算消息摘要,判断与已有的消息摘要是否相同,得到的相关信息是数以万计的可能的消息中的一个,因此强力攻击方法是不可取的。
消息摘要算法对构造数字签名方案起到重要作用,通过它计算得到的消息摘要与原文数据紧密相关,改动原文数据就会使消息摘要发生改变,并用它始终是固定长度,比原文数据简短很多。消息摘要与原文数据是单向的一对一关系,对数据的消息摘要进行签名大大提高了签名效率。
数字证书
接收方利用发送方的公钥解密对方的数字签名,来验证信息是否是由发送方所提供,但却无法证实发送方与其所声明的数据的拥有者是一致的。同时,虽然公钥是公开的,但是不排除有安全漏洞,数字签名有可能被伪造。目前主要是采用签发数字证书来解决以上问题。
数字证书实际上是由认证中心颁发的包含证书持有人的真实身份信息、公开密钥信息等信息一段数据。而且其功能与日常用的居民身份证相似,身份认证机构签发的数字签名可以保障数字证书信息的真实性。数字证书持有者有一个仅为本人所有的私钥,用它对要传输的信息进行签名,或对接收到的信息进行解密;同时由本人公开一个公钥,共享给有通信需要的一组用户,用来对信息进行加密和验证签名。
通常,数字证书的颁发流程是用户在向身份认证中心提出申请前,必须生成自己的一对密钥,然后将包含本人身份信息和公钥的申请发送给认证中心。认证中心首先对用户提供的相关相信进行核实,这个过程中要执行关键的步骤来确认该申请是用户本人发送的,而后认证中心向申请用户颁发数字证书,证书中储存用户名称、公钥等相关信息,数字签名信息。持有数字证书的用户就可以进行数据传输、网上银行等相关的活动。颁发数字证书的机构是一个可信任的第三方独立机构,因颁发机构授权的领域不同,证书的类型和用处也各不一样,而且各类
证书的可信度级别也大相径庭。 数字证书有以下三个特点:
它是 PKI 体系的元件。PKI 体系所提供的所有安全服务都是以数字证书为应用主体的,系统运行过程中的各个步骤都离不开数字证书,可以说数字证书是 PKI 的核心组件。
数字证书具有权威性。它是由权威的、可信赖的和公正的第三方身份认证中心 CA 颁发的认证中心 CA 为特定的应用网络和用户提供身份认证服务,负责验证公钥的合法性,证明用户是证书的合法持有者,同时,签发、分配、储存、更新和删除证书。
数字证书不仅装载用户的公钥而且证明用户身份。 目前数字证书的格式普遍遵循 X.509V3 国际标准,证书包括证书的版本号、序列号、算法、命名规则通常采用 X.500 格式、有效日期、名称、公钥信息、数字证书颁发者标识符。 X.509V3 数字证书包括扩展标识符、关键程度指示器和扩展字段值。数字证书扩展包括密钥信息、政策信息等。
数字签名
数字签名就是数据的发送方用密码算法加密一段数据,处理生成一段符加数据同原始数据一起发送给接收方。
数字签名用来证明发送方数据的真实性。因为公钥是对一定范围的用户公开的,所以多个人可以用公钥加密数据,接收方可以利用数字签名确认发送方的身份。在密码系统安全的情况下,接收方可以通过此方法鉴定发送方的真实身份。
数字签名保证传输数据的完整性,防止数据发送方的身份被伪造,防止数据在传输过程中被第三方采取非法手段进行截获、修改、转发,虽然不能保证绝对不会被第三方修改数据,但是通过这种方法使第三方读取数据变得非常困难。
数字签名确保交易的不可抵赖性。应用数字签名后,发送方无法不承认曾传输过数据,数据的接收方能够用数字签名来证明数据的发送方。
杂凑值数字签名
杂凑函数具有单向性、强无碰撞性、求第二原像不可行性。任意长度的数据经过 Hash 算法加密压缩,都会生成一个指定长度的杂凑值。杂凑值数字签名的过程是:一是用 Hash 算法加密原文数据,生成固定长度的杂凑值;二是用发送方自己的私钥加密该杂凑值生成数字签名,传输给接收方;三是接收方用发送方的公钥解密第二步生成的数字签名,反向计算获得第一步生成的杂凑值,用同一种 Hash 算法永计算数据,获得另一个杂凑值,对比两个值,如果相同,说明该数据就是发送方签名后发送给接收方的,否则,就不是发送方所传送的数据,不能信任。
私钥签名
私钥签名利用非对称加密算法的私钥加密原文数据,它是一种对整体消息的签名,适用于小文件信息。
首先发送方用自己的私钥对数据进行加密处理,生成数字签名,再把原文数据与生成的数字签名相捆绑共同传输给接收方,因为接收方拥有发送方对外公开的与其相匹配的公钥,用这个公钥解密收到的信息,然后比较解密后的数据与捆绑中的原文数据,由此来证明接收方收到的数据确实是其所声称的发送方所提供的。
数字信封
发送方使用对称密钥加密数据,然后使用收件方的公钥加密对称密钥,产生一个数字信封,发送到收件方。因为匹配的公私密钥对对应一个固定的用户的数字信封,所以只有指定的接收者可以打开数字信封,用获得的密钥对解密数字信封 ,得到原文数据。
数字信封具有非常高的安全性。一是数字信封的打包,用收件方的公钥加密要传输的信息,只能是收件方的私钥将该信息复原;二是数字信封的拆解,即利用私钥将经过加数据解密。
数字信封能够保障真实和完整的传输数据。因为数字信封的功能接近于生活中使用的普通信封,它用密码加密技术保护数据,规定指定的接收方能够解密数据,获得原文数据。
数字信封结合对称密钥加密技术的高效性、安全性,克服该技术发放密钥过程的复杂性,结合非对称密钥加密技术的灵活性,避免该技术对数据进行加密需要非常长时间的困扰,保证数据传输的完整性、真实性、高效性。
基于 PKI 的数字证书身份认证体系
PKI 体系的组成
PKI 利用公钥技术和数字证书建立一个安全域,在此环境内,PKI 主要负责管理加密密钥,其中包括密钥的更新、恢复;负责发布数字证书,包括证书的生成、更新和撤销等。如果 PKI 体系有需求与其他安全域建立互联的信任关系,可以通过交叉认证等形式建立联系。
PKI 将硬件系统、软件系统及安全策略结合形成一个完整的安全机制,无论发送方在什么地点什么身份,都以证书为最根本的信任依据,在此基础上双方进行各种通讯活动。
PKI 系统由认证机构 CA、注册机构 RA、数字证书库、密钥备份及恢复系统、证书撤销系统、密钥更新机制等组成。
认证机构 CA:它是数字证书的颁布机关,也是 PKI 体系的核心,是具有权威性、公正性的第三方机构。认证机构 CA 首先确认申请证书的申请用户身份,然后将要颁发的证书的主体与公钥捆绑在一起,生成数字证书,从而使申请用户与一对公钥和私钥建立对应关系。
注册机构 RA:它负用来收用户的申请,审核用户的真实身份,符合颁发证书条件的用户可以被颁布数字证书,否则将不能获得数字证书。
数字证书库:集中储存已经颁发的证书和公钥,用户可以方便地在证书库中查询其他证书等相关信息。数字证书库的存放方式为目录服务器、关系数据库等。通常用的是 LDAP 目录。
密钥备份及恢复系统:它是密钥管理体系的核心,如果用户不小心丢失数据的解密密钥,则无法解密曾经加密的数据。这个系统能够解决此类问题。在数字证书生成的同时,认证机构 CA 备份了加密密钥,并将它储存在数字证书库中,当用户因丢失密钥等原因需要重新找回密钥时,可以向认证机构 CA 提出申请,CA 为用户恢复密钥。
证书撤销系统:因为用户丢失密钥,或者是用户的身份有所变化,证书超出有效期限,证书就要做相应的更新,产生新的证书,撤销原来旧的证书。证书撤销处理系统作为 PKI 体系中不可或缺的组成部分,要求 PKI 体系为证书撤销系统提供一整套管理机制。 证书自生成之后,PKI 系统会自动检查证书是否要超出有效期限,每过一段时间自动更新证书,在到期之前,CA 会启动更新程序,新生成一个证书,然后撤销过期的证书。
应用接口(API):PKI 体系为用户提供通讯和使用等安全服务,它对应用接口的安全要求也非常的高。性能高的应用接口系统,能够满足 PKI 体系的各种功能的实现,如用户对证书的查询,涉及撤销证书的一些信息等,应用接口系统能够保证在安全、可靠的前提下使 PKI 体系和它的各种应用程序运行良好。
PKI 体系主要提供认证、完整性和机密性三种主要的安全服务。
认证——向一个实体确认另一个实体确实是他自己。
完整性——向一个实体确保数据没有被有意或者无意地修改。
机密性——向一个实体保障只有接收者,没有任何人可以解密数据的关键部分。
PKI 体系必须为用户提供安全和透明的服务,用户不必考虑 PKI 体系中的证书是怎样生成、更新、撤销及恢复的,密钥是如何管理的,只要用户自己能够方便地获得数字签名即可。
CA 证书
CA 概述
认证中心 CA 是权威的、可信赖的和公正的第三方机构,专门负责产生、颁发和管理数字证书,为参与网上交易等活动的用户提供安全服务。认证中心CA 颁发的数字证书内包括用户的名称等有关身份的信息,并且这些信息与数字证书库内的公开密钥是一一对应的,当用户向注册中心 RA 提出申请,其身份等相关信息通过审核,CA 为用户颁发证书,由此拥有数字证书的用户与用户的公钥和私钥、有关用户身份的信息与数字证书中心建立了合法的联系,用户和数字证书的真实性一致。
CA 是 PKI 体系的关键组成部分,向用户颁发和管理各种应用的数字证书。认证中心 CA 的主要功能包括证书的申请、审批、颁发、查询、更新和撤销,及管理撤销证书列表。
CA 的组成部分,以及各部分的主要功能:
证书签发系统
用该系统的私钥和加密算法,将用户申请时提供的个人信息和用户的公钥捆绑在要颁发的数字证书内。
密钥管理系统
它负责密钥的生成、存储、撤销、恢复、更新及查询。
注册审计系统
当用户向认证中心提出申请颁发或恢复数字证书等请求时,注册审计系统负责注册和审核用户的相关身份信息,审核和提交用户的请求,提供证书管理统计功能。
证书 CRL 发布系统
证书 CRL 发布系统负责发布认证中心 CA 的信息,对外发布的时间是有固定间隔的。
CA 信任模型
它是不同 PKI 域的用户之间建立的信任关系,实现相互认证,在各个用户之间建立信任路径的模型。PKI 信任模型是建立 PKI 体系的首要问题。PKI 信任模型能够有效解决用户的信任起点在哪里,以及这种信任在 PKI 系统中是如何被传递的有关问题。
同一个 PKI 系统的信任模型,会因为有不同的 CA 体系结构而有不同的构建方案。
PKI 的信任模型有以下五种类型。
严格层次信任模型,模型中所有结点都信任唯一的根 CA,每个结点必须保存根 CA 中心的公钥,从根 CA 到认证结点仅有一条信任路径。当用户之间需要通信时,必须先通过根 CA 来验证双方的公钥证书。这样的信任模型适用于独立、分层的企业应用,难以用于不同组织的企业之间。其优点是证书路径是单向的、路径短,易于扩展。缺点是如果根 CA 发生故障,整个信任模型将被毁坏,而且目前还没有较好的技术来解决这个难题。
网状信任模型,信任模型中有许多个 CA,任意一个 CA 都有权对其它的 CA进行认证,任意两个 CA 可以相互认证。网状信任模型适用于没有层级关系或动态变化的通信机构之间,但是对于特定的 CA 不一定能适合认证某一个 CA,且两个 CA 之间的信任路径可能会有许多条,所以构建信任路径要比层次模型复杂,在构建信任路径时要应用优化措施。网状信任模型中的 CA 都是独立的,没有级别之分,没有根 CA,当信任传递的需求量增大时,可以随时新增多个 CA,通过在交叉认证关系来实现信任路径的增多。其优点是每个根 CA 都是独立的,某个根 CA 的安全性被破坏不会影响到其它根 CA 的相互信任,相互认证的路径的灵活的可变的。其缺点是从用户端到根 CA 的认证路径是不确定的,有多种可选择的路径,因此寻址相对困难些。选择一个正确的路径后,放弃其它可选择的路径,有时可能陷入无止境的循环寻址路径里。
混合信任模型,就是将层次、网状信任等模型结合在一起。在这种信任模型中,每一个层次结构都有根 CA,任意两个根 CA 之间必须建立交叉认证,且有一个对应的交叉证书,用于两个层次结构之间的相互认证。
如果不是层次结构的根 CA 之间的交叉认证关系不复杂,可以在两者之间构建简单的认证路径。但是,在混合信任模型中,每新增一个域,域和域之间建立的交叉认证书的数量是以平方的数量级递增的,当应用实体需要大规模的扩展域时,根 CA 之间的交叉认证会越来越大和复杂。
信任列表模型,这种模型向客户端系统提供可信任根 CA 的公开密钥,认证证书直接或者间接地与可信任根 CA 相连。这种模型应用的实例,如我们所用的浏览器中下载应用的各种证书。这种模型的优点是相互操作的步骤简单和方便,但是存在许多不容忽视的安全问题,举个常见的实例,我们使用的浏览器会事先安装一些可信任根 CA 的公钥,用户就会默认这些公钥都是可信任的,但是如果其中有一个根 CA 是这安全的,整个浏览器的安全性将遭到破坏。当一个根 CA 的公开密钥的安全性已经被破坏,或者根 CA 的公开密钥所对应的私有密钥已经被泄露,我们是无法将数以万计的浏览器废止已被破坏的根 CA 的密钥的。
CA 的功能
检验申请者的身份。当证书申请者将包含其真实身份、申请证书的目的和用途等相关信息的注册申请提交给认证中心 CA 后,CA 负责审查申请者的注册信息,确认其身份的真实性和可靠性。
保障颁布私有密钥的安全性。认证中心 CA 所颁布的私有密钥必须是由硬件生成,而不是单纯由软件生成的,同时为提高私钥的安全性,私钥的长度尽量长,降低被破译的风险,且不禁止私钥通过网络传输或在计算机内存中保存,必须由独立的介质保存。
管理证书。保障颁发证书名称、序号、CA 标识对于每个证书都是对应的,且均具有是唯一性,不会出现 CA 标识和证书序号重复的情况。隔固定的时间检查证书的有效期,及时更新过期的证书,撤销已经作废的证书。
发布已经作废的证书列表。维护作废证书列表,为用户提供在线查询服务,防止交易中的安全问题。全程监控颁发的证书,并记录每个证书的日志,作为交易发生纠纷时的仲裁依据。
密钥是在认证中心 CA 的安全可信任硬件设备中生成的,并存储在独立的密钥库中,用户的私钥也是存储在特定的独立的存储设备中,密钥不会在网络中出现,而是以密文的方式出现在证书中。
用户身份认证流程
用户将包括用户的名称、身份证号、联系电话等个人信息提交给注册机构RA,RA 审核用户信息的真实性,及判断用户申请注册的原因是否符合审核条件,审核通过后 RA 将个人信息提交给认证中心 CA,认证中心 CA 确定申请用户的身份符合其安全策略,CA 向密钥管理设备申请生成用户的公钥和私钥,生成的公钥和私钥存储在密钥库中,用以用户丢失证书后恢复密钥,CA 向用户颁发证书,用户的私钥封装在数字证书的载体中,例如 USB Key 设备中。
用户得到数字证书后,就可以在身份认证中心 CA 所信任的系统中使用。首先,CA 为其信任的应用系统颁发证书,然后在用户端安装 CA 的客户端,当用户向应用系统提出访问请求时,客户端将用户证书信息传输给 CA 的认证模块,系统会判断用户的数字证书与系统的证书是否是由同一个认证中心 CA 颁发的,如果是同一个 CA 颁发的证书,认证模块为其生成一个随机数 M 作为“挑战”,将 M 传送给客户端;客户端利用用户的私有密钥对随机数 M 进行数字签名,数字签名的结果为 A,用户端将 A 提交给认证模块;认证模块在 LDAP 目录中查询到用户的数字证书,获取该数字证书中的公钥,用该公钥对用户端传送来的数字签名 M 进行解密,结果为 m,其为认证模块为用户生成的随机数 M,如果 M 等于 m,证明用户的身份认证成功,用户可以访问电子政务系统;否则,该用户为非法用户,拒绝其访问系统。
小结
随着电子信息技术的快速发展,信息安全问题得到了人们重视,其中 PKI 技术可以依据多个计算机用户的需求提供多样的安全服务,从而使计算机在具体应用过程中的真实性、完整性、机密性等多方面的优势能够得到保障,促进计算机技术的发展,使其能够更好的为人们服务。目前流行的区块链项目大多都使用到了 PKI 技术去对用户进行认证,例如 Hyperledger Fabric、SimpleChain、ImcoreChain 等。下面是一个很常见的区块链的项目架构的设计图
我们都知道,CA 是 PKI 的核心,上图中的 CA 实际上就是使用 PKI 体系搭建的一个权威证书服务中心服务。