第8章安全电子交易协议SET8.1安全电子交易协议SET在开放的Internet网络上进行电子商务,技术关键问题有:信息的准确性和安全性。前者是各种网络协议已经解决了的问题,后者则是目前学术界、工商界和消费者最为关心的问题。1996年提出了基于安全数据交换的SET、SEPP等协议模式。安全电子交易协议(SET)主要通过使用多种密码技术对交易数据及支付信息进行加密,以保证信息的保密性,并使用数字证书来验证参与交易各方的身份,因而保护了在Internet上进行交易的各方,包括持卡人、商家、银行等的安全。8.1.1SET协议的功能SET的核心技术主要采用了公开密钥体制加密、数字签名、电子证书等。其交易分为三个阶段进行:第一阶段,在购买请求阶段,持卡人与商家确定所用支付方式的细节第二阶段,在支付的认定阶段,商家会与银行核实,随着交易的进行,他们将得到付款第三阶段,在受款阶段,商家向银行出示所有交易的细节,然后银行以适当方式转移货款SET协议的功能SET是基于可信的第三方认证中心的方案,它要实现的主要目标是:①保障付款安全②确保应用的互通性③达到全球市场的接受性SET协议保证了电子交易的机密性、数据完整性、身份的合法性和不可否认性。8.1.2SET协议的模型SET协议的支付模型8.1.3SET协议的组件SET的组件:电子钱包(ElectronicWallet)商店服务器(MerchantServer)支付网关(PaymentGateway)认证中心(CertificationAuthority,CA)简单的SET交易系统示意图8.2.1和SET有关的密码技术SET的加密过程使用了对称密钥体制)和公开密钥密码体制(非对称密钥体制)。SET依靠密码系统来保证消息的可靠传输,在SET中使用随机生成的对称密钥来加密数据,然后将此对称密钥用接收者的公开密钥加密,称为消息的“数字信封”由于公开密钥和秘密密钥之间存在一定的关系,使用其中一个密钥加密的数据只能用另一个密钥解开,发送者用自己的秘密密钥加密数据给接收者,接收者用发送者的公开密钥解开数据后,就可确定消息来自于哪一个发送者。相当于信息被签名了,称为数字签名。8.2SET的加密技术和认证技术8.2.1和SET有关的密码技术消息摘要惟一对应一个消息或文本的值,由一个单向Hash函数对消息进行运算产生。用发送者的秘密密钥加密摘要附在原文后面,如果消息在途中被篡改,则接收者通过将收到的消息重新进行计算所产生的摘要与原摘要就会不一致,就可以知道消息是否被篡改,消息摘要保证了消息的完整性。8.2.2SET的加密和解密流程SET协议的加密方法分为加密流程和解密流程两个部分。8.2.2SET的加密和解密流程发送方的加密流程8.2.2SET的加密和解密流程接收方的解密流程8.2.3SET的认证技术对用户的网络身份的鉴别称为认证,其主要目的在于确认使用者就是其所声称的对象。一种可行的解决办法是由一个大家都相信的第三方来验证它所声称的对象,这样的第三方就是认证中心。8.2.3SET的认证技术(1)证书在网上交易时,需要向对方提交一个由CA签发的包含个人身份的证书,证书包含了个人的名字和他的公开密钥,以此作为网上证明自己身份的依据。SET规范的证书:①持卡人证书(Cardholdercertificates)持卡人证书代表持卡人合法拥有支付卡,是由金融机构数字签名的,不能由其他第三方产生。持卡人证书不包括账号和过期日期,代替账户信息的是一个秘密值②特约商店证书(Merchantcertificates)特约商家证书表示商家能够接收该支付卡的消费,是由商家的金融机构数字签名的。特约商家证书不能由其它第三方发行,只能由金融机构产生。②特约商店证书(Merchantcertificates)特约商家证书表示商家能够接收该支付卡的消费,是由商家的金融机构数字签名的。特约商家证书不能由其它第三方发行,只能由金融机构产生。③支付网关证书(Paymentgatewaycertificates)支付网关证书由收单行或收单行的处理系统拥有,持卡人从支付网关证书得到公开密钥来加密保护持卡人的账户信息,保证只有收单行才能看到持卡人的账户信息。支付网关证书由支付卡品牌的收单行发行。④收单银行证书(Acquirercertificates)一个收单行必须拥有证书才能使一个CA接收和处理商家从公共和专用网络发出的证书请求。让支付卡品牌来代理处理证书请求的收单行不需要证书。⑤发卡行证书(Issuercertificates)一个发卡行必须拥有证书,CA才能接收和处理来自持卡人的证书请求。(2)证书管理机构(CA)CA是提供身份验证的第三方机构,由一个或多个用户信任的组织实体来承担。在网上交易中,CA的作用主要是对交易的各方进行身份验证。CA的主要功能有:接受注册请求、处理、批准/拒绝请求以及颁发证书。在实际运作中,CA也可以由大家都信任的一方担当。(3)证书的树型验证机制CA采用层次式结构,最上面一层称为根CA,一般由国际上的权威机构担任,下面的CA由上层CA授权。作为各级CA,不仅要为交易的各方发放证书,还要为下级的CA发放证书,同时自己也要向上级CA申请证书。在网上购物中,持卡人的证书与发卡机构的证书关联,而发卡机构证书通过不同品牌卡的证书连接到RootCA,而Root的公共签名密钥对所有的SET软件都是开放的,可以校验每一个已经签发的证书。8.3SET协议的处理逻辑8.3.1SET购物流程8.3.2SET完整处理流程分析SET协议中,涉及到持卡人、商家、发卡行、收单行、支付网关等方面,其整个处理流程是复杂的,但对持卡人来说,绝大多数的处理是由软件来完成的,其处理流程对用户来说是透明的。(1)持卡人注册持卡人在发卡银行申请并得到持卡人软件后,还要上网,向CA申请证书,下图6描述了持卡人注册的全部流程。(2)商家注册商家在收单银行申请并安装SET商家软件后,也要上网向CA申请证书,图8.7介绍了商家注册流程。(3)购买请求下图描述持卡人订购处理中的购买请求处理流程(4)支付授权下图是商家的支付授权处理流程(5)支付请款下图描述了商家的支付请款流程8.3.3几种不同的授权及确认方式(1)先授权后确认在通常的网上交易中,商家在收到持卡人的购物请求后,先要进行授权,当授权请求被批准后,就可以发货。许多商家在每笔交易授权完成后,并不马上进行确认,而是在一天交易结束后,将一天所有的交易集中起来进行确认。8.3.3几种不同的授权及确认方式(2)授权、确认同时进行网上商店提供的商品可以是有形的,也可以是无形的。以上对这些商品的网上支付,商家如果有把握能够保证及时将商品交到持卡人手上,就可以采用授权和确认同时进行的办法。商家在向网关发授权请求时,将请求消息中的一个表示是否同时确认的标志置为“True”,即表示在授权的同时要进行确认。发卡银行在收到授权并同时确认的请求时,立即将钱从持卡人账户中扣除。8.3.3几种不同的授权及确认方式(3)分批发货商家需建立一个再授权标志,放在授权请求中发送给网关,当网关收到此标志,将生成一个授权凭证,放在授权应答中发送给商家,表示允许商家对同一个支付指令再发一个附加的授权请求。当商家认为需要分批送货时,先发出能立即送货的那一部分商品的授权请求,接着发送确认请求,然后在下一批商品到货后,再发剩余商品的授权请求和确认请求。8.3.3几种不同的授权及确认方式(4)分期付款和定期付款要实现分期付款或定期付款,首先必须商家允许,然后由持卡人在购物请求时明确提出。为实现分期付款或定期付款,持卡人要在支付指令中指明允许多次授权。商家要建立一个再授权标志,放在授权请求中发送给网关,网关收到此标志,将生成一个授权凭证,放在授权应答中发送给商家,表示允许商家对同一个支付指令再发一个附加的授权请求。在每次授权应答中,网关都将发送一个授权凭证给商家,使商家可以再一次进行授权,直到分期付款或定期付款结束。8.3.4SET与传统信用卡交易流程的比较SET交易是在传统的信用卡交易基础上发展起来的,MasterCard、Visa等组织在制定SET协议就考虑到,SET要尽量保持原来的信用卡受理系统不变或仅作较小的变动,并最大限度利用原有系统中的可用部分,并使交易各方得到最大的安全保证。SET系统保持了传统信用卡交易的基本流程,只是将交易过程搬到了Internet上,通过使用证书认证及数字签名等技术,来保证网上交易的安全。8.4.1SET协议分析SET比较复杂,使用比较麻烦、成本较高,且只适合于安装了电子钱包的场合。SET的证书格式使得其受到支付方式的限制。SET协议的保密性好,具有不可否认性,SET的CA有一套严密的认证体系,可以保证B2C类型的电子商务安全地进行。8.4SET协议分析8.4.2SET协议的安全性分析从算法的角度看,SET现在的版本中还存在着加密强度不够等问题,但是它在B2C的电子商务模式中还是比较成功的,在世界范围内已经得到了比较广泛的应用。8.5SET协议和SSL协议的比较SET和SSL除了都采用RSA公开密钥算法外,在其他技术方面则几乎不同,同时RSA在二者中也被用来实现不同的目标。8.5.1SET和SSL协议本身的比较SET是一个多方的消息报文协议,它定义了银行、商家、持卡人之间必须的报文规范,而SSL只是简单地在两方之间建立了一条安全连接。SSL是面向连接的,而SET允许各方之间的报文交换不是实时的。SET报文能够在银行内部网络或者其他网络上传输,而基于SSL协议之上的支付卡系统只能与Web浏览器捆绑在一起。8.5.2SSL和SET性能及费用比较①对于小型和中型电子商务应用,与SSL相比SET没有额外的服务器费用要求,在价格范围和预期负载上,目前其性能足够满足要求。②对于大型电子商务应用,与SSL相比SET在中期要求额外的硬件加速,约占服务器费用的5%~6%。③对于小型支付网关应用,在短期需要硬性加速,但是随着服务器性能的迅速提高和其他性能的提高(如ECC密码技术的使用),也可以不需要额外的费用。④对于大型网关的应用,一般采用集群系统,如果要求额外的硬性加速,约占服务器费用的5%~6%。本章小结SET协议是专门为安全电子支付服务的,它是应用层的协议,由MasterCard和Visa以及共他一些业界主流的厂商设计发布,用于保证在公共网络上特别是Internet进行银行卡交易支付的安全性,通过使用加密、对交易各方身份的认证以及数字签名等技术,能够有效地防止电子商务中的各种诈骗,提高电子商务的安全性。SET可以保证电子交易的安全性,保护交易各方的利益。但在目前来说,所有的安全电子交易都采用基于SET的支付方式还有一定的难度。练习81、试比较SSL协议和SET协议的优劣