网络通信 频道

网络交易安全性与可靠性技术探讨

摘要

    阐述了当前主要采用的网络交易安全技术与协议,较为详尽地分析了现实应用中使用较多的以SSL(安全套接层)协议为基础的网络交易安全性与可靠性问题,探讨了SSL存在的不足,并对某些不足提出了改进的设想或进一步完善的方法。

    1、引言

    随着计算机网络的广泛运用以及在社会各领域应用水平的不断提高,网络交易呈现出不断发展的良好势头。艾瑞市场研究公司的数据显示,2005年国内电子商务交易总额累计达到5291亿元人民币。然而,随之而来的是网络交易安全性与可靠性问题。当前,网络安全问题已成为影响网络交易快速健康发展的主要因素之一。在网络通信中,如何识别通信双方的真实身份、保证隐私信息不被泄露以及数据信息能够安全可靠地在网络中传输,而不被黑客在网络中窃听、拦截、干扰,是网络与信息安全中的主要研究问题。

    网络交易的安全层次要比网络通信高得多,它不仅要求信息与身份的安全、可靠,更要求保证交易双方对交易信息不可否认,并对交易行为承担相应的责任。对此,本文简述了目前网络交易安全所采用的主要机制,分析了网络交易安全需保障的内容,并对当前在网络交易中广泛使用的SSL协议进行了分析,探讨了其存在的缺陷,在此基础上,提出了保障网络交易安全性与可靠性的一些措施。

    2、网络交易安全机制现状

    网络交易安全涉及的事项很多。在传统的交易中,要保障交易安全,必须知道进行交易的对方是谁,是否可以交易,在交易时还必须签名、签署日期,有些重要事项还要公证,只有这些都确定了,才能保证万一发生纠纷时,能提供重要的凭证,作为将来能在法庭出示的证据。在网络交易中,由于网络的虚拟性,网上交易身份不能确定,而且网络线路易被窃听,网络数据又多是明文传输的,网络交易信息易被修改,隐私信息易被窃取,所以必须采用可靠安全的机制来保障网络交易的安全,以弥补网络固有的安全缺陷。在一次安全的网络交易中,需要具备交易双方身份确定、交易时间确定、交易内容确定,只有这几个方面完全确定才能够确保交易双方可以在安全性脆弱的网络上有信心地进行交易。

    2.1网络交易中采用的安全技术

    目前,网络交易安全经常采用的技术主要有加密技术、认证技术和安全认证协议。

    加密技术又可分为两大类:一种是对称加密系统,常使用的算法有DES(数据加密标准)、Triple-DES、IDEA(国际数据加密算法)、RC4、RC5及AES(高级加密标准)等。一种是非对称加密系统,常使用的算法有RSA、ECC(椭圆曲线密码)、ESA(增强型用户鉴权)等。认证技术主要是对身份与消息完整性进行认证。安全认证技术主要有数字摘要、数字信封、数字签名、数字时间戳、数字证书等。安全认证协议是规范交易参与各方行为与各种技术的一套规则。

    目前,网络交易使用的安全机制主要体现在支付平台的安全性上,而当前交易平台支付安全大致有以下几种协议:一类是SSL、TLS(传送层安全)[1]协议;另一类是SET(安全电子交易)协议。而密钥的协商管理都遵循PKI(公共密钥基础设施)机制。SSL协议是Netscape公司推出的一种安全通信协议,是目前在商务领域广泛使用的一套安全协议;TLS协议是IETF开发的基于SSL的标准协议,与SSL协议类似;SET协议是VISA、MasterCard等国际信用卡组织会同一些计算机供应商开发出的一套网上安全交易协议。

    2.2SET与SSL安全性保障机制

    SET协议描述了持卡客户、商家、支付网关、收单银行、发卡银行和认证机构(CA)等6方面实体交易支付框架,它是一个复杂的又较为安全的网上交易安全协议。然而,SET协议对应用层不透明,在实施过程中,需要在客户端安装相应的客户端软件,同时必须在银行设立支付网关,而且商家对应的服务器上必须安装对应的服务器软件。另外。每个交易方都必须有交易证书,交易过程也比较复杂,处理时间很慢,很多商家服务器在有较多客户时,由于加密解密处理时间长,服务器常不能及时响应客户的请求。目前支持SET协议的产品较少,而且SET成本相对较高。因而,实际采用SET进行网络交易的相对较少,而采用SSL协议进行网络交易的在目前仍然占大部分。为此,以下主要探讨SSL协议,

    SSL协议[2]是在基于面向连接TCP层上实现的安全通信协议,工作在会话层。SSL由两部分组成,一层是SSL记录层,提供数据机密性、可靠性、重放保护服务,在其之上还有SSL握手协议层,主要为了初始化和同步通信双方密钥状态。图1表示的是SSL各层之间的结构。

    图1 SSL各层之间的结构

    SSL握手协议包括两个阶段。第一阶段是协商并建立一个保密的通道,第二阶段主要是对客户端进行身份验证,第二阶段是可选的。

    SSL记录层协议由两部分组成:记录头和非零长度的数据。当SSL记录层接收到上层的数据时,首先对其初步加工,把比较长的数据进行分片或组合;接着对这个新的数据单元进行数据压缩处理,并对此数据生成验证码MAC,然后使用握手协议协商好对称密钥进行加密,把加密数据发送给TCP。

    SSL数据机密性保障是通过混合密码体制来实现的,SSL记录层采用对称加密算法加密数据,使用此类算法是因为对称加密算法比非对称加密算法处理速度相对要快,但是对称加密算法使用是同一个密钥,所以还需通过SSL握手协议层协商得到这个随机的对称密钥,而协商过程的安全保护则采用非对称密码体制完成。

    SSL还利用MD5或SHA-1生成MAC以保证消息的完整性,使用数字证书验证服务器以及客户端的身份。

    3、网络交易安全性与可靠性分析

    网络交易安全性与可靠性包括两个方面的内容:安全性与可靠性。安全性是指网络交易整个过程的安全,包括交易数据的安全和隐私信息的保护等。可靠性则比安全性层次要求更高,它不仅要求交易是安全的,而且要求交易是可行、高效和可靠的。因此,网络交易安全性与可靠性涉及到很多问题,在技术上,有些还不能马上加以解决。这里,主要是从上述SSL协议为基础的现实网络交易出发,分析和探讨目前网络交易中的安全性与可靠性问题,并对某些不足提出个人的改进设想,以期对实现网络交易安全性与可靠性提供借鉴。

    3.1数字证书有关问题

    SSL协议和SET协议都是建立在PKI基础上的,交易身份认证也都采用公钥基础设施中数字证书的形式。数字证书是模拟传统个人身份证信息,客户数字证书可以证实该客户拥有一个特别的公钥,服务器证书则证实某个特定的公钥属于服务器,所以数字证书的设计、实现和管理都关系到网络交易支付协议的安全,具体来说有如下几个方面。

    3.1.1SSL协议存在的问题

    目前SSL协议有SSL2.0和SSL3.0版本。SSL2.0在设计实现上有很多缺陷,例如不能抵御密码组重回攻击、中间人攻击、重放攻击等[3]。有些产品实施SSL协议时,对中间证书CA是否拥有合法的CABasicConstraint并不做检验,从而可能导致中间人攻击[3]。

    SSL协议在认证过程中,并不要求对客户端进行认证,而是一个可选的协商阶段。这主要是考虑数字证书发放与管理的麻烦。因为如果要对客户端进行认证,则必须为每个客户发放证书,从目前应用现状来看,很多商家只提供对商家服务器的认证,而没有对客户端的验证,这就有可能出现客户盗窃别人信用卡,在网上消费的危险。

    3.1.2根证书可靠性问题

    PKI的实施都必须有CA根,而CA根是所有证书安全性保证的基础。CA根机构除了应该是公认的第三方外,还必须拥有足够的技术支持、万无一失的管理决策,以确保其自身证书安全。有些SSL网站实现交易安全时,其CA实现并不是通过一个公认的第三方来实现的。例如,有些银行的网上银行是自己发行并管理证书,有些商家开设的网站也是自己维护证书。这种不设独立第三方CA机构的做法,很难保证也难以令客户相信其可信性。

    另外,目前不同的CA很多,而且互相独立,它们之间CA层次关系及如何相互认证都是影响网络交易可靠性的重要因素。

    最后,即使有了一个比较规范的层次清晰的CA结构,其根证书的保证、维护、管理是否恰当,能否通过技术手段绝对保证根证书的安全,是影响人们是否信任网络交易安全的另一重要因素。

    3.1.3数字证书身份与现实身份对应问题

    数字证书中记载的信息通常包括颁发者、公钥、有效时间、签名算法、使用者信息等。数字证书虽然能确定某人声称的身份的真实性,但是还不能完全与现实世界中人的身份等同。因为在传统交易中,不是仅仅知道身份真实性就会进行交易,实际上还要看某个人的信誉,是否有能力承担风险等信息。而数字证书只是证明在网络另一端是一个没有冒充别人身份的人,在交易另一端往往是不认识的陌生人。如果没有附加的更多信息,交易发生将会减少或者不发生。

    3.1.4数字证书保护的问题

    数字证书与私钥是整个安全系统的核心,其保护是极其重要的问题。数字证书与私钥存放在电脑上,很可能被木马攻击窃取,即使是存放在智能卡中(采用PIN码保护)也有可能被攻击,所以进一步研究数字证书与私钥保护技术是很重要的问题。

    3.2交易时间认证问题

    现有的安全系统很少有提供时间认证服务的。在网络交易中,交易时间是一件很重要的事情,它的真实性、准确性与不可否认性直接涉及到交易双方是否存在真正的交易,如果交易时间不准确,而交易方有足够证据证明其在交易时间不可能交易,是完全可能否认交易事实的。所以要保证网络交易安全性,必须提供交易时间的认证。然而网络交易中时间依赖计算机系统的时间,而每一个计算机系统的时间是可以更改和设置的。

    因此,交易时间认证必须考虑两点:第一,关键交易信息必须采用同一计算机系统时间;第二,该计算机系统时间不能被更改与调整,且与现实生活中时间是一致的。

    可以采用以下办法解决此问题:以公认可信的第三方作为认证机构,统一由此第三方进行认证;同时,第三方计算机系统时间与GPS卫星时钟同步。由于GPS卫星时钟非常精确,全球均可以接收。而且成本低,只要有一台接收装置就可以了。即使是不同的认证机构,它们之间提供的时间认证服务只要是基于GPS的,都可以互相通用。

    3.3加密强度与处理性能平衡问题

    SSL采用的密钥长度一般为128bit。虽然理论上破解密钥长度为128bit的信息需要1000年,但是通过分布式攻击、统计分析攻击都会大大减少信息被攻破的时间。为了增强加密的强度,有必要加长密码的长度,然而这样又会加长生成密钥的速度以及处理加密信息的时间。密钥过长,会妨害交易的实时性,影响正常的交易秩序。随着交易人数的增多,服务器可能因负载过大而拒绝服务。

    这就需要在安全性与信息处理性能上做一个权衡,选择一个较安全但又比较有效率的加密解密系统。

    3.4商家、银行泄密客户信息问题

    现有SSL系统存在泄露客户信息的风险。因为,在网络交易过程中,商家会知道客户的支付单上信息,银行也知道客户的订货单信息,这主要是因为支付单与订货单是捆绑在一起的,而银行与商家对客户身份进行认证时,都必须知道支付单与订货单的信息,才能进行HASH运算,然后对数字摘要进行比较验证,且一般这两“单”均由商家转交银行。具体如图2实线所示。

    图2 客户、商家、银行三者之间的关系

    要解决此类问题,可以由客户直接把支付通知转交给银行(如图2虚线所示),同时,采用多次签名的方法保证银行看不到客户订货单内容。具体步骤是:客户对订货单进行数字摘要生成订货单摘要D订,客户对支付通知摘要生成D付,客户将这两份摘要连接在一起生成一个总的摘要D订+付。客户直接发送订货单摘要D订、总摘要D订+付以及支付通知单给银行。这样,银行可以在不知道订货单内容的情况下也能够知道客户的身份。

    3.5其他问题

    SSL和SET协议都是一种上层协议。因此,在数据传送过程中,IP包头和TCP头还是明文的,通过通信流量分析,将可以推断哪一方在进行何种服务,这可能涉及隐私暴露问题。另外,对于网络交易安全性与可靠性,目前主要还是集中在网络交易支付阶段的层面进行研究和探讨。实际上。在网络交易的各个阶段均涉及到安全性与可靠性问题,而且网络交易安全性与可靠性的完满解决也不只是技术方面的问题,诸如相关管理制度的不健全以及相应法律法规的空白或不完善都将直接或间接影响网络交易的安全性与可靠性。

    4、结束语

    网络交易安全性与可靠性涉及的问题广泛,本文主要是从目前网络安全协议的应用现状出发,分析和探讨了其中存在的若干问题,并对这些问题的解决提出一些粗浅的看法和认识,以期为从技术、法律法规和管理制度上保障网络交易安全性与可靠性提供有益的参考

0
相关文章