在线交易系统的中间人攻击防御方法

文档序号:7861438阅读:188来源:国知局
专利名称:在线交易系统的中间人攻击防御方法
技术领域
本发明涉及的是一种在线交易领域的安全防御技术,尤其是一种基于挑战/应答机制的防御中间人攻击的双向认证技术,具体涉及在线交易系统的中间人攻击防御方法。
背景技术
随着计算机网络技术的发展,网络安全问题已经受到全世界人民的高度重视。目前,常见的网络攻击类型有拒绝服务攻击、利用型攻击(木马,缓冲区溢出)、信息收集型攻击(扫描技术、端口探测)、假消息攻击(DNS高速缓存污染、伪造电子邮件)等。其中,中间人攻击作为网络攻击的一种(信息收集型),通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,入侵者把受控的计算机模拟一台或两台原始计算机,使“中间人”能够与原始计算机建立活动连接并允许其读取或修改传递的信息,让两台受害的计算机相信他们是直接的与对方通信。由于其具有隐蔽性强、不易被察觉的 特点,造成的威胁巨大,在双方通信未经加密的情况下,中间人可以很容易的获取未加密的信息。中间人攻击对在线交易安全造成了严重威胁,成为影响该行业良性发展、有序运行的障碍。2011年上半年有8%的网民在网上遇到过消费欺诈,群体规模达到3880万人,诈骗的形式有中奖陷阱、网络购物诈骗、网络钓鱼等。2011全年新增钓鱼网站数量达到45万个,网民平均每浏览14个网页就有一次遇到钓鱼网站。2011年2月农历春节前后,多家全国性的商业银行和地方城市银行客户遭遇大批量短信诈骗。骗子在短信中声称银行动态口令升级,请储户访问指定网站更新。许多储户信以为真,上网登录了这些网站。将自己的银行卡、手机号等信息提交,并随后按网站提示的方法,把银行返回的验证码也一并交给骗子,结果导致大量储户资金被盗,损失数千元至数百万元不等。因此,为了确保网络交易环境的安全,需要一种针对中间人等网络攻击的认证防御技术,以保证在线交易的安全性。经文献检索发现,现有技术中的中间人攻击的防御方法主要有以下几类( I)配置静态ARP缓存这种方法主要针对中间人攻击中的ARP欺骗攻击。通过设置静态ARP缓存(ARPcache),捆绑MAC和IP地址,从而禁止网络接口做ARP解析,这样一来,在数据包接收和发送的过程中,主机将不再访问动态更新的ARP地址缓存。然而这样的方法通用性不强,对于动态的大型局域网来说不具有可行性,只有在小型的网络结构不经常发生变化的局域网中才有一定可行性,同时,这种方法会对网络管理员带来不便。(2 )使用DHCP服务器并绑定MAC这种方法也主要针对中间人攻击中的ARP攻击,通过在网关上建立DHCP服务器,所有主机的IP地址和相关主机信息只能从网关取得,并且给每个网卡绑定一个固定的IP地址。这种方法的不便与配置静态ARP缓存方法相同。(3)对于重要服务,直接访问IP地址或手动添加host表这种方法主要针对中间人攻击中的DNS欺骗攻击。主机在进行网上交易等活动时,避免连接山寨、钓鱼的假冒银行网站,在某种意义上来说避免了 DNS查询,但不能防止一些网站域名的解析。(4) HOTP 技术HOTP即HMAC-based One Time Password的简写,是一种基于哈希的一次性口令算法,核心思想是根据密钥和时间戳或计数器来算出一个一次性密码。合法用户持有一个内置电源、密码生成芯片和显示屏的动态令牌(token),其根据当前时间或使用次数,运行专门的密码算法生成当前密码。认证服务器采用相同的算法计算当前的有效密码,并与用户提供的密码进行比较,如果两密码相同,则密码验证通过,系统认为用户身份可靠。用户的密码按照时间或使用次数不断动态变化,每个密码只使用一次,即使黑客截获了一次密码,也无法利用这个密码来仿冒合法用户的身份。虽然现有的HOTP技术可以实现服务器对用户的认证,并且可以保证在不安全的信道上传输认证信息不会导致泄露,但却不能实现用户对服务器的认证,可能会导致用户登陆进入一个非法的冒充服务器。

发明内容
本发明针对上述现有技术存在的不足,提供了一个安全性高、实现简单、普及性高的在线交易中间人攻击防御方法。本发明实现的是基于挑战/应答的动态密码机制,由交易服务器和客户端计算机交互完成相互的认证过程。根据本发明的一个方面,提供一种在线交易系统的中间人攻击防御方法,包括如下步骤步骤A :交易服务器通过网络联机接收来自客户端计算机的交易请求,并根据所述交易请求获得多个交易信息;步骤B :交易服务器生成一随机不重复的挑战值challenge,并从所述多个交易信息中选取一个交易信息作为特定交易信息;然后根据所述挑战值challenge、所述特定交易信息、以及交易服务器存储的第一私有信息infol生成第一 Hash值;接着将所述第一Hash值、挑战值challenge、以及所述多个交易信息通过网络联机传给客户端计算机;步骤C :客户端计算机从所述多个交易信息中选取出所述特定交易信息,然后根据所述挑战值challenge、所述特定交易信息、以及客户端计算机存储的第一私有信息infol生成第一验证Hash值;步骤D :客户端计算机将所述第一验证Hash值与接收的第一 Hash值进行比对;如果取值不同,则提醒用户该交易服务器不合法,断开网络联机;如果取值相同,则判定交易服务器为合法的;步骤E :客户端计算机根据所述挑战值challenge、所述特定交易信息、以及客户端计算机存储的第二私有信息info2生成第二 Hash值,将所述第二 Hash值截短生成的8位HOTP并显示给用户供用户输入;接着将所述第二 Hash值、以及用户输入的8位HOTP通过网络联机传给交易服务器;步骤F :交易服务器接收所述第二 Hash值、以及用户输入的8位HOTP后,根据所述挑战值challenge、所述特定交易信息、以及交易服务器存储的第二私有信息info2生成第二验证Hash值,并将所述第二验证Hash值截短生成的验证8位HOTP ;步骤G :交易服务器将所述第二验证Hash值与接收的第二 Hash值进行比对;如果取值不同,则客户端计算机不安全,断开连接;如果取值相同,则判定客户端计算机验证成功,然后用所述验证8位HOTP对所述用户输入的HOTP进行验证,如果不同则判定用户输入错误,如果相同则判定用户输入正确,完成交易双向验证。优选地,所述多个交易信息包括交易单号、交易时间或交易金额。优选地,所述客户端计算机与交易服务器之间存在同步变量count,所述客户端计算机与交易服务器均根据本地的同步变量count从所述多个交易信息中选取所述特定交易息。优选地,当交易服务器与客户端计算机相互认证成功时,两端的同步变量count的取值分别加1,以保证两端的同步变量count的取值同步;若相互认证不成功时,同步变量count的取值不变。优选地,产生第一 Hash值、第一验证Hash值、第二 Hash值、第二验证Hash值的算 法是安全哈希算法SHAl。优选地,客户端计算机所使用的第二私有信息info2是使用对称密钥在客户端计算机上进行加密的。在本发明的一个优选的具体实施方式
中,整个机制的工作流程包含以下3个阶段(I)注册阶段。用户会获得一个U盘,内有客户端的可执行程序以及第一私有信息infol和第二私有信息inf02。(2)普通认证阶段。客户端使用注册的用户名及口令登陆交易网站,如果用户名、口令正确,则可进入网站进行交易活动,否则无法进行网站的交易活动。(3)交易认证阶段。利用当前交易信息,包括交易单号、交易时间、交易金额,基于HOTP计算,对交易双方进行双向认证。交易认证过程包括两个步骤客户端计算机认证交易服务器和交易服务器认证客户端计算机。I)客户端计算机认证交易服务器交易服务器通过网络联机接收客户端的交易请求,依据count计数器的取值选择3个交易信息交易单号(tradeNum)、交易时间(tradeTime)、交易金额(tradeMoney)中的I个作为特定交易信息,使用第一私有信息infol、挑战值challenge以及所述特定交易信息产生第一 Hash值。同时,将第一 Hash值、挑战值challenge及上述三个交易信息通过网络联机传给客户端计算机。客户端计算机收到来自交易服务器的第一 Hash值、挑战值chalIenge及上述三个交易信息后,执行与交易服务器端相同的运算得到第一验证Hash值。最后,将第一验证Hash值与服务器传来的第一 Hash值进行对比,如果二者一致,则交易服务器验证通过,为合法的交易服务器;如果第一验证Hash值与第一 Hash值不相同,则判定交易服务器为仿冒,断开连接。2)交易服务器认证客户端计算机客户端计算机软件完成对交易服务器端的验证后,使用第二私有信息info2、挑战值challenge、以及上述特定交易信息,产生第二 Hash值以及经过截断运算的供用户在网页输入的八位Η0ΤΡ。然后将第二 Hash值以及用户输入的八位HOTP通过网络联机,传给交易服务器。交易服务器接收第二 Hash值以及用户输入的八位HOTP后,使用服务器端存储的第二私有信息info2,之前生成的挑战值challenge以及上述特定交易信息进行与客户端相同的Hash运算,得到第二验证Hash值。如果第二验证Hash值与第二 Hash值相同,则客户端合法,否则为假冒客户端,拒绝交易请求。


通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显图I为本发明的实施例的所述的中间人攻击防御系统的整体框架示意图;图2为本发明的实施例的所述的中间人攻击防御系统的注册阶段示意图;图3为本发明的实施例的所述的中间人攻击防御系统的普通认证阶段示意图; 图4为本发明的实施例的所述的中间人攻击防御系统的交易认证阶段示意图;图5为本发明的实施例的所述的中间人攻击防御系统的注册阶段示意图。
具体实施例方式下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。根据本发明所提供方法的具体实施过程分为3个主要的阶段,包括注册阶段、普通认证阶段和交易阶段。为了更加清晰形象地阐述整个防御机制的实施过程,附上相关附图并对其进行说明。如图I所示为所述方法的整体框架示意图。本发明所实现的为图中交易系统方框内的内容,与网上商城进行互相认证再通过该交易系统转到银行。其中,本发明主要实现的是交易系统与网上商城的双向认证,而虚线部分的交易系统与银行部分的内容本领域技术人员能够根据现有技术加以实现,在此不予赘述。如图2所示为交易的注册阶段。这个阶段主要在柜台当面办理,进行注册后,用户会获得一 U盘,里面有交易客户端的可执行程序以及第一私有信息infol、第二私有信息info2以及count变量初始值。图中110代表客户端计算机,120代表交易服务器,双方通过网络联机进行通信。如图3所示为普通的认证阶段。客户端计算机110通过网络联机,输入注册的用户名与密码,进行登陆交易服务器120的验证(步骤S201),通过则可进入网站,进行交易活动(步骤S203)。否则,无法进行网站的交易活动(步骤S202)。如附图4所示为正式的交易阶段。在该阶段,客户端计算机110与交易服务器120进行双向认证。首先,客户端计算机向交易服务器通过网络联机发送一交易请求,并将三个交易信息(交易单号、交易时间、交易金额)同时发送给交易服务器(步骤S301)。交易服务器收到客户端的交易请求后,生成一随机不重复的挑战值challenge (步骤S302),然后根据交易服务器储存的count值,从传来的三个交易信息中选取一特定交易信息(步骤S303),对挑战值、上述特定交易信息和交易服务器端存储的第一私有信息infol进行hash运算,产生第一 Hash值(步骤S304),同时将产生的第一 Hash值、挑战值challenge以及上述三个交易信息通过网络联机,传给客户端计算机(步骤S305)。挑战值Challenge产生代码如下
function createKey ($length)
{
$hash=〃 ·
$chars二〃ABCDEFGHIJKLMNOPQRSTUVWXYZO123456789abcdefghijkl mnopqrstuvwxyz^;
$len=strlen($chars)-I;
mt_srand((double)microtime()*1000000); for($i=0;$i<$length;$i++){
$hash.=$chars[mt_rand(0,$len)];
} return $hash;
}Hash函数优选地选用SHAl函数,具体如下
using System.Security.Cryptography;
public string SHA1—Encrypi(string Source_String)
i
byte[] StrRes = Encoding.Default.GetBytes(Source_String); HashAIgorithm iSHA = new SHAlCryptoServiceProvider();
StrRes = iSHA,ComputeHash(StrRes);
StringBuiider EnText = new StringBuilder(); foreach (byte iByte in StrRes)
{
EnText.AppendFormat(,f{0:x2},!/ iByte);
}
return EnText.ToString();
}通过网络联机传递的五个变量为Hash (challenge+infol+value),challenge, tradeTime, tradeNum, tradeMoney;其中 tradeinfo= {tradeTime,tradeNum,tradeMoney};value=tradeinfo [count],count 为同步变量。
客户端计算机接收到上述五个变量后,首先根据客户端计算机储存的count变量取值,从三个交易信息中选取所述特定交易信息(步骤S306),然后对接收的挑战值challenge、所述特定交易信息以及客户端计算机存储的第一私有信息infol进行hash运算,生成第一验证Hash值(步骤S307)。然后将第一验证Hash值与接收的第一 Hash值进行比对,如果取值不同,则提醒用户上述交易服务器不合法,断开网络联机(步骤S308);如果第一验证Hash值与第一 Hash值相同,则判定服务器为合法的,同时将客户端计算机存储的count变量加I (步骤S310)。其次,客户端计算机对接收的挑战值challenge、第二私有信息info2以及所述特定交易信息进行hash运算生成第二 Hash值以及将第二 Hash值截短生成的8位HOTP。然后将8位HOTP显示在客户端计算机程序上供用户输入,将第二 Hash值通过网络联机,传给交易服务器(步骤S311)。交易服务器接收第二 Hash值以及用户输入的8位HOTP后,执行 同样的Hash运算以及截短运算,得到第二验证Hash值以及验证8位HOTP (步骤S312),将第二验证Hash值与客户端传来的第二 Hash值进行比对,如果第二验证Hash值与第二 Hash值不同,则判定客户端计算机不安全,断开连接(步骤S313),如果相同则判定客户端计算机验证成功(步骤S314),将交易服务器端count变量加1(步骤S315),然后用验证8位HOTP对用户输入的HOTP进行验证,如果不同,则用户输入错误,如果用户连续3次输入错误,则3分钟内不得再次输入动态密码。如果相同则用户输入正确,完成交易双向验证。在该过程中,需要说明客户端计算机与交易服务器两端count值的同步问题。在本方案中,优选的解决方法是当客户端完成对交易服务器的验证过程后,如果验证成功,则将客户端计算机存储的count值加1,同时向服务器传递前面所说的第二 Hash值以及用户输入的八位HOTP值。否则,客户端计算机将直接断开与交易服务器的连接,不传递任何信息。交易服务器会做一个判断如果接收到客户端计算机传递的第二 Hash值与服务器端生成的第二验证Hash值相同,则将服务器端存储的count变量加I。否则,对客户端的验证失败,服务器端的count变量不做处理。这样,当客户端验证交易服务器失败时,客户端计算机不会向交易服务器传递第二 Hash值,两端的count值保持同步;当客户端验证交易服务器成功时,客户端count值加I,此时,如果客户端为合法用户,则交易服务器对客户端的验证也一定成功,交易服务器count值加I ;如果客户端为假冒客户,直接对服务器发送伪造数据包,则因为其没有私有信息等很多未知的信息,交易服务器对客户端的验证将不会成功,交易服务器count值不变,交易服务器与合法客户端的count值依旧保持同步;当客户端对交易服务器验证成功而用户输入8位HOTP值出现错误时,客户端count值加1,服务器端由于对客户端传来的第二 Hash值验证成功,因此服务器端count值也加I,两端count值保持同步。因此,该解决方法成功实现客户端计算机与交易服务器的count变量的同步。服务器端实现count值同步的关键代码如下
权利要求
1.一种在线交易系统的中间人攻击防御方法,其特征在于,包括如下步骤 步骤A :交易服务器通过网络联机接收来自客户端计算机的交易请求,并根据所述交易请求获得多个交易信息; 步骤B :交易服务器生成一随机不重复的挑战值challenge,并从所述多个交易信息中选取一个交易信息作为特定交易信息;然后根据所述挑战值challenge、所述特定交易信息、以及交易服务器存储的第一私有信息infol生成第一 Hash值;接着将所述第一 Hash值、挑战值challenge、以及所述多个交易信息通过网络联机传给客户端计算机; 步骤C :客户端计算机从所述多个交易信息中选取出所述特定交易信息,然后根据所述挑战值challenge、特定交易信息、以及客户端计算机存储的第一私有信息infol生成第一验证Hash值; 步骤D :客户端计算机将所述第一验证Hash值与接收的第一 Hash值进行比对;如果取值不同,则提醒用户该交易服务器不合法,断开网络联机;如果取值相同,则判定交易服务器为合法的; 步骤E :客户端计算机根据所述挑战值challenge、所述特定交易信息、以及客户端计算机存储的第二私有信息info2生成第二 Hash值,将所述第二 Hash值截短生成的8位HOTP并显示给用户供用户输入;接着将所述第二 Hash值、以及用户输入的8位HOTP通过网络联机传给交易服务器; 步骤F :交易服务器接收所述第二 Hash值、以及用户输入的8位HOTP后,根据所述挑战值challenge、所述特定交易信息、以及交易服务器存储的第二私有信息info2生成第二验证Hash值,并将所述第二验证Hash值截短生成的验证8位HOTP ; 步骤G :交易服务器将所述第二验证Hash值与接收的第二 Hash值进行比对;如果取值不同,则客户端计算机不安全,断开连接;如果取值相同,则判定客户端计算机验证成功,然后用所述验证8位HOTP对所述用户输入的HOTP进行验证,如果不同则判定用户输入错误,如果相同则判定用户输入正确,完成交易双向验证。
2.根据权利要求I所述的在线交易系统的中间人攻击防御方法,其特征在于,所述多个交易信息包括交易单号、交易时间或交易金额。
3.根据权利要求I所述的在线交易系统的中间人攻击防御方法,其特征在于,所述客户端计算机与交易服务器之间存在同步变量count,所述客户端计算机与交易服务器均根据本地的同步变量count从所述多个交易信息中选取所述特定交易信息。
4.根据权利要求3所述的在线交易系统的中间人攻击防御方法,其特征在于,当交易服务器与客户端计算机相互认证成功时,两端的同步变量count的取值分别加1,以保证两端的同步变量count的取值同步;若相互认证不成功时,同步变量count的取值不变。
5.根据权利要求I所述的在线交易系统的中间人攻击防御方法,其特征在于,产生第一 Hash值、第一验证Hash值、第二 Hash值、第二验证Hash值的算法是安全哈希算法SHAl。
6.根据权利要求I所述的在线交易系统的中间人攻击防御方法,其特征在于,客户端计算机所使用的第二私有信息info2是使用对称密钥在客户端计算机上进行加密的。
全文摘要
本发明提供了一种在线交易系统的中间人攻击防御方法,即基于挑战/应答机制的防御中间人攻击的双向认证技术。交易服务器接收到交易请求后,产生一个challenge,并运用第一私有信息、challenge及一个交易信息生成第一哈希值,同时将上述参数传给客户端计算机。客户端计算机接收上述参数后,同样运用第一私有信息计算得到第一验证哈希值,进而对服务器端进行验证。然后客户端计算机运用第二私有信息、接收的challenge及上述交易信息生成第二哈希值,传给交易服务器。交易服务器接收上述第二哈希值后,运用第二私有信息生成第二验证哈希值,进而完成对客户端计算机的验证。此过程成功实现了交易服务器与客户端的双向认证,对中间人攻击具有有效地防御作用。
文档编号H04L29/06GK102904883SQ20121036287
公开日2013年1月30日 申请日期2012年9月25日 优先权日2012年9月25日
发明者陈秀真, 李建华, 邱洋, 任航 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1