国内的一些银行的网上银行系统为了用户信息的安全,在登录页面上使用了名为“安全登录控件”的东西,取代了传统的 HTML 的输入控件(Input),下面就对用户量较大的招商银行和工商银行的登录界面及“安全登录控件”做一下对比。
1、招商银行
招商银行的网上银行系统做的比较早,用户也很大,深受大部分用户欢迎,其在安全控制手段上也一直比较严格。
在进入正题之前,先来一点题外话:招商银行的有些安全控制办法很值得我们学习,例如专业版证书,据我猜想,可能是在标准的 X.509 证书上又做了一些安全保护,即对标准的证书又进行加密(加密方式不是公开的),这样在计算机中保存/备份的证书是不能通过 Windows 提供的程序去打开的,只有在专业版软件中输入正确的密码后才能导入,这样即遵循了标准,保证了扩展性,又在安全措施上大大加强了。
招商银行的大众版不象专业版那样版本更新很快(可见招商银行的专业版用户量很大,而大众版并不是其发展的重点),大众版自诞生之日起,界面一直比较简单朴素,但基本功能都具备。通过对大众版登录界面的的分析,得到了一下信息:
1) 在登录界面上有数字验证码来防止暴力攻击
2) 安全登录控件中包含两个控件:帐户和密码输入控件
3) 用户输入登录信息后,提交时 Javascript 从安全登录控件中取出的帐户和密码是经过加密的,即在 SSL 加密的基础上,又做了自定义的加密,完全做到了端到端的保密通讯(这一点可以通过 ieHTTPHeaders 查看出来)
4) 在登录 Form 中还有一个 ClienNo 和 SerialNo 等字段,这些值被设置为安全登录控件的 Option,估计是做为加密所用 Key 的一部分
5) 登录 Form 的提交地址是一个 DLL(ISAPI?),Web ServerIIS 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 ,可能给一些用户带来登录问题(如安全设置不同或安装 XPSP2 都可能阻止 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 不能正确安装而不能正确登录系统
经过对登录界面的一些初步比较,就能发现两者在安全性上的差别,也说明了安全是要靠实实在在的技术手段去保证的。
以上信息基于公开的、可获取的现状提供,不提供其它明示与保证。
# re: 网上银行“安全登录控件”分析 2004-10-31 23:01 开心就好
评论
而且感觉工行的服务很差,不过没有办法,我现在工资、贷款都是使用工行的。看了这个电话,真的很怕:(
不知道能否转载呢?
不过如果是不常动的大额的还是用工行
明天赶紧把工行的卡注销掉.
有些场合用中行是迫不得已.
有时间还想做一些进一步的分析。
但是我在招行的卡忘了密码了...
一直在用中行的卡
moslem再接再厉...
本文讨论的是大众版,即不需要证书就可以访问系统的。至于你说的 “至多是到我的网上银行里查查我的资金状况,对我的资金根本购不成威胁” 很可笑,人家都能随时随地的查询你的资金状况了,还构成不威胁?
呵呵,非常可笑的言论.这儿讨论的毕竟是和人民生活相关的Money,出现漏洞可是非常严重的!
因为我们公司没有工行的入侵检测协议,所以我不好说有没有,说有和没有都是违法的。。而我最后一次听说工行相关安全问题的详细信息也是在今年的下半年。。(我可没说我测试过他的存在)
我一直用招行的电话银行来交手机费,从来没有去过移动营业厅。一直用招行的信用卡去商场卖东西,没有用过现金。一直用招行的专业版转账,存定期等。它的服务质量我还是很满意的。
建议以后先把汉字敲对了 ...
“各家的网上银行了如指掌” 这话也太大了一点,本人接触过很多多年专门网银软件开发的人员,也没人敢如此吹捧自己。
“大众版”其实就是个称谓,只有招行如此称呼,工行的网上银行不用证书也可以访问一部分功能的,上文就是比较这部分功能,跟分行的特色业务有什么关系?
如果要比证书版的网银,那完全可以另开个专题了。
如果是这样,那工行的服务实在是有问题!不过最大的问题,我想是态度问题,对待事物、对待客户的态度!
我想moslem大哥写出此分析也是出于好意。既然敲了警钟,就应该虚心的接受、处理此问题,而不是再用其它的什么特色业务来攻击对方。
态度问题、服务问题!
要用Win32的键盘钩子。。。。
不要用.net和VB的,用Dll做全局钩子,偶不信抓不到用户键盘输入
-。-
把招行也找点问题出来,heihei
:-P
这里虽然说了工行的一些缺点,但它们两个毕竟是国内个人网上银行做的最好的两间,其它比工行差的银行也不少。
有了一对翅膀,可是仍追不上你!
工行就不谈了!你即使有招行的移动数字证书(USB),但你也可以不用数字证书登陆你的大众版,这意味着一旦有木马恶意程序能够记录你的键盘输入,就很有可能获得你的付款密码。这样即使没有你手中的数字证书,别人也能入侵你的招行帐户。
我感觉在WINDOWS中获得键盘输入还是有可能的(很久没编WINDOWS程序了)。
请大家评判!另外最主要的是要让相关的银行知道他们的漏洞!
招行
- 大众版的密码只有六位数字而没有字母
- 即使有数字证书,也可以不需要它而登陆大众版(网银密码病毒可以大显神威了)
- 只能使用易受攻击的IE浏览器来登陆和操作
工行
- 登陆网上银行时不需要数字证书,并且可转帐(5000元以下)
- 登陆时没有防暴力攻击的数字验证码
- 定期存折不能自己注册(或注销)到网上银行
- 数字证书有年费(12元)
- 只能使用易受攻击的IE浏览器来登陆和操作
我这里大部分时间只能在linux上用firefox或mozilla,所以希望能够
绕过activeX,访问我的信用卡和大众版的个人银行。
我的几点新发现和猜想:
1.加密算法貌似使用了openssl,不知道是不是已经违背了openssl的license.
2.id和密码的加密结果应该是64bytes, 然后用base64的机制在补齐到66bytes后变为88bytes.
3.实际编码使用的keys不是base64标准的keys,所以会出现__结尾的样子。
其他的我以后再说,现在还没有成果,志同道合者一起努力!
各位不要把N年前的工行网上银行拿来在这里比较,这样好像对工行不太公平。
安全性与方便性,往往是成反比的 招行的大众版没有专业版的安全性高,并不是象你所说的"(可见招商银行的专业版用户量很大,而大众版并不是其发展的重点)" ,而是考虑到给小额资金的客户操作的方便性
我是96年申请招行一卡通,当时网上银行用的是一网通,后来更新后就不再用了。
总的来说,比较起其他国家的银行的网银来说,直接方便而且使用感觉放心的,我觉得首推招行。听说他们的后台服务器用的是什么IBM的AS400,不开放,不是开放的Unix系统,不知是否如此?
至于SSL/TLS,我想,已经足够。应该用不着考虑美国的出口政策了。如果我们用户都有点UNIX的思想,把问题简单化,也用不着那么担心了。其实安全性主要依赖于用户的防范意识。服务商就是再做努力,假如用户和别人聊天的时候泄漏出去,他们也没办法……
可以用TLS封装HTTP,同时需要客户证书并使用本地CA证书验证之;再在加密的TLS会话中附带HTTP Basic认证,也差不多了。就是泄漏密码,也是本地浏览器(客户端)的UI的问题。话说回来,现在众多大陆网上银行的所谓登陆控件放到非微软的平台/浏览器上面根本就用不起来,何况现在越来越多的用户正在转向UNIX或者类UNIX(难不成一定要强迫一台Linux X11终端换装Windows?)。如果用TLS或者SSL,则一定要避免SSLv2 version rollback或者其他的降级攻击。(这个也需要在客户端上做文章。)总之,客户的防范意识才是最重要的。
网上银行是挺方便,可是不怕一万就怕万一,如果真出了问题,像我这种只有一张卡的人岂不是立马就倾家荡产啦,真实非常可怕,非常可怕。
可是,回头一想,银行也不是吃素的,这种事情肯定会尽全力去做好的,而且经过了充分的论证和实验,所以也不必太担心。比如招行吧,他的网上银行企业版就说动了像摩托罗拉这样的大客户,看来在安全上还是有保证的。
即使被木马盯上,知道了账号和密码也无法登录。而真正的用户却可以在三秒内轻松登录。用户不需要花钱,不需要购买U盾和口令卡。但方法有点象口令卡,但比口令卡方便很多。
对银行来说,只要增加一点点设备就可以了,是个廉价又安全到选择。
已经申请了专利,可惜不知道怎么推广好呢。
8月23日苏州工商银行电话本人,说我帐户有可疑交易.进入后台1看,居然被盗抢了9000元,
注意是9000元,不是5000元!!发生在同1天8月22日凌晨4分开始
至尽银行,未有解释
更称,银行没有责任赔付!!!!
工商银行真是中国银行界的大流氓!!
今天看了
如此众多的受害者,为什么没有部门来制裁银行
这种霸道垄断的银行,关了也罢!!!!!!!!!!!!
发生在2006年8月22日,银行说是凌晨4分开始
按理同1天,限额是5000元,
为什么发生了9笔,每笔1000元,盗抢了9000,
这5000外的4000,为什么发生在同1天,
我感觉不排除,工行内部人搞的鬼
另外凌晨转帐,只能在同行转帐,跨行交易在非工作时间是无法完成的, 就是说,被转移到了工行自己的卡上
这查询,真的很难么?
如果1个月内没有结果,告之于法庭
工行的态度,还极端极端的恶劣!!
网上银行的登陆密码和ATM机的密码是不同的密码。
to:安全人士
我的发明是双重身份认证,第二重认证可以完全和键盘鼠标隔壁的登陆方式,不用怕Hook勾取密码,也不怕黑客登陆你的计算机模拟操作。
想知道我的发明是怎么样的吗?请登陆www.richoo.com
也欢迎网银安全技术的朋友和我联系,我可以告诉你技术细节与我探讨。