PKI(Public Key Infrustructure)又称为公钥基础设施,是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系。
完整的PKI系统必须具有权威认证机关(CA)、注册中心(RA)数字证书存储库LDAP、密钥备份及恢复系统(KMC)、证书作废系统(CRL)、应用接口(RADS)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。
PKI是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI框架管理密钥和证书可以建立一个安全的网络环境。PKI主要包括四个部分:
(1)X.509格式的证书(X.509V3)和证书废止列表CRL(X.509 V2);
(2)CA/RA操作协议;
(3)CA管理协议;
(4)CA政策制定。
一个典型、完整、有效的PKI应用系统至少应具有以下部分:
(1)CA认证中心CA是PKI的核心,CA负责管理PKI结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其它信息捆绑在一起,在网上验证用户的身份,CA还要负责用户证书的黑名单登记和黑名单发布,下面有CA的详细描述。
(2)X.500目录服务器X.500目录服务器用于发布用户的证书和黑名单信息,用户可通过标准的LDAP协议查询自己或其他人的证书和下载黑名单信息。
(3)具有高强度密码算法(SSL)的安全WWW服务器出口到中国的WWW服务器,如微软的IIS、Netscape的WWW服务
PKI是利用公钥技术实现电子商务安全的一种体系,是一种基础设施,网络通讯、网上交易是利用它来保证安全的。从某种意义上讲,PKI包含了安全认证系统,即安全认证系统一CA/RA系统是PKI不可缺的组成部分。
认证中心(CA),是电子商务体系中的核心环节,是电子交易中信赖的基础。它通过自身的注册审核体系,检查核实进行证书申请的用户身份和各项相关信息,使网上交易的用户属性客观真实性与证书的真实性一致。认证中心作为权威的、可信赖的、公正的第三方机构,专门负责发放并管理所有参与网上交易的实体所需的数字证书。
RA (Registration Authority),数字证书注册审批机构。RA系统是CA的证书发放、管理的延伸。它负责证书申请者的信息录入、审核以及证书发放等工作;同时,对发放的证书完成相应的管理功能。发放的数字证书可以存放于IC卡、硬盘或软盘等介质中。RA系统是整个CA中心得以正常运营不可缺少的一部分
密钥管理系统是与电子身份认证中心相对应的密钥管理及服务机构。密钥管理中心KMC的目的在于既保证通信的保密性与私有性,又使得有关国家机构在授权条件下可接入特定的通信过程并破译密文,以保障国家的安全与有关法律的实施。密钥管理中心本身并不知道用于通信信息加密的密钥,但它提供了一种手段,可以恢复该密钥。 密钥管理的目标是安全地实施和运用这些密钥管理服务功能。
数字证书,是经过权威认证机构CA签名用于为公钥信息作身份认证声明的电子文件。类似于日常生活中的身份证,它是以数字签名的形式声明,由数字证书认证机构来进行颁发,颁发流程一般为:
(1)用户到RA中心申请证书。
(2)USBKEY生成签名密钥对,产生CSR,将CSR上传到RA。
(3)RA向CA提交用户信息及CSR。
(4)CA向KMC请求加密密钥,同时提交用户的签名公钥。
(5)KMC生成加密密钥对,对加密私钥用签名公钥加密。
(6)KMC将经过加密的加密私钥和加密公钥发给CA。
(7)CA对用户信息及签名和加密公钥签名,生成证书。
(8)CA发布证书。
(9)RA下载证书和经过签名公钥加密的私钥。
(10)用户下载和安装证书和经过签名公钥加密的私钥。
证书主要的文件类型和协议有: PEM、DER、PFX、JKS、KDB、CER、KEY、CSR、CRT、CRL 、OCSP、SCEP等。它是以X.509标准格式将证书信息规范的存储到一系列可解析的字段当中,证书包含的内容包括版本、序列号、签名算法、颁发者、有效期、主题、公钥、私钥用法、CRL分发点、基本限制等等,见下表。
数字证书包含的信息:
名称 | 释义 |
---|---|
版本号 | 标识证书的版本(V1 V2 V3) |
序列号 | 证书的唯一标识符 |
签名 | 签名算法标识符 |
颁发者 | 证书颁发者的可识别名 |
有效期 | 证书有效期的时间段 |
主体 | 证书拥有者的可识别名 |
主体公钥信息 | 主体的公钥 |
颁发者唯一标识符 | 证书颁发者的唯一标识符 V2 V3 |
主体唯一标识符 | 证书拥有者的唯一标识符 V2 V3 |
扩展 | 可选的标准和专用的扩展 V2 V3 |
数字证书的有效性验证主要从三个方面:
1,数字证书有效期验证
就是说证书的使用时间要在起始时间和结束时间之内。通过解析证书很容易得到证书的有效期
2,根证书验证
先来理解一下什么是根证书?
普通的证书一般包括三部分:用户信息,用户公钥,以及CA签名
那么我们要验证这张证书就需要验证CA签名的真伪。那么就需要CA公钥。而CA公钥存在于另外一张证书(称这张证书是对普通证书签名的证书)中。因此我们又需要验证这另外一张证书的真伪。因此又需要验证另另外证书(称这张证书是对另外一张证书签名的证书)的真伪。依次往下回溯,就得到一条证书链。那么这张证书链从哪里结束呢?就是在根证书结束(即验证到根证书结束)。根证书是个很特别的证书,它是CA中心自己给自己签名的证书(即这张证书是用CA公钥对这张证书进行签名)。信任这张证书,就代表信任这张证书下的证书链。
所有用户在使用自己的证书之前必须先下载根证书。
所谓根证书验证就是:用根证书公钥来验证该证书的颁发者签名。所以首先必须要有根证书,并且根证书必须在受信任的证书列表(即信任域)。
3,CRL验证
CRL是经过CA签名的证书作废列表,用于证书冻结和撤销。一般来说证书中有CRL地址,供HTTP或者LDAP方式访问,通过解析可得到CRL地址,然后下载CRL进行验证。
并且证书中有CRL生效日期以及下次更新的日期,因此CRL是自动更新的,因此会有延迟性。
于是呢,还有另外一种方式OSCP证书状态在线查询,可以即时的查询证书状态。
两种证书状态查询方式的比较: