CSDN博客

img xray2fly

数字证书

发表于2004/6/25 9:48:00  4765人阅读

分类: 系统编程

1.1   数字证书介绍

数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一个特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一个公共密钥(公钥),并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私钥才能解密。在公钥密码体制中,常用的一种是RSA体制。公开密钥技术解决了密钥发布的管理问题,用户可以公开其公钥,而保留其私钥。一般情况下证书中还包括密钥的有效时间、发证机关(证书授权中心)的名称、该证书的序列号等信息,证书的格式遵循ITUT X.509国际标准。 

数字证书是各类终端实体和最终用户在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方数字证书的有效性,从而解决相互间的信任问题。

       用户的数字证书是X.509的核心,证书由某个可信的的证书发放机构(CA)建立,并由CA或用户自己将其放入公共目录中,以供其他用户访问。目录服务器本身并不负责为用户创建公钥证书,其作用仅仅是为用户访问公钥证书提供方便。

       X.509中,数字证书的一般格式包含的数据域有:

(1).    版本号

(2).    序列号:为一整数值,由同一发行者(CA)发放的每个证书的序列号是唯一的。

(3).    签名算法识别符:签署证书所用的算法及相应的参数。

(4).    发行者名称:指建立和签署证书的CA名称。

(5).    有效期:包括证书有效期的起始时间和终止时间。

(6).    主体名称:指证书所属用户的名称,及这一证书用来证明私钥用户所对应的公开密钥。

(7).    主体的公开密钥信息:包括主体的公开密钥、使用这一公开密钥的算法的标识符及相应的参数。

(8).    发行者唯一识别符:这一数据项是可选的,当CA名称被重新用于其他实体时,则用这一识别符来唯一标识发行者。

(9).    主体唯一标识符:这一数据项也是可选的,当主体的名称被重新用于其他实体时,则用这一识别符来唯一地识别主体。

(10).扩充域:其中包括一个或多个扩充的数据项。仅在第三版中使用。

(11).签名:CA用自己的私钥对上述域的哈希值进行数字签名的结果。      

1.2   证书的获取

       CA为用户产生的证书应有以下特性

(1).    其它任一用户只要得到CA的公开密钥,就能由此得到CA为该用户签署的公开密钥。

(2).    CA外,其它任何人员都不能以不被察觉的方式修改证书的内容。

       因为证书是不可伪造的,因此无需对存放证书的目录施加特别的保护。

       如果所有用户都由同一CA为其签署证书,则这一CA就必须取得所有用户的信任。用户证书除了能放在目录中供他人访问外,还可以由用户直接把证书发给其他用户。用户B得到A的证书后,可相信用A的公钥加密的消息不会被他人获悉,还相信用A的私钥签署的消息是不可伪造的。

       如果用户数量多,则仅一个CA负责为用户签署证书就可能不现实,通常应有多个CA,每个CA为一部分用户发行、签署证书。

       设用户A已从证书发放机构X1处获取了公开密钥证书,用户B已从X2处获取了证书。如果A不知X2的公钥,则他虽然能读取B的证书,但却无法验证用户B证书中X2的签名,因此B的证书对A来说是没有用处的。然而,如果两个证书发放机构X1X2彼此间已经安全地交换了公开密钥,则A可通过以下过程获取B的公开密钥:

(1).    A从目录中获取由X1签署的X2的证书X1X2》,因A知道X1的公开密钥,所以能验证X2的证书,并从中得到X2的公开密钥。

(2).    A再从目录中获取由X2签署的B的证书X2B》,并由X2的公开密钥对此加以验证,然后从中得到B的公开密钥。

       以上过程中,A是通过一个证书链来获取B的公开密钥的,证书链可表示为

X1X2X2B

类似地,B能通过相反的证书链获取A的公开密钥,表示为

X2X1X1A

       以上证书链中只涉及两个证书,同样有N个证书的证书链可表示为

X1X2X2X3》……XNB

       此时,任意两个相邻的CAXiCAXi1已彼此间为对方建立了证书,对每一CA来说,由其它CA为这一CA建立的所有证书都应存放于目录中,并使得用户知道所有证书相互之间的连接关系,从而可获取另一用户的公钥证书。X.509建议将所有CA以层次结构组织起来,用户A可从目录中得到相应的证书以建立到B的以下证书链:

XWWVVUUYYZZB

并通过该证书链获取B的公开密钥。

       类似地,B可建立以下证书链以获取A的公开密钥:

XWWVVUUYYZZA

1.3   证书的吊销

       从证书的格式上可以看到,每一证书都有一个有效期,然而有些证书还未到截至日期就会被发放该证书的CA吊销,这可能是由于用户的私钥已被泄漏,或者该用户不再由该CA来认证,或者CA为该用户签署证书的私钥已经泄漏。为此,每个CA还必须维护一个证书吊销列表CRLCertificate Revocation List),其中存放所有未到期而被提前吊销的证书,包括该CA发放给用户和发放给其他CA的证书。CRL还必须由该CA签字,然后存放于目录中以供他人查询。

       CRL中的数据域包括发行者CA的名称、建立CRL的日期、计划公布下一CRL的日期以及每一被吊销的证书数据域。被吊销的证书数据域包括该证书的序列号和被吊销的日期。对一个CA来说,它发放的每一证书的序列号是唯一的,所以可用序列号来识别每一证书。

       因此,每一用户收到他人消息中的证书时,都必须通过目录检查这一证书是否已经被吊销,为避免搜索目录引起的延迟以及因此而增加的费用,用户自己也可维护一个有效证书和被吊销证书的局部缓存区。

1.4   SHTTPSET

1.4.1 SHTTP

目前,受经济利益的驱动,在商业数据的网络传输过程中信息经常遭到不法之徒的拦截、窃取、篡改、冒用甚至恶意破坏,给商务活动带来重大的损失。因此,建立安全的电子交易体系,提高网络数据的传输安全,已经成为电子商务正常发展的基本保障。

1. 安全电子交易的发展

第一阶段:最初订货方式通过HTML,顾客可以填写、打印并通过普通邮件寄回订单。销售商目录是联机的,订货处理程序却不是。

第二阶段:销售商建立客户可以联机提交的订单。简单的订单需要用户在一张或多张HTML表单中输入数据,HTML前端通常根据商品数据库动态生成。

第三阶段:采用售货车应用程序,通过使用HTTPCookiesHTTP报头,允许用户浏览联机目录,并从多个页向虚拟售货车添加项目,后端系统保存所有选中项目,以便在虚拟交易会话结束时购买。

由于交易双方信息交换能力的增强,交互式操作中的数据传输安全越来越重要,电子商务安全机制也经历了由明文传输发展到集加密传输、数字签名和安全认证于一体的安全机制过程。

1)明文HTTP基于Web的交易使用标准Web协议和标准信用卡来完成支付。客户使用HTTP页和HTTP表单销售商发送支付信息。HTTP是明文文本协议,网络分析员有机会获得明文,并得到账单信息,例如信用卡号。

(1)       安全HTTP(SecureHTTP,即SHTTP)HTTP协议的扩展,目的是保证商业贸易的传输安全,促进电子商务的发展。由于SSL的迅速出现,SHTTP未能得到广泛应用。

 3HTTPSSLNetscape公司为TCP/IP套接字开发的一种加密技术,它是基于通道的加密方法,用于提高应用层协议(HTTPTelnetFTP)等的安全性,增强通信应用程序间的保密性和可靠性。其功能包括数据加密、服务器验证、信息完整性以及可选的客户TCP/IP连接验证。

SSL可使用各种类型的加密算法和密钥验证机制,与SHTTP相似,SSL提供加密HTTP网络数据包的能力。SHTTPHTTP协议层工作,SSL在套接字层工作,能加密多种其他基于套接字的Internet协议。SSL的客户机和服务器之间的谈判与套接字谈判的处理过程相似。SSL不同于SHTTP之处在于:后者是HTTP的超集,只限于Web的使用;前者则是通过Socket发送信息,SSL是一个通过Socket层对客户和服务器间的事务进行安全处理的协议,适用于所有TCP/IP应用。SSL包括客户和服务器之间协商加密算法类型的信息和交换证书与密钥的信息。

目前SSL基本取代了SHTTP。大多数Web贸易均采用传统的Web协议,并使用SSL加密的HTTP来传输敏感的账单信息。各种Web交易应用程序都提供相似功能,其后端系统正在被商品化的商用服务器产品所取代。较为复杂的实时支付确认系统需要与商业银行中的商业系统集成。复杂性较小的系统可延迟支付确认,直到所需的交易移到贸易商的常规帐单系统。

2. 网络支付的安全性

在网络交易的过程中,电子支付是最重要的环节,而网络支付手段的安全性又是电子商务安全的核心内容。目前较为普及的货币形式的电子支付(如信用卡)以外,数字货币也正在不断完善之中。

1.信用卡的电子支付

电子支付的目的是让网络的消费者方便可靠地向商业机构付款。以信用卡付款系统为例,商业销售公司购买安装电子支付服务器软件,到银行注册使用它。软件在WWW上运行,接受用户的购物请求。用户在个人计算机上安装钱夹软件,用来加密储存用户的多个信用卡信息,保证信息在网络的安全传输。 信用卡的电子支付的不足是它不能隐匿消费者的身份,消费者的交易信息会留下记录。此外,信用卡的运行维护费用较高,加重了消费者的额外负担。

2.数字货币

数字货币是一种正在完善的更为简便安全的支付工具,其内容采用加密技术,或将其存储在带加密和防破坏的卡片上。一些数字货币需要软件执行,另一些则需要新硬件(如智能卡)。智能卡与信息卡相似,带有一个存储信息的微处理器,它可使用数字签名及其他的加密形式,因而比普通信用卡更安全。

大多数类型的数字货币都有自己的协议,用于消费者、销售商和发行者间交换金融申请。该协议由后端服务器软件和客户方的钱夹软件执行。钱夹软件可以用来生成数字货币的序号,加密与银行的通信等。使用数字货币也存在一些问题,比如数字货币极易被复制,因此只能一次性使用;此外,它在流通过程中的每一步都需要银行的直接参与,交易商、消费者和银行三方都需要互相保留数字签名的“收据”,以供日后核实;还有,数字货币只要被偷看就等于丢失,且无法找回。

总之,SHTTP采用一种和SSL不同的方法。它通过扩展HTTP协议(应用层)来运作,优于一个较低层。因此,尽管SSL可以应用于所有的网络服务,然而SHTTP是一个特定的Web协议。另外,SHTTP的优点是作为HTTP的扩展集,SHTTP全兼容于HTTP和SHTTP的浏览器和服务器,是一个更灵活的协议。

1.4.2 安全电子交易(SET)

SET本身不是一个支付系统,而是一个安全协议和格式的集合,使得用户可以以一种安全的方式,将已经存在的信用卡支付基础设施配置在开放网络上,例如Internet

从本质上讲,SET提供3种服务:

l           在交易涉及的各方之间提供安全的通信信道

l           通过使用X.509数字证书来提供信任

l           保证机密性,因为信息只是在必要的时候、必要的地方才对交易的各方可用。

1. 需求

SET的需求来源于在Internet和其它网络上使用信用卡进行安全支付处理的商业活动,如

l           对制度和订购信息提供机密性

l           保证所有传输数据的完整性

l           对卡的拥有者是否是信用卡帐户的合法用户提供鉴证

l           通过与金融机构的关系对商人是否可以接受信用卡交易提供鉴证

l           保证使用最好的安全策略和系统设计技术来保护电子商务交易中的所有合法方

l           创建既不依赖于运输层安全机制又不阻止它们使用的协议

l           方便和鼓励软件和网络提供者之间的互操作:SET协议和格式独立于硬件、操作系统和Web软件。

2. SET的关键特征

l          信息的机密性:

l          数据的完整性:

l          卡用户帐号的鉴别:

l          商人的鉴别:

3. SET的参加者

l          卡用户

l          商人

l          发行人:即银行

l          获得者:金融机构:与商人之间建立一个帐号并且处理支付卡的授权和支付的机构。

l          支付网关:是获得者或指派的第三方所操作的处理商业支付报文的功能

l          证书管理机构(CA):是可信任的向卡用户、商人和支付网关发行X.509v3公开密钥证书的一个实体

4. 交易过程

(1)         (消费者)开通帐号:从支持电子支付和SET的银行处获得信用卡帐号。

(2)         (消费者)收到证书:收到经银行签名的X509v3数字证书(其中确定了顾客的RSA公钥和它的有效期,也在顾客的密钥对与其信用卡之间建立了由银行保证的一种关系。

(3)         商人拥有自己的证书:接受特定信用卡的商人必须获得它所拥有的两个公开密钥的两个证书;一个用于对报文签名,一个用于密钥交换。商人还需要支付网关的公钥证书的副本。

(4)         顾客提出一项订购:顾客把欲订购的货物清单发送给商人,商人返回包含了货物列表、价格、总价格和订购号码的表格,以及其证书的副本。

(5)         商人被验证:顾客用商人证书的副本验证其正在与合法的商店打交道。

(6)         发送订购和支付消息:顾客将定单、支付信息、自己的证书发给商人。

(7)         商人请求支付认可:商人将支付信息发给支付网关(请求核准顾客的存款是否足以支付这次购买)。

(8)         商人确认该项订购:商人将订购的确认发送给顾客。

(9)         商人提供货物或服务。

(10)      商人请求支付:该支付请求被发送给支付网关,后者处理所有的支付处理。

5. 交易细节

交易细节共分三步,即购买请求、支付认可和支付获取。

1)购买请求

先期的工作(即使用SET之前):卡用户已经完成了浏览、选择和订购。当商人将完整的订购表格发送给顾客时,此初始阶段即宣告结束。

购买请求交换的报文组成:发起请求、发起响应、购买请求和购买响应。

①发起请求:为了向商人发送SET报文,卡用户必须拥有商人和支付网关证书的副本。顾客在发送给商人的发起请求报文中请求这些证书。该报文包括顾客使用的信用卡的商标,还包括顾客赋予这个请求/响应对的一个ID和使用保证时间线的一个时戳。

②发起响应:商人生成响应,并用自己的私钥对其签名。响应包括

l       来自顾客的时戳

l       另一个为顾客在下一个报文返回的时戳

l       此次购买交易的一个交易ID

l       商人的签名证书

l       支付网关的密钥交换证书

③购买请求:卡用户通过相应的CA签名来商人和网关证书,然后创建订购信息(OI)和支付信息(PI)。商人赋予的交易ID被放在OIPI中。OI中并不包含明显的订购数据(如货物数量、价格等)。相反,它包含了在第一个SET报文之前购物阶段期间,在商人和顾客之间交换时生成的订购的引用。接下来卡用户准备购买请求报文,为此,卡用户生成了一次性的对称加密密钥Ks。报文包括以下三方面内容

 a) 与购买相关的信息:将被商人转发给支付网关,组成部分有:

l       PI

l       双向签名,在PIOI上计算,使用顾客的私有签名密钥进行签名

l       IO报文摘要(OIMD)(支付网关需要OIMD来验证双向签名与签名解释的一样。以上3项都用Ks加密

l       数字信封:是通过对Ks和支付网关的公开密钥交换的密钥进行加密而形成的(之所以被称为数字信封,是因为前面列出的其它项目可读之前必须打开(解密)这个信封。

对商人而言,Ks的值是不可用的。因此,他不能读任何与这个支付有关的任何消息。

 b)              与订购有关的信息:商人需要,由以下面部分组成:

l       IO

l       双向签名,在PIOI上计算,使用顾客的私有签名密钥进行签名

l       PI报文摘要(PIMD

商人需要PIMD来验证双向签名。注意OI是明文发送的。

 c)              卡用户的证书:包含用户的公开签名密钥。商人和支付网关都需要它。

④购买响应:商人收到购买请求,通过卡用户的CA签名来验证该用户的证书。

l       使用顾客的公开签名密钥验证双向签名。(可确保订购信息在传输过程中未被篡改,且它使用了卡用户的私有签名密钥进行了签名)。

l       处理订购信息,并将支付信息转交给支付网关进行认可。

l       向卡用户发送购买响应。

购买响应报文包括了响应块,该块确认订购并引用了相应的交易号码。商人使用自己的私有签名对这个块进行签名。这个块及其签名加上商人的签名证书一起发送给顾客。

当卡用户的软件收到购买响应报文时,它验证商人的证书,然后验证响应块上的签名。最后,它基于响应采取某些动作(如向用户显示一个消息或者修改数据库中该项订购的状态)

2)支付认可

在处理来自卡用户的一个订购期间,商人请求支付网关认可该项交易。支付认可保证交易得到了发行者的批准,该认可保证商人可以得到支付,因此,商人可以向顾客提供服务或货物。支付认可交换由认可请求和认可响应两个报文组成。

①商人向支付网关发送一个认可请求报文,内容有

l       与购买有关的信息:是从顾客处获得的。

l       与认可有关的信息,是由商人生成的。

l       证书包括卡用户的签名密钥证书(用来验证双向签名)、商人的签名密钥证书(用于验证商人的签名)和商人的密钥交换证书(要用在支付网关的响应中)。

②支付网关完成下面的任务

l       验证所有的证书。

l       解密认可数据块的数字信封以获得对称密钥,然后解密认可数据块。

l       验证认可数据块中商人的签名。

l       解密支付数据块的数字信封以获得对称密钥,然后解密支付数据块。

l       验证支付数据块的双向签名。

l       验证从商人那里收到的交易ID与从顾客那里收到的PI中的交易ID(非直接)是否匹配。

l       向发行者请求和接收一个认可。

从发行者那里获得了认可后,支付网关向商人返回认可响应报文,包括

l       与认可有关的信息:包括认可认可数据块,使用支付网关的私有签名密钥进行签名,并使用网关生成的一次性对称密钥进行加密。还包括了数字信封,该信封包含使用商人的公开密钥交换的密钥进行加密的那个一次性密钥。

l       获取权标信息。该信息将用来影响以后的支付。此数据块的形式与①相同——即签名的加密的获取权标加上数字信封。商人不处理这个权标,而是必须在支付请求中原样返回。

l       证书。网关的签名密钥证书。

获得网关的认可之后,商人可把货物或服务提供给顾客了。

3)支付获取

为了获得支付,商人在支付获取交易中,雇用支付网关,由获得请求和获取响应报文组成。

对于获取请求报文,商人生成、签名和加密获取请求数据块,块中包含支付的数量和交易ID。该报文还包括以前收到的此次交易的加密的获取权标(在认可响应中),以及商人的签名密钥和密钥交换密钥的证书。

当支付网关收到了获取请求报文时,它解密并验证获取请求数据块,解密并验证获取权标块。然后再检查获取请求和获取权标的一致性。接着,又创建清算请求并通过私有支付网络发送给发行者。这个请求引起资金被划拨的商人的帐户中。

接下来,支付网关在获取响应报文中通知商人支付情况。该报文包括网关签名和加密的获取响应数据块。还包括网关的签名密钥证书。商人的软件将此获取响应保存下来,用于同从获得者那里接受的支付相匹配。

 

 

(摘自 西军电 网络与信息安全报告)

0 0

相关博文

我的热门文章

img
取 消
img