新一代液晶按键网银USBkey安全分析

来源:互联网 发布:淘宝添加购物车失败 编辑:程序博客网 时间:2024/04/29 11:24

网上银行由于其方便性,已经成为人们日常生活中经常使用的平台,银行用户可以不出家门,就可以通过互联网完成支付、转帐、交费等众多业务,省去了银行排队,携带大量现金等即费时繁琐,又不安全的原始业务形式。

随着网银业务的广泛普及,网银的安全性也是大家非常关注的一个问题。简单的用户名/密码方式已经被屏弃淘汰,取而代之的是十分安全的PKI数字证书认证体系,该体系主要通过数字证书中的RSA非对称密钥完成数据传输的安全性,保证了数据传输中的完整性,保密性和不可抵赖性。很多专业文章介绍了PKI数字证书的安全性所在,这里不做过多的介绍。

PKI体系中,RSA私钥代表一个人的身份,那么如何保护私钥的安全是保证PKI体系安全的关键所在,目前网银中使用的USBKey就能够很好的解决这个问题。USBKey是一个USB设备,内部主要是一个智能卡硬件,智能卡本身可以保证在硬件内部产生RSA公私钥对,私钥不可导出或者复制,任何关于私钥的运算全部在智能卡内完成。这种USBKey的主要代表,如坚石诚信科技公司推出的ET199Auto,有如下特点:

l  硬件上的安全性

坚石诚信ET199Auto做为数字证书的安全载体,敏感数据都被安全地保存在ET199Auto的安全存储区域中,未授权用户是无法接触到这些信息的。数据的签名和加密操作全部在ET199Auto内部完成,私钥从生成的时刻起就一直保存其中,可有效的杜绝黑客程序的攻击。ET199Auto的安全性还在于其使用的加密算法都是被广泛公开,业界公认的,经受了多年考验的标准算法。同时,一流的芯片封装工艺也保证了芯片内数据的安全性。

l  硬件上的兼容性

坚石诚信ET199Auto采用无驱无软设计,使用高速USB通讯协议,在Windows系统中不需安装驱动,即插即用。另外,USBKey插入计算机后自动安装所需软件,方便易用,大大节省了维护成本。

l  先进的中间件

坚石诚信ET199Auto能够硬件产生51210242048位的RSA密钥对,硬件实现RSA的各种运算。同时提供符合业界广泛认可的PKCS#11Microsoft CryptoAPI两种标准的接口。任何兼容这两种接口的应用程序,都可以立即集成ET199Auto进行使用。ET199Auto也针对多个第三方的软件产品进行了兼容性优化,内置大容量的安全存储器,可以同时存储多个数字证书和用户私钥及其他数据。也就是说,多个PKI应用程序可以共用同一个ET199Auto

综上,USBKey可以有效的保证RSA私钥的安全,那么网银使用这种产品后就真能高枕无忧了吗?虽然目前使用USBKey的网银业务没有发生过被盗取的案例,但从理论上还是存在一个安全隐患的,即虽然私钥是安全的,但传给私钥进行签名运算的数据是什么,用户并不知道,这个数据可能是被黑客篡改后的非法数据,虽然网银中也有很多措施预防这种情况,但根本的杜绝这种情况只有新一代的液晶按键USBKey才能完成。用户要签名的数据显示在USBKey的液晶屏幕上,用户必须按键确认后,USBKey中的私钥才完成运算。

坚石诚信科技公司推出的ET OKEY就是这样的新一代USBKey产品。ET O-KEY是在锁内将要签名的信息通过液晶屏显示出来,用户所看见的就是要传给银行服务器真正进行交易的信息,所见即所签。使整个交易过程无懈可击,是网上银行的坚强后盾。

ET O-KEY 采用32智能卡芯片,60K的安全存储空间,支持1024/2048RSA密钥运算,可以在网上进行交易签名。ET O-KEY除了具备一般USBKey的功能外,能将网银系统传入的要签名的信息根据银行系统自定义的规则,通过液晶屏显示出来给客户进行交易确认,所见即所签,防止数据在客户端被黑客程序、木马病毒等纂改,确保数据在客户端的安全性。

下面就详细的分析一下网银系统中集成液晶按键USBKey所需要明确的两个部分。

第一部分:约定复核签名报文解析格式

因为要在液晶屏上显示签名交易信息,因此银行要给出报文的显示规则。这样USBKey内部在COS中按照规则解析签名报文,并显示到屏幕上。同时服务器端也要按照这个规则进行解析,用于验证签名使用。目前使用的有XML报文等,编码有UTF8GB2312等。

第二部分:独立复核签名算法

利用ET O-KEY进行复核签名,需要具备以下前提条件:

n  待签名数据的原文被传入。只有传入原文,才能在ET O-KEY硬件中对接收到的待签名数据进行解析,根据内置的规则提取关键信息,通过液晶屏幕显示出来,从而触发复核签名流程;

n  待签名数据的格式与内置的规则匹配。只有这样,ET O-KEY硬件才能提取到要显示的关键信息;

n  所用的Hash算法被硬件支持。只有使用ET O-KEY硬件内置的算法,才能在复核后对硬件中的待签名数据进行相应的Hash计算。并后继使用私钥进行签名。

ET O-KEY硬件内置的Hash算法包括MD5SHA-1SHA-256。这三种算法均可用于复核签名。

由于具备复核签名的功能,与普通的USB key相比,ET O-KEY具备了新的安全特性:对被签名数据进行解析和显示,用户确认后再计算签名。这种新的安全特性被形象地称为“所见即所签”。

复核签名是ET O-KEY的最大特点。具备了“所见即所签”特性的ET O-KEY,能够使得合法用户及时发现潜在的篡改、冒用等攻击行为,并将其阻止,从而有效地提高了签名计算过程的安全性。相应地,如果在实际应用中存在使“所见即所签”不成立的签名方式,应用ET O-KEY就失去了意义。不仅如此,由于“短板效应”的存在,甚至会使ET O-KEY乃至整个系统的安全性降低。因此,确保复核签名的安全性,对于ET O-KEY的应用非常重要。

由于要进行所见即所签的复核签名,因此使用液晶按键USBKey时对何时进行散列计算就提出了新的要求。在使用普通USBKey和按键USBKey时,由于没有液晶显示的复核过程,USBKey内的COS只是将传入的数据进行签名,为了提高效率,散列计算基本都是在计算机内存中进行。从另外一个方那个面讲,由于同样的原因,这种没有复核类型的USBKey也没有必要在硬件内做散列运算,因为COS并不知道所要进行签名的数据的内容,没有复核过程,只是单纯的对传入的数据进行私钥签名运算就可以。按键型USBKey也只是通过物理手段,按下按键就可以签名,也不会知道真实的要签名的数据内容。

液晶按键型USBKey由于有液晶显示复核的过程,在要进行复核签名时,要求传入的数据必须时按照规则,能够解析的报文,这种报文是没有经过Hash计算过的,然后COS将解析的内容显示在液晶屏上等待用户确认按键,用户确认后,COS将报文进行Hash计算,再使用RSA私钥进行签名运算。这种在锁内COS内部进行散列的过程称为“内部散列”。过程如下:

报文àCOS解析显示à用户确认àCOS内部HashàRSA私钥签名

“外部散列”是指在锁外进行Hash散列运算,将散列结果传给USBKeyCOS使用传进后的散列值进行RSA私钥签名的过程。由于数据经过散列计算,已经不能被解析,那么就无法完成液晶显示复核签名的过程。实际的应用中,也存在一些这样传入的数据不是按报文规则的应用,如申请证书,登录HTTPS时使用RSA私钥进行签名的运算。我们可以将这些签名统称“非复核签名”。一般网银中,转帐等重要操作使用“复核签名”,登录等一般操作时使用“非复核签名”。

下面讲一下“复核签名”和“非复核签名”的散列算法要分开的原因。采用同一种散列算法是存在安全隐患的。由于网银的“非复核签名”的下证书,登录HTTPS等应用,需要USBKey在这种情况下也能签名成功,这时是无法进行复核的,那么这时黑客可以将篡改后的报文先在锁外进行Hash计算,将Hash值传给USBKey进行签名,这时COS认为是“非复核签名”的应用,而进行了签名,结果将篡改后的数据正确签名后传给服务器端,黑客将篡改后非法的原文也传给服务器端,就可以完成非法交易。当然,一般这种“非复核签名”也需要用户按键确认,但用户看不到真实的签名数据,这种情况就又退化到按键型USBKey的样子,并没有起到液晶显示复核的功能。

那么要做到液晶按键进行复核签名的安全的做法是,COS接收的只能是可以解析的报文,如果报文不能解析,USBKey就拒绝签名。但这样一来,“非复核签名”的应用又不能使用,证书下载和登录HTTPS都不能成功,这又是一个矛盾。

因此,既要安全,又要解决这个矛盾,就需要将液晶显示复核签名的算法独立出来。如“复核签名”算法采用MD5,“非复核签名”算法采用SHA1。当COS接收到的数据能够解析时采用MD5散列计算后进行签名,服务器端使用MD5算法进行验证签名。非复核签名时使用SHA1。这样当黑客将篡改的报文Hash后传给USBKey,由于不能解析,USBkey使用SHA1签名,而服务器端使用的是MD5算法进行验证签名,因此拒绝这种非法的签名,保证了安全。同时“非复核签名”的应用可以通过SHA1签名正常使用。
原创粉丝点击