PKCS标准详解。
PKI标准可以分为第⼀代和第⼆代标准[12]。
第⼀代PKI标准主要包括美国RSA公司的公钥加密标准(Public Key Cryptography Standards,PKCS)系列、国际电信联盟的ITU-T X.509、IETF组织的公钥基础设施X.509(Public Key Infrastructure X.509,PKIX)标准系列、⽆线应⽤协议(Wireless Application Protocol ,WAP)论坛的⽆线公钥基础设施(Wireless Public Key Infrastructure,WPKI)标准等。第⼀代PKI标准主要是基于抽象语法符号(Abstract Syntax Notation One,ASN.1)编码的,实现⽐较困难,这也在⼀定程度上影响了标准的推⼴。
第⼆代PKI标准是在2001年,由微软、VeriSign和webMethods三家公司发布了XML密钥管理规范(XML Key Management Specification,XKMS),被称为第⼆代PKI标准。XKMS由两部分组成:XML密钥信息服务规范(XML Key Information Service Specification,X-KISS)和XML密钥注册服务规范(XML Key Registration Service Specification,X-KRSS)。X-KISS定义了包含在XML-SIG元素中的⽤于验证公钥信息合法性的信任服务规范;使⽤X-KISS规范,XML应⽤程序可通过⽹络委托可信的第三⽅CA处理有关认证签名、查询、验证、绑定公钥信息等服务。X-KRSS则定义了⼀种可通过⽹络接受公钥注册、撤销、恢复的服务规范;XML应⽤程序建⽴的密钥对,可通过X-KRSS规范将公钥部分及其它有关
的⾝份信息发给可信的第三⽅CA注册。X-KISS和X-KRSS规范都按照XML Schema 结构化语⾔定义,使⽤简单对象访问协议(SOAP V1.1)进⾏通信,其服务与消息的语法定义遵循Web服务定义语⾔(WSDL V1.0)。⽬前XKMS已成为W3C的推荐标准,并已被微软、VeriSign等公司集成于他们的产品中(微软已在ASP中集成了XKMS,VeriSign已发布了基于Java的信任服务集成⼯具包TSIK)。
CA中⼼普遍采⽤的规范是X.509[13]系列和PKCS系列,其中主要应⽤到了以下规范:
1.X.209(1988)
ASN.1是描述在⽹络上传输信息格式的标准⽅法。它有两部分:第⼀部份(ISO 8824/ITU X.208)描述信息内的数据、数据类型及序列格式,也就是数据的语法;第⼆部分(ISO 8825/ITU X.209)描述如何将各部分数据组成消息,也就是数据的基本编码规则。
ASN.1原来是作为X.409的⼀部分⽽开发的,后来才独⽴地成为⼀个标准。这两个协议除了在PKI体系中被应⽤外,还被⼴泛应⽤于通信和计算机的其他领域。2.X.500(1993)
X.500是⼀套已经被国际标准化组织(ISO)接受的⽬录服务系统标准,它定义了⼀个机构如何在全局范围内共享其名字和与之相关的对象。X.500是层次性的,其中的管理域(机构、分⽀、部门和⼯作组)可以提供这些域内的⽤户和资源信息。在PKI体系中,X.500被⽤来惟⼀标识⼀个实体,该实体可
以是机构、组织、个⼈或⼀台服务器。X.500被认为是实现⽬录服务的最佳途径,但X.500的实现需要较⼤的投资,并且⽐其他⽅式速度慢;⽽其优势具有信息模型、多功能和开放性。
3.X.509(1993)
X.509是由国际电信联盟(ITU-T)制定的数字证书标准。在X.500确保⽤户名称惟⼀性的基础上,X.509为X.500⽤户名称提供了通信实体的鉴别机制,并规定了实体鉴别过程中⼴泛适⽤的证书语法和数据接⼝。
X.509的最初版本公布于1988年。X.509证书由⽤户公共密钥和⽤户标识符组成。此外还包括版本号、证书序列号、CA标识符、签名算法标识、签发者名称、证书有效期等信息。这⼀标准的最新版本是X.509 v3,它定义了包含扩展信息的数字证书。该版数字证书提供了⼀个扩展信息字段,⽤来提供更多的灵活性及特殊应⽤环境下所需的信息传送。
4.PKCS系列标准
PKCS是由美国RSA数据安全公司及其合作伙伴制定的⼀组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等⽅⾯的⼀系列相关协议。到1999年底,PKCS已经公布了以下标准:
qq签名发布
PKCS#1:定义RSA公开密钥算法加密和签名机制,主要⽤于组织PKCS#7中所描述的数字签名和数字信封。
PKCS#3:定义Diffie-Hellman密钥交换协议。
PKCS#5:描述⼀种利⽤从⼝令派⽣出来的安全密钥加密字符串的⽅法。使⽤MD2或MD5 从⼝令中派⽣密钥,并采⽤DES-CBC模式加密。主要⽤于加密从⼀个计算机传送到另⼀个计算机的私⼈密钥,不能⽤于加密消息。
PKCS#6:描述了公钥证书的标准语法,主要描述X.509证书的扩展格式。
PKCS#7:定义⼀种通⽤的消息语法,包括数字签名和加密等⽤于增强的加密机制,PKCS#7与PEM兼容,所以不需其他密码操作,就可以将加密的消息转换成PEM消息。
PKCS#8:描述私有密钥信息格式,该信息包括公开密钥算法的私有密钥以及可选的属性集等。
PKCS#9:定义⼀些⽤于PKCS#6证书扩展、PKCS#7数字签名和PKCS#8私钥加密信息的属性类型。
PKCS#10:描述证书请求语法。
PKCS#11:称为Cyptoki,定义了⼀套独⽴于技术的程序设计接⼝,⽤于智能卡和PCMCIA卡之类的加密设备。
PKCS#12:描述个⼈信息交换语法标准。描述了将⽤户公钥、私钥、证书和其他相关信息打包的语法。
PKCS#13:椭圆曲线密码体制标准。
PKCS#14:伪随机数⽣成标准。
PKCS#15:密码令牌信息格式标准。
5.OCSP在线证书状态协议
OCSP(Online Certificate Status Protocol)[14]是IETF颁布的⽤于检查数字证书在某⼀交易时刻是否仍然有效的标准。该标准提供给PKI⽤户⼀条⽅便快捷的数字证书状态查询通道,使PKI体系能够更有效、更安全地在各个领域中被⼴泛应⽤。
6.LDAP 轻量级⽬录访问协议
LDAP规范(RFC1487)简化了笨重的X.500⽬录访问协议,并且在功能性、数据表⽰、编码和传输⽅⾯都进⾏了相应的修改。1997年,LDAP第3版本成为互联⽹标准。⽬前,LDAP v3已经在PKI体系中被⼴泛应⽤于证书信息发布、CRL信息发布、CA政策以及与信息发布相关的各个⽅⾯。
发布评论