为了保证客户和服务器的合法性,利用证书技术和可信的第三方CA来使客户和服务器之间相互识别对方的身份。使得它们能够确信数据将被发送到正确的客户机和服务器上。为了验证用户是否合法,安全套接层协议要求握手交换数据进行数据认证,以此来确保用户的合法性。
3)完整性
安全套接层协议SSL利用密码算法和Hash函数,通过对传输的消息摘要的比较来提供信息完整性服务,建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中能全部完整、准确无误地到达目的地。
2.SSL协议的实现模型
SSL协议的实现属于Socket层,处于应用层和传输层之间,它由两层结构组成,一是SSL记录协议(SSLRecordProtocol),它建立在面向连接的可靠的传输层协议TCP基础之上,提供机密性、真实性和重传性保护;二是SSL握手协议(SSLHandshakeProtocol),它位于记录层协议的上部,用于客户机和服务器之间的初始化和密钥协商等。其模型如图7—10所示。
图7—10SSL协议的实现模型
3.SSL的交易过程
下面通过一个例子来说明基于SSL的交易过程。
Jack决定购买一台计算机,同时他需要购买许多基于Windows平台的软件产品,如Office、AutoCAD等(Jack有一个良好的习惯,从不买盗版),他迅速上网找到了几家在线商店,并找到了需要的软件包。他不想付额外的包装送货费用,而准备立即在网上下载所选中的软件,并进行电子支付。这时,要考虑几个问题。
1)客户在和谁打交道
看一下这几个在线商店,他们没什么名气,Jack选中了一家名为SuperSoft的网上店铺。那么,Jack怎么知道这个店铺没有卖给他一个非法复制呢?任何用户都想确认得到的是一个合法的、完整的、正确的正版软件产品,它必须符合升级条件,并能够得到技术支持。SSL能够解决这个问题。
SSL是如何进行处理的呢?下面来了解一下SSL在“握手”阶段在浏览器和Web服务器之间进行的一系列初始信息交换。在“握手”成功之后,浏览器知道已经建立起了一条保密连接,然后开始下载Web页面上的有关内容。
首先,SSL要求服务器向浏览器出示它的证书,证书包括一个公钥,这个公钥是由一家可信证书授权机构签发的,假设在这个例子中此机构为VeriSign公司。客户的浏览器能够知道服务器证书的正确性,因为大部分浏览器产品内置了一些基础公共密钥。VeriSign在SuperSoft的公钥上的签名表明SuperSoft是一家合法的公司。
然后浏览器中的SSL软件发给服务器一个随机产生的传输密钥,此密钥由SuperSoft已验证过的公钥加密。由于传输密钥只能由SuperSoft对应的私有密钥来解密,这证实了该服务器属于SuperSoft。
虽然SSL保证客户访问的是SuperSoft的Web服务器,且真的有一家卖正版软件叫SuperSoft的公司,但除此以外它无法给顾客提供任何信息。其中的关键在于,SSL并不能使客户确信SuperSoft接收信用卡支付是得到授权的,该公司是否值得信任。
2)能否保证私密性
随机产生的传输密钥是核心机密,只有客户的浏览器和SuperSoft的Web服务器知道这个数字序列。这个双方共享密钥的密文可以通过浏览器安全地抵达Web服务器,Internet上的其他人无法解开它。在接下来的HTTP通信中,SSL采用该密钥保证数据的保密性和完整性,这就是SSL提供的“安全连接”。
这时客户需要确认订购并输入信用卡号码。由于SSL使用会话密钥对这些信息进行加密,因而它能够保证信用卡号码及其他信息只会被SuperSoft所获取。
客户还可以打印屏幕上显示的已经被授权的订单,这样就可以得到这次交易的书面证据。大多数在线商店在得到顾客的信用卡号码后出示收到的凭据,这是顾客已付款的有效证据。但如果仔细想一下,不难发现SSL提供的保密连接有极大的漏洞。在Internet上,用户经常会光顾一些没有名气的陌生店铺,这些网上商店今后也许再也不会遇到。正因为如此,网上商店发生欺诈行为的可能性要比通常光顾的街头店铺大得多。更进一步说,一个诚实的网上商店在收到顾客的信用卡号码后也许没有采用好的办法来保证其安全性,因为SSL除了传输过程外不能提供任何安全保证。已经发生过大量的黑客通过商家服务器窃取信用卡号码的案例。SSL不能解决这些问题,被其后的SET协议解决了。
3)客户是否会收到更多的垃圾邮件
许多人每天要收到大量的垃圾邮件。为了处理信用卡支付,几乎所有的商店都要求客户输入邮件地址。但是他们没有提供一个有关不得卖出这个地址和不得在这次交易以外使用该地址的承诺,因而顾客不能信任自己的隐私是否受到保护,是否会收到一大堆的垃圾邮件。
要求客户出示该地址是一种防止欺诈的措施,它必须与信用卡的账单地址相符。许多在线商店手工审核订单,并且对初次光顾该店的客户制定信用限制。Jack通过Internet为他的电脑购买了一套Office办公系统。在线订购后,一个销售人员打电话给Jack,要求将Jack的信用卡复印件及其签名确认传真给他。
7.3.2SET协议在开放的Internet上进行电子支付,如何对买卖双方传输数据的安全性提供保障成为电子商务能否普及的最重要的问题。为了克服SSL安全协议的缺点,Visa和Matercard两大信用卡组织联合开发了SET协议。
1.SET协议简介
SET(SecureElectronicTransaction)协议是安全电子交易协议的简称,是一种为了在Internet上进行在线交易而设立的一个开放的以电子货币为基础的电子付款系统规范。它涵盖了信用卡在电子商务支付系统中的交易协定、信息保密、资料完整及数据认证、数据签名等。SET在保留SSL协议中对客户信用卡认证的前提下,又增加了对商家身份的认证,这对于需要支付货币的交易来讲是至关重要的。
它采用RSA公开密钥体系对通信双方进行认证,利用DES、RC4或任何标准对称加密方法进行信息的加密传输,并用Hash算法来鉴别消息真伪,有无篡改。在SET体系中有一个关键的认证机构(CA),CA根据X.509标准发布和管理证书。
2.SET协议的目标
①信息在Internet上的安全传输,保证网上传输的数据不被黑客窃听。
②订单信息和个人账号信息的隔离,在将包括消费者账号信息的订单送到商家时,商家只能看到订货信息,而看不到消费者的账户信息。
③消费者和商家的相互认证,以确定通信双方的身份,一般由第三方机构负责为在线通信双方提供信用担保。
④要求软件遵循相同的协议和消息格式,使不同厂家开发的软件具有兼容和互操作功能,并且可以运行在不同的硬件和操作系统平台上。
3.SET协议涉及的角色