USBKey

      大家对USBKey应该不陌生,USBKey是一种类似U盘的东西,里面存储着用户的私钥和数字证书等,实现用户和服务器之间的保密通信。
      USBKey的构造
      虽然USBKey看上去和U盘、MP3没什么差别,但是USBKey内部的结构是挺复杂的,它内置了CPU、存储器、芯片操作系统(COS)等。通过USBKey内置的密码算法实现对用户的验证。
      市面上的USBKey有低端和高端两种,低端的USBKey主要用来存放密钥证书,只能提供3DES加密,存储器的容量比较小。高端的USBKey能提供RSA加密算法,存储容量比较大,可以同时存储几个私钥或者数字证书。
      USBKey的应用
      现在USBKey主要有三个方向的应用。
      第一,当加密狗使用。刚开始的时候,加密狗使用的是串口,当USB接口普及了之后,就改成了USB接口。在应该说,USBKey是从加密狗发展过来的,加密狗的作用是防止未授权的用户对软件进行复制和破解。
      第二,当电脑开机的钥匙使用。此时,USBKey是用来验证用户的身份,和智能卡的作用差不多。和生物识别(比如指纹识别)的系统对比来说,USBKey的实现更简单,费用也更低。
      第三、用来存储数字证书以及私钥,实现保密通信和身份验证。这也是现在用的最多的USBKey的应用。比如建设银行的网银就要使用USBKey才能进行转账等操作。
      USBKey的安全性
      数字证书或者私钥存在USBKey中是不能被导出的,加密运算用的是USBKey中内置的CPU,用户无法直接读取和写入私钥,因此数据没有在电脑的内存中,所以采用USBKey保存的数字证书或者私钥比直接硬盘版的数字证书或者私钥要安全。
      USBKey可以采用双因子认证方式,就是有PIN码和硬件构成了用户使用USBKey的两个重要因素,用户只能同时拥有了USBKey(实体)和用户的PIN码才能登录系统。
      USBKey的认证方式
      第一,基于冲击-响应的双因子认证方式:
      预先在USBKey和服务器中存储一个证明用户身份的密钥,当服务器收到客户端发出的身份验证请求后,生成一个随机数并通过网络传输给客户端(此过程称为冲击),客户端收到随机数之后,提供给客户端上的USBKey,由USBKey使用该随机数与存储在USBKey中的密钥进行带密钥的单向散列运行,得到一个结果作为认证数据传给服务器(此过程称为响应),同时服务器也进行单向散列的运行,如果服务器的运算结果和从客户端传过来的运算结果一致的话,则认为客户端是一个合法用户。
      第二,基于数字证书的认证方式:
      基于PKI架构的数字证书认证方式可以有效保证用户的身份安全和数据安全,但是数字证书存在被复制的危险。使用USBKey之后,所有的密钥运算都在USBKey中进行,只有USBKey的持有人才能操作,保证数字证书不被破解。
      USBKey的生产商:
      1、SafeNet
      2、北京海泰方圆科技有限公司
      3、飞天诚信
      参考文章:
      1、网络身份认证新技术
      2、USBKey的认证原理