3.4 PKI核心产品——数字证书
数字证书(Digital Certificate)又称数字凭证,是用电子手段来证实一个实体的身份及其公钥的合法性,并将实体身份与公钥绑定。它是一个数字标识,可以实现身份的鉴别认证、完整性、保密性和不可抵赖性等安全要求,是公钥的管理媒介。公钥的分发、传送等都是靠数字证书来完成的。数字证书相当于一本网络护照,可以在需要时提供你的身份证明。数字证书的拥有者可以将证书提供给其他人或实体,以证实其合法身份。两个实体在进行信息交换前要对对方身份进行认证,若A要取得B的证书可以通过两种方式:一种是由B将证书随同要发送的正文信息一起传送给A;另一种方法是证书存放于公共的证书库中,A在网上从该库中取得B的数字证书。取得证书后,A就可以确认B的身份,通过保密通信与B进行信息交换。
数字证书是各类实体(持卡人/个人、商户/企业、网关/银行等)在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方证书的有效性,从而解决相互之间的信任问题。证书是一个经证书认证中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。
从证书的用途来看,数字证书可分为签名证书和加密证书。签名证书主要用于对用户信息进行签名,以保证信息的不可否认性;加密证书主要用于对用户传送信息进行加密,以保证信息的真实性和完整性。
简单地说,数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。身份验证机构的数字签名可以确保证书信息的真实性。证书格式及证书内容遵循X.509标准(X.509标准定义了公钥证书结构的基本标准)。
数字证书工作原理是:数字证书就是标志网络用户身份信息的一系列数据,用来在网络通信中识别通信各方的身份,即要在Internet上解决“我是谁”的问题,就如同在现实中我们每一个人都要拥有一张证明个人身份的身份证或驾驶执照一样,以表明我们的身份或某种资格。
数字证书是由权威公正的第三方机构即CA中心签发的,以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性,以及交易实体身份的真实性,签名信息的不可否认性,从而保障网络应用的安全性。
数字证书采用公钥密码体制,即利用一对互相匹配的密钥进行加密、解密。每个用户拥有一把仅为本人所掌握的私有密钥(私钥),用它进行解密和签名;同时拥有一把公共密钥(公钥)并可以对外公开,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,RSA是一种常用的体制。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点。
1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。
2)保证信息自签发后到收到为止未曾做过任何修改,签发的文件是真实文件。
数字证书可用于发送安全电子邮件、访问安全站点;网上证券、网上招标采购、网上签约、网上办公、网上缴费、网上税务等网上安全电子事务处理和安全电子交易活动。
3.4.1 数字证书的构成
数字证书或公钥证书是被称作证书机构的人或实体签署的,其中含有掌握相应密钥的持证者的确切身份或其他属性。
1.证书
在做交易时,应向对方提交一个由CA签发的包含个人身份的证书,以使对方相信自己的身份。顾客向CA申请证书时,可提交自己的执照、身份证或护照,经验证后,颁发证书,证书包含了顾客的名字和他的公钥,以此作为网上证明自己身份的依据。在SET中,最主要的证书是持卡人证书和商家证书,证书结构如图3-4所示。
图3-4 公钥证书结构
(1)持卡人证书
它实际上是支付卡的一种电子化的表示。由于它是由金融机构以数字化形式签发的,因此不能随意改变。持卡人证书并不包括账号和终止日期信息,取而代之的是用单向散列算法根据账号、截止日期生成的一个码。如果知道账号、截止日期、密码值,即可导出这个码值,反之不行。
(2)商家证书
做一个形象的比喻,商家证书就像是贴在商家收款台小窗上的付款卡提示,以表示它可以用什么卡来结算。它是由金融机构签发的,不能被第三方改变。在SET环境中,一个商家至少应有一个证书。与银行打交道时,一个商家也可以有多个证书,表示它与多个银行有合作关系,可以接受多种付款方法。
2.认证机构
CA是提供身份验证的第三方机构,由一个或多个用户信任的组织实体组成。例如,持卡人要与商家通信,要先从公共媒体上获得商家的公开密钥,但持卡人无法确定商家的真实性和信誉,于是持卡人请求CA对商家进行认证。CA对商家进行调查、验证和鉴别后,将包含商家公钥的证书传给持卡人。同样,商家也可对持卡人进行验证。这个过程如图3-5所示。证书一般包含拥有者的标识名称和公钥,并且由CA进行过数字签名。
在实际运作中,CA也可由大家都信任的一方担当。例如,在客户、商家、银行三角关系中,客户使用的是由某个银行发的卡,而商家又与此银行有业务关系。在此情况下,客户和商家都信任该银行,可由该银行担当CA角色。又例如,对商家自己发行的购物卡,则可由商家自己担当CA角色。
3.证书的树形验证结构
在双方通信时,双方通过出示由某个CA签发的证书来证明自己的身份。如果对签发证书的CA本身仍不信任,则可验证CA的身份,依此类推,一直到公认的权威CA处,就可确信证书的有效性。SET证书正是通过信任层次来逐级验证的。每一个证书与数字化签发证书的实体的签名证书关联。沿着信任树一直到一个公认的信任组织,就可确认为有效的。
例如,C的证书是由名称为B的CA签发的,而B的证书又是由名称为A的CA签发的,A通常被称为根CA。验证到了根CA处,就可确信C的证书是合法的。证书的树形验证结构如图3-6所示。
图3-5 CA认证
图3-6 证书的树形验证结构
在进行网上购物时,持卡人的证书与发卡机构的证书关联,而发卡机构的证书通过不同品牌卡的证书连接到根CA,而根的公共签名密钥对所有的SET软件都是已知的,可以校验每一个证书。
3.4.2 X.509证书标准
X.509是由国际电信联盟(ITU-T)制定的数字证书标准。X.509给出的鉴别框架是一种基于公开密钥体制的鉴别业务密钥管理。该鉴别框架允许用户将其公开密钥存放在CA的目录项中。一个用户如果想与另一个用户交换秘密信息,就可以直接从对方的目录项中获得相应的公开密钥,用于各种安全服务。
为了进行身份认证,X.509标准及公共密钥加密系统提供了一个称作数字签名的方案。用户可生成一段信息及其摘要(亦称作信息“指纹”)。用户用专用密钥对摘要加密以形成签名,接收者用发送者的公共密钥对签名解密,并将其与收到的信息“指纹”进行比较,以确定其真实性。
目前,X.509标准在编排公共密钥格式方面被广泛接受,已用于许多网络安全应用程序,其中包括IP安全(Ipsec)、安全套接层(SSL)、安全电子交易(SET)、安全多媒体INTERNET邮件扩展(S/MIME)等。
X.509证书标准主要提供以下五种类型的数字证书。
1.个人数字证书
该证书中包含个人身份信息和个人的公钥,用于标识证书持有人的个人身份。数字安全证书和对应的私钥存储于Ikey或IC卡中,用于个人在网上进行合同签订、下订单、录入审核、设置操作权限、确认支付信息等活动中标明身份。
2.机构数字证书
该证书中包含企业信息和企业的公钥,用于标识证书持有企业的身份。数字安全证书和对应的私钥存储于钥匙网络(Keynet)卡中,可以用于企业在电子商务方面的对外活动,如合同签订、网上证券交易、交易支付信息等方面。
3.个人签名证书
该证书中包含个人身份信息和个人的签名私钥,用于标识证书持有人的个人身份。签名私钥存储于Keynet卡中,用于个人在网上进行合同签订、下订单、录入审核、设置操作权限、确认支付信息等活动中标明身份。
4.机构签名证书
该证书中包含企业信息和企业的签名私钥,用于标识证书持有企业的身份。签名私钥存储于Keynet卡中,可以用于企业在电子商务方面的对外活动,如合同签订、网上证券交易、交易支付信息等。
5.设备数字证书
该证书中包含服务器信息和服务器的公钥,用于标识证书持有服务器的身份。数字安全证书和对应的私钥存储于Keynet卡中,用于表征该服务器的身份。其主要用于网站交易服务器,目的是保证客户和服务器产生交易支付等相关信息时,确保双方身份的真实性、安全性、可信任度等。
3.4.3 数字证书的功能
由于互联网的发展和电子商务系统技术的进步,使在网上购物的顾客能够极其方便轻松地获得商家和企业的信息,但同时也增加了对某些敏感的或有价值的数据被滥用的风险。买方和卖方在互联网上进行的一切金融交易运作都必须是真实可靠的,并且要使顾客、商家和企业等交易方都具有绝对的信心,因而电子商务系统必须保证具有十分可靠的安全保密技术,也就是说,必须保证网络安全的四个要素,即信息传输的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份的确定性。
数字安全证书主要有以下四大功能。
1.信息的保密性
交易中的商务信息均有保密的要求。如果信用卡的账号和用户名被人知悉,就可能被盗用,订货和付款的信息被竞争对手获悉,就可能丧失商机。而CA中心颁发的数字安全证书保证了电子商务的信息传播中信息的保密。
2.交易者身份的确定性
网上交易的双方很可能素昧平生,相隔千里,要使交易成功首先要能确认对方的身份。对商家要考虑客户端不能是骗子,而客户也会担心网上的商店会不会是一个玩弄欺诈的“黑店”。因此能方便而可靠地确认对方身份是网上交易的前提。对于为顾客或用户开展服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动,都要进行身份认证的工作。而CA中心颁发的数字安全证书可保证网上交易双方的身份,银行和信用卡公司可以通过CA认证确认身份,放心地开展网上业务。
3.不可否认性
由于商情的千变万化,交易一旦达成是不能否认的,否则必然会损害一方的利益。因此CA中心颁发的数字安全证书确保了电子交易通信过程的各个环节的不可否认性,使交易双方的利益不受到损害。
4.不可修改性
交易的文件是不可被修改的。CA中心颁发的数字安全证书确保了电子交易文件的不可修改性,以保障交易的严肃和公正。
3.4.4 数字证书的格式
CA所颁发的数字证书大都遵循X.509标准,根据这项标准,数字证书包括证书申请者的信息和发放证书CA的信息。
一个标准的X.509数字证书包含以下一些内容。
1)版本号。标示证书的版本(v1,v2,v3……)。
2)序列号。由证书颁发者分配的本证书的唯一标识符。
3)签名算法。签名算法标识符由对象标识符(Object Identifier,OID)加上相关参数组成,用于说明本证书所用的数字签名算法,例如SHA-1和RSA的标识符用来说明该签名是利用RSA对SHA-1摘要值加密。
4)颁发者。证书颁发者的可识别名(Distinct Name,DN),这是必须说明的。
5)有效期。证书有效的时间段,本字段由“Not Valid Before”和“Not Valid After”两项组成,它们分别由UTC时间(协调世界时,Universal Time Coordinated)或一般的时间表示(在RFC2459中有详细的时间表示规则)。
6)主体。证书拥有者的可识别名,此字段必须是非空的,除非使用了其他的名字形式。
7)主体公钥信息。主体的公钥(以及算法标识符),这是必须说明的。
8)颁发者唯一标识符。证书颁发者的唯一标识符,仅在版本2和版本3中要求,属于可选项;该字段在实际中很少使用,并且不被RFC2459推荐使用。
9)主体的唯一标识符。证书拥有者的唯一标识符,仅在版本2和版本3中要求,属于可选项;该字段在实际中很少使用,并且不被RFC2459推荐使用。
10)扩展。可选的标准和专用扩展(仅在v3以后使用)。
3.4.5 数字证书的管理
数字证书管理包含证书颁发、证书使用、证书验证和证书存放等过程。
1.数字证书的颁发
数字证书是由认证中心颁发的。根证书是认证中心与用户建立信任关系的基础。在用户使用数字证书之前必须首先下载和安装。
CA是能向用户签发数字证书以确认用户身份的管理机构。为了防止数字凭证的伪造,CA的公共密钥必须是可靠的,CA必须公布其公共密钥或由更高级别的CA提供一个电子凭证来证明其公共密钥的有效性,后一种方法导致了多级别CA的出现。
数字证书颁发过程如下:用户产生了自己的密钥对,并将公共密钥及部分个人身份信息传送给一家CA。CA在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,CA将发给用户一个数字证书,该证书内附有用户和他的密钥等信息,同时还附有对CA公共密钥加以确认的数字证书。当用户想证明其公开密钥的合法性时,就可以提供这一数字证书。
证书的分发是一个数据分发问题而不是一个安全问题,因为证书具有自我保护能力,不需要通过具有安全性保护的系统协议来传送,可以利用数字签名和目录服务来分发证书。
2.数字证书的使用
每一个用户有一个各不相同的名字,一个可信的CA给每个用户分配一个唯一的名字并签发一个包含名字和用户公开密钥的证书。
如果甲方想和乙方通信,甲方首先必须从数据库中取得乙方的证书,然后对其进行验证。如果他们使用相同的CA,事情就很简单,甲方只需验证乙方证书上CA的签名。如果他们使用不同的CA,问题就复杂了。甲方必须从CA的树形结构底部开始,从底层CA往上层CA查询,一直追踪到同一个CA为止,找出双方共同信任的CA。
证书可以存储在网络的数据库中。用户可以利用网络交换证书。当证书被撤销后,它将从证书目录中删除,然而签发此证书的CA仍保留此证书的副本,以备日后解决可能引起的纠纷。
如果用户的密钥或CA的密钥被破坏,就会导致证书的撤销。每一个CA必须保留一个已经撤销但还没有过期的证书废止列表(CRL)。当甲方收到一个新证书时,首先应该从CRL中检查证书是否已经被撤销。
现有持证人甲向持证人乙传送数字信息,为了保证信息传送的真实性、完整性和不可否认性,需要对要传送的信息进行数字加密和数字签名,其传送过程如下。
1)甲方准备好要传送的数字信息(明文)。
2)甲方对数字信息进行哈希运算,得到一个信息摘要。
3)甲方用自己的私钥对信息摘要进行加密得到甲方的数字签名,并将其附在数字信息上。
4)甲方随机产生一个加密密钥,并用此密钥对要发送的信息进行加密。
5)甲方用乙方的公钥对随机产生的加密密钥进行加密,将加密后的密钥同密文一起传给乙方。
6)乙方收到甲方传送过来的密文和加过密的密钥,先用自己的私钥对加密的密钥进行解密,得到会话密钥。
7)乙方用密钥对收到的密文进行解密,得到明文的数字信息,并将密钥抛弃。
8)乙方用甲方的公钥对甲方的数字签名进行解密,得到信息摘要。乙方用相同的哈希算法对收到的明文再进行一次哈希运算,得到一个新的信息摘要。
9)乙方将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。
3.数字证书的验证
在考虑证书的有效性或者可用性时,除了简单的完整性检查外,还需要其他的机制。证书验证需要确定以下内容。
1)一个可信的CA已经在证书上签名,注意这可能包括证书路径处理。
2)证书有良好的完整性,即证书上的数字签名与签名者的公钥和单独计算出来的证书哈希值一致。
3)证书处在有效期内。
4)证书没有被吊销。
5)证书的使用方式与任何声明的策略和/或使用限制一致(这由特殊的扩展来限定),持证人甲想与持证人乙通信时,他首先查找数据库并得到一个从甲到乙的证书路径和乙的公开密钥。
4.数字证书的存放
数字证书可以存放在计算机的硬盘或光盘、U盘(USBKEY)、IC卡或CLIP卡等介质中。
用户数字证书在计算机硬盘或光盘中存放时,使用方便,但存放证书的PC机必须受到安全保护,否则一旦被攻击,证书就有可能被盗用。
USBKEY是一种USB接口的硬件设备。它内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书。使用U盘保存证书,被窃取的可能性有所降低,但U盘容易损坏;一旦损坏,证书将无法使用。
IC卡中存放证书是一种较为广泛的使用方式。因为IC卡的成本较低,本身不易被损坏。但使用IC卡加密时,用户的密钥会出卡,造成安全隐患。
使用CLIP卡存放证书时,用户的证书等安全信息被加密存放在CLIP卡中,无法被盗用。在进行加密的过程中,密钥可以不出卡,安全级别最高,但相对来说,成本较高。
3.4.6 数字证书的应用
国外常见的CA有Verisign、GTE Cyber Trust、Thawte等。国内常见的CA有中国数字认证网(www.ca365.com)、北京数字证书认证中心(www.bjca.org.cn)、中国金融认证中心(http://www.cfca.com.cn/)、上海证书管理中心(http://www.sheca.com/)、广东省电子商务认证中心(http://www.cnca.net/)等。
用户想获得证书时,首先要向CA提出申请,说明自己的身份。CA在证实用户的身份后,向用户发出相应的数字证书。CA发放证书时要遵循一定的原则,如要保证自己发出的证书的序列号各不相同,两个不同的实体所获得的证书的主题内容应该相异,不同主题内容的证书所包含的公开密钥相异。
各CA使用程序大致相同,下面以广东省电子商务认证中心的数字证书的使用为例说明数字证书的简单应用。
广东CA个人数字证书使用方法如下。
首先在浏览器地址栏中输入“http://www.cnca.net/”登录到广东数字认证中心主页,然后分下面三步即可取得个人身份证书(具体在每一步中根据提示操作即可)。
1)下载并安装根证书。
2)申请证书。
3)将个人身份信息连同证书序列号一并邮寄到中国数字认证网。
当安装了数字证书并获得认证后,就可以在电子商务活动和Outlook Express中使用数字证书进行安全保证了。