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

国内的一些银行的网上银行系统为了用户信息的安全,在登录页面上使用了名为“安全登录控件”的东西,取代了传统的 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 不能正确安装而不能正确登录系统

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

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

“网上银行“安全登录控件”分析”的90个回复

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    这查询,真的很难么?

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

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

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

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

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

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

  13. 每月做好系统补丁,安好杀毒/木马专杀/间谍专杀软件~~~开启Windows自带防火墙~~~安装可靠的防黑客/木马攻击的防火墙~~~每次使用网银之前病毒/木马/间谍统统扫杀一遍~~我看谁还能拿到我的银行卡账号/密码~~~

  14. 日你妈的工行,操~老子注册说老子卡号不存在,日你妈了,早晚倒闭,靠,妈的老子人不在家,在外面把网上银行密码忘记了,还要拿着身份证到家才能修改,干你妈的,垃圾银行

  15. 请问各位大哥哥大姐姐,我的卡号跟密码被一个人知道了,但是我的卡没有申请过网上银行,但是哪个人申请过网上银行,请问他只有我的卡号跟密码就能完全利用我的卡做任何事情吗?我好怕

  16. 扬子
    问题是木马知道了账号及密码后,没有USBKEY没关系,制一张卡到ATM取款就行了
    ———————————————————–
    知道了帐号&密码并不能制作出能取钱的卡来,呵呵!
    因为卡号只是一个号码,磁卡磁条上存的并不是卡号!
    一个简单的解答:如果你卡丢了,去申请补办一张卡,号码相同,不过原来的卡是报废了。

  17. 很是好来这里看,看来这里的大侠真的不少。
    大侠们谁能告诉我下我的工商卡网上银行怎么注销,
    我只知道拿着卡去营业厅办,可是我的卡丢了。
    04年就办的,我现在急着用工行的网上银行,可是一个身份证只能办一个网上银行,必须把04年那个注销了,我没卡怎么办啊?急死个人了,求助各位帮忙吧!!!!!

  18. 不错,仔细看了,只是文章发表已经很长时间了,现在工行应该完善一些了吧。怎么没有建行和农行的分析?我觉得他们使用软键盘输入很不错的。对了,我用spyware doctor扫描说工行的控件是backdoor.agent木马,不知道是不是误报?

  19. 我使用的建行的网银,被偷了4万多
    我安装了数字证书,并且已经将证书设置为不可导出方式

  20. 如果你对于网上银行系统的安全性有足够深入的知识和实践,不妨加入到我们的团队,在成都或者深圳从事颇具挑战性的工作——为金融行业提供更加安全的网上应用解决方案 🙂

    email: [email protected]

    算是一个广告哈,不好意思:(

  21. 我的情况同fanmilan类似。
    我使用的也是建行的网银,被人在网上汇走(偷走)3万多 ,我也安装了数字证书。建行的态度的确恶劣!不但不同情,而且态度一点也不积极!他倒显示出一副很无奈的样子!居然让我报案(把我推给了公安),最后在我向他(行长)气愤地讨说法后,他说,不行你就起诉建行,于是又把我推向法院!
    郁闷啊!!!谁有时间去和建行打官司呀?!谁又能陪得起啊?!可那又是咱的血汗钱呢!!!
    望高手指点迷津!谢谢!

  22. 网银的安全性和后台操作系统应该关系不大。用Z/OS也好,用AIX也好,从WEB Server到Application Server,一路上有N多道防火墙,WebSeal这类也不是吃素的。除非在中间某处植入脚本,直接攻击到后台的可能性不大。
    不过,如果SQL查询写得不好的话,倒是会有一些漏洞,不过这个还是和OS层无关,应该说是应用层的漏洞。
    目前看来,大多数的都是窃取了用户帐号和密码,对于网银的应用层来说,既然帐号和密码是正确的,那么就没有理由拒绝服务。
    所以关键在于报文的传送过程和本地的安全。象上面有朋友说的那样,如果本地有后门或者木马,那么帐号被窃也的确和网银无关,至少不是网银的责任。当然,网银端可以尽量做得安全一些,比如用数字证书之类的,但是程序毕竟只能识别帐号和密码组合,它无法判断究竟是谁在试图登录。除非引入生物识别技术。

  23. 我想那些说招行安全技术的人是想故意把题扯远了
    一言以蔽之,两家银行的态度使然。工行的网上银行让人感觉不到他众多的安全措施带给人的安全感,反倒让人觉得很罗嗦。

评论已关闭。