随着互联网和电子商务的发展,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相关产业的发展和应用。

USB Key的更多相关文章

  1. USB Key插入和移除监控

    近期在做USB Key插入和移除监控,已经做到了插入和移除USB Key时,程序能够及时感应到. 如下为源代码: private void Form1_Load(object sender, Even ...

  2. Linux下基于PAM机制的USB Key的制作

    摘自:https://server.zzidc.com/fwqpz/157.html USB Key这个概念最早是由加密锁厂家提出来的,加密锁是用来防止软件盗版的硬件产品,加密锁的概念是使安装在计算机 ...

  3. 银行应用USB Key身份认证方案

    前言:本文为USB Key的厂商SafeNet公司提供的宣传稿件,并不代表本博客作者的观点和看法. 本文的技术解决方案使用的是SafeNet自身的产品,虽然这个产品支持数字签名和PKI体系,可生成并储 ...

  4. 使用USB Key(加密狗)实现身份认证

    首先你需要去买一个加密狗设备,加密狗是外形酷似U盘的一种硬件设备! 这里我使用的坚石诚信公司的ET99产品 公司项目需要实现一个功能,就是客户使用加密狗登录, 客户不想输入任何密码之类的东西,只需要插 ...

  5. RockBrain USB Server- 云计算虚拟化USB设备集中管理、远程共享解决方案(涉及银企直联)

    RockBrain USB Server- 云计算虚拟化USB设备集中管理.远程共享解决方案(涉及银企直联) 技术需求: 1.企业员工的大量USB Key,需要将key接入USB Server虚拟池, ...

  6. CA认证原理以及实现(上)

    转自:http://yale.iteye.com/blog/1675344 原理基础数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的载体,依靠数字证书,我们可以构建一个简单的 ...

  7. HTTPS那些事(二)SSL证书(转载)

    原创地址:http://www.guokr.com/post/116169/   从第一部分HTTP工作原理中,我们可以了解到HTTPS核心的一个部分是数据传输之前的握手,握手过程中确定了数据加密的密 ...

  8. 知识积累:CA详解

    所有证书有多种文件编码格式,主要包括: CER编码(规范编码格式):是BER(基本编码格式)的一个变种,比BER规定得更严格DER编码(卓越编码格式):是BER(基本编码格式)的一个变种,  比BER ...

  9. 蛙蛙推荐:WEB安全入门

    信息安全基础 信息安全目标 真实性:对信息的来源进行判断,能对伪造来源的信息予以鉴别, 就是身份认证. 保密性:保证机密信息不被窃听,盗取,或窃听者不能了解信息的真实含义. 完整性:保证数据的一致性, ...

随机推荐

  1. Java和Scala容器转换

    参考:https://blog.csdn.net/dymkkj/article/details/77921573 Java和Scala互操作的一个重要的内容就是容器的转换,容器是一个语言的数据结构,表 ...

  2. [转]HashMap详解

    转自微信公众号  安琪拉的博客 1. HashMap的内部数据结构? JDK1.8版本的,内部使用数组 + 链表 / 红黑树:数据结构如下图: 2. HashMap的数据插入原理吗? 1.判断数组是否 ...

  3. async和await的使用总结 ~ 竟然一直用错了c#中的async和await的使用。。

    对于c#中的async和await的使用,没想到我一直竟然都有一个错误.. ..还是总结太少,这里记录下. 这里以做早餐为例 流程如下: 倒一杯咖啡. 加热平底锅,然后煎两个鸡蛋. 煎三片培根. 烤两 ...

  4. 【HEOI2015】公约数数列 题解(分块)

    前言:毒瘤数据结构题,半个下午都在搞它了…… --------------------------- 题目链接 题目大意:给定一个长度为$n$的序列,有两种操作:1.把$a_x$的值改成$y$.2.求 ...

  5. 牛!Python 也能实现图像姿态识别溺水行为了!

    作者 | 李秋键 责编 | Carol 封图 | CSDN 下载自视觉中国 众所周知随着人工智能智能的发展,人工智能的落地项目也在变得越来越多,尤其是计算机视觉方面. 很多人学习python,不知道从 ...

  6. python 正则表达式与JSON-正则表达式匹配数字、非数字、字符、非字符、贪婪模式、非贪婪模式、匹配次数指定等

    1.正则表达式:目的是为了爬虫,是爬虫利器. 正则表达式是用来做字符串匹配的,比如检测是不是电话.是不是email.是不是ip地址之类的 2.JSON:外部数据交流的主流格式. 3.正则表达式的使用 ...

  7. 微信公众号里面怎么添加xls

    微信公众号里面添加xls的教程 我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件. 以下是公众号 ...

  8. MyBatis深入理解参数

    目录 一.快速创建mapper文件 二.parameterType 三.MyBatis 传递参数 1. 一个简单参数(掌握) 一.快速创建mapper文件 由于每个接口都要创建一个对应的mapper文 ...

  9. 什么才是定制化IDE的核心价值?

    写在前面 自 2018 年初,就与 VSCode 结下了不解之缘,从一份选型报告开始,一蹉跎就是 2 年多 期间反复思索着一个挥之不去的问题:定制化 IDE 产品的核心价值是什么? 事实上,答案并不唯 ...

  10. C#LeetCode刷题之#62-不同路径(Unique Paths)

    目录 问题 示例 分析 问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3680 访问. 一个机器人位于一个 m x ...