基于FPGA数据采集的USBKey安全评估系统设计与实现
董 攀,白长虹
【摘 要】摘要:USBKey具有硬件加密功能,目前广泛应用在软件版权保护、网银支付、智能家居等重要场所,因此,对其安全性能的评估是十分重要的;基于FPGA数据采集的评估系统正是实现USBkey的安全性能评估的,同时在一定程度上弥补了现有的USBKey安全性能评估方法的缺点;该系统使用USBHUB连接PC机和USBkey,同时采用FPGA采集并解析USB数据包,这不但能够精确地捕获USBKey在进行算法调用时产生的功耗波形图,还能实现启动攻击设备和功耗采集设备时间和USB进行安全运算的时间的精确匹配,从而实现高效率地评估USBKey的安全性能;该系统已在实验室进行了验证,结果表明该系统的评估效果好,成功率高。 【期刊名称】计算机测量与控制 【年(卷),期】2019(027)005 【总页数】5
【关键词】USBKey;安全攻击;加密;解密;微控制器;可编程逻辑门阵列
0 引言
USBKey是一种基于硬件加密的安全设备,主要应用于防止软件盗版,近年来也逐渐应用于网银和安全支付等方面。由于USBKey内嵌多种硬件安全加密(Encryption)算法,如果用户需要使用软件或者网银支付,需要输入密码通过硬件加密认证方可正常使用或支付,这种方式极大的保护了软件版权和用户财产安全。随着人工智能理念的推广,USBKey作为电子锁能够为家居安全提供有力保障,应用在家居安全方面的前景也非常广阔。
由于USBKey的广泛使用且涉及软件版权保护、文件资料加密传输[1-2]及网银交易[3]等重要场合,这让作为“安全保障”的USBKey的地位显得十分重要,因此USBKey的安全性能如何评估就更加重要了。
评估USBKey的安全性能,主要方法就是对其施加安全攻击(Security Attack)信号,同时使用设备采集其运算期间的功耗,通过分析USBKey的功耗规律来破解USBKey使用的加密(Encryption)算法、解密(Decryption)算法和密钥(KEY)[4]。在安全攻击的过程中最重要的一点就是告知攻击设备和功耗采集设备何时开始工作。由于USBKey使用USB接口,遵循USB标准规范和相关协议,其工作的特殊性导致其安全性能的评估存在一定的难度。 评估USBKey安全性能主要过程分为以下三步:
1)首先,在USBKey开始安全运算前,PC告知设备准备产生攻击信号和采集功耗;
2)其次,PC机根据USBKey所遵循的协议发送加密(Encryption)或解密(Decryption)指令开始进行安全运算;
3)最后,PC通过功耗采集设备获取USB设备运算期间的功耗。
目前传统的评估方法有以下三种:PC机产生触发信号,外置MCU产生触发信号,非USB接口通讯产生触发信号。下面分别介绍以上三种方法工作的优缺点。 PC机产生触发信号的原理框图如图1所示。
PC机具有丰富的软硬件资源,并且能够兼容各类USB协议和软件,外部设备的控制程序开发相对简单,因此该方法简单易实施。但是USB接口采用广播轮询方式信息传输,该方法PC机外部设备又比较多(如键盘、鼠标、示波器等)且大部分设备均采用USB接口,尤其部分攻击设备和功耗采集设备也会采用
USB接口。这就导致该方法中PC机发送给USBKey的指令在物理层数据传输时,传输时间不确定(时早时慢),进而会出现攻击设备和功耗采集设备开始工作的时候,USBKey尚未开始安全运算或者运算已结束的现象。因此,使用该方法会出现攻击迟滞或者攻击超前的情况,影响了安全评估的准确性和成功率。该方法已在射频识别芯片检测技术北京市重点实验室进行了验证,失败率达到了85%以上。
采用外置MCU产生触发信号的原理框图如图2所示。
该方法主要是在PC机和USBKey之间外置一个具有USBHOST功能的MCU设备,该MCU对PC机是从设备,对USBKey是主设备。PC机将USBkey加解密所需要的相关指令发送给MCU设备,通过MCU传递给USBKey,MCU可以在最后一条指令(即启动加解密运算)发送给USBKey之前产生触发信号,启动安全攻击和功耗采集,而后再发送加解密指令给USBKey。由于MCU设备和USBKey之间没有其他设备,因此该方法的准确性比方法一要高。 该方法虽然能够提高攻击准确性,但是存在以下缺点:
1)MCU设备的资源有限,在MCU设备上开发支持各类USB协议驱动的工作量很大;
2)由于USBKey种类繁多,采用MCU设备存在一定的兼容性局限;
3)不同USBKey的加解密指令不一样导致MCU设备的底层驱动设计需要经常升级;
4)由于MCU中断程序的响应,触发信号的产生时间也会稍微不准确。 非USB接口通讯产生触发信号原理框图如图3所示。
该方法在USBKey使用的安全芯片上预留一个外置接口(UART、SPI、7816[5]、
基于FPGA数据采集的USBKey安全评估系统设计与实现
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)