第七章安全电子交易协议SET本资料由-校园大学生创业网-提供://www.dailiav.com/提供部分资料SET协议(SecureElectronicTransaction,安全电子交易)是由VISA和MasterCard两大信用卡公司联合推出的规范。。SET主要是为了解决用户、商家和银行之间通过信用卡支付的交易而设计的,以保证支付命令的机密、支付过程的完整、商户及持卡人的合法身份,以及可操作性。SET中的核心技术主要有公开密钥加密、数字签名、数字信封、数字安全证书等。比SSL协议复杂,因为前者不仅加密两个端点间的单个会话,它还可以加密和认定三方间的多个信息7.1SET协议概述SET是在开放网络环境中的卡支付安全协议,它采用公钥密码体制(PKI)和X.509电子证书标准,通过相应软件、电子证书、数字签名和加密技术能在电子交易环节上提供更大的信任度、更完整的交易信息、更高的安全性和更少受欺诈的可能性。SET协议用以支持B-C这种类型的电子商务模式,即消费者持卡在网上购物与交易的模式。SET在保留对客户信用卡认证的前提下,又增加了对商家身份的认证,这对于需要支付货币的交易来讲是至关重要的。SET协议得到了IBM、HP、Microsoft、VeriFone、GTE、Verisign等许多大公司的支持,已成为事实上的工业标准。目前,它已获得了IETF标准的认可。SET协议的发展1996年2月,MarsterCard和Visa国际信用卡组织与技术合作伙伴GTE、Netcape、IBM、TerisaSystems、Verisign、Microsoft、SAIC等一批跨国公司共同开发了安全电子交易规范(SET)。1997年2月,由MasterCard和Visa发起成立SETCO公司.SETCO建设认证体系(CA)。为了推动电子商务的发展,首先要验证或识别参与网上交易活动的各个主体(如持卡消费者、商户、收单银行的支付网关)的身份,并用相应的电子证书代表他们的身份。各级认证机构根认证机构(RootCA)、品牌认证机构(BrandCA),持卡人商户收单行支付网关认证机构(HolderCardCAorMerchantCAorPaymentGatewayCA)由上而下按层次结构建立的根认证机构(RootCA)功能:⑴生成和安全保存符合SET协议要求的属于根认证机构的公、私密钥。⑵生成和自行签署符合SET协议要求的根证书及其数字签名。⑶处理品牌认证机构的申请,生成、验证品牌证书并在品牌证书上进行数字签名。⑷生成品牌证书撤销清单。⑸支持跨域交叉认证。⑹制定安全认证政策。7.1.1安全付费需求1.付费与订购信息的保密性;2.确保所有传输数据的完整性;3.提供认证,确保每一个信用卡账户的持卡人都是合法的;4.提供认证,确保商家能根据与金融机构的关系,提供可信任的信用卡交易;5.确保使用最佳的安全操作及系统设计技术,以保护所有在电子商务交易上的合法当事人;6.SET能够在TCP/IP层上安全的运行。7.促进及鼓励软件和网络提供者之间的合作:7.1.2SET协议的功能及其重要特征SET协议是信用卡在因特网上进行支付的一种开放式安全协议和格式.解决持卡人、商家和银行之间通过信用卡来进行网上支付的交易,旨在保证支付命令的机密性、支付过程的完整性、商家以及持卡人身份的合法性以及可操作性。SET协议分为三个阶段:第一阶段为购买请求阶段,持卡人与商家确定所用支付方式的细节;第二阶段是支付的认定阶段,商家与银行核实,随着交易的进行,他们将得到支付;第三阶段为受款阶段,商家向银行出示所有交易的细节,然后银行以适当方式转移货款。SET一个基于可信的第三方认证中心的方案,主要目标是:⑴保证信息在互联网上安全传输,防止数据被黑客或被内部人员窃取。⑵保证电子商务参与者信息的相互隔离。客户的资料加密或打包后通过商家到达银行,但是商家不能看到客户的账户和密码信息。⑶解决多方认证问题。不仅要对消费者的信用卡认证,而且要对在线商店的信誉程度认证,同时还有消费者、在线商店与银行间的认证。⑷保证网上交易的实时性,使所有的支付过程都是在线的。⑸效仿EDI贸易的形式,规范协议和消息格式,促使不同厂家开发的软件具有兼容性和互操作功能,并且可以运行在不同的硬件和操作系统平台上。7.2SET交易的参与者CardholderInternetMerchantInternetPaymentgatewayCertificateauthorityIssuerPaymentnetworkAcquirer持卡人特约商店发卡银行收单银行收单银行(Acquirer)收单银行建立一个特约商店的账户,对信用卡做认证处理与账款的处理。特约商店通常会接受几个不同发卡公司,但不会同时和多个不同的银行卡协会或多个个体发卡银行合作。收单银行会协助特约商店做认证,核对信用卡账户是否有效,以及消费金额是否超出信用额度。收单银行提供电子转账的服务,它会将消费者支付转到特约商店的账户去。接着,发卡银行会经过某种付费网络,对收单银行补偿其协助电子资金转换所需的费用。收单银行的利益主要来源于商户回佣、商户支付的其他服务费(如POS终端租用费、月费等)及商户存款增加。大多数发卡银行都兼营收单业务,也有一些非银行专业服务机构经营收单业务。支付网关(Paymentgateway)支付网关是连接银行专用网络与Internet的一组服务器,其主要作用是完成两者之间的通信、协议转换和进行数据加、解密,以保护银行内部网络的安全。支付网关的功能主要有:将Internet传来的数据包解密,并按照银行系统内部的通信协议将数据重新打包;接收银行系统内部反馈的响应消息,将数据转换为Internet传送的数据格式,并对其进行加密。完成安全性的电子交易的过程1.消费者开立账户。首先消费者要在有支持电子支付及SET的银行建立信用卡账户,比如MasterCard或Visa。2.消费者收到证书。银行签署的X.509v3数位证书。这个证书用来核对消费者的RSA公开密钥及密钥的有效期限。同时,也建立了消费者的密钥组与信用卡之间的关系,并由银行来保证这个关系。3.特约商店证书。接受某家公司的信用卡的特约商店必须拥有两个证书,分别包含一把公开密钥:一个用来签署信息,一个是用在密钥交换。特约商店也要保留一份支付网关的公开密钥证书。4.消费者订购。5.特约商店核对。除了订购单,特约商店会发送它们的证书副本,而消费者可以核对所消费的商店是否为合法有效的。6.发送订单及支付。消费者将其订单、支付命令与其证书传送给特约商店。这份订单对所支付的款项进行核对。支付中会包含了信用卡的细节。因此支付的信息要经过加密,才不会被特约商店获取其中的重要信息。而消费者的证书可以让特约商店核对消费者身份。7.特约商店请求支付认证。特约商店在这个时候会向支付网关传送支付命令,并且请求核对消费者的信用卡是否能支付这笔款项。8.特约商店核准订单。特约商店将核准的订单信息传送给消费者。9.特约商店提供其货物或服务。将消费者订购的商品装运,或提供给消费者其它服务。10.特约商店请求支付。商店将请求支付的消息送到支付网关,支付网关会处理支付工作。7.3SET协议采用的加密和认证技术SET使用多种密钥技术来达到安全交易的要求,其中对称密钥技术、公钥加密技术和Hash算法是其核心。综合应用以上三种技术产生了数字签名、数字信封、数字证书等加密与认证技术。⑴对称密钥加密SET协议缺省使用由IBM公司制定的DES(DataEncryptionStandard)标准。DES将数据分割成64位的数据块,用56位的密钥对其进行一系列的数学变换后产生密文,然后接收者用同一密钥将密文解译成明文。对称密钥加密的优点时加密、解密效率高,适用于大数据量加密与解密。其缺点是密钥没有安全的传递方式,容易被截获,不能适应大范围应用。⑵公钥加密技术缺点是加密与解密速度慢,比DES算法慢10倍以上。所以它只适用于少量数据的加密和用于对称密钥的传递。RSA的密钥长度可从512bit至2048bit。SET中使用1024bit、2048bit两种长度,以满足不同等级的加密要求。⑶Hash算法Hash算法并不是加密算法,但却能产生信息的数字“指纹”,主要用途是为了确保数据没有被篡改或发生变化,以维护数据的完整性。Hash算法有三个特征:能处理任意大小的信息,并生成固定长度(160bit)的信息摘要。具有不可预见性。信息摘要的大小与原信息的大小没有任何联系。原信息的一个微小变化都会对信息摘要产生很大的影响。具有不可逆性。没有办法通过信息摘要直接恢复原信息。SET使用SHA1安全Hash算法。⑷数字签名A用其私钥加密文件,这便是签字过程;A将加密的文件送到B;B用A的公钥解开A送来的文件;签名方法是符合可靠性原则的。即:签字是可以被确认的签字是无法被伪造的签字是无法重复使用的文件被签字以后是无法被篡改的签字具有不可否认性将数字摘要和数字签名结合明文AliceBobA的私钥HiBobAliceA的公钥摘要哈希函数gJ39vzamp4xOurjj9rRr%9$数字签名HiBobAlice明文Ourjj9rRr%9$数字签名HiBobAlice明文gJ39vzamp4x新摘要哈希函数gJ39vzamp4x=?相同1、没有篡改2、是Alice发送的1234567⑸数字信封技术加密过程对称密钥明文数据密文发送方解密过程接收方私钥接收方加密过程接收方公钥被加密的密钥数据密文解密过程对称密钥明文密文密文对称密钥被加密的密钥对称密钥⑺双重签名双重签名的目的在连结两个不同接收者消息。在这里,消费者想要发送订单信息OI到特约商店,且发送支付命令PI给银行。特约商店并不需要知道消费者的信用卡卡号,而银行不需要知道消费者订单的详细信息。消费者需要将这两个消息分隔开,而受到额外的隐私保护。在必要的时候这两个消息必须要连结在一起,才可以解决可能的争议、质疑。这样消费者可以证明这个支付行为是根据他的订单来执行的,而不是其它的货品或服务。先假设消费者发送两个消息给特约商店:签名过的OI及PI,而特约商店将PI的部分传递给银行。如果这个特约商店能获得这个消费者的其它OI,那么特约商店就可以声称后来的这个OI是和PI一起来的,而不是原来的那个OI。因此如果将两个消息连结起来,就可以避免这样的情况发生。PIHPIMDOIHOIMDHPOMDEDualsignatureKRcPI:支付命令PIMD:PI消息摘要OI:订单信息OIMD:OI消息摘要H:哈希函数(SHA-1)POMD:支付/订单消息摘要‖:连结E:加密函数(RSA)KRc:用户私钥图7.2双重签名的生成过程双重签名生成公式DS=EKRc[H(H(PI)||H(OI))]其中EKRc是表示消费者的私人密钥。现在假设特约商店拥有这个双重签名(DS),OI和PI的消息摘要(PIMD)。并且特约商店也从消费者的证书中得到消费者的公开密钥。特约商店计算出两个数:H(PIMD||H(OI))DKUc[DS]其中DKUc为消费者的公开密钥。如果这两个数计算出的结果相同,则特约商店就可核准这个签名。相同地,如果银行拥有DS,PI,与OI的消息摘要(OIMD),及消费者的公开密钥,则银行可计算如下:H(H(PI)||OIMD)DKUc[DS]总结如下特约商店接收到OI,可以验证签名确认OI正确性。银行接收到PI,也可验证此签名确认PI的正确性。消费者则将OI及PI连结完成,并且可以证明这个连结的正确性。王先生要买李小姐的一处房产,他发给李小姐一个购买报价单及对他对银行的授权书的消息,要求银行如果李小姐同意按此价格出卖,则将钱划到李小姐的帐上。但是王先生不想让银行看到报价,也不想让李小姐看到他的银行帐号信息。此外,报价和支付是相连的