数字证书及其认证过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
众所周知,公钥密码学通过使用公钥和私钥这一密钥对,使数字签名和加密通讯等密钥服务变得容易起来。公钥技术之所以能得到广泛的应用,原因就在于对那些使用密钥对中的公钥来获得安全服务的实体,他们能很方便地取得公钥,即密钥分发与管理比起对称密钥的分发与管理变得简单了。所以有人称,非对称密码算法是计算机安全通讯的一次技术革命。
当然,公钥的分发也需要数据完整性保护措施,即需要数据完整性服务来保障公钥不被篡改,并保证公钥一定要有与其声明持有者的身份相对应绑定的机制,最终目的是能提供一种简单安全识别的机制,其一可以使公钥及其相关信息的完整性得到保障;其二可以使公钥及其相关信息以一种可信的方式与其声明所有者绑定在一起。
这就是证书机制,证书在电子商务中是一种权威性的文档,证书的颁发者必须具有可信赖性,它是由权威性、可信任性和公正性的第三方机构所颁发的。证书是一种安全机制,它能保证实现和完成PKI的身份认证、完整性、保密性及不可否认性的安全服务。
证书是一种新的安全机制,一般初期使用者会感到困惑。如一个网上购物者或网上银行客户,或是一个某银行支付网关的管理员,他(她)们经常会想:为什么浏览器/服务器中装入数字证书就会在互联网上变得安全了呢?它们在实际认证中是如何操作的?它是如何保证安全的呢?针对这些常见的问题,本文通过讨论X.509V3版公钥证书的结构和语义、内容和用途以及对证书的哪些项要进行检查和如何进行检查的全部过程等,来说明证书认证的安全性。相信广大读者在了解了证书认证的“游戏规则”以后,对证书机制所能完成的身份识别和鉴别认证的安全服务会有所理解。证书确实是网上交易安全的守护神。
一、有关概念
1.关于CA
CA(Certification Authority)在PKI中称“认证机构”,它为电子商务环境中各个实体颁发电子证书,即对实体的身份信息和相应公钥数据进行数字签名,用以捆绑该实体的公钥和身份,以证明各实体在网上身份的真实性;并负责在交易中检验和管理证书。CA是认证电子商务和网上银行交易的权威性、可信赖性及公正性的第三方机构,是电子商务的重要基础设施,是电子商务的安全保证。
2.关于数字证书
数字证书也叫电子证书,或简称证书,在很多场合下,数字证书、电子证书和证书都是X.509公钥证书的同义词,它符合ITU-T X.509 V3标准。证书是随PKI的形成而新发展起来的安全机制,它实现身份的鉴别与识别(认证)、完整性、保密性及不可否认性安全服务(安全需求);数字证书是电子商务中各实体的网上身份的证明,它证明实体所声明的身份与其公钥的匹配关系,使得实体身份与证书上的公钥相绑定;从公钥管理的机制来讲,数字证书是公钥体制密钥管理的媒介,即在公钥体制中,公钥的分发、传送是靠证书机制来实现的。所以有时也将数字证书称为公钥证书;数字证书是一种权威性的电子文档,它是由具有权威性、可信任性及公正性的第三方机构(CA)所颁发。
二、证书的内容及用途
CFCA所发放的证书均遵循X.509 V3标准,其基本格式及其用途如下:
1.Certificate Format Version
证书版本号,用来指定证书格式用的X.509版本号,用于目录查询。
2.Certificate Serial Number
证书序列号,证书颁发者指定证书唯一序列号, 以标识CA发出的所有证书,用于目录查询。
3.Signature Algorithm Identifier
签名算法标识,用来指定本证书所用的签名算法(如SHA-1、RSA)。
4.Issuer
签发此证书的CA名称,用来指定签发证书的CA的可识别的唯一名称(DN, Distinguished Name),用于认证。
5.V alidity Period
证书有效期,指定证书起始日期(notBefore)和终止日期(notAfter),用于校验证书的有效性。
6.Subject
用户主体名称,用来指定证书用户的X.500唯一名称(DN),用于认证。
7.Subject Public Key Information
用户主体公钥信息。
(1)Algorithm Identifier,算法标识。用来标识公钥使用的算法。
(2)Subject Public Key,用户主体公钥。用来标识公钥本身,用于加/解密和数字签名。
8.Issuer Unique ID
颁发者可选唯一标识,很少用。
9.Subject Unique ID
主体证书拥有者唯一标识,很少用。
10.Extensions
证书扩充部分(扩展域),用来指定额外信息。
(1)Authority Key Identifier,签发者CA的公钥标识。
Key Identifier,公钥标识;
Cert Issuer,证书签发者的甄别名,电子邮件、IP地址等;
Cert Serial Number,签发证书的序列号,用于签发根证书及交叉认证。
(2)Subject Key Identifier,用户主体的公钥标识。证书主体所含密钥的唯一标识,用来区分一个证书拥有者的多对密钥,主要用于对由以前公钥加密过的文件进行解密。
(3)CRL Distribution Point, CRL分布。指明CRL分段的地点,用于分布式存放。
(4)Key Usage,证书中的公钥用途,用来指定公钥用途,数字签名、加密等。
(5)Private Key Usage Period,用户的私钥有效期。用来指定用户签名私钥的起始日期和终止日期。
(6)Certificate Policies,CA承认的证书政策列表。用来指定用户证书所适用的政策, 证书政策可由对象标识符表示,一个详细提示(200字符)。
(7)Policy Mappings,策略映射。表明在两个CA之间一个或多个策略标识的等价映射关系——仅在CA证书里存在。
(8)Subject Alt Name,用户的代用名。用来指定用户的代用名。
(9)Issuer Alt Name,CA的代用名。用来指定CA的代用名。
(10)Basic Constraints,基本制约。用来表明证书用户是最终用户还是CA,用于交易路径。
(11)Subject Directory Attributes,用户主体目录属性。指出证书拥有者的一系列属性。
11.Signature Acgorithm
CA签名算法标识。
12.CA Signature
CA签名。
三、证书的认证过程
以上介绍了证书结构、内容及用途,那么证书是如何相互认证的呢?相互的身份是如何识别的?为什么应用证书机制就是安全的呢?
首先看一下证书的认证过程(也称验证过程)。
1.拆封证书