基于一次性支付系统的安全信用卡交易_电子支付系统与安全
基于一次性支付系统的安全信用卡交易由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“电子支付系统与安全”。
基于一次性支付系统的安全信用卡交易
摘要:
对于行用卡欺诈来说传统的信用卡付款是不安全的,因为攻击者可以很容易的知道用户半封闭的、重复利用的信用卡号。最近很多研究人员和信用卡公司已经提出用一次性交易数来提高信用卡付款的安全性。基于这种思想,我们提出了一个比较实用且安全性高的一次性信用卡付款方案。在我们的设计方案中,用哈希函数产生一次性信用卡账号,这些账号只有持卡人和行用卡发行人知道。与其他研究成果相比,我们的计划不但减轻了信用卡发行者的负担,并且对于展开脱机或在线的情况下的支付都很容易。分析和模拟仿真表明,考虑到必须的安全性,信用卡发行者对于我们方案的时间和空间复杂度是可以接受的。
背景介绍:
信用卡欺诈每年造成了数百亿元的经济损失,并且使传统的信用卡支付系统的安全缺陷暴露了出来。在这种信用卡支付体系中,消费者在所有的交易中都重复的使用固定的信用卡账号和个人识别信息。信用卡账号的固定不变性,使得攻击者很容易地盗取消费者账号并进行非法行为。常见的信用卡欺诈行为有一些几种: 侧面窥视
一个攻击者偷看客户的信息(如从客户使用的读卡机附近的位置备置摄像头或在电话 上、旅馆里或汽车租赁公司偷听) 潜伏跟踪
一个攻击者通过客户丢弃的废物或垃圾获得信用卡客户识别信息的记录。 截获数据包 盗取数据资料
1.1评估标准
评价信用卡支付体制好坏的标准主要有一些几种:
容易实施
新的信用卡支付体系应该能够很好的应用现有的基础设施。不能给信用卡发行者、厂商和用户带来太多额外的负担。新系统增加的负担应于其对新增的安全性受益相一致。 使用方便
使用的方便性有助于新系统的推广,它必须让消费者使用起来方便满意。 安全性高
新的支付系统必须保证带来实质性的针对信用卡欺诈的安全性方面的提高。
1.2相关研究
安全电子交易协议(SET)是针对在线情况下保护信用卡信息不被攻击但是SET有其严重的缺陷,它昂贵的开销和对公钥基础设施(PKI)的额外需要使得它很难在商场内成功应用。为解决信用卡支付安全问题而提出的数百种方案中,安全套接层(SSL)是唯一被广泛应用在现代电子支付中的协议。SSL不但提供用于传送信用卡账号的加密通道,还提供厂商的身份信息认证。对于一些直接截获用户信用卡信息的诈骗行为,像侧面窥视、潜伏跟踪和窃取数据库资料等,SSL是无能为力的。
考虑到信用卡系统的评价指标,SET解决了安全问题但无法满足缓解部署和易于使用方面的要求。另一方面,SSL满足例如方便部署和使用方便的要求,但是,它没能解决所有状况下的信用卡使用安全的问题。
最近,一次性信用卡交易账号的观念被提出。这种一次性信用卡交易账号简称CCT,只被使用一次。一个CCT被用之后就算是被攻击者知道也无所谓,因为它只能用一次。
现存的CCT使用方式都要求在线产生CCTs;即当消费者在进行信用卡交易时或在交易之前,必须通知信用卡发行者以获得CCT。信用卡发行者为每一个用户建立一个小的数据库,以便当支付清算时,能够验证从商家发来的CCT。
正如Rubin和Wright说的那样,这些解决方案集中解决的问题就是在传统的信用卡交易的基础上在附件消费者与发卡人直接的互动联系。必须确保消费者和发卡人之间信息通信的安全,像SSL确保的那样安全,要不然CCT就会在发送时半路被截获。由于大量的用户同时访问SSL服务器,因此SSL服务器的性能就成为该体系的核心技术。并且客户在交易时就必须耐心地等待CCTs。而且,这样集中的解决方法也限制了SSL的规模。用单纯的函数管理账号当遇到如网站单点故障、网站诈骗和DNS重定向之类的技术漏洞时是非常危险的。
而且我们必须清楚上述的这些解决办法主要针对与网上支付。为了便于支付,一些现存的一次性的解决办法都允许客户以传统的信用卡支付方式使用固定的信用卡账号。然而这种“混合”式的体系依然容易受到诸如侧面窥视、潜伏跟踪和盗取数据资料等之类的攻击。为了补救上述的漏洞,针对这些问题Rubin和Wright提出了一种离线的体系来产生CCTs,不需要建立用户和发卡人之间的联系。在这个系统中发卡人和用户长期共享密钥。在每次交易之前,客户可以通过加密一套可行的约束来产生CCT,这些约束描述了交易商品的金额、交易时间和商家等方面的信息。然后消费者再把产生的CCT和确认信息发送给发卡人来确认。但接收到这些时,发卡人根据确认信息来匹配密钥,解密CCT和确认交易。
这种解决办法,在每次交易前不需要建立消费者和发卡人之间的联系。但是大需要设计良好的用户界面来帮助选择用于加密的约束。并且它使得服务器额外承受解密和约束管理的负担。除此之外这种方法也没有解释清楚在CCTs被限制最长为16位的情况下,如何使用标准的加密函数。
为了使用这种支付体系,消费者必须使用电脑或者可以加密约束的设备。在密文中必须包括时间戳,来保证CCT的针对性。当然这需要应用程序的支持。这也许适用于网上支付,但是很可能不适用于其他的支付体系。
1.3我们的解决方案
在我们的解决方案中我们运用哈希函数而不是加密技术来在离线的情况下产生CCT。通过对上一次的CCT和共享的密钥做哈希函数来产生本次的CCT。其中密钥是01的字符串,发卡人知道,并且被嵌入到消费者的实体卡中。
每一个信用卡中都嵌入了一个小型的芯片来计算哈希函数值和保存上次的CCT。为了方便信用卡交易的方便使用,在一些情况下需要一个小巧的读卡器来控制驱动CCT的产生。必须强调的是哈希函数计算必须简单;生产芯片卡和小型读卡器的技术要成熟且廉价。小型读卡器必须能够广泛的使用。
在消费者方面,消费者只需把他得实体卡插入读卡器中并且向商家提交已产生的CCT。此过程涉及到得哈希计算很简单,并且不需要建立消费者和发卡人之间的联系。倘若有芯片卡和小型读卡器整个交易过程就会像传统的信用卡支付一样方便。
当接受到用户发送的CCT结算时,发卡人就会用该用户的上一次CCT和用户密码进行哈希运算产生CCT,并判断这次用户发来的CCT和经过运算产生的CCT是否一致。由于确认时延的存在,用户接收到得CCTs的顺序也许和CCTs的产生顺序不一致;因此发卡方必须保存CCTs队列来确保认证的正确性。我们的研究证明所需要保存的CCTs队列的平均并不长。与传统的信用卡支付方式相比,CCT的认证只增加了一点时间和空间复杂度。
与Rubin和Wright的离线方案相比,我们的方案减轻了发卡人的负担。因为哈希函数计算容易自动产生固定长度的CCTs。并且用户不需要用于加密交易时间戳和约束的应用程序。
关于安全方面,我们的解决方案始终坚持贯彻一次性支付的思想,不像所谓的“混合系统”,我们的方案能够预防大多数像侧面窥视、潜伏跟踪和盗取数据资料等之类的常见的信用卡欺诈。
1.4总结
以下对我们的系统进行具体的说明,首先对在任意支付情况下地消费者支付方式进行说明;接着对认证系统从认证算法、系统模拟和复杂度分析等方面进行说明;之后对我们系统的安全方面进行分析;最后讨论具体实施时候的问题并把我们的系统同基于PKI的方案进行比较。
符号说明
C 实际信用卡账号
T 一次性信用卡交易密码(CCT)Tcur 上次用过的CCT Tnew 产生的新的CCT S 固定的密码 Q 发卡人的确认队列 n 时延限制
m 重复次数限制
2.用户支付体制
在这个部分,集中讨论在不同的支付环境下消费者的支付方式。
(1)信用卡:
一个传统的信用卡有一个半秘密的信用卡号码和其他的信息(如一个名字和一个有效期限)。在我们的系统中,一个信用卡有另外的二个元件:①一个固定在卡上也从不变化的秘密的1024位二进制字符串;②在物理卡中被埋人的秘密小芯片。当卡发行者把信用卡发行给一个客户的时候,原始CCT交易信息被储存在卡中。当客户每次交易时,由上次的CCT交易信息和一秘密的散列函数H()(举例来说,SHA或MD5)通过计算会产生新的CCT交易信息。Tnew=H(TcurII S)Tnew是将会被用于新的交易,Tcur是上次交易的结果,S是秘密的,“II”表示串接的方法。在新的交易之后,Tnew被储存在卡中在Tcur的位置。(在命令执行下交易)在客户来说,就是一系列的CCT交易。对卡发行者而言,就是进行系列相同的计算并且进行校验。
(2)读卡机:
我们需要一个能够执行散列方程的计算和对于每一次新的交易随时可以更新CCT的智能读卡机。智能读卡机提供动力执行计算和更新CCT。读卡机是一个公共设施,它应该生效于客户可能进行交易的任何一个地方,甚至在客户的手中(如膝上型电脑、键盘和移动电话等)。(3)支付情景
在此主要讨论在不太的支付情景的条件下我们的消费者支付系统的运作情况。我们首先假设不管是在商店还是在消费者的手边小型的读卡器都是可以用的。小型的读卡器不可用的情况将在下面讨论。
首先考虑现场支付的情况,此种情况下消费者在商家的店铺里进行交易。在这种情况下,商家必须有小型的读卡器。消费者只需将信用卡插入下雪的读卡器中来完成交易。将会产生新的CCT,并将它送到对应的发卡人那里进行认证。当交易被认证后,发卡人将通知商家并且店铺里的小型读卡器将用新的CCT代替实体卡中原来的CCT。
接下来考虑网上支付的情况。此种情况下用户在电子商务。用户首先通过小型读卡器获得更新后的CCT,然后新的CCT和一些其他的信息直接传送到电子商务网站上(大多数情况下是通过SSL传送的)。这种情况下小型读卡器没有直接和电脑相连,消费者需要从小型读卡器中获取新的CCT让侯输入到电子商务网页中。
除此之外的支付情况还包括手机支付、传真支付和邮件支付,在此种情况下信用卡信息分别通过手机、传真和邮件传给消费者。因为手边有读卡器,消费者很容易就能更新CCT并像使用传统的信用卡交易方式一样使用。
2.确认系统一个卡发行者如何确认一系列被用于处理的CCT。如一个客户送CCT给一个贸易商或一个贸易商送CCT给一个客户;贸易商送CCT给一个相关的卡发行者或卡发行者送CCT给一个贸易商。不同的方案可以分为二种类型:
立即证明:一个贸易商立即地确认CCT(举例:刷卡购物)。
延迟证明:一个贸易商在特定的时段来延迟确认CCT(举例:在旅馆中预定)。因为确认延迟的存在,所以验证CCT的方法有时候是不一样的。下列的例子举例说明我们的证明系统。
例子:考虑同一CCT的四次交易:T0,T1,T2,T3,它们的关系T1=H(T0S),T2=H(T1||S)和T3=H(T2||S)。假设其中T0已经是被卡发行者复核且有效的交易。如果后面所有的三个交易T1,T2和T3在立即证明的确认方案中,然后用上面的关系来证明到达的CCT是否有效,卡发行者只是一个一个地简单计算而且确认。现在假设T1和T2是在延迟证明中而且CCT抵达的次序是(T3,T2,T1)。我们用下列各项程序确认他们:
(1)当T3到达的时候,卡发行者把它与T1作比较,T1用日(T0||S)计算。因为他们不相配,校验队列Q用来储存n用于将来的校验。卡发行者然后用T1来计算T2=H(T1||S)而且把它与到达CCT作比较。因为他们也不相配,佗也为将来的校验插人Q之内。最后卡发行者用砣计算T3=H(T2||S),与到达的CCT相配。
(2)当T2到达的时候,卡发行者把它与队列Q作比较,到达的CCT与队列Q中的数据相匹配。T2就从Q划除。
(3)当T1到达的时候,如同T2校验同样的方法。
3.认证算法
认证算法
//
1、发卡人接收到来着客户方面的信用卡信息包括当前的信用卡号C和CCT T1。//
2、C用做索引来查找用户。
//
3、下面的认证只针对特定的用户。//
4、发卡人已知客户密码S和初始的CCT T0 1)当前 CCT Tcur=T0 2)认证队列 Q=ϕ 3)对于每一个认证的 CCT T do 4)If T 和Q队列中的某一个匹配 5)Then 把T从Q中删除并且返回确认的CCT 6)Else 7)
产生n个新的CCTs T1,„,Tn(T1=H(Tcur||S),„, Tn=H(Tn-1||S))//n是时延限制 8)If T与Tk(1≤k≤n)
9)Tcur←Tk 10)
把T1,„,Tk-1插入到Q中 11)
返回确认的CCT 12)Else 返回没有确认的CCT 13)
在一定的时间段内如果经过了m次错误的确认,则认证程序将被锁 //m是重复次数上限
4.结束语
我们呈现的是一个在实际使用过程中保证以前的信用卡交易安全的系统。在这一个方案中,我们把以前发行者和消费者共享的秘密变为用一个散列函数产生随机秘密,每消费一次就可以改变一次,而且只有发行者知道。消费者是不需要知道任何信息的。硬件需要在实际的信用卡中微埋人一个微型的芯片。系统是可适用于在线和脱机两种模式。我们的系统不能解决信用卡丢失的特殊情况。
总结:
传统的信用卡CCT(Credit Card Transactions)有一个密码,消费者和卡发行者都知道,在反复使用时不是很安全的。为了提高信用卡的安全交易,本文设计一种只有发行者知道密码,而消费者是不需要知道密码的CCT。本文的方法是把较少的信息放在一个微型芯片上,并把它嵌入在信用卡里面。而且能容易地在线和脱机展开远程交易。攻击者如果没有CCT是根本无法攻击,从而避免了传统信用卡交易所面临的侧面窥视、潜伏跟踪、盗取数据资料和截获数据包等欺诈问题。