PKI技术多种多样,应用非常广泛;本章介绍这些基本技术。证书认证系统的设计与实现使用了以下典型PKI技术:数字证书、数字信封、微软CryptoAPI、SSL协议、LDAP标准、OCSP协议等。
数字证书[2](Digital certificate)是一种“网络身份证”,它由证书认证中心签发;它是一种包含持有者信息、持有者公钥、颁发者、颁发者签名等信息的电子文件。
为了适应PKI技术的发展,IETF制定在Internet上使用X.509和证书吊销列表(Certificate RevocationList,CRL)[3]的标准。X.509V3版本证书组成元素分析见图2-1。
通过以上分析,数字证书元素可由待签名证书主题(TBSCertificate)、证书签名算法标示(signatureAlgorithm)、证书签名值(signatValue)等组成。其中证书第二层元素包括版本号、序列号、证书有效期、颁发者DN、持有者DN等;证书第三层元素主要是一些常用的标准扩展。证书第四层元素主要是自定义扩展,来满足证书对不同应用的需要。证书认证系统提供证书全生命周期管理,也提供证书各个元素的生成。其中证书自定义扩展的满足是系统实现的难点,本论文会通过可配置的证书模板机制满足其实现(参考3.6节和4.3节的设计和实现)。
1)数字信封概念
数字信封[4](Digital Envelope)中采用了对称密码体制和公钥密码体制。信息发送者首先利用随机产生的对称密码加密信息,再利用接收方的公钥加密对称密码,被公钥加密后的对称密码被称之为数字信封。在传递信息时,信息接收方要解密信息时,必须先用自己的私钥解密数字信封,得到对称密码,才能利用对称密码解密所得到的信息。这样就保证了数据传输的真实性和完整性。
RSA公司的PKCS#7[5]标准定义了密码信息封装的语法,其包含数据(Data)格式、签名数据(Signed-data)格式、信封数据(Enveloped-data)格式、签名且信封数据(Signed-and-enveloped-data)格式、杂凑数据( Digested-data)格式、加密数据(Enveloped-data)等6种格式。
2)PKCS#7中信封数据(Enveloped-data)格式元素分析