PKI体系
公钥基础设施(PKI)是基于公钥密码技术实施的具有普适性的基础设施。主要解决公钥属于谁的问题。可用于提供信息的保密性、信息来源的真实性、数据的完整性和行为的不可否认性等。
PKI系统组件
证书认证机构(CA)
具有自己的公私钥对,负责为其他人签发证书,用自己的密钥来证实用户的公钥信息。一个PKI系统可能包含多级CA,包括根CA和各级子CA
证书持有者(Certificate Holder)
证书持有者拥有自己的证书和与证书中公钥匹配的私钥。证书持有者的身份信息和对应的公钥会出现在证书中,也称为用户。
依赖方(Relying Party)
一般将PKI应用过程中使用其他人的证书来实现安全功能的通信实体称为依赖方。
证书注册机构(Registation Authority,RA)
CA与申请者的交互接口,专门负责各种信息的检查和管理工作。只有在对申请者的各种检查通过之后,RA才会将信息发送给CA,要求CA签发证书
资料库(Repository)
用于实现证书分发,负责存储所有的证书。
证书撤销列表(CRL)
包含了当前所有被撤销证书的标识,验证者根据最新的CRL判断证书是否被撤销
在线证书状态协议(OCSP)
一种实时检查证书撤销状态的协议标准
轻量目录访问协议(LDAP)
一种开放的应用协议,提供访问控制和维护分布式信息的目录信息,CA把新签发的证书与证书撤销链送到LDAP目录服务器,供用户查询下载。
密钥管理系统(KM)
为PKI系统中其他实体提供专门的密钥服务,包括生成、备份、恢复、托管等多种功能。
数字证书结构
数字证书也称公钥证书,在证书中包含公钥持有者的信息、公开密钥、有效期、扩展信息以及由CA对这些信息进行的数字签名。PKI通过数字证书解决了公钥属于谁的问题。咋PKI中,CA也具有自己的公私钥对,对每一个“公钥证明的数据结构”进行数字签名,实现了公钥获得的数据起源鉴别、数据完整性和不可否认性。
tbsCertificate(基本证书域)
包含了主体名称和颁发者名称,主体的公钥、证书的有效期及其他相关信息。
SignatureAlgorithm(签名算法域)
包含了证书签发机构签发该证书所使用密码算法的标识符。必须和tbsCertificate中的Signature标识的签名算法项相同。
SignatureValue(签名值域)
包含了对tbsCertificate域进行数字签名的结果。
数字证书生命周期
证书的生命周期从证书的起始时间开始进入有效状态,在有效状态下的证书可以进行各种操作,生命周期的结束是当前时间进入了数字证书的失效日期或是数字证书被撤销,表明数字证书进入无效阶段。
数字证书的各种操作可归纳为5个方面:证书的产生、证书的使用、证书的撤销、证书的更新、证书的归档。
证书的产生
证书的产生主要包括密钥生成、提交申请、审核检查和证书签发。
密钥生成
证书申请者在本地生成一个公私钥对,此公钥应包含在申请材料中。
提交申请
证书的申请者向CA或者RA提交申请材料。CA一般会提供在线或者离线的提交方式以供选择。
审核检查
CA应对相应的材料进行审核,判断资料来源和申请者身份的真实性,以及可签发的数字证书种类。
证书签发
证书签发可进一步细分为证书的签署和发布。证书的签署是指CA首先按照数字证书的标准格式组合出证书所需的各项数据内容,然后用自己的私钥对这些数据内容的杂凑值进行签名,最后在数据上附上签名结果。这些反映公钥和身份的内容及CA的签名结果组合在一起就构成了证书。CA签署证书后就应该吧证书公开发布,供各依赖方使用。
证书的使用
证书的使用操作包括证书获取、验证使用和证书存储
证书获取
- 根CA自签名证书:由于无法通过PKI系统的技术手段进行验证,所以只能采用外方式获取。
- 用户证书:可以从CA的数字证书资料库获取证书,也可以是证书的持有者通过其它途径发送给依赖方。
验证使用
数字证书存在目的是能被用来验证该公钥确实属于证书持有者。单个数字证书的基本内容包括证书中数字签名的有效性、证书的有效期和证书的撤销状态。
证书存储
用户将证书存储在本地以便日后使用。主要的使用形式就是直接发送给其他实体,供其鉴别自己的身份。除了数字证书在本地进行存储之外,用户的私钥也将存储在本地,以便进行后继签名或者解密等。
证书的撤销
数字证书的“生命”不一定会持续到失效日期。当用户个人身份信息发生变化或用户私钥丢失、泄露或者疑似泄露时,证书用户应及时向CA提出证书撤销请求,CA也应及时把此证书放入公开发布的CRL或更新OCSP服务内容。证书撤销也表示证书生命的终结。
证书的更新
证书的更新必然需要CA签发一份新的证书,但是此时的审核签发过程与用户第一次申请不同。更新后的证书与原证书内容基本一样,不同的在于序列号、生效和失效日期。
证书的归档
PKI系统必须支持对曾有数据的归档处理,以能在需要的时候为PKI系统依赖方找到所需要的旧的数字证书和CRL为原则。证书的归档没有固定格式。
双证书体系
公钥密码的密钥既可以用于加密应用,又可以用于签名应用。为了区分签名证书和加密证书就诞生了双证书体系。在我国双证书体系中,用户同时具有两个私钥,分别称为签名私钥和加密私钥。签名私钥由用户在本地生成并专有掌握,对应的证书称为“签名证书”;加密私钥用于解密和密钥交换,由专门的可信机构生成并和用户共同掌握,对应的证书被称为加密证书。