网上银行“安全登录控件”分析

国内的一些银行的网上银行系统为了用户信息的安全,在登录页面上使用了名为“安全登录控件”的东西,取代了传统的 HTML 的输入控件(Input),下面就对用户量较大的招商银行和工商银行的登录界面及“安全登录控件”做一下对比。

1、招商银行

招商银行的网上银行系统做的比较早,用户也很大,深受大部分用户欢迎,其在安全控制手段上也一直比较严格。

在进入正题之前,先来一点题外话:招商银行的有些安全控制办法很值得我们学习,例如专业版证书,据我猜想,可能是在标准的 X.509 证书上又做了一些安全保护,即对标准的证书又进行加密(加密方式不是公开的),这样在计算机中保存/备份的证书是不能通过 Windows 提供的程序去打开的,只有在专业版软件中输入正确的密码后才能导入,这样即遵循了标准,保证了扩展性,又在安全措施上大大加强了。

招商银行的大众版不象专业版那样版本更新很快(可见招商银行的专业版用户量很大,而大众版并不是其发展的重点),大众版自诞生之日起,界面一直比较简单朴素,但基本功能都具备。通过对大众版登录界面的的分析,得到了一下信息:

1) 在登录界面上有数字验证码来防止暴力攻击

2) 安全登录控件中包含两个控件:帐户和密码输入控件

3) 用户输入登录信息后,提交时 Javascript 从安全登录控件中取出的帐户和密码是经过加密的,即在 SSL 加密的基础上,又做了自定义的加密,完全做到了端到端的保密通讯(这一点可以通过 ieHTTPHeaders 查看出来)

4) 在登录 Form 中还有一个 ClienNo 和 SerialNo 等字段,这些值被设置为安全登录控件的 Option,估计是做为加密所用 Key 的一部分

5) 登录 Form 的提交地址是一个 DLL(ISAPI?),Web Server IIS 5.0 (招商银行的主页似乎运用了 Content Management Server ,从其页面源码中可以看出来)

6) 安全登录控件的 CAB 包(CMBEdit.CAB),大小有 117 KB,包含控件 CMBEdit.DLL ,应该是使用 VC 编写的,版本 1.1,经过 VeriSign 代码签名

7)最关键的是,不管是 MVM基于 .NET 的键盘 Hook 程序,还是另外一个基于 VB 的键盘 Hook 程序,都无法捕捉用户在安全登录控件里输入的键值,这也许是最重要的一点

8) 由于在页面中使用 ActiveX ,可能给一些用户带来登录问题(如安全设置不同或安装 XP SP2 都可能阻止 ActiveX 的安装),招商银行的页面上明确给出了解决登录的链接文档。

总之,招商银行的网上银行登录界面在安全上的确做的不错。

2、中国工商银行

工商银行网上银行近两年发展很快,成了其不可或缺的一个重要渠道,且被国外一些媒体评为中国最佳网上银行。

1) 工商银行的个人网上银行系统登录界面中没有使用验证码来防止暴力攻击,这种成本非常低,但安全性回报很高的做法竟然都不用(扣1分)

2) 登录界面中,只有密码域使用了安全控件,难道帐号信息就不重要(扣1分)

3) 在 ieHTTPHeaders 捕捉到的登录 Form 提交的信息中,帐号和密码是未加密的明文,且没有任何其它的信息来防止安全攻击(扣3分)

4) 有意思的是,在登录界面的 HTTP Response 信息中,不但有 IIS 5.0 的信息,还有 WebSphere Application  Server 4.0 的信息,看来其 Web Server 是 IIS,而 Application Server 又是 WebSphere ,这一对组合 ...

5) 登录安全控件的 CAB 包(AxSafeControls.CAB) 大小约为 174 K,经过 VeriSign 代码签名,里面有三个 DLL :InputControl.dll 似乎就是界面控件,msvcp60.dll 应该是Microsoft  C++ Runtime Library,SubmitControl.dll 应该是与提交有关的控件,在 SubmitControl.dll 中发现有 addPair 方法,应该与加密有关,在页面提交的 Javascript 中,也确实发现是SubmitControl 发挥了作用,但为什么就是明文的呢? (扣2分)

6) 在登录页面的源码中,发现了一段被注释的 Javascript 代码,仔细一看,原来是以前登录界面未使用安全登录控件时,使用 Html Input 控件时的处理代码,界面改了之后,处理代码没有删除,只被注释,这些源代码中暴露系统的一些信息,很不专业,也很危险,因为通过分析就可以发现,其界面更改前后的服务器端代码没有任何变化(扣2分)

7) 最关键的是,虽然 VB 的键盘 Hook 程序不能 Hook 密码域中输入的值,但是基于.NET 的键盘 Hook 程序竟然完全可以捕捉到用户输入的任何键值,这难道就是大家前几天讨论的捕捉的作用域问题?这样的话,安全控件几乎就成了摆设(扣10分)

8) 没有在登录页面中给出如何解决登录问题的链接文档,可能使得很多用户由于 ActiveX 不能正确安装而不能正确登录系统


经过对登录界面的一些初步比较,就能发现两者在安全性上的差别,也说明了安全是要靠实实在在的技术手段去保证的。

以上信息基于公开的、可获取的现状提供,不提供其它明示与保证。

2004年10月31日 22:26

评论

刚刚看了北京电视台的《第七日》,有位女士的工行卡被转走,还剩三分钱,因为她使用的密码是"666666",估计是使用暴力攻击的原因,因为没有使用验证码而导致。

而且感觉工行的服务很差,不过没有办法,我现在工资、贷款都是使用工行的。看了这个电话,真的很怕:(

非常好的分析

不知道能否转载呢?



不知道工行通过什么幕后操作得到"中国最佳网上银行"的,郁闷.

额最喜欢招行 太方便了

不过如果是不常动的大额的还是用工行

很早就听说工商银行存在一个什么漏洞(抱歉,公开场合不能说),也没敢去尝试(至少没人会公开的去尝试),因为非授权的入侵检测是非法的(没有法律武器,预计出现的问题就大了)。。目前从安全的角度说,招商银行的确是做得非常好的。。

盖的好,太精辟了,让偶大开眼界.

明天赶紧把工行的卡注销掉.

写的好,幸亏我一直用招行的: )

我也用招行的.
有些场合用中行是迫不得已.


TO Smallfrogs :欢迎转载

有时间还想做一些进一步的分析。

分析深入!

Nice!
但是我在招行的卡忘了密码了...
一直在用中行的卡
moslem再接再厉...

我网上一直用CMB的,其他的用中行。

有些企业并不是没有技术能力,而是和他的责任人有关.

老凯(laokai).是啊。确实有漏洞。不过那是1,2年前的事了。现在应该没了吧。

我对网络支付一直没有信心。

我觉得工行自出了个人客户的硬件证书后安全了很多,最起码要比招行的安全,如果有证书的话,只要证书在自己手里,密码再简单,哪怕就想第七日哪个女的,密码全是6,猜出来也是白搭,根本没用,顶多了是到我的网上银行里查查我的资金状况,对我的资金根本购不成威胁。又没法支付。现在工商银行应该很快对网上银行更新,如果是证书客户,应该是只要你有证书,就连登陆都需要证书,而且不需要输入很长的卡号,可以自己定义相关的用户名,这样更安全,我一直用工行的,很安全,像第七日那个女的,纯熟无几之谈!丢了都活该~

TO 工行支持者:

本文讨论的是大众版,即不需要证书就可以访问系统的。至于你说的 “至多是到我的网上银行里查查我的资金状况,对我的资金根本购不成威胁” 很可笑,人家都能随时随地的查询你的资金状况了,还构成不威胁?




To 工行支持者!

呵呵,非常可笑的言论.这儿讨论的毕竟是和人民生活相关的Money,出现漏洞可是非常严重的!

通知工行了才发的这个帖吧?

to SmartGuy :

因为我们公司没有工行的入侵检测协议,所以我不好说有没有,说有和没有都是违法的。。而我最后一次听说工行相关安全问题的详细信息也是在今年的下半年。。(我可没说我测试过他的存在)

另外补充说明一下。。我所听说的漏洞还没有一个可以直接的攻击到银行的核心数据,都是些小的漏洞。。可能可以被利用来作一些用户欺骗而以。。。而且是不是存在也没有考究过。。

和技术无关,和服务态度有关。

我一直用招行的电话银行来交手机费,从来没有去过移动营业厅。一直用招行的信用卡去商场卖东西,没有用过现金。一直用招行的专业版转账,存定期等。它的服务质量我还是很满意的。

工行确实有问题,还有那个附属的论坛,前一段时间看过有人在帖子里种木马。


招行天生就是商业银行没有那些国有商业银行的架子,服务是它的根本,所以服务是第一这没得说,而且由于其眼光独到,在N年前就预测到将来网上银行的趋势,所以现在无论网购什么的,都是招行最好,专业版升级比较快,而且安全措施做的也不错。

我是搞金融的,几乎拥有所有国内银行有的网上银行,对各家的网上银行了如执掌,大家说的没错,可以与招行较量的没有几个,我几乎用了将近3年的网上银行了,对工行网上银行,招行网上银行非常了解,工行自打01年推出网上银行经历了很多的版本升级2.0~2.5~3.0.....直到现在的网上银行新一代,日加完善,特别是证书业(注名:并不是楼上某些老哥说的什么大众版不大众版,那是当地分行的特色业务,要搞清楚!!)可以说任何一家银行的都无可匹敌。虽然证书会收取一些工本费用,但是你要是要安全,还怕花钱~我以前用招行的网上银行,钱也不意而飞了~至尽也没找回来~我也很气愤,各家的银行没有没漏洞的,别被假象所迷惑,自己都琢磨琢磨~在这争论有意思么~呵呵~无奈~

TO:反驳

建议以后先把汉字敲对了 ...

“各家的网上银行了如指掌” 这话也太大了一点,本人接触过很多多年专门网银软件开发的人员,也没人敢如此吹捧自己。

“大众版”其实就是个称谓,只有招行如此称呼,工行的网上银行不用证书也可以访问一部分功能的,上文就是比较这部分功能,跟分行的特色业务有什么关系?

如果要比证书版的网银,那完全可以另开个专题了。

没有证书的客户就不属于工行保密的范围了吗?
如果是这样,那工行的服务实在是有问题!不过最大的问题,我想是态度问题,对待事物、对待客户的态度!

我想moslem大哥写出此分析也是出于好意。既然敲了警钟,就应该虚心的接受、处理此问题,而不是再用其它的什么特色业务来攻击对方。

态度问题、服务问题!

底层的键盘钩子抓不到用户的键盘输入么?
要用Win32的键盘钩子。。。。
不要用.net和VB的,用Dll做全局钩子,偶不信抓不到用户键盘输入
-。-

作者继续加油
把招行也找点问题出来,heihei

做个设备驱动程序吧,保证能抓到键盘输入
:-P

我想,对于一个银行,安全是至关重要的!我想工行不会想不到吧,在表面上看,可能它没有招行安全,但在提交之后的处理,不能说它处理得不好!没有验证码,也可以防暴力攻击啊!但无论如何,总有好有坏的,这里说得招行就是没缺点,工行就全是缺点!

rivershan兄,用DLL钩子全局钩子未必能截取键盘输入的,呵呵,tianxia兄说用驱动上RING0,那样应该没问题.但如果对方也进0环的话...

从技术上来说,应该是可以 Hook 的键盘信息的,只是这个安全控件会不会产生一些干扰信息,或者控件会检测到被 Hook ?

这里虽然说了工行的一些缺点,但它们两个毕竟是国内个人网上银行做的最好的两间,其它比工行差的银行也不少。

hao ya 拥有属于自己的一颗红色石头,因为它很美!也因为它的独特,世上没有完美的爱情,更没有完美的人,所以我不求找到一个完美的人来疼我来爱我,可是我希望他是一个爱我、疼我的人!失去了他的日子我像断了线的风筝在那里飘来飘去,我找不到我的落脚点,我只能飘啊飘!听从风的安排!
有了一对翅膀,可是仍追不上你!

呵呵,你如果在安全公司做过网上银行的安全评估就知道有多不安全了,只要知道网上银行的IP就可以入侵进入,从来没有评估不出这种问题的时候!

--感觉招行也不安全--

工行就不谈了!你即使有招行的移动数字证书(USB),但你也可以不用数字证书登陆你的大众版,这意味着一旦有木马恶意程序能够记录你的键盘输入,就很有可能获得你的付款密码。这样即使没有你手中的数字证书,别人也能入侵你的招行帐户。

我感觉在WINDOWS中获得键盘输入还是有可能的(很久没编WINDOWS程序了)。

请大家评判!另外最主要的是要让相关的银行知道他们的漏洞!

--还都有缺陷--

招行
- 大众版的密码只有六位数字而没有字母
- 即使有数字证书,也可以不需要它而登陆大众版(网银密码病毒可以大显神威了)
- 只能使用易受攻击的IE浏览器来登陆和操作

工行

- 登陆网上银行时不需要数字证书,并且可转帐(5000元以下)
- 登陆时没有防暴力攻击的数字验证码
- 定期存折不能自己注册(或注销)到网上银行
- 数字证书有年费(12元)
- 只能使用易受攻击的IE浏览器来登陆和操作


补充一句: 工行的数字证书只能用于保护对外转帐,对于保护其它的功能比如股票买卖、网上支付基本没用(不用数字证书也能做).

从2000到2003年,据说有人做过3次不同阶段的招行的网上银行安全性评估,结果都是不乐观的. 在这里就不具体说了.

谁能告诉我怎么注销工行的个人网上银行?谢谢~我的信箱是 cwyhx@hotmail.com 谢谢啊~

这两天我也在分析这个招行的网上银行,目的只有一个
我这里大部分时间只能在linux上用firefox或mozilla,所以希望能够
绕过activeX,访问我的信用卡和大众版的个人银行。

我的几点新发现和猜想:
1.加密算法貌似使用了openssl,不知道是不是已经违背了openssl的license.
2.id和密码的加密结果应该是64bytes, 然后用base64的机制在补齐到66bytes后变为88bytes.
3.实际编码使用的keys不是base64标准的keys,所以会出现__结尾的样子。

其他的我以后再说,现在还没有成果,志同道合者一起努力!

谁能告诉我在网上怎样注销工行的个人网上银行服务啊!!!?我的电邮是weisk@126.com 谢谢先了!!

工行的网上银行的越来越不错了,不信的话,请上WWW.95588.COM.CN多了解一下工行的网上银行,
各位不要把N年前的工行网上银行拿来在这里比较,这样好像对工行不太公平。

楼主的文章虽然对工行很不公平,有失偏颇,不过确实指出了一些毛病,我用了三年的招行一卡通了,今年毕业又要去工行上班,所以两边都支持^_^,毕竟这是国内做的最好的两个网上银行了,楼上说的也对,现在工行的发展可比招行快多了,招行不努力不行了。

楼主说道"本文讨论的是大众版,即不需要证书就可以访问系统的",个人感觉好象没有搞清楚证书什么概念,大众版是招行一种分类方式,而工行好象不是这么分的,好象不是按照证书分类的。。

有人搞定linux下面用招商银行网上银行了么?联系kaman@163.com

我在工行网上银网购买点数,想不到不但没有得到自已的点数,就连工行网上银行的主都打不开了!哎!!

我也想注销工行的个人网上银行,可偶不知道怎办搞,请大侠指点!! bob117@tom.com

我也想知道怎么去注销工行的网上个人银行,请个位大狭不吝赐教,我的邮箱是:dsvf2005@sina.com上楼的朋友要是知道了也公司我一声啊,先谢了。

"商银行的大众版不象专业版那样版本更新很快(商银行的大众版不象专业版那样版本更新很快(可见招商银行的专业版用户量很大,而大众版并不是其发展的重点),

安全性与方便性,往往是成反比的 招行的大众版没有专业版的安全性高,并不是象你所说的"(可见招商银行的专业版用户量很大,而大众版并不是其发展的重点)" ,而是考虑到给小额资金的客户操作的方便性

工行的服务差在我们这里是出了名的,但是前天我的电脑中木马密码被盗,去工行注销网银工行的服务人员说我什么水平密码都能让黑客盗了,还说不会注销,晕了,工行有这样的服务不知道还怎么有那样多的客户

中行,建行,工行,交行我都试过,作为一个普通的消费者,我觉得招商银行的网上银行是目前国内最成熟的,当然里面的服务也有不尽人意的地方,这可能与国有银行之间的交流有关。许多网上交易,自助缴费,股票,债券以及理财业务,我都是通过招行专业版完成的。有时,甚至是将工行和中行以及建行的钱取出来放到招行来从事这些业务。之所以开了四个银行,中行:发工资;工行:优惠提供国际卡业务,当时有事出国,临时办理就懒得去销户;建行:最初公司发工资的协议银行,要求有龙卡。现在,虽然保有中行信用卡(过期了),工行银信用卡(国际卡和国内卡-过期了,不想补办),建行卡销户(看营业员的脸色都绿了),还有招行一卡通,虽然是借记卡,但觉得比信用卡好用,至少去香港时没觉得工行国际卡比它好用。现在唯一的工行信用卡是以防万一,以及去其他国家可以暂时透支。招行的信用卡比较慢,申请还很严格。

交通银行也有其便利之处,但还是比较小。目前的特色业务也开始丧失。中行,建行,工行,交行四大银行的网银非常相似,至少普通消费者看不来又多大区别。
我是96年申请招行一卡通,当时网上银行用的是一网通,后来更新后就不再用了。

总的来说,比较起其他国家的银行的网银来说,直接方便而且使用感觉放心的,我觉得首推招行。听说他们的后台服务器用的是什么IBM的AS400,不开放,不是开放的Unix系统,不知是否如此?


可有人用过农行的?

招行的是用Delphi写的,不是VC++!!

对于各家银行服务器端使用什么平台这个好像俺们这些小百姓还是了解不了的吧?不过有一点在如今这个信息爆炸时代要是还使用开放的大众的平台作为银行的核心服务器使用是不是显示这些个银行太弱智了吗?

说一句心里话,不管哪家银行使用哪种的所谓安全性能好的网银,关键在于用户自身的使用方式以及文化水平。。再好的安全,你放在大众场合如网吧或者整台肉机上面全是黑客程序,你的网银交易会安全吗?这里我推崇硬件加密!USBKEY...随身携带,想偷都偷不走。。。。呵呵

不过是相对的安全性罢了。
至于SSL/TLS,我想,已经足够。应该用不着考虑美国的出口政策了。如果我们用户都有点UNIX的思想,把问题简单化,也用不着那么担心了。其实安全性主要依赖于用户的防范意识。服务商就是再做努力,假如用户和别人聊天的时候泄漏出去,他们也没办法……
可以用TLS封装HTTP,同时需要客户证书并使用本地CA证书验证之;再在加密的TLS会话中附带HTTP Basic认证,也差不多了。就是泄漏密码,也是本地浏览器(客户端)的UI的问题。话说回来,现在众多大陆网上银行的所谓登陆控件放到非微软的平台/浏览器上面根本就用不起来,何况现在越来越多的用户正在转向UNIX或者类UNIX(难不成一定要强迫一台Linux X11终端换装Windows?)。如果用TLS或者SSL,则一定要避免SSLv2 version rollback或者其他的降级攻击。(这个也需要在客户端上做文章。)总之,客户的防范意识才是最重要的。

各位哥哥姐姐.请问谁知道该如何注销工行的网上银行啊?谢谢啦.能帮忙发个邮件到teacatyang@sohu.com吗?太感谢了.

注销工行的网上银行到工行的网点去说一下就可以了.

可是我不能安装这个控件。不知道哪位可以帮帮偶。我的系统是Windows XP SP2的,而且我用 了自动更新的,不存在版本过低吧。

接上,而且IE是6.0最新版的。

楼主的文章写得极其好,感谢

网上银行是挺方便,可是不怕一万就怕万一,如果真出了问题,像我这种只有一张卡的人岂不是立马就倾家荡产啦,真实非常可怕,非常可怕。

可是,回头一想,银行也不是吃素的,这种事情肯定会尽全力去做好的,而且经过了充分的论证和实验,所以也不必太担心。比如招行吧,他的网上银行企业版就说动了像摩托罗拉这样的大客户,看来在安全上还是有保证的。

楼主努力再接再励啊,文章发表得早,内容过时了

刚注册了工行的网上银行证书,进到里面发现工行黄金业务是不用证书验证的,我真担心。

晕,我正在做工行的API接口,没想到搜出这么一篇文章来,狂汗……

cmb is the best

我发明了一个专利技术,可以保障网上银行到用户登录安全。这个发明一半是软件一半是硬件。但实现到办法很简单,需要到硬件随处可以买到。

即使被木马盯上,知道了账号和密码也无法登录。而真正的用户却可以在三秒内轻松登录。用户不需要花钱,不需要购买U盾和口令卡。但方法有点象口令卡,但比口令卡方便很多。
对银行来说,只要增加一点点设备就可以了,是个廉价又安全到选择。

已经申请了专利,可惜不知道怎么推广好呢。

问题是木马知道了账号及密码后,没有USBKEY没关系,制一张卡到ATM取款就行了

我是江苏省常熟,
8月23日苏州工商银行电话本人,说我帐户有可疑交易.进入后台1看,居然被盗抢了9000元,
注意是9000元,不是5000元!!发生在同1天8月22日凌晨4分开始
至尽银行,未有解释
更称,银行没有责任赔付!!!!
工商银行真是中国银行界的大流氓!!
今天看了

如此众多的受害者,为什么没有部门来制裁银行
这种霸道垄断的银行,关了也罢!!!!!!!!!!!!

本人工行灵通卡,被盗抢9000元
发生在2006年8月22日,银行说是凌晨4分开始
按理同1天,限额是5000元,
为什么发生了9笔,每笔1000元,盗抢了9000,
这5000外的4000,为什么发生在同1天,
我感觉不排除,工行内部人搞的鬼

另外凌晨转帐,只能在同行转帐,跨行交易在非工作时间是无法完成的, 就是说,被转移到了工行自己的卡上

这查询,真的很难么?

如果1个月内没有结果,告之于法庭
工行的态度,还极端极端的恶劣!!

从接触招行的第一天起就开始喜欢上她了。虽然有些地方还有些瑕疵。


现在在专业版本中可以把大众版功关掉的

USBKEY证书同样不安全,如果能够替换键盘及鼠标驱动,模拟用户操作,不需要其他就可以把你的钱拿走。

to:扬子
网上银行的登陆密码和ATM机的密码是不同的密码。

to:安全人士
我的发明是双重身份认证,第二重认证可以完全和键盘鼠标隔壁的登陆方式,不用怕Hook勾取密码,也不怕黑客登陆你的计算机模拟操作。

想知道我的发明是怎么样的吗?请登陆www.richoo.com

也欢迎网银安全技术的朋友和我联系,我可以告诉你技术细节与我探讨。

怎么注销网上帐户啊.工商银行的.

每月做好系统补丁,安好杀毒/木马专杀/间谍专杀软件~~~开启Windows自带防火墙~~~安装可靠的防黑客/木马攻击的防火墙~~~每次使用网银之前病毒/木马/间谍统统扫杀一遍~~我看谁还能拿到我的银行卡账号/密码~~~ 
# re: 网上银行“安全登录控件”分析 2004-10-31 23:01 开心就好
阅读更多

扫码向博主提问

阿源

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • Java
  • 敏捷开发
  • 大数据
  • 项目管理
  • 系统架构
去开通我的Chat快问

没有更多推荐了,返回首页