如这新闻所述,银行会在用户申请usb key后卖给用户一个U盘样的东西,以后每次登录系统时,必须先插入USB KEY,再输入口令才能登录.那么它存储了什么呢?
根据PKI的体系,USB KEY中应该存储用户数字证书,以及用户的私钥.其中,证书可以导出,但私钥应该是不允许导出的.
数字证书包括用户的公钥,用户信息,以及CA对该公钥和信息的签名;私钥则是加密存储的,解密的密码(也叫PIN)就是传统意义的那个口令!!!
又要说一下PKI中的CA了,否则无法继续.
CA(Certification Authority)即认证中心,只是它是通讯双方都可以信认的(并不是说用户这个人信认这个证书颁发者,而是用户所使用的软件里,认为这颁发者是可信认的).它也有自己的公钥和私钥.在用户获得这个U盘前,它对用户的身份进行核实后,用自己的私钥对用户公钥和信息进行签名,就像盖章了样,表示:"OK,你是我所信任的,这个数字证书就代表你合格."
用户拿到USB KEY后,每次使用网银系统时,先插入这个东西,客户端会要求用户输入口令,以得到真实的私钥.然后,客户端与服务器会进行双方证书的验证,这也就是所谓的双因子认证.其中,银行的证书是双方都信任的CA进行颁发(用CA的公钥验证),而用户的证书是该银行颁发(用银行的公钥验证).这也是为什么这个新闻中提到的有了密码,没有USB KEY也是无法登录的.因为这个密码仅仅是解密真正的私钥的一个PIN而已.
另外,由于公钥系统加解密速度较慢,所以大多数应用中,在经过一系列的认证以后,通讯双方会协商出一个传输密码(只在此次传输中有效),来进行所有的数据传输加解密.也就是说,在真正数据加解密时用的是传统的方式.这个与该新闻无关了.
唉,出了交通解行这事,只能说协议本身是完美的,只是银行的人没搞明白罢了:
根据新闻的描述,应该是交通银行在网上提供了证书下载,这样用户可以通过某种方式验证身份后(新闻中提到是用借记卡卡号、借记卡查询密码和开通网银签约时的协议号)得到这个证书,再导入到USB KEY中.但奇怪的是,用户的私钥呢?要有私钥,才能解密呀?新闻中没有提到.所以也就不得而知了.但是,新闻中提到了说"交通银行给客户提供的只是一个没有安装数字证书及对应私钥的USBKey...".
如果这是真的,那么可以得知,交通银行可以将用户的证书和私钥都放在网上提供给下载,然后拷到所谓的USB KEY(其实就是一个U盘)中去.而新闻中的香港人正是利用了这个漏洞,从网上下载了用户证书和私钥,然后在登录时,通过自己在开户时设定的PIN获得了真正的私钥(前面提到了,我们常说的密码就是这个PIN码而已).
也不知道这个U盘支持usb2.0不,要不用来当普通U盘使有点慢呀.
还要补充一句的是,香港人厉害呀.可怜我的长沙老乡.