APP下载

针对真实RFID 标签的侧信道攻击*

2019-07-16董高峰胡红钢俞能海

密码学报 2019年3期
关键词:汉明功耗密钥

戴 立, 董高峰, 胡红钢, 俞能海

中国科学技术大学中国科学院电磁空间信息重点实验室, 合肥230027

1 引言

在密码分析学中, 加密算法即便在数学上是安全的, 在工程实现时也会不可避免地在某些物理信道层面泄露额外的密钥信息.侧信道分析便是一种尝试收集这些额外泄露的信息, 并加以利用进行密码学分析的方法.侧信道分析的思想在20 世纪90年代后期初步形成, 攻击者通过收集密码设备运行密码算法时的时间差异[1]、功耗[2]、电磁[3]或其它类型的物理泄露信息, 结合数学分析方法, 可以恢复出密码设备运行时所使用的部分或完整密钥.近年来, 在侧信道分析领域涌现出了大量的研究成果, 例如掩码防护与对抗掩码的高阶攻击[4,5]、随机化操作顺序隐藏泄露信息[6]、双栅逻辑和预充电逻辑的抗侧信道攻击电路[7]等.但是由于目前的大多数研究是针对理论模型展开讨论的, 通常采用专用的侧信道实验设备[8]或自制的原型设备[9]运行密码算法并对其进行攻击测试.这样做的一个弊端是, 待测设备往往拥有良好的测量配置, 如较完美的触发信号、运算芯片VCC 端或GND 端直接嵌入的测量电阻, 以及较小的周边环境干扰等.但将侧信道分析理论运用到对真实设备的攻击时, 会出现许多需要额外考虑的问题.

另一方面, 随着RFID 技术的发展, 不少RFID 标签已经具备了运行密码算法的能力, 但与此同时也受到了来自侧信道攻击的威胁.为探究在对真实RFID 标签进行侧信道攻击时会遇到哪些挑战, 以及实际攻击效果如何, 本文选取了一款称之为无线识别与传感平台[10,11](wireless identification and sensing platform, WISP)的新型RFID 标签展开侧信道攻击.WISP 是近几年发展起来的一款可编程RFID 标签, 本文实验中所使用的是其第五代版本TB-WISP 5.0, 该版本搭载了一颗MSP430FR5969 微控制芯片, 可以用其驱动该标签上所配备的各种传感器装置, 并将传感器收集的传感信息处理后通过特高频载波波段(902–928 MHz)发送给阅读器天线, 通讯时采用EPC Class 1 Generation 2 通信协议.WISP 电路内部包含一套能量收集模块, 可以通过自身天线接收阅读器天线发出的射频能量并将其转化为电能、存储在标签内部的储能电容中以实现无源性, 因此该标签在人体医学设备[12]、自定位RFID[13]、结构安全检测[14]、可充电传感网[15]、农业环境检测[16]等应用领域具有广泛的应用前景.本文选取这样一款设备进行侧信道分析的意义可概括为以下四点:

(1)WISP 是一种典型的MCU 控制的可编程RFID 标签, 存在巨大的市场应用空间, 具有攻击和防护的研究价值;

(2)近年来出现了许多对WISP 能量采集效率、密码和认证算法[17]以及应用领域等方面的研究, 但在已公开发表的文献中, 本文是首个对WISP 侧信道安全性展开研究的;

(3)WISP 在正常工作时, 一方面内部存在板载传感器等部件的功耗噪声, 另一方面外部存在与阅读器通讯时的强烈电磁波噪声, 这些噪声的干扰给攻击带来了一定难度;

(4)不同于使用稳压电源供电的大多数设备, WISP 内部含有一套独特的储能电容充放电系统, 且具有休眠/唤醒状态切换的工作特性, 因此这样的储能系统和工作特性可能会给攻击带来新的挑战.

本文结构安排如下: 在第2 节中将介绍WISP 整体的工作过程、在工作时所采用的协议以及功耗和电磁攻击的基本过程和原理; 第3 节中将介绍攻击中轨迹采集的测量配置及优化、测量效果和对轨迹所进行的预处理; 实验攻击的结果和分析将呈现在第4 节中; 最后在第5 节中对全文进行总结, 并提出了对未来工作的展望.

2 攻击基础和攻击原理

2.1 WISP 工作过程

本文所攻击的WISP 设备工作过程如下: 当由外部供电或内部储能电容能量充足时, 将处于工作状态; 当无外部供电且内部储能电容能量不足时, 将切换到休眠状态, 由能量收集模块收集到足够能量后, 再返回工作状态继续工作.在工作状态下, WISP 将持续用传感器收集环境信息存入自身FRAM(ferromagnetic random access memory)中, 并随时接受来自阅读器的通讯请求中断.为了防止重放攻击, 每次WISP 与阅读器之间采用如图1 所示的简易双向认证协议进行认证和会话密钥协商.阅读器与WISP 之间存在一个预先设定好的共享主密钥k, 首先, 由阅读器发起通讯请求, 请求数据包中包含一个随机数R1; WISP 接收到请求后, 用主密钥k 对R1 进行AES 加密, 将加密结果和一个随机数R2 一并发送给阅读器; 阅读器解密得到R1 完成对WISP 的身份验证, 并将R2 用k 进行AES 加密后返回给WISP; WISP 解密得到R2 完成对阅读器的身份验证; 之后, 双方生成新的临时会话密钥k ⊕R1 ⊕R2,并用该密钥对数据进行加密完成本次会话通讯.值得注意的是, 当不提供外部电源且WISP 距离阅读器天线较远时, WISP 的丢包率将处于一个较高的水平, 因此WISP 在短时间内收到多个通讯请求数据包被认为属于正常情况.

图1 简易双向认证协议Figure 1 Simple mutual authentication protocol

2.2 功耗和电磁攻击原理

在侧信道攻击中, 目前比较主流的做法是利用功耗泄露信息或电磁泄露信息进行攻击, 无论是功耗攻击还是电磁攻击, 都可分为“信息采集→轨迹预处理→选取功耗泄露模型→轨迹分析” 这几个基本阶段, 当攻击结果失败或者效果不够理想时, 需要分析原因并相应地回到前面阶段修改方案后重新执行.这两种攻击的主要区别在于信息采集环节所使用的采集设备和采集方法有所不同.

2.2.1 信息采集

泄露信息的存在和能被采集是攻击可行性的基础, 只有当设备存在侧信道信息泄露且采集到的数据包含充足的泄露信息时攻击才有可能成功.

在功耗泄露信息的采集中, 需要使用恒压电源供电, 并在采集电路的VCC 端或GND 端嵌入一个1–50 欧姆的小电阻, 利用探头测量电阻两端的电压差, 该电压差的变化可以代表整个电路的功耗变化[18],将其记录为功耗轨迹以供后续处理.由于电压差的变化幅度可能较小, 可以使用差分放大器对信号进行放大.

而在电磁泄露信息的采集中, 利用高灵敏度的电磁探头靠近设备芯片部分, 记录芯片工作时所泄露出来的电磁信息[18].同样地, 由于这种电磁泄露信息非常微弱, 通常会利用一个低噪放大器对采集到的电磁信息进行放大处理.记录到的电磁轨迹同样可被认为代表了电路的功耗变化情况, 而电磁轨迹与功耗轨迹的不同之处在于, 电磁轨迹在幅度上将显得更为微弱, 受到噪声的干扰也更大, 即电磁泄露信息具有更低的信噪比.

采集时, 为了提升泄露信息的信噪比, 攻击者需要精准定位设备加解密运算的时间段, 并将该时间段以外的无关信息抛除, 为达到这一目的需要设定合适的触发条件.在许多使用专用侧信道实验设备的研究中, 会在编程过程中设置好设备的触发引脚和触发信号, 使设备在加解密开始前给触发引脚发送一个触发信号以精准地采集加解密段轨迹, 因此这类触发条件的精准度很高; 而在一些对真实设备攻击的研究中,则会借助于设备自身的特征作为触发条件, 如对无线设备的攻击采用通讯协议中的特征进行触发[19], 对手机的攻击采用USB 调试进行触发[20]等, 相应地这类触发条件精准度较低.

2.2.2 轨迹预处理

在对真实设备的攻击中, 由于不精准的触发条件和较大的噪声, 信息采集后得到的多条原始轨迹在时间轴上处于未对齐状态, 在幅度值上也存在较多毛刺噪声, 需要使用轨迹预处理操作进行对齐和去噪.近年来有许多关于预处理环节的研究成果, 时间轴上的预对齐采用峰值匹配、动态时间规整[21,22]等算法能达到较好的对齐效果, 同时可以通过低通滤波、均值滤波等达到一定去噪效果.

2.2.3 选取功耗泄露模型

功耗泄露模型对密码设备所泄露的功耗进行了仿真, 目前侧信道分析中应用最广泛的两种模型是汉明距离模型和汉明重量模型[18].

汉明距离模型将设备元件输出逻辑值之间的转换映射为功耗.一般来说, 若设备中数据总线较长, 电容负载大, 对设备的功耗会产生比较大的影响, 这时候可以用汉明距离模型刻画其数据总线上数据转换的功耗.如数据总线上一个数据由v0变为v1时, 其汉明距离模型为HD(v0,v1)= HW(v0⊕v1), 其中HW(·)表示取参数的汉明重量值.

相比而言, 汉明重量模型则比汉明距离模型更加简单一点.当攻击者不知道设备底层电路元件排布信息或者不知道元件所处理数据的变换情况时, 则可采用汉明重量模型.汉明重量模型假设能耗与被处理数据中比特位为1 的个数(即数据的汉明重量)成正比.虽然在实际情况中, 设备CMOS 电路中的功耗更多地取决于电路中数据数值转换, 但这种功耗与数据汉明重量并非完全不相关.在汉明重量模型中, 可以直接对一个数据x 取其汉明重量来刻画处理该数据的功耗, 即功耗模型为HW(x).

以本文对AES 的攻击为例, 针对AES 初始轮中的轮密钥加和第一轮中的字节替换这两个操作进行汉明重量模型建模, 由于操作中原密钥被分为16 个单字节的子密钥参与运算, 因此我们分别对每个子密钥列举所有的可能情况进行攻击, 即对于已知明文m 和假定子密钥k, 这两个操作过程中其汉明重量模型下的功耗为HW(sbox(m ⊕k)), 其中sbox(m ⊕k)表示明文m 和密钥k 相异或的结果参与字节替换运算后的输出值.

2.2.4 轨迹分析

轨迹分析是整个攻击过程的最后一步.现有的轨迹分析技术多种多样, 常用的一些包括简单功耗分析[23]、差分功耗分析[2]、互信息分析[24]、方差分析[25]、模板分析[26]等等.本文实验所采用的差分功耗分析是通过利用大量功耗轨迹, 计算在相应的功耗泄露模型下, 这些轨迹与所假设子密钥的相关性, 由相关性推算各个假设子密钥是真实子密钥的可能性大小.已知给定的轨迹集合T, T 中第d 条轨迹td所采用的明文字节md, 假设的子密钥字节k, 则k 与T 的相关性rk为

式中, D 表示集合T 中轨迹的总数量, hd表示T 中第d 条轨迹对应的汉明重量模型下的功耗HW(sbox(md⊕k)),表示全部D 条轨迹在汉明重量模型下功耗的平均值, td,i表示第d 条轨迹在第i个数据点处的值,表示全部D 条轨迹在第i 个数据点处的平均值.

对于每一个子密钥字节, 可列举出256 种密钥假设, 将每一种密钥假设与所采集功耗轨迹的相关性计算出来后取绝对值并按从大到小排序, 结果中最大的值所对应的密钥假设被认为最有可能是真实密钥.

从安全性分析的角度而言, 若我们一开始知道真实密钥, 可以观测到通过D 条轨迹攻击后, 真实密钥所对应的相关性绝对值在所有假设密钥对应的相关性绝对值中从大到小的排序序号(从序号0 开始计算),这一序号值等于部分猜测熵[27](partial guessing entropy, PGE), 部分猜测熵可被用来评估在D 条轨迹攻击下的攻击效果, 其值越小, 表示攻击效果越好, 当部分猜测熵的值达到0 时, 攻击效果达到最佳水平.

3 轨迹采集与预处理

3.1 测量配置

本文实验过程中采用的主要器件包括: TB-WISP 5.0 标签一个、Impinj R420 阅读器及天线一部、Pico 5444B 示波器一台、ChipWhisperer 公司的CW501 差分探头一个、ChipWhisperer 公司的CW502 低噪放大器一个、RIGOL 电磁探头一个和PC 机一台.其中, Pico 5444B 示波器单通道下最大支持14 比特的采样位宽和5 GS/s 的采样频率, CW501 差分探头提供20 kHz–200 MHz 带宽范围内的10db 增益, CW502 低噪放大器提供0.1 MHz 到1000 MHz 带宽范围内的20 db 增益.由2.1 节中WISP所采用的双向认证协议可知, 我们的攻击目标是分析出WISP 所使用的主密钥k.为了获取大量设备加密时的功耗或电磁泄露轨迹, 我们可以用阅读器向WISP 发送多个含有不同随机数的通讯请求数据包, 在收到加密结果前完成对其加密功耗或电磁泄露轨迹的采集.

3.1.1 功耗泄露的测量配置

为了完成功耗轨迹采集, 根据2.2.1 节中描述的采集原理, 一种较好的测量方法是直接在MSP430FR5969 MCU 的VCC 端或GND 端嵌入一个小型贴片电阻, 再用差分探头测量其两端的电压差, 这样能有效地减小电路其它部分的噪声影响, 但是嵌入贴片电阻的操作难度比较大, 且需要昂贵的设备才能完成这一精细操作.在真实攻击中, 若攻击人员只有一块待攻击WISP 标签样本, 嵌入电阻时蚀刻电路操作上的失误将直接导致攻击的失败, 且这种操作会在设备上留下明显的改装痕迹, 在一些实际攻击场景中显得不适用.

本文中的功耗测量选用了比较大的测量环路: 在WISP 的程序下载接口处利用外部电源进行供电, 于供电电源与下载接口之间增加一段连接导线, 并在VCC 端的导线上加装一个阻值为1 Ω 测量电阻.之后,我们可以直接在测量电阻两端安装CW501 差分探头, 并连接Pico 示波器完成测量环路的配置.关于外部电源的选择, 我们测试了电脑USB 供电、实验室稳压电源供电、干电池供电等三种方案, 发现采用干电池供电时, 电源纹波最小, 采样效果也最理想.

在刚开始研究时, 为了确定加密操作在功耗轨迹上的所占区段并继而分析其轨迹特征, 我们为WISP设置了一个触发信号: 让WISP 加密完成后短暂点亮一次LED 灯, LED 灯的VCC 引脚可作为触发引脚.为了捕捉这一触发信号, 我们在LED 灯的两端焊接了两根电源线, 并连接到一个示波器探头.真实攻击场景中, 这种类似的触发引脚是有可能存在并被加以利用的, 但我们的攻击不应对这种触发引脚的存在产生依赖性.因此在后续攻击中, 我们取消了触发引脚的设定, 利用所发现的加密轨迹特征优化了触发条件, 这将在3.2 节中展开详细讨论.

功耗泄露的测量配置和供电连接方式如图2 所示.由于MSP430FR5969 MCU 的最高时钟频率为16 MHz, 根据奈奎斯特采样定律[28], 我们需要至少32 MS/s 的示波器采样频率才能保证原始信号的无损采样.在我们的实验中, 采样频率设置为62.5 MS/s, 采样位宽设置为14 比特.当完成测量配置后, 利用阅读器向WISP 发送一个包含随机数R1 的请求数据包, 若WISP 成功接收到便会执行对R1 的AES 加密操作, 此时记录下示波器所采集到的波形, 并保存对应的明文R1 即可.

3.1.2 电磁泄露的测量配置

电磁泄露的测量与功耗泄露的测量类似, 供电方式和触发引脚保持不变, 将差分探头改为电磁探头并靠近工作中的MSP430FR5969 MCU 进行探测, 同时我们在电磁探头和示波器之间增加了一个20 db 增益的CW502 低噪放大器, 测量方法如图3 所示.同样地, 图中的触发引脚和对应的示波器探头也可被取消, 取而代之用电磁泄露轨迹自身的特征进行触发.

需要注意的是, 电磁探头的位置会影响到所采集到轨迹的形态, 为了达到较好的采集效果, 可以在WISP 处于工作状态时, 将电磁探头垂直于WISP 平面并贴近其MCU 芯片, 然后微调探头横纵坐标的位置, 寻找一处使得有效信号轨迹振幅尽可能大且受到较小噪声干扰的点.此外, 在同一次电磁攻击的采集过程中, 要求电磁探头相对WISP 的位置保持稳定, 可以利用胶带或其它工具固定WISP 在实验台面上的位置, 并利用夹持器固定探头的位置, 同时, 采集过程中应避免实验台面发生较大的振动.

图2 功耗泄露的测量配置和供电连接图示Figure 2 Power leakage measurement setup and power supply connection diagram

图3 电磁泄露的测量配置和供电连接图示Figure 3 Electromagnetic leakage measurement setup and power supply connection diagram

3.2 触发条件的优化

3.2.1 功耗轨迹的特征分析与触发条件优化

图4 带触发信号的功耗采集模式下单条轨迹Figure 4 Single trace in power measurement mode with trigger signal

3.1 节所介绍的轨迹采集方法使用了LED 灯的VCC 引脚高电平作为触发信号, 采集出来的一条样本轨迹如图4 所示.图中红色曲线为触发信号轨迹, 蓝色曲线为采集到的功耗轨迹.我们在分析了大量这种轨迹后发现, 它们拥有这样一些共同特点:

(1)红色触发信号高电平前4 ms 左右长的功耗轨迹可分辨出清晰的AES-128 加密9 轮半结构的周期性图案, 加密段放大后效果如图5 所示;

(2)所有轨迹均存在分布不规则的毛刺, 毛刺的脉冲宽度和幅度会有所变化, 但脉冲宽度均小于3 ms, 毛刺有时会与加密段轨迹发生叠加现象;

(3)除却加密段和毛刺段呈现出较高的功耗特征外, 加密段前后20 ms 所记录的轨迹范围内均没有其它明显的功耗特征;

(4)触发信号转到高电平时, 会影响AES 加密尾部的波形, 在尾部形成一个急剧的功耗突变.根据以上轨迹特点, 我们有如下分析:

(1)毛刺可能是由于WISP 特殊的储能电容结构放电或电路上并行运行的传感器装置所带来的能耗噪声;

(2)加密时的能耗远高于其它工作环节的能耗, 且加密段呈现出明显的图案特征, 脉冲宽度较为固定,九轮半加密结构明显, 可以在实际攻击中根据这一特征来设置触发条件.

图5 AES-128 加密段功耗轨迹Figure 5 Power trace of AES-128 encryption segment

如3.1 节所述, 实际攻击中可能不存在可供利用的触发引脚, 因此我们需要进一步考虑利用功耗轨迹自身的特征来进行触发.首先, 我们关闭了WISP 加密结束后点亮LED 指示灯的这一设定, 并将测量的触发条件更改为功耗轨迹脉冲宽度触发, 经过反复验证, 触发电压设置为0.8 V、触发脉冲宽度设置在5.3 ms 到6.3 ms 之间时可以得到较纯净的AES 加密功耗轨迹.值得注意的是, 这种触发条件过滤掉了部分受到毛刺噪声影响而变得畸形的功耗轨迹, 因为这些轨迹加密段的脉冲宽度会由于与噪声脉冲叠加而发生改变.去掉触发信号后的一条AES 加密段轨迹如图6 中蓝色曲线所示.由于没有了触发信号的干扰, 可以观测到轨迹尾部的功耗突变现象消失了.

图6 无触发信号的功耗轨迹(蓝)和电磁轨迹(绿)Figure 6 Power trace (blue)and electromagnetic trace (green)without trigger signal

3.2.2 电磁轨迹的特征分析与触发条件优化

我们进一步考虑如何测量无触发信号的电磁轨迹, 由于电磁泄露信息受到环境电磁波干扰较大, 电磁轨迹的测量也存在更大难度.无触发信号条件下一条经过10 倍幅度放大后的典型电磁泄露轨迹如图6 中绿色曲线所示.我们发现与功耗泄露轨迹相比, 电磁泄露轨迹有如下特征:

(1)受到噪声干扰现象更加严重, AES 九轮半加密结构不再明显;

(2)加密开始前有两处很明显的脉冲波形, 波形幅值小于加密部分;

(3)加密结束后无明显的波形回落现象;

(4)部分轨迹有时会在加密段受到严重的电磁噪声干扰而变得不可识别.

我们利用上述第(2)条特征设置欠幅脉冲作为触发条件, 可以通过设置更为苛刻的触发条件阈值来尽量获得更为一致的轨迹, 但这同时也舍弃掉了许多有用但不严格符合该阈值的轨迹.应注意, 合适的触发条件阈值会由于电磁探头种类的不同和具体摆放位置的变化而有所改变, 采集过程中应保持电磁探头处于一个较为固定的位置.

3.3 轨迹预处理

在这一步里, 我们需要对采集到的轨迹进行对齐和去噪处理.为了提高结果的准确性, 我们先对轨迹进行了初步筛选, 去除掉了那些在加密第一轮处明显被毛刺噪声干扰的轨迹.对于剩下的轨迹, 我们保留了AES 加密算法第一轮附近的60 000 个数据点进行进一步的预处理.

首先, 我们对轨迹进行平滑去噪.可采用的去噪方法有很多, 常见的如巴特沃斯低通滤波、高斯低通滤波、移动平均滤波等都能达到一定去噪效果.经过反复的性能对比, 我们采用了参考文献[20]中提出的预处理方法, 该方法将轨迹先进行短时傅里叶变换(STFT), 然后选取适当的有效信号频带, 再进行移动平均滤波.在该处理方法中, 我们所采用的STFT 窗口大小为128, 有效信号频带选取0–1 MHz, 移动平均滤波的窗口大小为200.加密第一轮部分的轨迹去噪处理前后对比如图7 所示.

图7 AES 第一轮轨迹去噪前后轨迹对比Figure 7 Comparison of traces before and after denoising in AES’s 1st round

此外, 我们需要对去噪后的轨迹进行预对齐处理.我们采用了峰值匹配算法进行初步对齐.在这一步后, 大多数轨迹得到了很好的对齐效果, 但有部分轨迹尾部出现了微小的时延偏差.目前尚不清楚出现这一时延偏差的具体原因, 在设备抗侧信道攻击设计中, 也经常加入随机时延作为一种应对侧信道攻击的防御措施, 我们采用动态时间规整算法对这类轨迹进行处理可以达到完美的对齐效果.在经过这两种算法的处理后, 多条轨迹的局部对齐效果如图8 所示, 图中以不同颜色区分不同编号的轨迹.

图8 多条轨迹预对齐处理后的对齐效果(局部)Figure 8 Alignment effect (partial)of several traces after pre-aligned processing

由图8 我们可以观测到, 虽然轨迹在时间轴上得到了很好的对齐效果, 但幅度轴上仍然存在整体性偏移差别.为了消除这种整体性偏移, 我们可以利用归一化公式T∗=T −mean(T)或进行归一化, 两式中T 表示原轨迹, T∗表示归一化后得到的新轨迹, mean(T)表示轨迹上所有点的平均值,std(T)表示轨迹上所有点的标准差.但在后续的实验中我们发现, 归一化处理后的轨迹虽然拥有更好的视觉对齐效果, 在攻击效果上却不如原轨迹, 这是因为归一化在对齐轨迹幅度轴的同时, 也一定程度地减小了不同轨迹间的差异, 从而损失了部分泄露信息.因此, 在后续处理中, 我们并没有对轨迹进行归一化.

4 实验结果与分析

4.1 实验结果

我们采用了汉明重量模型对预处理完的功耗轨迹和电磁轨迹分别进行了2.2.4 节中所介绍的差分功耗分析.

在功耗轨迹的差分分析中, 被攻击密钥的16 个字节攻击效果如表1 所示, 攻击效果最好的是第1 个字节, 仅用了80 条轨迹就得到了正确的密钥猜测; 而攻击效果最差的是第7 个字节, 用了240 条轨迹才得到正确的密钥猜测.

表1 功耗攻击中每个字节得到正确密钥猜测时所用轨迹条数Table 1 Number of traces used in power attack for each byte to get correct key guess

在电磁轨迹的差分分析中, 由于电磁泄露信息受到了比较大的噪声影响, 所需要的轨迹数量要远大于功耗轨迹的数量.我们的攻击结果如表2 所示, 攻击效果最好的仍然是第1 个字节, 用了1000 条轨迹得到正确的密钥猜测, 而攻击效果最差的是第9 个字节, 用了2970 条轨迹才得到正确的密钥猜测.

表2 电磁攻击中每个字节得到正确密钥猜测时所用轨迹条数Table 2 Number of traces used in electromagnetic attack for each byte to get correct key guess

图9 和图10 分别展示了在对功耗轨迹和电磁轨迹的攻击下第1 个字节的部分猜测熵随着攻击轨迹条数增多的变化情况.

4.2 结果分析

图9 功耗攻击中字节1 的PGE 随轨迹条数变化情况Figure 9 Change of PGE (byte 1)in power attack

图10 电磁攻击中字节1 的PGE 随轨迹条数变化情况Figure 10 Change of PGE (byte 1)in electromagnetic attack

根据第3 节中的采集结果和4.1 节中的攻击结果可知, 在RFID 标签上不加防范地运行的密码算法并不安全, 通过侧信道攻击能提取出存储在标签内部的密钥.即使我们的测量环境并没有达到一个最佳的测量环境, 如测量功耗的电阻并非直接嵌入在运算芯片的VCC 端或GND 端, 电磁测量也没有用法拉第笼屏蔽环境中的电磁干扰, 但在这种情况下, 我们仍然通过不同明文加密的240 条功耗轨迹或2970 条电磁轨迹完全恢复了存储在WISP 标签内的AES 密钥.对于其他攻击者而言, 他们甚至可以通过改进攻击手段, 如建立攻击模板、更换分析算法等, 用更少的轨迹就能获取完整的真实密钥.

我们在将侧信道分析理论应用到对真实RFID 标签设备的攻击中时, 虽然遇到了触发条件的选取、设备功耗或电磁轨迹特征未知、设备特殊电路带来噪声干扰等诸多方面的挑战, 但仍然找到了方法来克服这些挑战.因此, 侧信道攻击技术对社会上已经广泛应用的密码设备所带来的威胁绝不可忽视, 密码设备的设计者们也应该投入更多的精力来应对这一威胁.针对轻量化的RFID 标签, 建议采用基于哈希的认证协议、随机化操作顺序等低价高效的手段来做侧信道分析防护.

4.3 与现有研究对比

近年来, 也出现过许多针对具体密码系统的侧信道攻击研究: 如文献[9]的作者自制了高频和超高频的RFID 标签原型, 并用2000 条电磁轨迹和差分频率分析破解了其AES 算法密钥; 文献[20]的作者用简单侧信道分析以单条轨迹破解了手机上的RSA 和ECC 算法密钥; 文献[29]的作者使用逆向工程手段,通过150 条电磁轨迹破解了安全门锁经过改造的DES 算法密钥.与现有研究对比, 本文的实验有如下创新点:

(1)不再基于协议特征或触发引脚进行触发, 而是发掘并利用功耗或电磁轨迹的自身特征进行触发;

(2)实现了完全非侵入式的功耗轨迹采集, 由于无需焊接触发引脚, 且功耗测量电阻不需焊接到目标电路板上, 采集完毕后不会在目标设备上留下攻击痕迹.

5 结论

为了探究在对真实密码设备进行侧信道攻击时会遇到的问题和挑战, 本文从攻击者的角度出发, 选取了一款新兴的可编程RFID 标签TB-WISP 5.0 进行攻击.在攻击过程中, 我们用相对简单的采集设备,分析出了AES-128 加密算法在WISP 设备运行时功耗和电磁泄露轨迹上的特征, 据此设计了无需触发信号的轨迹采集方案, 并排除掉了WISP 特殊储能电容和周边电路带来的噪声干扰, 在可接受的采集轨迹条数内成功攻击出了WISP 内部储存的AES 密钥.之前的研究者已经做出了部分对真实密码设备攻击的研究案例, 本文在他们的基础之上, 进一步证明了对真实RFID 标签进行侧信道攻击的可行性, 展示了攻击中所遇到的挑战和应对方法, 也揭示了在设计密码设备软硬件时, 从抗侧信道攻击的角度加以设计防护措施的必要性和迫切性.

在未来的工作中, 对真实密码设备的攻击仍然是一个非常重要的研究方向.本文中所攻击的WISP尚没有加入严格的侧信道防范措施, 但目前市面上有不少密码设备已经在侧信道安全性方面设计了专门的防范方案.未来可以针对这些设备进行进一步的攻击研究, 从而发现现有设备中仍然存在的攻击弱点, 为不断完善密码设备的侧信道安全性作出贡献.

猜你喜欢

汉明功耗密钥
基于任务映射的暗硅芯片功耗预算方法
幻中邂逅之金色密钥
幻中邂逅之金色密钥
有限域上一类极小线性码的构造
密码系统中密钥的状态与保护*
TPM 2.0密钥迁移协议研究
揭开GPU功耗的面纱
媳妇管钱
环保之功,从主板做起
一种新的计算汉明距方法