今天参加了飞天诚信举办的一个USB Key的身份认证技术与应用的会议,从中对飞天的USB Key以及其在银行界的应用有了一些了解,我以前也曾经专门分析过USB Key的安全性,这次会议使得我对USB Key有了更深入的了解。
在这次学习探讨的过程中,我对USB Key也有了一些新的体会:
1、只要数字证书和私钥存放在电脑介质中,或者可能被读入内存,那么都是不安全的。例如招商银行的硬盘版数字证书就是不安全的。因为其私钥和数字证书都有被木马程序盗用的可能。
2、USB Key的安全性在于私钥不能被导出,加密解密运算用Key内的CPU完成,需要PIN码验证。
3、一个最基本的认证系统应该包括:客户端(使用USB Key)、服务器端、数字认证中心(CA)三部分,如果不用CA的话,也可以客户端的Key申请认证,服务器产生随机数,进行冲击/响应认证。
然而,USB Key目前来说并不是绝对安全的,当前广泛应用的USB Key实际存在两大安全漏洞:
1、交互操作存在漏洞。黑客可以远程控制,冒用客户的USB Key进行身份认证,而客户无法知晓。
这种漏洞的解决方式是在USB Key上增加一个确认键,用户按USB Key上的确认键后才能进行一次认证。
2、无法防止数据被篡改。客户的一笔交易在送入USB Key加密前,可能会被黑客拦截屏篡改为另外一笔交易,这样可以在用户不知情的情况下篡改交易而认证通过。
这种漏洞的解决也需要变更USB Key的硬件,在USB Key上增加一个显示屏,能够显示交易信息和数字。
这实际和我以前想象的一样,我曾经想到过将USB Key和动态密码锁合二为一,就能产生出一个更安全的USB Key,不过这样的话,成本就会翻一翻了,这也是鱼和熊掌不可兼得。