[OT]有人了解飞天诚信的工作原理么?

174 views
Skip to first unread message

Shell Xu

unread,
Jan 7, 2012, 8:31:27 AM1/7/12
to shlug
    刚刚仔细看了一下,浦发采用的是飞天诚信的U盾,农商也是。
    工作的时候,首先要在管理器里面输入password,然后会显示出一张证书。个人理解,证书其实是保存在U盾上的,虽然不是以U盘方式,而是USB HID方式。在输入密码后就从U盾上解密出来,等用完了直接消失。
    理论上说,这么做不是很不安全?工具里面就有把证书复制出来的选项。虽然概率很低,但是在不安全的系统上,有可能在证书完成解密使用的时候被导出证书,从而导致风险。
    我还以为U盾应该是smartcard同类产品呢,使用现场输入的password和challenge来生成response码。这样好歹在模式上比较安全啊。 
    现在我手里两个U盾同时失效了,不知道是不是因为浦发和农商使用了不同版本的驱动导致的冲突。如果有人的证书还可以用的话,是否可以帮忙尝试如下事情?从U盾中使用导出证书功能导出证书,然后直接在linux中使用这个证书作为客户端证书访问服务器url。如果这样使得你可以直接使用网银,那就说明整个工作原理是非安全的。

--
无能者无所求,饱食而遨游,泛若不系之舟
blog: http://shell909090.com/blog/
twitter: http://twitter.com/shell909090

Ma Xiaojun

unread,
Jan 7, 2012, 8:34:50 AM1/7/12
to sh...@googlegroups.com
如果你不介意的話,可以再解釋多一點Smart Card是怎麼回事嗎?

Shell Xu

unread,
Jan 7, 2012, 8:37:14 AM1/7/12
to sh...@googlegroups.com
http://en.wikipedia.org/wiki/Smart_card 

在 2012年1月7日 下午9:34,Ma Xiaojun <damag...@gmail.com>写道:
如果你不介意的話,可以再解釋多一點Smart Card是怎麼回事嗎?

Ma Xiaojun

unread,
Jan 7, 2012, 8:45:24 AM1/7/12
to sh...@googlegroups.com
看了,好像你前面指的是這段吧:Banks like Fortis and Dexia in Belgium combine a smart card with an unconnected card reader to avoid this problem. The customer enters a challenge received from the bank's website, a PIN and the transaction amount into the reader, The reader returns an 8-digit signature. This signature is manually entered into the personal computer and verified by the bank, preventing malware from changing the transaction amount.

這樣確實比較安全!我以前也納悶工商銀行的U盾,就交易前輸入密碼確認下,哪裡安全了⋯⋯

Chaos Eternal

unread,
Jan 7, 2012, 8:50:05 AM1/7/12
to sh...@googlegroups.com
麻烦说清楚是私钥还是公钥。
一般讲证书是指签名过的公钥。


2012/1/7 Shell Xu <shell...@gmail.com>:

Shell Xu

unread,
Jan 7, 2012, 9:02:49 AM1/7/12
to sh...@googlegroups.com
这个没什么问题啊,只要内容是不可以复制的。


在 2012年1月7日 下午9:45,Ma Xiaojun <damag...@gmail.com>写道:
看了,好像你前面指的是這段吧:Banks like Fortis and Dexia in Belgium combine a smart card with an unconnected card reader to avoid this problem. The customer enters a challenge received from the bank's website, a PIN and the transaction amount into the reader, The reader returns an 8-digit signature. This signature is manually entered into the personal computer and verified by the bank, preventing malware from changing the transaction amount.

這樣確實比較安全!我以前也納悶工商銀行的U盾,就交易前輸入密碼確認下,哪裡安全了⋯⋯



Shell Xu

unread,
Jan 7, 2012, 9:07:07 AM1/7/12
to sh...@googlegroups.com
刚刚看了一下,U盾中公钥和私钥都有,不过复制的功能只能作用于公钥。
那么问题就是,私钥的签署过程,是在U盾中完成的呢?还是将私钥传输到了电脑。

Qian Hong

unread,
Jan 7, 2012, 10:10:16 AM1/7/12
to sh...@googlegroups.com
我不了解飞天诚信的U盾原理,一直想研究,但是目前能力和时间都不足。

分享一点我了解的情况:
- 据我所知,飞天诚信是国内网银u盾供货商中比较敬业的一家。我曾经找过几家供货商的联系方式,有的网站做的不好很难找到联系方式,有的发了邮件没有回复,有的回复比较冷淡。
但是,飞天诚信的网站提供了(付费)下载u盾驱动开发包的途径。
所谓付费,其实是这样的:写一封邮件给飞天诚信,然后通过银行卡将押金汇给他们,然后把汇款单和申请表等传真给他们,之后他们会寄来u盾的硬件样本和开发套件。根据不同的u盾,分别配有不同的开发套件,有的型号同时有Linux,Mac和Win的驱动与开发套件。
飞天公司还给了我华南区技术支持人员的联系方式。

但是,根据飞天诚信公司所说的,银行采用的u盾,其实是定制过的芯片,驱动也定制过,因此他们给我的样品跟世面上的网银u盾是不完全一样的。而如果没有银行的授权,u盾公司是没有权限将定制版芯片的信息和驱动提供给第三方的。

从我手上拥有的几款飞天诚信的u盾样品的pid和vid来看,似乎没有哪个型号是跟我所知道的世面上的网银u盾型号完全一样的。

希望能更深入地跟大家讨论这个问题。

这个wiki一直没有时间整理,欢迎各位朋友一起来改进:
http://code.google.com/p/online-banking-with-wine/wiki/draft_usbkey

2012/1/7 Shell Xu <shell...@gmail.com>:


>     刚刚仔细看了一下,浦发采用的是飞天诚信的U盾,农商也是。
>     工作的时候,首先要在管理器里面输入password,然后会显示出一张证书。个人理解,证书其实是保存在U盾上的,虽然不是以U盘方式,而是USB
> HID方式。在输入密码后就从U盾上解密出来,等用完了直接消失。
>
> 理论上说,这么做不是很不安全?工具里面就有把证书复制出来的选项。虽然概率很低,但是在不安全的系统上,有可能在证书完成解密使用的时候被导出证书,从而导致风险。
>
> 我还以为U盾应该是smartcard同类产品呢,使用现场输入的password和challenge来生成response码。这样好歹在模式上比较安全啊。
>
> 现在我手里两个U盾同时失效了,不知道是不是因为浦发和农商使用了不同版本的驱动导致的冲突。如果有人的证书还可以用的话,是否可以帮忙尝试如下事情?从U盾中使用导出证书功能导出证书,然后直接在linux中使用这个证书作为客户端证书访问服务器url。如果这样使得你可以直接使用网银,那就说明整个工作原理是非安全的。

--
Regards,
Qian Hong

-
Sent from Ubuntu
http://www.ubuntu.com/

Shell Xu

unread,
Jan 7, 2012, 10:15:04 AM1/7/12
to sh...@googlegroups.com
哈,我看到这个了,原来是你做的啊。
我的问题其实和他们是否敬业没有关系,我只是想知道一个关键问题。证书的私钥部分是否会有一瞬间被传输到电脑上?如果没有,证书的认证过程是传输到U盘上的芯片去做的,那么U盾是安全的。反之,U盾就都是糊弄人的。
严格来说,这个需要反向他们的管理程序——不过好麻烦啊。

Qian Hong

unread,
Jan 7, 2012, 10:41:20 AM1/7/12
to sh...@googlegroups.com
2012/1/7 Shell Xu <shell...@gmail.com>:

> 哈,我看到这个了,原来是你做的啊。
> 我的问题其实和他们是否敬业没有关系,我只是想知道一个关键问题。证书的私钥部分是否会有一瞬间被传输到电脑上?如果没有,证书的认证过程是传输到U盘上的芯片去做的,那么U盾是安全的。反之,U盾就都是糊弄人的。
> 严格来说,这个需要反向他们的管理程序——不过好麻烦啊。

他们给的开发包就有管理程序的部分源码,不过我可能不能把我收到的发给你。不如你也申请一份?押金不贵,具体忘了,200以内,忘了是2个还是4个u盾了。等你用完了,愿意把u盾样品退回去,可以收回押金。

Shell Xu

unread,
Jan 7, 2012, 10:45:26 AM1/7/12
to sh...@googlegroups.com
我不觉得开发包里面会有访问私钥的例子,靠谱的封装包应该会封装掉这个过程的,总之看到的就是验证过程,否则就是明显的不靠谱了。
不过还是有空申请一份吧,研究一下过程,大概知道从哪里入手。

Qian Hong

unread,
Jan 7, 2012, 10:49:25 AM1/7/12
to sh...@googlegroups.com
2012/1/7 Shell Xu <shell...@gmail.com>:

> 我不觉得开发包里面会有访问私钥的例子,靠谱的封装包应该会封装掉这个过程的,总之看到的就是验证过程,否则就是明显的不靠谱了。
> 不过还是有空申请一份吧,研究一下过程,大概知道从哪里入手。
>

同意,我觉得开发包提供的接口可以让逆向更方便些,应该跟你说的大概知道从哪里入手是一个意思。
另外,开发包里有比较详细的文档。

Qian Hong

unread,
Jan 7, 2012, 11:09:44 AM1/7/12
to sh...@googlegroups.com
OT一下,借这个帖子请shlug的朋友们帮个忙:
如果你手中有u盾,可否麻烦按照这里的wiki,检测一下你的u盾是不是CCID兼容的?
如果是的话,可以在Linux上使用。不过,如果网银u盾都是定制过的,那么就不可能直接在Linux上使用了。

检测u盾是否兼容CCID的方法:
http://pcsclite.alioth.debian.org/ccid.html#CCID_compliant

非常感谢!

2012/1/7 Shell Xu <shell...@gmail.com>:

--

ghosTM55

unread,
Jan 7, 2012, 8:36:04 PM1/7/12
to sh...@googlegroups.com


2012/1/8 Qian Hong <frac...@gmail.com>

学习了

--
Thomas
Shanghai Linux User Group

http://ghosTunix.org
Twitter: @ghosTM55
Message has been deleted

Meteor

unread,
Jan 8, 2012, 9:38:57 PM1/8/12
to sh...@googlegroups.com
这个是类似密码生成器的东西.
Pin是每个帐号都不同的.

这玩意,我们公司也在用,Citi管这个叫Safeword.(每家公司取的名字不一样,这个不要管它)

我买过QQ的令牌好像也是这玩意.不过那个没有Pin.是以时间来当Key的.

支付宝好像有个宝令,也是类似的东西.
https://securitycenter.alipay.com/otp/intro.htm

不过国内的银行就不行了.
光个网上银行就很悲剧了.
不支持Firefox,Chrome.
不能在Linux上登录等等.

不过,我对楼下大哥做的项目很欣赏.
https://code.google.com/p/online-banking-with-wine/
希望早日能在Linux上登录国内大多数的银行.

Shell Xu

unread,
Jan 8, 2012, 9:41:17 PM1/8/12
to sh...@googlegroups.com
那个是他们的OTP,我们的系统上有和他们的OTP整合的需求,但是从工作原理上看,和他们的U盾不是一个系统。因为他们的U盾可以让你导出一个公钥来,相信服务器端是通过客户端证书认证身份的。

希望早上能在Linux上登录国内大多数的银行.

Qian Hong

unread,
Jan 8, 2012, 10:03:50 PM1/8/12
to sh...@googlegroups.com
2012/1/8 Meteor <liuxi...@gmail.com>:
> 希望早日能在Linux上登录国内大多数的银行.

目前工商银行可以在Linux上这样登录: Chrome for Win + ActiveX for Chrome + Wine
招商银行可以这样: Chrome for Win + ActiveX for Chrome + UserAgent Swithcer + Wine
中国银联可以这样: Firefox for Win + Wine

招商银行的,参见: A guide to sign in China Merchants Bank (CMBChina) on Linux:
Wine Chrome + ActiveX for Chrome + User Agent Switcher [1]

ActiveX for Chrome 的作者Qiu Chuan发现中信银行有安全漏洞,密码能够以明文的方式被获取,提醒各位朋友要注意.参见 [2]

其他网银我有空会继续测试,目前我大概有7,8个网银帐号和u盾.不过u盾短期内是用不上了.
目前Linux native Chrome还不能加载太复杂的win32 plugin,不过加载一些简单的win32 plugin还是可以的.
欢迎各位朋友一起参与Linux网银的测试和hack工作.

[1] A guide to sign in China Merchants Bank (CMBChina) on Linux: Wine
Chrome + ActiveX for Chrome + User Agent Switcher
https://groups.google.com/group/non-ie-online-banking/browse_thread/thread/1287444ea16b718d

[2] ActiveX for Chrome update&progress report
https://groups.google.com/group/non-ie-online-banking/browse_thread/thread/5ee2b09553b12081

Qian Hong

unread,
Jan 8, 2012, 11:42:04 PM1/8/12
to sh...@googlegroups.com
2012/1/8 Meteor <liuxi...@gmail.com>:
> 希望早日能在Linux上登录国内大多数的银行.

估计招商银行和工商银行已经开始开发和内部测试非IE的网银插件,不过我不确定是否有计划支持Linux,希望有需要的朋友都可以向银行投诉一下.

招商银行个人网银大众版开始对浏览器useragent进行判断,如果是IE,则加载ActiveX控件,如果是非IE,则会试图加载npapi插件:
<object id="DebitCardQueryPwd_Ctrl" type="application/x-cmbedit"
codebase="https://site.cmbchina.com/download/CMBEdit.cab#version=1,2,0,1"
width="100px" height="20px"><span>安全控件载入失败,请参考<a class="Login1"
target="_blank"
href="http://www.cmbchina.com/personal+business/netbank/hb/dzbqa.htm">常见问题解答</a>。</span></object>

但是目前插件并没有发布出来,估计是内测期.

工商银行也类似:
if(pebankBrowserCompatible.isSafari()){
if(typeof(navigator.mimeTypes['application/x-npsubmit-plugin'])=="undefined"){
...

如果有朋友发现其他银行也有测试非IE插件的迹象不妨分享一下 :)

Shell Xu

unread,
Jan 9, 2012, 2:01:35 AM1/9/12
to sh...@googlegroups.com
npapi支持usb设备的使用么?

Qian Hong

unread,
Jan 9, 2012, 2:34:46 AM1/9/12
to sh...@googlegroups.com
2012/1/9 Shell Xu <shell...@gmail.com>:
> npapi支持usb设备的使用么?

npapi只定义了浏览器跟插件如何交互,没有规定插件跟操作系统如何交互. npapi插件是平台相关的 (与下一代的ppapi不同), 因此,
npapi插件能不能访问usb设备,取决于该平台有没有相应的usb驱动.
具体在Win32平台上来说,可以理解为,ActiveX能做到的,npapi都能做到.

Qiu Chuan 开发的 ActiveX for Chrome
插件,就是win32平台上的一个npapi插件,这个插件为ActiveX提供一个wrapper,让Chrome可以通过它调用ActiveX.
在Win上, 通过ActiveX for Chrome可以正常使用工行u盾.

台湾的一些银行,同时提供了ActiveX版本的插件和npapi版本的插件 [1]. 其中的npapi插件一样能访问usb设备.
有的银行提供了Linux版本的usb驱动,因此Linux下的firefox也可以使用.

台湾的网银早年也不支持非IE,都是用户长期坚持投诉争取才引发重视的,我觉得我们也值得去争取.

[1] 台灣朋友們在Linux下如何使用網銀?
https://groups.google.com/forum/#!topic/ezgo-tw/Kkr19kXPh38
(注:他们使用的"网络ATM"跟u盾不是同一类型的东西.)

Reply all
Reply to author
Forward
0 new messages