SET协议缺陷分析及其改进方案
2011-12-31侯进
侯进
(天津工业大学,天津 300385)
引言:
随着Internet迅速流行,电子商务被公认为是未来IT业新的增长点。电子商务的一个核心问题是支付,电子商务在安全高效的环境中运行,是研究的关键。安全电子交易(SET)是由Visa和Mastercard公司联合推出的基于信用卡在线支付的电子商务系统的安全协议。它不仅定义了电子协议,而且对证书的管理和交易处理过程等制定了严格的规定。它是许多电子支付手段中发展较完善、使用较广泛的一种电子交易模式。研究SET协议,完善和改进SET协议,对于促进中国电子商务的发展,以及中国自主版权的软件开发都有着积极的作用。
1 缺陷1.SET协议对中国支付环境支持不够
SET协议在设计之初主要针对美国和欧美发达国家流行的信用卡,并在协议中详细定义了美国的支付方式。而针对其他国家尤其是像中国这样广泛使用借记卡的国家,没有定义出很好的解决办法。
改进方案:
原有的SET协议是基于信用卡交易来设计的,信用卡是主要支付工具。信用卡与借记卡主要区别是信用卡支持信用制度可以透支,借记卡透支要有上限额度限制,借记卡需要有PIN进行身份鉴别。
SET1.0在设计时只考虑到支持信用卡业务,现在为了使SET协议适应中国国情支持借记卡,在不影响SET协议的通用性为前提下,需要对SET协议作一些修改。
1.1 对借记卡支持的建议结构
SET1.0标准主要针对信用卡,只需要输入主帐户(PAN)信息,没有定义个人密码((PIN)的处理方法。在SET协议中,持卡者的身份是由持卡者的证书和支付卡的主帐户PAN来保证的,而PIN应该和PAN具有同等的安全要求,所以可以考虑对PIN使用与PAN相同的加密处理过程。
在线PIN加密机制是PIN通过键盘或其它设备输入到持卡人的电脑中。PIN数据放在SET协议中RS A/OAEP块中,采用支付网关公钥和对称加密保护,SET协议中加密的PIN首先通过商家传到支付网关,然后支付网关使用私钥解开信封,再用对称密钥解出PIN数据,如果需要,可以将PIN数据转换为其它的PIN块格式,采用对称密钥重新加密,最后将重新加密的PIN数据发送到支付卡网络。
个人密码((PIN)的格式应遵循IS09564-1 Format0,PIN块使用8个字节,格式化操作时将一个明文的PIN数据区和一个账号号码数据区进行二进制异或,异或的目的是为了增强PAN和PIN数据的关联性,防止替换攻击。
1.2 持卡人对PIN的支持
为了使持卡人知道某一张卡是否需要PIN需要在SET的证书中增加一个扩展项,来标示是否要输入PIN,同时可以使用id-set-PIN-Secure-Source和id-set-PIN-Any-Source的标志位来区分是否需要使用安全的PIN输入设备。
持卡人对PIN的处理过程:(1)用户选择了支付的卡后,持卡人软件需要知道哪张支付卡要求在线PIN,通过该卡对应证书的扩展项来判断该卡是否要求PIN输入。如果需要,则利用输入终端设备得到PIN,建立明文的PIN数据域。持卡人软件不保存PIN,一旦PIN被加密,则必须清除内存中的所有PIN明文信息;(2)建立帐号数据区,异或明文的PIN数据和账号数据区。用随机生成的对称密钥,加密异或后的PIN数据区;(3)用支付网关的RSA公开密钥,加密对称密钥。加密的PIN数据通过商家传输到支付网关,支付网关使用私钥解密。
支付网关处理的过程如下:(1)执行RSA/OAEP过程,使用支付网关私钥解密,解开对称加密密钥;(2)用对称加密密钥解密PIN加密数据;。(3)重新建立PAN的数据区,并与PIN数据块异或,得到PIN;(4)根据需要将PIN数据经过格式的转换,送去银行效验。
2 缺陷2:SET报文消息过于复杂。
SET协议定义了支付过程的报文消息及数据定义,其规范的目标是为了全球使用,所以考虑的因素主要是符合美国的支付方式,而对中国来讲报文消息显得太复杂,造成了SET应用软件设计复杂,价格高,造成了SET的普及率不高。
改进方案:SET是一种基于信用卡支付的安全电子交易协议,交易之前,它要求持卡者、商家、支付网关等交易的参与方,均需安装相应的协议软件,均需向CA申请属于自己的数字证书。交易过程当中,需要进行多次证书的传递和验证,进行多次加密、解密和数字签名等。操作复杂,价格昂贵,运行效率较低,不适合电子商务的发展需要。
虽然该设计是考虑到保证交易过程中的充分安全,但这样的安全性,需要牺牲效率,付出高成本。对于相当多的小规模交易来说,这样的交易过程就太过复杂,开销过大,并且为每一个潜在的用户都分发一个证书也不是很现实,要求连接于Internet的计算机都安装SET客户端软件也是不现实的。对于相当多的客户来说,都存在在没有申请证书或者在未安装SET客户端软件的计算机上购物的情况。这些都阻碍了SET的发展。
这里提出对SET进行安全分级处理。
安全分级处理就是说,在客户进行在线交易时,增加一个安全级别选项,SET的安全程度可以分为:A级、B级、C级、D级。客户根据自己的情况选择适合自己的交易级别。
1)A级为低级交易模式,适合于前面客户没有证书或者计算机SET客户端软件的情况,当客户选择了该模式,则客户与商家之间就省去相互认证过程,商品信息也无需保密,这种模式,也适合小额交易。客户的借记卡的PIN码利用支付银行的公钥进行加密,无需客户和商家间的证书传递及相互认证。只要保证商家和支付银行之间的安全认证就可以了,同时交易信息数据在交易完成后销毁,不需要保存在档案中心。
2)对于B级安全模式,则商家和客户之间使用SSL连接,而商家与支付银行之间SET连接。由于很多浏览器都内置了SSL协议软件,客户端计算机就不需要安装SET软件,但客户需要有自己的证书,商家和客户之间按照SSL的流程,对客户是否为合法身份进行验证。商家与支付银行之间则按照SET交换信息。
3)C级安全模式,客户、商家和支付银行都使用SET协议进行连接,客户计算机必须安装相应的SET软件,同样也必须拥有自己的证书。
4)D级模式,在满足C级安全模式所要求的条件之外,还需要按照正常的SET协议进行,同时将各种数据信息备份保存在档案中心。客户如选择D级服务,这必须承担相应的费用。
对交易规模分级的方式来减少SET协议对于小额交易的过大开销,提高了效率,在于客户订购商品时安全分级是一个必选项。这样的办法使客户对所需要的安全性,有主动权,使相当多的小额交易客户在所有计算机终端都能进行交易,提高了SET的适应能力,便于该协议的进一步普及。
3 结束语
本文针对SET协议对借记卡支持不足,提出了PIN码加密的解决方案,使PIN与PAN具有相同的安全要求,使之也支持借记卡,针对其操作复杂、运行效率低、适应性差的缺点,提出了SET协议的分级安全处理机制。提高了运行效率,使之更加适应国内电子商务市场。
[1]任莉莉,欧珏.基于SET协议的网上支付安全探讨[J].华北科技学院学报,2009(2).
[2]李小薪.基于SET协议的电子商务安全系统的构建和研究[J].2005.
[3]韩宝明,杜鹏,刘华.电子商务安全与支付[M].北京:人民邮电出版社,2003,27.