PKI的标准可分为两个部分:一类用于定义PKI,而另一类用于PKI的应用。
下面主要介绍定义PKI的标准。
ASN.1基本编码规则的规范——X.209(1988)。ASN.1是描述在网络上传输信息格式的标准方法。它有两部分:第一部分(ISO 8824/ITU X.208)描述信息内的数据、数据类型及序列格式-也就是数据的语法;第二部分(ISO8825/ITU X.209)描述如何将各部分数据组成消息.也就是数据的基本编码规则。这两个协议除了在PKI体系中被应用外,还被广泛应用于通信和计算机的其他领域。
目录服务系统标准——X.500(1993)。X.500是一套已经被国际标准化组织(ISO)接受的目录服务系统标准,它定义了一个机构如何在全局范围内共享其名字和与之相关的对象。X.500是层次性的,其中的管理域(机构、分支、部门和工作组)可以提供这些域内的用户和资源信息。在PKI体系中,X.500被用来唯一标识一个实体.该实体可以是机构、组织、个人或一台服务器。X.500被认为是实现目录服务的最佳途径,但X.500的实现需要较大的投资,并且比其他方式速度慢;但其优势是具有信息模型、多功能和开放性。 [3]
IDAP轻量级目录访问协议一IDAP V3。LDAP规范(RFCl487)简化了笨重的X.500目录访问协议,并且在功能性、数据表示、编码和传输方面部进行了相应的修改,1997年.LDAP第3版本成为互联网标准。IDAP V3已经在PKI体系中被广泛应用于证书信息发布、CRI。信息发布、CA政策以及与信息发布相关的各个方面。
数字证书标准 X.509(1 993)。X.5(19是南国际电信联盟(ITU—T)制定的数字证书标准、在X.500确保用户名称唯一性的基础上.X.509为X.500用户名称提供了通信实体的鉴别机制并规定了实体鉴别过程中广泛适用的证书语法和数据接口。X.509的最初版本公布于1988年,由用户公开密钥和用户标识符组成此外还包括版本号、证书序列号、CA标识符、签名算法标识、签发者名称、证书有效期等信息。这一标准的最新版本是X.509 V3,该版数字证书提供了一个扩展信息字段.用来提供更多的灵活性及特殊应用环境下所需的信息传送。
OCSP在线证书状态协议。OCSP(OnIine Certificate Status Protocol)是IETF颁布的用于检查数字证书在某一交易时刻是否仍然有效的标准。该标准提供给PKI用户一条方便快捷的数字证书状态查询通道.使PKI体系能够更有效、更安全地在各个领域中被广泛应用。
PKCS系列标准。PKCS是南美RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。 [3]
2. PKI的总体架构公钥基础设施PKI(Public Key Infrastructure,公开密钥基础设施)是以不对称密钥加密技术为基础,以数据机密性、完整性、身份认证和行为不可抵赖性为安全目的,来实施和提供安全服务的具有普适性的安全基础设施。
其内容包括数字证书、不对称密钥密码技术、认证中心CA(Cetification Authority)、证书和密钥的管理RA(Registration Authority)、安全代理软件、不可否认性服务、时间邮戳服务、相关信息标准、操作规范等。
PKI的体系架构:宏观来看,PKI 概括为两大部分,即信任服务体系和密钥管理中心。
- PKI信任服务体系,是为整个业务应用系统(如电子政务、电子商务等)提供基于PKI数字证书认证机制的实体身份鉴别服务,它包括认证机构、注册机构、证书库、证书撤销和交叉认证等。
- PKI密钥管理中心(Key Management Center, KMC)提供密钥管理服务,向授权管理部门提供应急情况下的特殊密钥回复功能。它包括密钥管理机构、密钥备份和恢复、密钥更新和密钥历史档案等。
| PKI 的体系架构 | |
| 国家PKI组织结构示意图 |
认证中心: CA (Certification Authority) 是PKI的核心。第三方网上认证机构,负责数字证书的签发、撤销和生命周期的管理,还提供密钥管理和证书在线查询等服务。
数字证书注册审批机构: RA ( Registration Authority)系统是CA的数字证书发放、管理的延伸。它负责数字证书申请者的信息录入、审核以及数字证书发放等工作,同时,对发放的数字证书完成相应的管理功能。发放的数字证书可以存放于IC卡、硬盘或软盘等介质中。RA系统是整个CA中心得以正常运营不可缺少的一部分。
数字签名:利用发信者的私钥和可靠的密码算法对待发信息或其电子摘要进行加密处理,这个过程和结果就是数字签名。收信者可以用发信者的公钥对收到的信息进行解密从而辨别真伪。经过数字签名后的信息具有真实性和不可否认(抵赖)性。
数字证书:这是由认证机构经过数字签名后发给网上信息交易主体(企业或个人、设备或程序)的一段电子文档。在这段文档中包括主体名称、证书序号、发证机构名称、证书有效期、密码算法标识、公钥和私钥信息和其他属性信息等。数字证书提供了PKI的基础。
密钥和证书管理: 工具:管理和审计数字证书的工具,认证中心使用它来管理在一个CA.上的证书。
双证书体系: PKI采用双证书体系,非对称算法支持RSA和ECC算法,对称密码算法支持国家密码管理委员会指定的算法。
3. 双证书、双密钥机制一对密钥和一个证书(签名和加密用一套密钥);
1)发信方A方,将自己的名称,证书序号,发证机构名称,证书有效期,密码算法和公私钥信息的摘要, 用私钥加密放在信息的末尾,然后证书私钥加密,形成数字证书,发布网上。
2)收信方B方,拿到信息,用公钥解密得到摘要,比对摘要无误,即拿到发信方的证书。
签名时,A用户使用自己的私钥加密信息的摘要(签名),B用户使用A的公钥进行解密,对比该摘要是否正确,若正确,则B就确定了A的身份,即验签成功。加密时,A用户用B的公钥将信息加密传递给B,B使用自己的私钥解密,进而获得信息。
一对密钥(一张证书)应用中的问题:
如果密钥不备份,当密钥损坏( 或管理密钥的人员离职时带走密钥)时,以前加密的信息不可解密。如果密钥不备份,很难实现信息审计。如果密钥不备份,数字签名的不可否认性很难保证。
如果签名私钥遗失,大不了用户再产生一对,并无多大影响,因此签名密钥没必要交给CA;如果加密密钥遗失,别人发过来的信息我就没办法解密了,必须从CA那里获取存根。
单证书的话,如果私钥丢了,你如何恢复之前得到的信息呢?因此从道理上来说两个密钥具有不同的属性,逻辑上应该分开处理。
安全性上: 单证书增加了用户签名被伪造的风险
国家意志:国家要保证必要的时候有能力对某些通讯进行监控,如果采用单证书,除了自己谁也无法解密,不利于国家安全。因此很多国家法律规定使用双证书。
两对密钥(两张证书)的客观需求: 签名密钥对),加密密钥对。
- 签名证书在签名时使用,仅仅用来验证身份使用,其公钥和私钥均由A自己产生,并且由自己保管,CA不负责其保管任务。
- 加密证书在传递加密数据时使用,其私钥和公钥由CA产生,并由CA保管(存根)
相应地,系统中需要配置用于数字签名/验证的密钥对和用于数据加密/解密的密钥对,这里分别称为签名密钥对和加密密钥对。这两对密钥对于密钥管理有不同的要求:
(1)签名密钥对。签名密钥对由签名私钥和验证公钥组成。签名私钥具有日常生活中公章、私章的效力,为保证其唯一性,签名私钥绝对不能够作备份租存档,丢失后只需重新生成新的密钥对,原来的签名可以使用旧公钥的备份来验证。验证公钥需要存档、用于验证旧的数字签名。用作数字签名的这-对密钥一般可以有较长的生命期。
(2)加密密钥对。加密密钥对由加密公钥和解密私钥组成,为防止密钥丢失时丢失数据,解密私钥应该进行备份,同时还可能需要进行存档,以便能在任何时候解密历史密文数据。加密公钥无须备份和存档,加密公钥丢失时,只需重新产生密钥对。
加密密钥对通常用于分发会话密钥,这种密钥应该频繁更换,故加密密钥对的生命周期较短。
不难看出,这两对密钥的密钥管理要求存在互相冲突的地方,因此,系统必须针对不同的用途使用不同的密钥对,尽管有的公钥体制算法,如目前使用广泛的RSA,既可以用于加密,又可以用于签名,在使用中仍然必须为用户配置两对密钥、两张数字证书,其一用于数字签名,另一个用于加密。
RA提供CA和用户之间的交互界面,它捕获和确认用户身份并提交数字证书请求给CA。CA决定用户的信任级别,确认过程的质量存放在数字证书中。
3.双密钥证书的生成过程
(1)用户使用客户端产生签名密钥对。
(2)用户的签名私钥保存在客户端。
(3)用户将签名密钥对的公钥传送给CA中心。:
(4) CA中心为用户的公钥签名,产生签名证书。---公钥信息做签名生成证书
(5) CA中心将签名证书传回客户端进行保存。
(6)KMC(密钥管理中心)为用户生成加密密钥对。
(7)在KMC中备份加密密钥以备以后进行密钥恢复。
(8) CA中心为加密密钥对生成加密证书。
(9) CA中心将用户的加密私钥和加密证书打包成标准格式PKCS#12。
(10)将打包后的文件传回客户端。
(11)用户的客户端装入加密公钥证书和加密私钥。
| 1. 用户在RA登记注册,获得一个公钥和私钥; 2. 用户提供公钥给CA 3. CA用用户的公钥提取摘要加密做签名,生成签名证书; 1. KMC为用户另外生成一套加密密钥。 2. CA用加密密钥的公钥信息做签名,生成加密证书; 3. 加密证书+加密私钥,返还给到用户。 用户:签名密钥+签名证书; 加密密钥+加密证书; | |
| 1,用户产生签名密钥对,发送证书请求给RA/CA(请求中含1个公钥) 2,RA/CA向KMC请求加密密钥对 3,签发两张证书,连同加密密钥一起发送给用户(采用签名证书加密) 4,用户使用自己的签名私钥解密,获得两张证书+加密密钥。 | |
问题是: 如果用户的签名私钥没了,KMC能恢复吗,什么机制,根据公钥就可以恢复私钥吗?



