首页
社区
课程
招聘
[原创] 网上银行安全分析
发表于: 2007-10-26 22:39 48841

[原创] 网上银行安全分析

2007-10-26 22:39
48841

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

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

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

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

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

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

1。键盘记录。

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

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

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

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


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (45)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用的是软键盘输入的。中招机会就少些了吧。
2007-10-26 22:57
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
3
发棵I/O许可位图
2007-10-27 01:06
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
软键盘同样容易中招,现在的马马大多会在你点键鼠标的时候进行截屏。。。遗憾的是目前的技术无法防截屏,这种软键盘非常的危险

多一种输入方式就多一分危险啊
2007-10-27 08:36
0
雪    币: 3230
活跃值: (2919)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
举个例子。。工行的卡。。。。现在只要你开网行。。。必然送一张口令卡。。。。可以使用1千次。。。用完后可以2元的价格到银行再拿一张。。。。转帐必须用此卡。。
2007-10-27 09:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不会这么少的保护方式吧?那现在工行的U盾是属于上面的哪个方法?或者说U盾只是一个验证用的工具呢?
2007-10-27 10:37
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
7
对付刮刮卡,一般骗你刮开几个都xx,然后自己去yy。
2007-10-27 10:51
0
雪    币: 26
活跃值: (189)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
以下几点为己见:
1。软键盘,目前大多有个缺点:鼠标点击后字符键区域变色(当然这会给用户带来方便——容易判断被按下)。这就给用木马者的方便,有可能木马的另一端正在检测你的屏幕(当然没必要老盯着你都屏幕,木马程序可以自行录下动画),只需通过观看哪些键区域变色即可知道哪些键被按下。。。。。
2。不用key的用户,最好选择手机网上银行。即使有木马等也必须通过手机短信等的编码认证方能继续交易。虽然手机短信的截获并不困难,但同时截获网银信息和手机短信信息的几率减少不少。
3。用usb key的用户需要注意:usb设备完全可以通过系统的‘服务’等模式悄无声息共享给网络的另一端使用。所以
  a. 当你发现usb key插上后没有提示认不到设备但本地却无法使用时,你最好立即拔下USB key 设备
  b. 用完网银后,养成好习惯拔下你的USB key,以免被远程共享连接使用。没事最好别老把usb key 插在电脑上
4。最好熟记自己用的网银正确网址,不要通过google,baidu等来搜索。小心假李逵网址
5。内网和防火墙都能在一定程度上减少被连接的机会。虽然对于稍微强点的攻击者微不足道,但也不失为一个防范手段。杀毒软件也必不可少。虽然攻击者完全有能力做到免杀。
6。对于稍微专业的用户,应俱备手工查杀(尤其时查)木马的能力,并养成习惯。这点对于看雪的朋友应该不是问题
7。保护好你都身份证及号码。别随便告诉他人
8。还有很多,自己想。想好了就告诉大家
2007-10-27 11:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9

真是道高一尺,魔高一丈啊
    以后要小心了(还以为软键盘会没事那)
2007-10-27 11:39
0
雪    币: 66
活跃值: (15)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
10
课堂作业吧...
2007-10-27 16:48
0
雪    币: 2871
活跃值: (2340)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
使用手机通知使用信息能够较好提高安全性
2007-10-27 19:58
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
12月之后,银监会就强制使用令牌了,能够提高一些安全性。

如果交易步骤如下,个人认为安全性还是很高的

顾客使用双卡,一张用与网上支付,称为上网卡;一张为普通卡(可以进行电话交易,不能进行网上交易);另外,上网卡搭配一个保护令牌,令牌内保存证书(用口令加密,口令既为用户的网银口令)

1)顾客可以通过电话将普通卡中的钱转帐到上网卡进行支付。---这里涉及到电话交易的安全性,不过如果将普通卡的电话转账对象限定为上网卡,安全性又可以提高。

2)上网卡使用证书+口令模式,口令由软键盘输入

3)顾客的任何交易信息都通过短信发送到顾客手机,顾客通过手机回复后正式开始交易。

这样顾客网银就拥有2条通道(网络和电话),另外还有一张卡作为缓冲,即使被攻破,也可以减少损失。
另外,这些安全措施可供顾客选择,如果有人嫌麻烦,可以定制。

个人认为安全性还是比较高的,供大家讨论。

///////////////////////////////////////////////////////////
to theOcrat

我倒希望是作业,本人已经离开课题很多年了。
2007-10-28 00:16
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
13
也不是这么容易吧,反正我自己亲身经历过,没有这么简单的(菜),我指的是键盘记录
2007-10-28 08:43
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
领个密码卡吧,其它的什么都不安全
2007-10-28 10:20
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我不知道会中不..我也不知道我会不会中.
用了这么久,也没什么问题!
可能是我里面的钱钱太少了..呵呵..
2007-10-28 11:25
0
雪    币: 510
活跃值: (433)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
16
用密宝吧,动态safe ID,汇丰的大客都用这个,几十秒钟变换一次safe ID,,感觉比较安全。
2007-10-29 11:11
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
看来看去  密码卡和每次手机接受密码(移动登陆一样)比较安全
2007-10-29 11:58
0
雪    币: 276
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我的网银是登陆密码+取款密码+手机动态密码,每次转款都发送一个动态密码到手机上,黑客就是再厉害,除非将我手机一起偷了去。
2007-10-29 17:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
最近在做网上银行的项目...
2007-10-30 18:17
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
还是双通道认证好啊
安全性就是高
网络加手机
2007-10-31 22:27
0
雪    币: 236
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
学习了,不过网络加手机德芳实业会有问题的吧
2007-11-1 15:29
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
没有哪种解决方案是没有问题的
只是难度的问题
2007-11-3 21:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
那个U key这类的东西都是强度加密的,没有这个不给登录或者操作的,我想够安全了吧
2007-11-5 16:01
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
攻击者不会攻击加密算法的,他会想办法绕过去
作为一个系统开发人员不能把安全都压在算法上
比如中间人攻击就可以绕开加密这一部分
2007-11-7 21:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
分析的可以的啊,呵呵,我想还有一种方法
2007-11-8 12:19
0
游客
登录 | 注册 方可回帖
返回
//