青青子衿, 悠悠我心, 但为君故, 沉吟至今
« 微软正式推出Windows Live SuitePanoramio和Google Earth同步照片数据 »

中国网上银行的USB Key安全评测

  USB Key是一种USB接口的硬件存储设备。USB Key的模样跟普通的U盘差不多,不同的是它里面存放了单片机或智能卡芯片,USB Key有一定的存储空间,可以存储用户的私钥以及数字证书,利用USB Key内置的公钥算法可以实现对用户身份的认证。目前USB Key被广泛应用于国内的网上银行领域,是公认的较为安全的身份认证技术。

  USB Key在网上银行中,被用作客户数字证书和私有密钥的载体,在网络上鉴别用户身份处于极其关键的地位。而网上银行首要的关键问题就是安全,安全是所有一切的基础,没有安全的网银还不如没有网银。一些新闻报道的国内某某银行几十万资金通过网银被盗,都给网上银行带来巨大的负面影响,让人对于USB Key的网上银行认证的安全性产生怀疑和顾虑。

  本文将从技术的角度出发,详细论述一下目前中国网上银行使用的USB Key的安全性以及可能存在的风险和漏洞。当然,一个网银系统的安全,涉及到的理论知识非常多,不仅仅要懂得大学课程《密码学》的全面知识,还要知道最新加密锁和USB Key的产品动态,进行全面的网银评测并不是那么简单的事情。本文也仅仅起个抛砖引玉的作用,欢迎各方高手继续补充和讨论。

  行业安全专家基本都公认USB Key是安全可靠的,那么USB Key为什么是安全的呢?目前有几个重要的性能指标能够说明USB Key的安全性。

  1、硬件PIN码保护

  黑客需要同时取得用户的USB Key硬件以及用户的PIN码,才可以登录系统。即使用户的PIN码被泄漏,只要用户持有的USB Key不被盗取,合法用户的身份就不会被仿冒;如果用户的USB Key遗失,拾到者由于不知道用户PIN码,也无法仿冒合法用户的身份。

  2、安全的存储介质

  USB Key的密钥存储于安全的介质之中,外部用户无法直接读取,对密钥文件的读写和修改都必须由USB Key内的程序调用。从USB Key接口的外面,没有任何一条命令能够对密钥区的内容进行读出、修改、更新和删除。

  3、公钥密码体制

  公钥密码体制和数字证书从密码学的角度上保证了USB Key的安全性,在USB Key初始化的时候,先将密码算法程序烧制在ROM中,然后通过产生公私密钥对的程序生成一对公私密钥,公私密钥产生后,公钥可以导出到USB Key外,而私钥则存储于密钥区,不允许外部访问。进行数字签名时以及非对称解密运算时,有私钥参与的密码运算只在芯片内部即可完成,全过程中私钥可以不出USB Key介质,以此来保证以USB Key为存储介质的数字证书认证在安全上无懈可击。

  4、硬件实现加密算法

  USB Key内置CPU或智能卡芯片,可以实现数据摘要、数据加解密和签名的各种算法,加解密运算在USB Key内进行,保证了用户密钥不会出现在计算机内存中。

  以上几点是USB Key在理论上安全性的技术保证,但是从技术角度分析,这些安全性能指标往往也存在一些容易被忽视的漏洞。

  1、硬件PIN码就绝对安全吗?

  目前的大多数银行使用的USB Key的PIN吗都是从电脑上输入的,因此黑客可以通过木马程序直接拦截到USB Key的PIN码,这也是目前大多数USB Key存在的一个漏洞。知道了PIN码后,如果用户忘记将USB Key从电脑上取出,那么黑客还可以进一步通过PIN码来操作USB Key.一个非常极端的情况,当个人用户的电脑已经完全被黑客远程控制,并且所有键盘和屏幕的操作都会被拦截的时候,目前的USB Key是否还能保证安全交易呢?我看未必,因为此时USB Key的PIN码已经完全可能会被黑客拦截,当用户操作完一次USB Key后,假如没有立即拔出USB Key,那么黑客完全可能在这个间歇期伪造一次交易,而此时USB Key以及PIN码都可以验证通过。

  2、外部真的无法读取Key内部的密钥吗?

  USB Key的密钥从“理论”上讲是无法从外部直接读取的,这个“理论”上指的是设计上要绝对安全,如果设计和编写USB Key操作系统COS的人在COS上留了后门,那么这个人就可以从外部读取Key内部的密钥。

  3、数字证书

  公钥密码体制的确是很安全的,通过复杂的证书管理体系来增加破解的难度,但是数字证书是否是第三方CA机构发放的呢?有些银行的数字证书竟然是银行自己发放的,这就让PKI安全认证大打折扣了。

  4、如何保证通讯安全

  虽然USB Key内置CPU或智能卡芯片可以完成加密运算,但是数据从电脑上传入USB Key的过程中还是有可能被拦截和修改,USB Key内置的CPU只能保证自身的运算安全,却难以保证数据传入前不被修改。

  那么,理想中安全的USB Key应该是什么样子的呢?

  1、针对现有USB Key的键盘输入PIN码的漏洞,可以使用生物技术(例如个人指纹)来替换键盘录入PIN码。

  也就是说,交易时候接入USB Key,我们不需要再到键盘录入PIN码来验证身份,我们只需要在USB Key的设备上按一下指纹,就能自动验证个人身份,这种身份验证机制带来的安全性和实用性是一种跨时代的提高,用户不可能再忘记密码了,只需要验证指纹即可,指纹的验证实在外部设备上进行的,电脑即使被黑客完全控制也无法截取到用户的指纹,从而保证了PIN码的唯一性和安全性。

  2、通过管理或者审计防止COS在设计上留有后门。

  3、数字证书应该由独立于用户和银行以外的权威的第三方安全认证机构CA发放,不能由银行自己发放。

  4、交易金额从USB Key上录入,以防止数据在传入USB Key之前被篡改。

  如果采用了以上我所说的这些安全措施,那么USB Key的安全就可以说达到了“无懈可击”的地步了,实际的安全性可以得到本质上的提高。

  当然我也知道,更加安全的USB Key必然会导致其成本的上升,不利于大规模的推广应用,目前智能卡的USB KEY成本已经超过50元,商业银行发布给最终客户的USB Key的价格则会更高,比如招商银行的USB Key需要88元的费用,而工商银行的USB Key需要76元的费用,增加这些新的安全措施带来的成本还是相当大的,在实际应用中需要低成本的替代方案才是现实可行的。

  那么,对于现有USB Key,如何更安全的操作呢?我的建议如下:

  1、和银行确认存在USB Key中的数字证书是唯一的,用户应该把USB Key随身携带。

  2、经常扫描一下电脑是否有木马病毒或者被远程控制。

  3、没事不要在电脑接入USB Key,只有在交易的时候接入。

  4、交易的时候接入USB Key,输入PIN码交易完成后,立即取走USB Key。

  如果用户使用招行和工行的USB Key时候能够像我建议的这样操作,那么也可以在现有的硬件基础上,安全性会得到进一步提高。

  总而言之,目前的USB Key的主要优点是具有CPU,类似加密锁加密狗,能够进行RSA等加密算法运算,私钥无法读取,成本上有一定优势,因此在网络认证等领域得到广泛的应用,越来越多的人将会采用USB Key作为日常理财或进行其它网络交易的工具,而作为国内在此领域应用最早、最成熟且最具潜力的网上银行应用,在技术和应用方面都应该先人一步,及时找到USB Key潜在安全漏洞的补救方法。



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/1129.html
  • 文章排行:
  • 2.linker
  • 只限于能看明白,不便参与较深层次讨论;却是相信那句话“安全,不安全的网银宁愿不要网银”,我只在乎结果,不在乎由来!呵!
  • 2007/11/9 23:50:21   支持(8)反对(2) 回复
  • 5.Sucirst
  • 3个问题,希望博主能给予解答,今天刚看到您的blog :)

      1、针对现有USB Key的键盘输入PIN码的漏洞,可以使用生物技术(例如个人指纹)来替换键盘录入PIN码。

    我并不认为生物技术真的在任何意义上都优于其他传统数字形式的密码。要知道获得一个人的指纹可比获得他头脑中的密码容易的多。其他诸如虹膜、声纹等也都可以通过社会工程学的方法进行比破译密码更容易地copy。


    2、数字证书应该由独立于用户和银行以外的权威的第三方安全认证机构CA发放,不能由银行自己发放。

    这个没看明白,区别何在能否简单介绍下?

    3、交易的时候接入USB Key,输入PIN码交易完成后,立即取走USB Key。

    以我自己目前在使用的U盾和招行Key来说。输入pin码通过验证后并不能立即取走。也许我们对“交易”这个词理解不同,如果你认为的交易就是输入金额付款前后的活动,那这是不行的。在支付宝、网上银行、专业版等等界面中,大部分查询、打开新功能界面的操作一定要读取key容器的。 只能说,在使用usbkey相关的程序前插入,使用完程序后取走。
  • 2007/11/16 11:43:58   支持(9)反对(5) 回复
  • 6.gegegege
  • 我现在用的U盾还有一步手机验证码,应该非常安全了~~~除非他在现场
  • 2010/5/21 5:34:40   支持(10)反对(6) 回复
  • 8.moxien
  • 網銀反對只支持IE,應加強對firefox的支持。
    理論上說沒有絕對安全的加密技術,呵呵。
  • 2007/11/16 14:46:00   支持(7)反对(4) 回复
  • 10.conggou
  • 2楼说的液晶屏显示随机码,我的想法是把开始输入密码的时间输入usb-key,用这个时间和usb-key内部保存的交易次数来生成随机数。
    但是,服务器为了验证这个随机数,也得用相同的办法产生随机数。
    如果方法简单,会比较便宜,但安全性不知道怎么样。如果方法复杂的话,也会比较贵,成本会翻一倍。

    19楼说的显示交易信息和usb-key上的硬确认键,这个挺好,只需要在usb-key上加个数字显示器就行,成本增加不多,也比现有的usb-key更安全。
    我觉得应该把交易目标账户显示在usb-key的小屏幕上更安全点,账户才是银行数据库的主键吧,不过这样可能会比较费眼睛,十八、九位数字挺长的
  • 2010/10/24 23:34:39   支持(7)反对(4) 回复
  • 11.GoodWing
  • 口令卡的安全性大于U盾吧。。
  • 2007/11/9 12:16:19   支持(10)反对(8) 回复
  • 13.狂鱼
  • 有点吹毛求疵了,usb-key基本上还是能保证安全的,即使有能开发出这种盗号工具的人,也不会有勇气冒这个风险。中国人民银行已经牵头组织CFCA了,以后证书都是会经由这个第三方的。
  • 2007/12/4 23:43:08   支持(10)反对(8) 回复
  • 14.conggou
  • 上面说的在usb-key上显示交易信息和硬确认键,把交易金额给丢了。
    合起来就是现有的usb-key+显示交易目标账户、交易金额=>安全便宜的新usb-key。
  • 2010/10/24 23:44:36   支持(8)反对(6) 回复
  • 15.pifupifu
  • 月光大侠,2010年的人回来再看您这个帖子,感觉太神奇了。
    您说的那个东西不就是2代U盾么?!虽然略有不同。
    牛人!!!!
  • 2010/12/13 20:39:27   支持(7)反对(5) 回复
  • 16.fivestone
  • 其实只需在USB key上加个小液晶屏,输密码的同时输入key上显示的随机码,就可以避免被木马拦截的情况。很简单的设计,安全性应该能提高很多,除非是被人用枪指着头转账了
  • 2007/11/9 3:12:49   支持(8)反对(7) 回复
  • 17.heihun
  • 麻烦,工行也有我没用,用一个口令卡就很安全了。
  • 2007/11/9 13:20:32   支持(8)反对(7) 回复
  • 18.云风
  • 银行用的 usb key 要增强安全性,可做如下改进:(居然已经有类似产品了)

    在 usb key 上加上显示屏和一个硬的确认键。

    交易信息用 usb key 加上数字签名即可。交易信息被 usb key 解密后,显示在 key 的显示屏上,用户确认后对这段文字签名。因为用户是看到了交易信息才主动确认签名,且每一次交易必须有一次确认。这样才可保证安全。

    只是要求用户交易完毕后拔下 key 是不保证理论安全的,而且因为现有 usb key 自身无法显示信息,所以理论上不能避免数据不被篡改。
  • 2007/11/9 15:04:27   支持(9)反对(8) 回复
  • 19.wexml
  • 一个口令卡就可以了.

    一直在用.
  • 2007/11/10 8:33:02   支持(4)反对(3) 回复
  • 20.回复11楼
  • 11楼的,不要动不动就往国人素质上扯,难道国外就没有类似的事件么?
    bs你
  • 2008/1/11 21:11:01   支持(7)反对(6) 回复
  • 21.guwei
  • 这个不错~不过目前银行都还没太大的问题
  • 2007/11/9 8:17:25   支持(6)反对(6) 回复
  • 23.emillias
  • 最近正准备办一个招行的UKEY:)
  • 2007/11/9 9:22:23   支持(4)反对(4) 回复
  • 24.d
  • 招行的好。
    建行的usb比较烂,出了钱买了不能用。
  • 2007/11/9 9:57:19   支持(4)反对(4) 回复
  • 25.asalei
  • 我见过paypal和一些邮件系统有一个密码生成器,有一个小液晶屏幕,一分钟显示一个密码,用这个密码就可以登录,同时还有用户的帐号密码。似乎比USB key还要安全一些。USB key如果被木马窃取了信息,总是有办法破解的。
  • 2007/11/9 12:58:26   支持(5)反对(5) 回复
  • 27.尘宇
  • 若若的问下,10分钟前,blogspot突然,再次,无法访问。
    本人上海电信。各地的都一样?
  • 2007/11/9 18:04:40   支持(5)反对(5) 回复
  • 28.least
  • 国人无信用,导致都在密码上下功夫,文明落后的表现
    -----------------------------------------------
    楼上这个观点很赞同
  • 2007/11/9 18:47:38   支持(6)反对(6) 回复
  • 30.williamlong
  • 楼上有一个人说我的USB Key论述是误导,我可以再说明一下,国内做USB KEY很强的几个主要的USB Key我这里都有其产品和开发API,并且也实际测试使用过,我的论述是经过我测试使用后的一些感受,如有不同意见,大家可以详细从技术上说明原因,不要泛泛而谈,如果原因不便说明,可以发送其到我的电子信箱中。
  • 2007/11/9 23:23:44   支持(7)反对(7) 回复
  • 31.2
  • 呵,有几点不是技术问题,一,开发usbkey时的后门问题,这个技术上没办法解决的,呵,证书问题,银行提供证书不如第三方证书有些搞笑,你是说银行不能提供更安全的保证,或他们私营无比,出现问题时从技术上进行处理拒绝承认责任?
  • 2007/11/12 0:02:30   支持(7)反对(7) 回复
  • 32.蓝尘渊
  • 刚买了个工行的U盾 60块
    可证书的密码给忘了,还没来得及去银行更改
    U盾肯定要比口令卡安全的多,这是公认的,要不也没人买usbkey了
  • 2007/11/13 6:24:41   支持(4)反对(4) 回复
  • 33.酷狗
  • ukey也就是u盾的应用必将,对资金的流转产生划时代的影响。
    随着电脑的普及势必会有越来越多的人使用。
  • 2010/2/25 12:30:27   支持(7)反对(7) 回复
  • 34.gegegege
  • 第一步 账号 第二步 U盾 第三步 手机验证码 第四步输入密码
    就第三步哪怕黑客把信息都获取了,远程操作也无计可施了-手机验证码通过不了~每一次交易完立马拔下U盾,所以交易基本无懈可击!这是2010年防御
  • 2010/5/21 5:37:53   支持(6)反对(6) 回复
  • 35.x
  • 我觉得你说的 还不如银行给个定制的单片机得了 屏幕,键盘,运算都有了 附带个计算器功能不错啊哈哈哈哈
  • 2011/7/2 16:40:31   支持(7)反对(7) 回复
  • 36.Heyi
  • 似乎建行的USB Key的秘钥不能导出,这是真的么?传说中的1024位加密不能破解!
  • 2007/11/9 3:36:00   支持(6)反对(7) 回复
  • 37.SUNNY
  • 昨天刚领了个工行的U盾,今天一早就读到这篇文章,大有裨益。
  • 2007/11/9 10:28:19   支持(5)反对(6) 回复
  • 38.不是俺
  • 俺用的是密码卡,类似是没收世界的密码保护卡。

    用的时候需要银行的证书,没有证书或者没有卡都不能付款。除非电脑有摄像头,而且黑客正好从摄像头中看到了密码卡的内容,一般情况下是安全的。
  • 2007/11/9 12:36:25   支持(7)反对(8) 回复
  • 39.歪歪屋啊
  • 哎,没有什么是绝对安全的,只有绝对的不安全~~
  • 2009/2/26 1:18:11   支持(5)反对(6) 回复
  • 40.conggou
  • 53楼用的是哪个网银,你说的这个是 usb-key + 动态口令 ,按博主说的,安全保障成本会翻一倍。你的网银使用费是多少?
  • 2010/10/24 23:02:02   支持(5)反对(6) 回复
  • 41.0o90o9
  • 以USB_KEY定制安全的体系是十分容易的。
    银行总可以以一纸签文,推脱掉必要的责任。就如同地产开发商。
    人家银行要求你在没有病毒和木马的系统上运行。这样的系统,没有USB_KEY也是安全的。我们甚至没有没有选择的权利。
    建行随意升级驱动,更改PIN输入细节。导致我日夜往返2千余里,赶路,最终还算赶上了,没有误事。我的确不是VIP客户。但是也未免太不受重视了。
    而开发者真的没有站在客户的角度用心开发。整天升级。


    1.我不知要相信谁。
    银行发放证书和第三方发放证书安全性是相同,关键在于谁是真正有责任的。

    2.USB Key操作系统COS 安全性。
    首先要公开COS,只有公开的东西才会没有后门,没有漏洞。生产时接受监督。作为编写COS的人。只有在他知道COS的代码不会被公开的时候才会内置后面。公开是最好的监督。依靠隐藏的安全体系是不完美的。

    3.PIN的问题
    简单的来说只是一个信息交互的过程。用按钮,液晶屏。都可以解决。多一种方法对于窃密者来说就多了不少困难。USB_KEY上有个灯可以利用起来。在计算机屏出个列表按钮 当鼠标指向正确时 则指示灯快速闪烁。输入这个按钮的信息。再加一些其他安全规则。即使高明的黑客也将无从入手。 抑或用手机短信。 或者配合挂挂卡等。都是容易实现的。
  • 2012/11/7 20:34:19   支持(4)反对(5) 回复
  • 42.tonson
  • williamlong大哥的提议很不错。顶!有漏洞才会有发展,才能不断地进步.不知道大哥是做什么的,怎么懂这么多啊。呵呵
  • 2007/11/9 8:10:12   支持(3)反对(5) 回复
  • 43.路人张三
  • 国人无信用,导致都在密码上下功夫,文明落后的表现
  • 2007/11/9 10:13:40   支持(8)反对(10) 回复
  • 44.工行啊
  • 工行每次改版速度都是超级慢,不过改版后也看不出什么东西,可能是外行人吧
  • 2007/11/14 11:23:03   支持(5)反对(7) 回复
  • 45.SUNNY
  • 我以前也是用口令卡,觉得很方便。自己不方便上网的时候,可以在电话里让朋友帮忙操作网银。无奈口令卡有交易金额的限制,并且这里的银行周日全部歇业,只好去领个USB KEY。U盾在自己手里,不方便上网的时候,一点办法都没有。
  • 2007/11/15 8:41:40   支持(4)反对(6) 回复
  • 46.Heyi
  • Williamlong大哥发现这个是热点,有必要写。现在各大银行都在普及这个东西,大家都在用百度搜索这个话题。
  • 2007/11/9 3:38:23   支持(3)反对(6) 回复
  • 47.神经猫
  • 口令卡的安全性完全无法与usb key相比
  • 2007/11/10 9:42:48   支持(5)反对(8) 回复
  • 48.ray
  • 安盟的身份认证令牌就如楼上哥们说的类似PAYPAL的那种,缺点就是价格太高不适合国内普通用户,企业用户倒是非常适合。提供此类产品的企业还有国内的支付公司快钱公司的快钱盾。USB Key应该属于个人初级安全产品,无法满足真正意义上的企业商用。
  • 2007/11/10 18:38:14   支持(6)反对(9) 回复
  • 49.lele
  • 用USB KEY不是自寻烦恼吗...
    各银行都推行用口令卡就很安全了..
    即使送你网银密码..你没有口令卡..绝对拿不了钱..

    USB KEY只不过是为了生产厂家赚钱..银行从中提成..
  • 2007/11/14 12:21:31   支持(3)反对(6) 回复
  • 50.gamexg
  • 在USB KEY 上增加一个按键,每一次计算都需要先按一下。
  • 2007/11/17 9:40:47   支持(3)反对(6) 回复
  • 52.杀鸡敬猴
  • 没有绝对的安全,只有自己提高防盗意识方是正道!
  • 2007/11/9 15:56:50   支持(4)反对(8) 回复
  • 53.fiNAL.Y
  • 国人无信用,导致都在密码上下功夫,文明落后的表现
    ------------------------------------------------


    我用HangSeng e-Banking, 就只有密碼驗證, 很安全, paypal 也是, 還有像 amazon, apple store 直接把信用卡號碼存在那裡也不怕
  • 2007/11/12 16:46:08   支持(4)反对(8) 回复
  • 54.梦涵
  • 应为在这方面不懂,所以转了,谢谢
  • 2010/1/7 19:23:40   支持(1)反对(6) 回复
  • 55.DYlan
  • 我们这里还没有这个啊。只是听说了。
  • 2007/11/12 14:42:12   支持(3)反对(9) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.