第6章安全电子交易协议安全电子交易(SET)是目前已经标准化且被业界广泛接受的一种网际网络信用卡付款机制。SET协议包括SET的交易流程、程序设计规格与SET协议的完整描述三部分,在SET协议中主要定义了以下内容:(1)加密算法(如RSA和DES)的应用;(2)证书消息和对象格式;(3)购买消息和对象格式;(4)请款消息和对象格式;(5)参与者之间的消息协议。SET协议确保了网上交易所要求的保密性、数据的完整性、交易的不可否认性和交易的身份认证。SET协议主要使用的技术包括:对称密钥加密、公钥加密、Hash算法、数字签名、数字信封以及数字证书等技术。6.1SET支付系统中的相关成员6.2SET的相关技术6.3SET证书管理6.4SET流程6.1SET支付系统中的相关成员SET支付系统主要由持卡、商家、发卡行、收单行、支付网关及认证机构等六个部分组成。1.持卡人持卡人是网上消费者或客户。2.商家商家是SET支付系统中网上商店的经营者。3.支付网关支付网关一边连接因特网,一边通过银行网络与收单银行相连。4.认证机构认证机构是参与交易各方都信任的第三方中立组织。6.2SET的相关技术SET使用多种密钥技术来达到安全交易的要求,其中对称密钥技术、公钥加密技术和Hash算法是其核心。1.对称密钥加密对称密钥加密算法是给一条信息加密时,发送者和接收者都用同一密钥完成加密和解密过程。2.公钥加密技术公钥加密算法用一对密钥对数据进行加密和解密。3.Hash算法Hash算法能产生信息的数字“指纹”Hash算法有三个特性:(1)能处理任意大小的信息,并生成固定长度(160bit)的信息摘要。(2)具有不可预见性。(3)具有不可逆性。4.数字签名首先将要发送的信息通过Hash算法形成信息摘要,然后再用发送者的私人密钥加密,生成的结果附加到原信息上去,就生成了原信息的数字签名。双重数字签名是为了保证在事务处理过程中三方安全地传输信息的一种技术,用于三方通信时的身份认证和信息完整性、交易防抵赖的保护。5.数字信封发送方将随机产生的对称密钥用接收方的公开密钥交换密钥加密就形成了数字信封。6.数字证书数字证书是由交易各方都信任的第三方机构CA发放的,是证明拥有者公开密钥有效性的凭证。数字证书包含拥有者的公开密钥、详细个人资料(包括持卡人的银行账号)的信息摘要及证书签发机构的数字签名。SET协议的信息加、解密和传输过程综合使用了前面介绍的各种安全技术。如图6-1所示。信息对称密钥Alice的签名私钥Alice的签名公钥加密方法小结发送者Alice接收者Bob消息摘要数字签名数字信封Bob的交换私钥数字签名Bob的密钥交换公钥加密信息加密信息对称密钥加密信息数字信封信息摘要M1信息摘要M2比较数字信封加密加密加密解密解密解密图6-1加密方法示例6.3SET证书管理6.3.1证书的信任链层6.3.2证书的颁发目前SET协议定义的证书颁发有三种方式:E-mail方式、Web方式和离线方式。一般以Internet交互性为标准,将它们分为两类:交互式(如Web)和非交互式(如E-mail、离线方式)。Web方式已成为证书颁发的首选途径。根据证书颁发的全过程(以持卡人通过Web申请证书为例),申请者与CA需经历三个阶段,并通过三对不同的消息变量来实现双方的信息传递。1.持卡人申请证书的请求/应答过程2.持卡人申请登记表的请求/应答过程3.证书请求和生成过程6.3.3证书的更新出于安全方面的考虑,密钥都有一定的使用期,因此所有的证书都需要定期更新。6.3.4证书的废除证书废除是整个证书管理机制中最强有力的安全保障手段,它能够及时避免证书面临危险时对SET交易的影响。SET协议针对参与交易的不同对象,制定了具体的证书废除过程。1.持卡人证书的废除2.商户证书的废除3.支付网关证书的废除4.CA证书的废除6.4SET流程在Internet上实现一个完整的SET交易主要包括持卡人注册申请证书、商户注册申请证书、购买请求、支付认证、获取付款5个步骤。如图6-2所示。表示密钥密钥的齿代表密码的所有者(如商家MERCHANT、持卡人CARDHOLDER、支付网关PAYMENTGATEWAY)标有PB代码的密钥是公钥标有PV代码的密钥是私钥带有菱形标志的密钥是签名密钥带有钥匙标志的密钥是用来交换密钥的密钥。表示数字签名首字母代表签名者(商家M、持卡人C、支付网关P)例如,左例是商家用其私钥创建的签名表示双重签名,首字母代表签名者例如,这是持卡人用其签名私钥创建的双重签名表示证书;“印章”上的首字母代表在证书上签名的私有密钥的所有者;证书上的字母代表被认证的公开密钥的所有者;菱形和钥匙符号是用来区别签名密钥和密钥交换密钥;如左例中的“CA”字母说明这些证书是由认证中心签字颁发的;“M”说明他们是商家的证书表示对称密钥,用来加密数据;它将总是通过数字信封与被加密的数据一起送出;数字是表示在某个处理模式中所用的对称密钥号码表示信用卡,用来表示持卡人的账户号码与对称加密密钥一起正在数据信封中被传送表示在数字信封里被传输的账户信息,这些信息是用于向商家和支付网关请求注册的图6-2图例表示密钥密钥的齿代表密码的所有者(如商家MERCHANT、持卡人CARDHOLDER、支付网关PAYMENTGATEWAY)标有PB代码的密钥是公钥标有PV代码的密钥是私钥带有菱形标志的密钥是签名密钥带有钥匙标志的密钥是用来交换密钥的密钥。表示数字签名首字母代表签名者(商家M、持卡人C、支付网关P)例如,左例是商家用其私钥创建的签名表示双重签名,首字母代表签名者例如,这是持卡人用其签名私钥创建的双重签名表示证书;“印章”上的首字母代表在证书上签名的私有密钥的所有者;证书上的字母代表被认证的公开密钥的所有者;菱形和钥匙符号是用来区别签名密钥和密钥交换密钥;如左例中的“CA”字母说明这些证书是由认证中心签字颁发的;“M”说明他们是商家的证书表示对称密钥,用来加密数据;它将总是通过数字信封与被加密的数据一起送出;数字是表示在某个处理模式中所用的对称密钥号码表示信用卡,用来表示持卡人的账户号码与对称加密密钥一起正在数据信封中被传送表示在数字信封里被传输的账户信息,这些信息是用于向商家和支付网关请求注册的6.4.1持卡人注册申请证书图6-3描述了持卡人通过SET协议申请证书的流程。图6-3申请证书的流程持卡人的注册持卡人的计算机发出请求认证机构处理持卡人要求注册认证机构发出响应持卡人获得响应并请求注册表格持卡人收到表格并请求证书持卡人收到证书认证机构处理请求和发出注册表格认证机构处请求和创建证书请求响应注册表格请求注册表格持卡人的证书请求持卡人的证书具体过程如下:1.启动电子钱包,发送初始请求图6-5CA发送响应消息认证机构(CA)处理过程初始化请求初始化响应2.CA接受初始化请求。3.认证机构产生响应消息及响应消息的信息摘要并用其签名私钥加密来生成数字签名。4.CA将响应消息连同证书发送给持卡人。2.CA发送响应如图6-5所示。3.接收响应图6-6接收响应过程5.持卡人的软件收到初始化响应消息并遍历信任链以校验证书。9.持卡人用一个随机产生的对称密钥(#1)来加密请求信息,并将其连同持卡人的账号一起用认证机构的公开密钥交换密钥加密。持卡人的计算机6.持卡人的软件用认证机构的签名公钥解密其数字签名并将结果与新产生的响应消息的Hash值比较来验证CA签名。7.持卡人输入账号。8.持卡人的软件产生注册请求。10.持卡人软件把加密的注册表请求消息传输给CA。初始化响应注册表请求4.CA处理请求并发送注册表上述过程如图6-7所示。注册表认证机构处理过程注册表请求11.CA用其私有密钥交换密钥解密持卡人账号及对称密钥(#1),然后用对称密钥(#1)解密注册表请求。12.CA确定适当的注册表,然后产生注册表的消息摘要,并用其私有签名密钥生成其数字签名。13.CA将注册表和CA的证书发送给持卡人。图6-7CA处理请求并发送注册表过程图6-8持卡人接收注册表并请求证书过程持卡人的计算机16.持卡人的软件产生签名密钥对。14.持卡人的软件收到注册表并且通过信任链追溯到根CA的公钥来验证CA证书。15.持卡人的软件用CA的签名公钥来解密CA的签名并将结果与新生成的注册表的Hash值比较以验证CA的签名。17.持卡人填写注册表。18.持卡人的软件产生证书请求,包括填入注册表的信息。19.持卡人的软件将证书请求、持卡人的签名公钥及新产生的对称密钥(#2)一起组成信息,然后生成证书请求的信息摘要并用持卡人的签名私钥加密来创建数字签名。20.持卡人软件用一个随机产生的对称密钥(#3)加密信息。这个密钥连同持卡人账户信息一起用CA的密钥交换公钥加密。21.持卡人软件把加密的证书请求信息传送给CA。注册表持卡人的证书请求5.持卡人接收注册表并请求证书如图6-8所示。6.CA处理请求并产生证书如图6-9所示。图6-9产生证书过程持卡人证书请求持卡人证书22.CA用其私有交换密钥解密对称密钥(#3),然后用对称密钥(#3)解密证书请求。23.CA用持卡人签名公钥解密持卡人签名并将结果与新产生的证书请求的Hash值进行比较,来校验持卡人签名。24.CA用持卡人账户信息和注册表格上的信息校验其与证书请求信息是否一致。25.一旦通过校验,CA创建持卡人证书,并用其私有签名密钥签署证书。26.CA产生证书响应信息,然后生成响应信息摘要,并用其私有签名密钥加密来创建数字签名。27.CA用来自持卡人请求信息中的密钥加密证书请求。28.CA把证书响应传送给持卡人。认证机构(CA)处理6.4.2商户注册申请证书6.4.3购买请求购买请求的过程如图6-11所示。购物应答商家计算机购物请求持卡人计算机持卡人开始请求持卡人收到应答并发送请求持卡人收到购物应答购物请求初始化响应初始化请求商家发送证书商家处理请求信息图6-11购买请求过程1.持卡人(cardholder)初始化请求图6-12初始化请求过程持卡人计算机初始请求1.持卡人购物。2.持卡人软件发送初始化请求给商家。2.商家发送证书如图6-13所示。图6-13商家发送证书4.商家软件产生响应,并生成响应消息的信息摘要,然后用商家私有签名密钥进行加密以生成其数字化签名。商家计算机初始化请求初始化响应3.商家软件收到初始请求。5.商家软件把响应、商家证书和支付网关证书一起发送给持卡人。Merchant3.持卡人接收初始化响应并发送请求如图6-14所示。图6-14发送请求过程持卡人计算机6.持卡人软件接收初始化响应并追溯信任链到根密钥以校验商家和支付网关证书。7.持卡人软件用商家签名公钥解密商家数字签名并把结果同新产生的初始化相应的Hash值做比较来校验它。8.持卡人软件用来自购物阶段的信息生成订单信息。10.持卡人软件通过将订单信息(OI)与付款指令(PI)各自的Hash值链接后用持卡人的签名私钥加密产生双重签名。11.持卡人软件用一个随机产生的对称密钥(#1)加密PI。然后将#1密钥连同持卡人账户信息一起用支付网关的密钥交换公钥加密。12.持卡人软件传送OI和经过加密的PI给商家。初始响应持卡人的购买请求4.商家处理请求报文如图6-15所示。图6-15商家处理请求过程13.商家软件通过追溯信任链至根密钥来校验持卡人证书。14.商家软件通过用持卡人签名公钥解密双重签名并将结果同新生成的订单信息的Hash值与支付指令(PI)的Hash值的链接相比较来校验。人的双联签字。15.商家处理请求(包括为了请款转发PI给付款网关)。16.商家软件生成购买响应信息,包括商家的签名公钥证书和数字签名(用商家签名私钥加密购买响应信息摘要)。17.商家软件向持卡人发出购买响应。18.如果交易被认可,商家将为持卡人送货或提供持卡人所购买的服务。购买响应持卡人的购买请求商家计算机5.持卡人接收购买响应如图6-16所示。图6-16接收购买响应过程19.持卡人软件通过追溯信任链至根密钥来校验商家签名公钥证书。20.持卡人软件通过用商家签名公钥