USB KEY也叫UKEY,USBKey,USB Token,国内习惯翻译成U盾,或者优盾。
工行的USB Key产品为“U盾”,招行的USB Key产品为“优Key”。

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码才能登录系统。

usb key身份认证应用方式

基于冲击-响应的双因子认证方式

当需要在网络上验证用户身份时,先由客户端向服务器发出一个验证请求。服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为冲击)。客户端将收到的随机数通过USB接口提供给ePass,由ePass使用该随机数与存储在ePass中的密钥进行MD5-HMAC运算并得到一个结果作为认证证据传给服务器(此为响应)。与此同时,服务器也使用该随机数与存储在服务器数据库中的该客户密钥进行MD5-HMAC运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。  密钥运算分别在ePass硬件和服务器中运行,不出现在客户端内存中,也不在网络上传输,由于MD5-HMAC算法是一个不可逆的算法,就是说知道密钥和运算用随机数就可以得到运算结果,而知道随机数和运算结果却无法计算出密钥,从而保护了密钥的安全,也就保护了用户身份的安全.

 

基于数字证书的认证方式

       随着PKI技术日趋成熟,许多应用中开始使用数字证书进行身份认证与数字加密。数字证书是由权威公正的第三方机构即CA中心签发的,以数字证书为核心的加密技术,可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性,以及交易实体身份的真实性,签名信息的不可否认性,从而保障网络应用的安全性。  PKI即公共密钥体系,即利用一对互相匹配的密钥进行加密、解密。每个用户拥有一个仅为本人所掌握的私有密钥(私钥),用它进行解密和签名;同时拥有一个公开密钥(公钥)用于文件发送者加密和接收者验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。  用户也可以采用自己的私钥对信息进行加密,接收者用发送者的公钥解密,由于私钥仅为用户本人所有,所以就能够确认该信息确实是由该用户发送的,此过程称之为数字签名。

  USB Key作为数字证书的存储介质,可以保证数字证书不被复制,并可以实现所有数字证书的功能。

 PIN=personal identification number 个人标识号用于保护智能卡免受误用的秘密标识代码。PIN 与密码类似,只有卡的所有者才知道该 PIN。只有拥有该智能卡并知道 PIN 的人才能使用该智能卡 PUK=PIN UnBlock PIN解锁码用途就是解除PIN锁定