确保USB驱动器安全:风险产生原因和应对之策
被称之为USB存驱动器 、"U盘驱动器"或"USB Dongle"的USB类存储设备,真正使数据存储的方式发生了革命性的变革并极大地推动了便携性的发展。自2000年诞生以来,在全球各地生产与销售此类设备不计其数。统计数据显示,仅2008年一年生产的USB类闪存驱动器就高达1.73亿部。
USB类存储设备之所以得到广泛采用的原因包括:
·便携性:此类设备的物理尺寸通常非常小型化,重量较轻,便于装在口袋里随身携带("UDB Dongle")。
·易用性:随着USB作为标准接口不断得到推广,因此USB类存储设备的使用也极为方便,完全做到了即插即用。
·价格低廉。
·快速。
·容量大(而且还在不断增长)。
最近,个人和企业在USB闪存驱动器方面面临的重要问题之一就是数据泄露和失窃。报道显示发生的很多事故都与闪存驱动器放置不当、失窃或使用不当有关,这类事故一次性所造成的损失可高达250万美元之多。
机密数据、个人数据或企业数据的泄露或使用不当就会造成上述损失。鉴于此类问题,我们必须确保USB类闪存驱动器更强的安全性,避免泄露数据。USBA闪存驱动器数据的安全性可通过加密/解密机制加以实现,从而只让已验证人员对设备进行读写。
USB闪存驱动器的安全性
两种广泛用于确保USB闪存驱动器安全性的方法是:
·软件加密:密钥保存在设备存储器中并用来对数据加密和解密。尽管这是一种相当安全的方法,但将密钥放置在设备存储器中,却让黑客知道了从何处寻找密钥以及密钥所采用的独特格式。
·硬件加密:密钥不会脱离硬件,因此也不会暴露。这一特性使得硬件加密的潜在安全性比软件加密更强。
软硬件加密方法都使用了高级加密标准(AES)128位或256位(目前尚未出现128位或256位算法遭破解的报道)。不过,仅采用AES算法还不 足以确保全面安全,实施算法的方式同样十分重要。与软件加密一样,AES引擎通过用户密码生成密钥,这就是说加密的强度直接取决于密码的强度。此外,理想 情况下,128位的AES需要16个字符的密码。与此类似,256位的AES需要32个字符的密码。创建并记住别人很难猜测的密码可能导致设备使用不便。
另一方面,我们可用硬件随机数字生成器来生成数组,AES引擎用该数组生成加密密钥。密钥由用户密码解锁,并由AES引擎用来对数据进行加密。显然,硬件加密法的安全性更强。
值得注意的是,软硬件加密方法都需要使用用户密码。不过,由于硬件加密法不允许直接存取加密密钥,而且加密的质量与用户密码的强度无关,因此其安全性更强。
以下是目前可用的此类加密设备的普通方框图:
从上图中我们可以看出,USB控制器从PC或笔记本电脑的USB端口接收数据,并传输给AES引擎,引擎随后将数据传输给加密格式的大容量存储器。数据 检索的路径与存储控制器从大容量存储器中读取的路径相同,之后再将数据传递给AES引擎,该引擎解密数据并返回给USB控制器。
West Bridge法
2006年,赛普拉斯半导体公司推出了West Bridge系列产品。类似于PC领域的北桥和南桥架构,West Bridge架构的推出旨在促进嵌入式处理器的发展,从而不必受存储器和外设接口频繁变化的影响。
实际上,West Bridge器件就是一种三向桥接器,旨在用于将处理器从USB和存储器管理等数据密集型操作中解放出来。West Bridge器件带有三个端口,一个连接到处理器,一个连接到大容量存储器(两个大容量存储设备),另一个连接到USB外部接口。这种器件架构能确保处理 器和大容量存储器之间、大容量存储器和USB之间以及处理器和USB之间同时获得三个双向路径。其突出优势就是端口之间的数据传输速度非常快。
较快的数据传输速度可以抵消闪存驱动器采用安全特性后普遍发生的性能下降问题。
如下所示,West Bridge可用于安全USB闪存驱动器架构:
West Bridge在以上架构中完全控制着USB处理和存储器管理。处理器/FPGA从上述任务中解放出来,只负责AES加密算法即可。数据通过USB端口进入 并传送至AES引擎,引擎随后将加密数据发送到大容量存储器。在从大容量存储器检索数据期间,数据会从存储器发送到AES引擎,引擎接着进行数据解密并将 其发送至USB端口。
此外,我们可按下图所示进行架构升级:
在此,我们可用智能卡或其他类似硬件生成AES算法的加密密钥。密钥解锁需要用户密码,而后再让AES进行数据加扰和解扰。
可扩展性是一种重要特性,它能使OEM/制造商在相同架构的基础上推出不同版本的产品。
本文小结
随着USB作为PC和笔记本电脑连接标准的大规模推广,以及USB闪存驱动器所具有的明显优势,USB闪存驱动器很可
- 基于S3C44B0X的心电血压监测仪USB接口设计(11-28)
- C8051F320在USB设计中的应用(01-18)
- 基于ISP1581型接口电路的USB2.0接口设计(01-18)
- 用CP2101将USB口扩展成串口(01-18)
- TM1300 PCI-XIO口的UART和USB接口设计(01-17)
- 基于CH371的实用USB接口设计(01-23)