随着互联网和电子商务的发展,USB Key作为网络用户身份识别和数据保护的“电子钥匙”,正在被越来越多的用户所认识和使用。本文对USB Key的产生和未来的发展趋势作了一个简单的介绍。
目前市场上见到的USB Key 按照硬件芯片不同可以分为使用智能卡芯片的和不使用智能卡芯片两种,按照CPU是否内置加密算法又可以分为带算法和不带算法的USB Key。一般我们把不带加密算法的称为存储型USB Key,带加密算法的称为加密型USB Key。
软件保护思想的发展催生了USB Key
USB Key 这个概念最早是由加密锁厂家提出来的,加密锁是用来防止软件盗版的硬件产品,加密锁的概念是使安装在计算机内的应用程序脱离加密锁硬件无法运行来达到保护软件不被盗版的目的。随着网络应用的不断深入和应用软件销售模式的改变,未来的软件用户可能不需要购买软件在本地计算机上安装运行,而是将要处理的数据通过网络上传到专门运行该软件服务的应用服务器上处理,再通过网络取得数据处理的结果,软件开发商通过提供该应用服务收取软件费用。这个时候,软件厂商面临的问题就不再是如何防止本地软件被复制,而是如何确认网络用户的身份和用户数据的安全。于是加密锁厂商提出了USB Key的概念,用于识别用户身份。
此后,随着电子商务和PKI应用的兴起,数字证书作为确认用户身份和保护用户数据有效手段越来越被人们所接受。然而数字证书实质上表现为带有用户信息和密钥的一个数据文件,如何保护数字证书本身又成为PKI体系中最薄弱的环节。数字证书可以保存在各种存储介质上,如软盘、硬盘等。国内CA早期颁发的数字证书都是以软盘的形式发放,或者由用户从网络上下载,然后导入到系统中保存在硬盘上。然而,用软盘保存数据是非常不可靠和不安全的,软盘虽然便于携带,却非常容易损坏,而用硬盘保存数据虽然不容易损坏,但是不便于携带,更致命的是不论用硬盘还是用软盘保存数字证书都非常容易被复制或被病毒破坏。虽然一般数字证书都带有密码保护,然而一旦证书被非法复制,整个安全系统的安全性就降低到仅仅靠密码保护的级别。于是,专门用于存储秘密信息的USB Key就很自然的成为数字证书的最佳载体。
USB Key厂家将USB Key与PKI技术相结合,开发出了符合PKI标准的安全中间件,利用USB Key来保存数字证书和用户私钥,并对应用开发商提供符合PKI标准的编程接口如PKCS#11和MSCAPI,以便于开发基于PKI的应用程序。由于USB Key 本身作为密钥存储器,其自身的硬件结构决定了用户只能通过厂商编程接口访问数据,这就保证了保存在USB Key中的数字证书无法被复制,并且每一个USB Key都带有PIN码保护,这样USB Key的硬件和PIN码构成了可以使用证书的两个必要因子。如果用户PIN码被泄漏,只要保存好USB Key的硬件就可以保护自己的证书不被盗用,如果用户的USB Key丢失,获得者由于不知道该硬件的PIN码,也无法盗用用户存在USB Key中的证书。与PKI技术的结合使USB Key的应用领域从仅确认用户身份,到可以使用数字证书的所有领域。
与智能卡技术结合增强了USB Token的安全性
存储型的USB Key由于其硬件功能的限制,仅能实现简单的数据摘要算法,对于PKI中广泛使用的对称和非对称加密算法只能通过运行在PC上的中间件来实现,这样在加密和签名运算中用户的密钥就会出现在内存中,有可能被技术高超的黑客获取。随着用户对信息安全要求的提高,市场出现了由硬件实现加密运算的需求。智能卡技术的发展,智能卡运算能力不断提高,出现了可以运行加密算法的智能卡。然而,以卡片形式存在的智能卡在使用时必须通过读卡器与电脑通讯,非常不方便用户使用。于是出现了将智能卡芯片和读卡器结合在一起的USB Key。带有智能卡芯片的USB Key可以通过内置的智能卡芯片在Key内部硬件实现DES/3DES、RSA加解密运算,并支持Key内生成RSA密钥对,杜绝了密钥在客户端内存中出现的可能性,大大提高了安全性。
随着电子政务和电子商务的发展,国内各地区和各行各业都建立了自己的CA并向各自的客户提供数字证书服务,使用数字证书的用户越来越多,由于USB Key在证书存储方面的优越性,越来越多的CA和用户选择了USB Key作为他们的证书存储介质。因此,随着USB Key市场的扩大,越来越多的厂家特别是原来的智能卡厂家进入USB Key的市场,从而带动了USB Key相关产业的发展和应用。