楼主: milebye
收起左侧

[讨论] 银行的U盾的工作原理

[复制链接]
milebye
 楼主| 发表于 2011-1-26 19:21:31 | 显示全部楼层
回复 10楼 fcerebel 的帖子

  这位兄台你可能误解我的意思了...
也是我用词不当,当时可能也没想到怎么去表达...

      我想问的是U盾是怎么生产出来的...  主要是如何把证书放到U盾里又能保证它的安全性。
fcerebel
发表于 2011-1-26 20:04:04 | 显示全部楼层
本帖最后由 fcerebel 于 2011-1-26 20:09 编辑

回复 11楼 milebye 的帖子

证书是这么安装的么:

首先,银行有一个数据库,包括了银行生成的大量证书对

用户在柜台提出网银/更换证书申请后,银行会给用户一个信封,里面有一个兑换码,兑换码只有银行的一部分和用户知道,银行前台等工作人员是不知道这个兑换码的。
如果是第一次申请,或更换U盾,银行同时会给用户一个全新的U盾。

用户按照说明,安装好网银的配套软件(新的U盾可能就不需要了,它们遵照windows自带的一个公共标准),网银的配套软件会在电脑中安装该银行的根证书的公钥部分,用以证明接下来接受到的证书对确实由银行颁发。

配套软件本身由第三方CA签名,以保证是由银行提供,并符合安全标准。

(接下来就开始把证书写入U盾的流程)
1 用户进入网银的网站,由此开始HTTPS保证传输过程不被第三方窃听(由第三方CA证明访问的网站确实是该银行的网银),用户以输入帐户密码的形式登录网银(网银初步确认用户身份,但依然不信任用户)

2 用户输入兑换码,网银以此认可用户身份,兑换码使用一次后失效;服务器找到和该兑换码对应的证书,并给出下载链接(这个链接也只在该次sesson有效),于是用户按照要求下载整个证书对。HTTPS的保护到此为止

3 通过U盾的配套软件,用户把证书移动至U盾里,并设定(必须)U盾密码。U盾的配套软件是一个专有的系统,在这个步骤中负责保护证书被安全地写入U盾。(当然,可以写出一个程序,在本机运行,偷窃出该证书)

4 下载到用户电脑的证书对被安全地销毁

接下来用户就可以通过u盾获取网银完整的信任

请到以下链接查看HTTPS如何利用TLS防止数据在传输过程中被第三方窃听
http://www.infoq.com/cn/articles/HTTPS-Connection-Jeff-Moser
jpcjh
发表于 2011-1-26 20:19:53 | 显示全部楼层
建行的U盾的证书可以更新的噢..不知道怎么做的呢..不是量产吧..很快的噢
qazwsx555
发表于 2011-1-26 20:32:52 | 显示全部楼层
说实话,个人感觉u盾是可以破解的,毕竟是一个固始的程序在u盾里面,如果找到方法,应该可以破解的,不过,知道的肯定不会说。
milebye
 楼主| 发表于 2011-1-27 10:00:47 | 显示全部楼层
回复 12楼 fcerebel 的帖子

      
        感谢fcerebel兄的解答..

我还有一些疑问..  不知能否指点一二...

1.    之前说申请U盾的时候,银行会给用户一个新U盾。 这个全新的U盾是怎么制作的?组装过程就不用了,主要是U盾即U盘究竟是可读、还是可读写?   

       如果是只读,为何还能把下载后的证书放进去?  网上也有说一次性读写,第一次才有用,但U盾一般都配有USB-KEY,既然是KEY一定是可修改的,这时肯定会修改U盾里的数据。这时只可读的说法就有问题了..

        如果是可读写,它又是如何让它指定的程序可修改,让我们只读呢?  是使用特定的文件格式(比如UD,就是把整个U盘普通格式化对它里面的文件无影响)或是其它方法?
     
2.     U盾里的一对证书,有没有可能被导出来呢?  如果被导出来,那么一些不法分子就可以用这些来得到银行的信任。 更有甚者,电脑上被装了键盘记录这些木马程序,那他们不是可以为所欲为?     我们又如何能得到安全保障呢?

有兴趣的可以试把U盘量产为一个只读的磁盘,然后使用Fbinst看能否对其操作或先用Fbinst对其进行UD的化分再把U盘量产为只读磁盘,看看是否量产后UD分区是否还有,如果在,还能不能用
fcerebel
发表于 2011-1-27 15:16:10 | 显示全部楼层
回复 15楼 milebye 的帖子

您怎么就不明白呢?

证书是一对一对的,每对证书分为公钥和私钥部分

写入U盾后,私钥不可导出,公钥可以导出

关于:
USB-KEY,既然是KEY一定是可修改的,这时肯定会修改U盾里的数据。这时只可读的说法就有问题了
usb-key和证书不是一码事情

我有这样的猜测:
1按规定,私钥本身必须是加密的,所以这个usb-key可能用于加密私钥
2但是呢,在导入证书后,usb-key依然可以修改,说明usb-key只是用于授予u盾以读取私钥并进行加解密运算的权限
3可以修改usb-key无法证明可以读取私钥

U盾是怎么做的呢:

不管是U盾还是闪存,它们用于储存数据的电路,从物理上都是可读可写的

U盾的芯片不是U盘闪存芯片的通用设计,它是特别制造的:

U盾不需要很大的储存空间,所以它的控制电路和闪存电路是在同一块芯片(DIE)上面的,就像被禁售的TPM芯片一样,这样避免了取下闪存芯片直接读取的问题,而且U盾的芯片应该还有自毁功能。---所以U盾不是U盘

这么一来,就可以在控制电路上面做手脚(这样的程序是直接以硬件模块的形式存在的),它虽然可以读写用于存放证书的区域,但它读取的私钥只能被用于芯片内的运算,但不可被导出 -----逻辑上,私钥可写不可读,公钥可写可读;而对于U盾芯片的闪存部分而言,物理上是可读可写的,但这个特点不可能被利用

电脑 >u盾控制电路>私钥
                           <




木有想法
发表于 2011-1-27 17:10:53 | 显示全部楼层
回复 7楼 fcerebel 的帖子

再用私钥加密后发回银行? 还要发回银行吗?要是没有信号怎么办?我感觉不用吧
wenjuner
发表于 2011-1-27 19:01:39 | 显示全部楼层
对此很感兴趣的
fcerebel
发表于 2011-1-27 20:19:11 | 显示全部楼层
回复 17楼 木有想法 的帖子

当然需要发回银行的!

用户通过HTTPS的TLS握手可以彻底确认银行的身份

接下来银行也需要彻底确认用户身份



至于为何通过这个"响应"就能完成握手,其实我在前面的帖子已经写清楚了,以下是再一次的复述:

用私钥加密了意味着只有公钥可以解密,私钥是唯一地被客户拥有的,这证明了信息是由客户发出
(不用考虑证书是由银行颁发的,就当其中的私钥已销毁)

而银行解密响应后,发现客户对它发出的随机数有合乎规则的回应

而HASH则可用于保证解密后的数据是完整的

私钥加密+HASH另一方面防止了中间人/重放攻击的可能

木有想法
发表于 2011-1-28 16:06:35 | 显示全部楼层
楼上高人 佩服
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-15 17:13 , Processed in 0.104039 second(s), 15 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表