如今的网上银行交易已经成为许多人生活中不可缺少的一部分,但是网上银行的安全性如何呢? 

用户登陆网上银行的过程如下: 
    用户                 银行 
      ---- 申请连接-------》 
      《----发送登陆界面--- 
      
     ------发送用户登陆信息---》 
                    判断用户信息是否正确 
      
     《----网上银行服务---》 

    高强度加密算法和数字签名的使用已经能够保证用户与银行系统之间数据通联的安全性(如果设计的当的话,银行系统应该没问题),如果我们假设银行系统是安全的(如果这个假设不成立,我们就应该立刻把钱全取出来),那么网上银行的短板就是用户的计算机。 
正是基于这个原因,许多网上银行交易系统采用数字证书+用户口令的方式来保护用户的交易安全,并且推出了令牌,即将用户的证书保存在令牌内。令牌的使用无疑大大提高了用户操作的安全性。 
但是我相信还是有许多用户没有购买银行的令牌,这种情况下,整个交易的安全性就在用户的口令保护上了。 

    假设一个黑客入侵了用户的计算机,他想要获取用户网上银行的登陆信息,他会怎么做呢 
1.键盘记录。最简单同时也是使用最多的办法,效果也还是不错的,根据笔者的试验,许多银行的交易过程都可以被记录下来 
2.本地交易平台劫持。黑客在用户计算机内注入一个病毒,当用户登陆交易平台时,该病毒强行关闭正常的交易平台,弹出虚假的交易平台,诱使用户输入口令。 
3.中间人攻击。该方法难以实现,不过威力强大。攻击方式如下: 
   
     用户                           中间人                     银行 
      ---------------------------- 申请连接---------------------》 
                                          《----发送登陆界面--- 
        《------发送虚假登陆界面---- 
      
        ------发送用户登陆信息---》 
                                   
                                记录用户登陆信息 
                                           
                                          -------发送登陆信息---》 

                                                           判断用户信息是否正确 
      
     《--------------------------网上银行服务-------------------》 


那么这三种攻击方式又有什么方法来保护呢? 

1。键盘记录。 

   当用户点击键盘时,计算机内部发生了什么呢? 
   当用户按下键盘上的一个键时,键盘内的芯片会检测到这个动作,并把这个信号传送到计算机。如何区别是哪一个键被按下了呢?键盘上的所有按键都有一个编码,称作键盘扫描码。当你按下一个键时,这个键的扫描码就被传给系统。扫描码是跟具体的硬件相关的,同一个键,在不同键盘上的扫描码有可能不同。键盘控制器就是将这个扫描码传给计算机,然后交给键盘驱动程序。键盘驱动程序会完成相关的工作,并把这个扫描码转换为键盘虚拟码。什么是虚拟码呢?因为扫描码与硬件相关,不具有通用性,为了统一键盘上所有键的编码,于是就提出了虚拟码概念。无论什么键盘,同一个按键的虚拟码总是相同的,这样程序就可以识别了。简单点说,虚拟码就是我们经常可以看到的像VK_A,VK_B这样的常数,比如键A的虚拟码是65,写成16进制就是&H41,注意,人们经常用16进制来表示虚拟码。当键盘驱动程序把扫描码转换为虚拟码后,会把这个键盘操作的扫描码和虚拟码还有其它信息一起传递给操作系统。然后操作系统则会把这些信息封装在一个消息中,并把这个键盘消息插入到消息列队。最后,要是不出意外的话,这个键盘消息最终会被送到当前的活动窗口那里,活动窗口所在的应用程序接收到这个消息后,就知道键盘上哪个键被按下,也就可以决定该作出什么响应给用户了。这个过程可以简单的如下表示: 

    用户按下按键-----键盘驱动程序将此事件传递给操作系统-----操作系统将键盘事件插入消息队列-----键盘消息被发送到当前活动窗口 
                            (用winio可以截获)                      (使用hook可以截获)   
     
    目前银行防止键盘记录的方式主要有: 
      

    1)不采取任何保护措施。这是不负责任的做法,虽然从法律上来说,用户有责任保护自己计算机的安全。但是银行作为服务机构有必要给用户提供一个安全的环境,如果某个网上银行频繁发生用户帐户被盗事件,这也将导致用户流失,对银行来所也不是好事。 
    2)在操作系统中插入自己的钩子,并保证它在最前面,当检测到网上银行登陆界面为当前窗口时,该程序将截获的键盘输入写入登陆界面,最后将该键盘纪录从消息队列中删除。  不过这也可以通过使用winio写成的截获程序来接获用户输入。 
    3)使用winio来劫持键盘端口,确保用户输入不被截获。 这样做的缺点是: winio只能在管理员权限下运行,且winio有独占性,若其他程序也使用了winio将会导致登陆界面无法打开。招商银行曾经使用过这种方法,但是用户反映不好,现在的版本就放弃这种方式了 
    4)强制使用软键盘,每次打开软键盘时,通过随机数发生器来产生键盘序,笔者最认同这种方式,成本低,实现方便,安全性高。目前花旗银行和深圳发展银行采用这种方式 


   对本地交易平台劫持和中间人攻击方法的防范就相对复杂了,个人认为需要采用双通道认证才能够 很好的解决这个问题。例如,使用手机通知使用信息能够较好提高安全性。

  • 标 题:答复
  • 作 者:胡不归
  • 时 间:2007-10-26 22:57

用的是软键盘输入的。中招机会就少些了吧。

  • 标 题:答复
  • 作 者:断水流
  • 时 间:2007-10-27 08:36

软键盘同样容易中招,现在的马马大多会在你点键鼠标的时候进行截屏。。。遗憾的是目前的技术无法防截屏,这种软键盘非常的危险

多一种输入方式就多一分危险啊

  • 标 题:答复
  • 作 者:kingday
  • 时 间:2007-10-27 11:06

以下几点为己见:
1。软键盘,目前大多有个缺点:鼠标点击后字符键区域变色(当然这会给用户带来方便容易判断被按下)。这就给用木马者的方便,有可能木马的另一端正在检测你的屏幕(当然没必要老盯着你都屏幕,木马程序可以自行录下动画),只需通过观看哪些键区域变色即可知道哪些键被按下。。。。。
2。不用key的用户,最好选择手机网上银行。即使有木马等也必须通过手机短信等的编码认证方能继续交易。虽然手机短信的截获并不困难,但同时截获网银信息和手机短信信息的几率减少不少。
3。用usb key的用户需要注意:usb设备完全可以通过系统的‘服务’等模式悄无声息共享给网络的另一端使用。所以
  a. 当你发现usb key插上后没有提示认不到设备但本地却无法使用时,你最好立即拔下USB key 设备
  b. 用完网银后,养成好习惯拔下你的USB key,以免被远程共享连接使用。没事最好别老把usb key 插在电脑上
4。最好熟记自己用的网银正确网址,不要通过google,baidu等来搜索。小心假李逵网址
5。内网和防火墙都能在一定程度上减少被连接的机会。虽然对于稍微强点的攻击者微不足道,但也不失为一个防范手段。杀毒软件也必不可少。虽然攻击者完全有能力做到免杀。
6。对于稍微专业的用户,应俱备手工查杀(尤其时查)木马的能力,并养成习惯。这点对于看雪的朋友应该不是问题
7。保护好你都身份证及号码。别随便告诉他人
8。还有很多,自己想。想好了就告诉大家