第七讲:SSL及SET协议1.SSL工作原理2.SSL协议3.SSL协议的安全性分析4.SET协议一、SSL(SecureSocketLayer)安全套接层协议Securesocketlayer,是Netscape提出的。TLS(TransportLayerSecurity)1.0(RFC2246)=SSLv3.l。设计目标是在TCP基础上提供一种可靠的端到端的安全服务,其服务对象一般是WEB应用。传输层的安全协议。SSLArchitectureIPSSLChangeCipherSpecProtocolSSLAlertProtocolApplicationProtocolTCPSSLRecordProtocolSSLHandshakeProtocolSSLArchitectureSSLProtocolStackHTTPLDAPIMAPSSL位于TCP/IP协议和应用协议之间SSL的体系结构安全套接层协议SSL(securesocketslayer)是由Netscape公司是由设计开发的,其目的是通过在收发双方建立安全通道来提高应用程序间交换数据的安全性,从而实现浏览器和服务器(通常是Web服务器)之间的安全通信。SSL是一种利用公共密钥技术的工业标准,已经广泛用于Internet,它使用的是RSA数字签名算法,可以支持X.509证书和多种保密密钥加密算法。其运行机制是:在建立连接过程中采用公共密钥;在回话过程中采用专有密钥;加密的类型和强度则在两端之间建立连接的过程中判断决定。1、SSL提供的基本服务功能信息保密。使用公共密钥和对称密钥技术实现信息保密。SSL客户机和SSL服务器之间的所有业务都使用在SSL握手过程中建立的密钥和算法进行加密,这样就防止了某些用户进行非法窃听。信息完整性。SSL利用机密共享和Hash函数组提供信息完整性服务。相互认证。是客户机和服务器相互识别的过程。SSL解决的问题(功能)客户对服务器的身份认证SSL服务器允许客户的浏览器使用标准的公钥加密技术和一些可靠的认证中心(CA)的证书,来确认服务器的合法性。服务器对客户的身份认证也可通过公钥技术和证书进行认证,也可通过用户名,password来认证。建立服务器与客户之间安全的数据通道SSL要求客户与服务器之间的所有发送的数据都被发送端加密、接收端解密,同时还检查数据的完整性2.SSL协议通信过程①接通阶段:客户机呼叫服务器,服务器回应客户。②认证阶段:服务器向客户机发送服务器证书和公钥;如果服务器需要双方认证,还要向对方提出认证请求;客户机用服务器公钥加密向服务器发送自己的公钥,并根据服务器是否需要认证客户身份,向服务器发送客户端证书。③确立会话密钥阶段:客户和服务器之间协议确立会话密钥。④会话阶段:客户机与服务器使用会话密钥加密交换会话信息。⑤结束阶段:客户机与服务器交换结束信息,通信结束。握手协议过程(1)第一阶段安全能力的建立(1)客户→服务器:client_hello。(2)服务器→客户:server_hello。第二阶段服务器认证和密钥交换(3)服务器→客户:server_certificate。(4)服务器→客户:server_key_exchange。(5)服务器→客户:certificate_request。(6)服务器→客户:server_hello_done。握手协议过程(2)第三阶段客户认证和密钥交换(7)客户→服务器:client_certificate。(8)客户→服务器:client_key_exchange。(9)客户→服务器:certificate_verify。第四阶段结束阶段(10)客户→服务器:change_cipher_spec。(11)客户→服务器:finished。(12)服务器→客户:change_cipher_spec。(13)服务器→客户:finished。凡是支持送SSL协议的网页,都会以https://作为URL的开头。客户在与服务器进行SSL会话中,如果使用的是微软的IE浏览器,可以在右下方状态栏中看到一只金黄色的锁形安全标志,用鼠标双击该标志,就会弹出服务器证书信息。SSL的安全性服务对终端用户尽可能透明。与标准的HTTP连接申请不同,支持SSL的典型网络主机接收SSL连接的默认端口是443。当客户机连接该端口时,首先初始化握手协议,建立一个SSL对话时段。握手结束后,将对通信加密,并检查信息完整性,直到这个对话时段结束为止。每个SSL对话时段只发生一次握手。4、SSL协议的电子交易过程交易过程的步骤①客户购买的信息首先发往商家;②商家再将信息转发银行;③④银行验证客户信息的合法性后,再通知客户和商家付款成功;⑤商家再通知客户购买成功。当用于银行卡网上支付流程时的缺点首先,客户的银行资料信息先送到商家,让商家阅读,这样,客户银行资料的安全性就得不到保证。其次,SSL协议虽然提供了资料传递过程的安全通道,但SSL协议安全方面有缺少数字签名功能、没有授权和存取控制、多方互相认证困难、不能抗抵赖、用户身份可能被冒充等弱点。SSL的缺陷对于电子商务应用来说,使用SSL可保证信息的真实性、完整性和保密性。但由于SSL不对应用层的消息进行数字签名,因此不能提供交易的不可否认性SSL在全球的大规模使用还有一定的难度。SSL产品的出口受到美国国家安全局(NSA)的限制,美国政府只允许加密密钥为40位以下的算法出口,而美国的商家一般都可以使用128位的SSL,致使美国以外的国家很难真正在电子商务中充分利用SSL二、安全电子交易协议SETSET(SecureElectronicTransaction)是由Visa和MasterCard两大信用卡组织联合开发的电子商务安全协议。它是一种基于消息流的协议,用来保证公共网络上银行卡支付交易的安全性,因而成为Internet上进行在线交易的电子付款系统规范它采用公钥密码体制和X.509数字证书标准,主要应用于BtoC模式中保障支付信息的安全性。SET协议本身比较复杂,设计比较严格,安全性高,它能保证信息传输的机密性、真实性、完整性和不可否认性。SET协议是PKI框架下的一个典型实现,也是一个基于可信的第三方认证中心的方案安全电子交易(SET)SecurityElectronicTransaction。主要是为了解决用户、商家和银行之间通过信用卡支付的交易而设计的,以保证支付信息的机密和支付过程的完整。SET中的核心技术包括公开密钥加密、数字签名、电子信封、电子安全证书等。是一个安全协议的集合。SET协议的目标信息在互联网上安全传输,不能被窃听或篡改用户资料要妥善保护,商家只能看到订货信息,看不到用户的账户信息持卡人和商家相互认证,以确定对方身份软件遵循相同的协议和消息格式,具有兼容性和互操作性安全电子交易SET支付模式SET安全电子商务的构成利用SET协议的典型交易事件序列1.申领信用卡。2.持卡用户获得证书。3.商家获得证书。4.持卡用户订购商品。5.用户对商家的身份认证。6.用户发送订购和支付信息。7.商家请求支付认可。8.商家确认订购。9.供货。10.商家请求支付。SET协议中的角色持卡人:在电子商务环境中,消费者和团体购买者通过计算机与商家交流,持卡人通过由发卡机构颁发的付款卡(例如信用卡、借记卡)进行结算。在持卡人和商家的会话中,SET可以保证持卡人的个人帐号信息不被泄漏。发卡机构:它是一个金融机构,为每一个建立了帐户的顾客颁发付款卡,发卡机构根据不同品牌卡的规定和政策,保证对每一笔认证交易的付款。商家:提供商品或服务,使用SET,就可以保证持卡人个人信息的安全。接受卡支付的商家必须和银行有关系。银行:在线交易的商家在银行开立帐号,并且处理支付卡的认证和支付。支付网关:是由银行操作的,将Internet上的传输数据转换为金融机构内部数据的设备,或由指派的第三方处理商家支付信息和顾客的支付指令。UsingSETinE-commerceTransactionsSET协议的工作原理(1)用户向商家发送购货单和一份经过签名、加密的信托书。书中的信用卡号是经过加密的,商家无从得知;(2)商家把信托书传送到收单银行,收单银行可以解密信用卡号,并通过认证验证签名;(3)收单银行向发卡银行查问,确认用户信用卡是否属实;(4)发卡银行认可并签证该笔交易;(5)收单银行认可商家并签证此交易;(6)商家向用户传送货物和收据;(7)交易成功,商家向收单银行索款;(8)收单银行按合同将货款划给商家;(9)发卡银行向用户定期寄去信用卡消费账单。SET协议规定的工作流程双向签名持卡用户需要将订购信息(OI)和支付信息(PI)一起发送给商家。但是实际上订购信息是发送给商家的,而支付信息是需要发送给银行系统的。为了向持卡用户提供更好的隐私保护,SET将OI和PI分离开来,由不同的机构处理。简单地将OI和PI分离是不行的。这两个方面的信息也必须采用某种必要的方式连接起来,以解决可能出现的争端。双向签名可以连接两个发送给不同接收者的消息报文,可以满足这种需求。双联签名HH‖HEPIOIPIMDOIMDPOMDDSH:杂凑函数(SHA-1)‖:连接PIMD:支付消息摘要OIMD:订购消息摘要POMD:支付定单消息摘要E:加密(RSA)CKSSET支持的交易类型(1)卡用户注册持卡用户在CA中注册,以便能够与商家进行SET报文的交互商家注册商家在CA中注册,以便能够支持与持卡用户和支付网关之间的SET报文交互购买请求持卡用户向商家发送报文,其中包含提交给给商家的订购信息OI和提交给的银行系统的支付信息PI支付认可支付认可是商家和支付网关之间的交换,用来核准用户的信用卡账号足以支付购买支付获取商家向支付网关请求支付证书调查和状态持卡用户或商家向CA发出证书请求后,如果CA不能立刻处理,它将给持卡用户或商家发送回答,指示请求者以后再查看。持卡用户或商家通过发送“证书调查”报文来确定该证书请求的状态,并且在请求被批准时接收证书SET支持的交易类型(2)购买调查持卡用户在收到了对购买请求的响应以后,可以使用“购买调查”报文来检查订购处理的状态。认可撤销它允许商家更正以前的认可请求。如果订购将不被完成,商家撤销整个认可;若部分订购不被完成,商家可以部分撤销认可数量。收款撤销允许商人纠正收款请求中的差错,如错误地输入了的交易数量。信用商家可向持卡用户的账号发出一个信用,用于退货或者在运输过程中损坏。信用撤销商家对先前请求的信用进行更正。支付网关证书请求用于商家请求验证支付网关的,并且接收支付网关当前的密钥交换和签名证书。批管理允许商家与支付网关之间的批量信息通信。差错信息用于指示由于报文错误而导致的报文被拒绝。购买请求的交互过程发起请求消息向商家请求商家的证书和支付网关的证书。发起响应消息包括商家的签名证书以及支付网关的密钥交换证书;持卡用户对商家提供的证书和支付网关证书进行验证,验证通过证书中CA签名来进行。购买请求消息与支付相关的信息;与订购有关的信息;持卡用户的证书。购买响应消息包含相应的交易号码用于确认订购。购买请求消息与支付相关的信息:与支付相关的信息将被商家转发给支付网关。支付信息(PI);双向签名(DS),是在PI和OI上计算的散列值,并使用用户的私有签名密钥进行签名;订购信息(OI)的报文摘要OIMD,支付网关需要OIMD来验证双向签名;数字信封,是用支付网关的公开密钥KUb对对称密钥Ks进行加密而形成的。与订购有关的信息:是商家处理交易所必需的信息。订购信息OI,OI是明文发送的;双向签名(DS),是在PI和OI上计算的散列值,并使用用户的私有签名密钥进行签名;支付信息PI报文摘要(PIMD),用于商家进行双向签名的验证。持卡用户的证书。包含了持卡用户的签名公开密钥,商家和支付网关都需要使用该密钥来进行签名的验证。持卡用户生成“购