用侧信道攻击与暴力搜索恢复iPhone用户口令
掌控你的iPhone仅需两步!
撰文 | 王 菁
编辑 | 心 玫
概述
近年来,智能手机已成为越来越重要的存储设备,若损害其安全性和数据保护机制会极大地影响用户的隐私。iPhone对于数据的保护,是通过设备的唯一用户标识符UID和用户自定义口令passcode共同作用实现的。2021年,Oleksiy Lisovets等人在CHES上发表了基于iPhone 4的攻击[1],其论文的贡献在于:
1. 通过侧信道攻击恢复出iPhone 4的256位UID密钥;
2. 破解UID后,再使用GPU高度并行计算,对passcode进行离线暴力搜索。
第一步:侧信道攻击恢复UID
在执行侧信道攻击之前,需要对iPhone应用一组非永久性的软硬件修改,以便于波形采集。论文采用了电磁攻击和能量攻击两种侧信道攻击方法,需要进行不同的硬件修改。
对于电磁攻击,需要进行如下操作:
1. 断开外围设备的连接、去除CPU的金属屏蔽层,使电磁探头能够放置在芯片顶部;
2. 使用PodBreakout连接器和FT232RL接口转换芯片构建UART连接器,实现iPhone与PC之间的通信;
3. 从音量减小键处连接到SoC GPIO引脚来进行触发等。
对于能量攻击,其硬件修改更为复杂,需要在VDD端串联一个1Ω电阻,卸下电感和电容等操作。但不论是电磁攻击还是能量攻击,其硬件修改都是可逆的。
软件修改对于电磁攻击和能量攻击则相同,都是通过已有的BootROM漏洞来执行代码,来控制AES引擎选择UID 进行加密(或解密),并实现加密(或解密)时所选明文(或密文)的查询。
左图为作者采集到的电磁信号波形,这是500条波形叠加显示的结果,右图为将左图波形进行对齐、滤波预处理后得到的波形。
实验采集的波形如上图所示。论文作者采集了一千万条电磁信号波形,作者对预处理后的波形执行了t检验以进行泄露评估,从而找到加密或解密区间,以便于下一步攻击。
t检验结果如下图所示,分析得知,介于0.3μs和0.6μs之间的时间段对应于CPU和AES引擎之间的IO通信,1.2μs、1.4μs和1.6μs附近的尖峰则与CPU和AES之间的反向IO通信相关。
上图为t检验结果曲线,大于4.5的位置表示存在泄露。
因此,论文作者假设解密发生在0.8 µs至1.2 µs之间,如下图所示,集中在这段时间进行攻击。
AES解密区间范围内t检验结果曲线。
论文作者针对AES算法最后两轮进行CPA攻击,以恢复256位的AES密钥(即UID)。
攻击最后一轮时,使用的泄露模型为:
HW(SR○SB(P⊕K1)⊕P)
攻击倒数第二轮时,使用的泄露模型为:
HW(SR○SB(K2⊕MC○SR○SB(P⊕K1))⊕SR○SB(P⊕K1))
进行CPA攻击的结果如下图所示。论文作者通过CPA逐字节对密钥进行攻击,成功恢复了256位UID。
上图中,图a展示的是AES算法单轮CPA结果;图b展示的是AES算法多轮叠加的CPA结果,通过颜色可以很容易地区分出不同轮;图c展示的是几个AES的CPA结果。
上述电磁攻击实验,使用了共三周时间得以完成,其中采波时间为两周,执行CPA攻击时间为一周。实验使用了大量对齐的波形以猜测正确UID,对于UID某些字节,需要大约三千万条波形,如下图所示。
进行CPA所使用的波形数与相关性关系曲线图。
论文中的能量攻击与电磁攻击的过程基本相同,其区别在于,能量波形采集的波形不易识别AES特征,无法对齐,因此只能用未经处理的波形进行攻击。从波形数量级上看,能量攻击不比电磁攻击有效,尤其考虑到对硬件的修改,能量攻击对硬件操作难度更大。
第二步:GPU离线暴力搜索passcode
通过执行侧信道攻击恢复了UID后,就可以使用GPU高度并行地搜索用户passcode了。在搜索passcode时,验证passcode正确与否是根据以下过程:
UID与passcode经过密钥派生函数(KDF)得到派生密钥(derived key),之后,通过尝试用derived key解锁keybag(keybag可通过软件漏洞从设备下载获得)中的每个class key,来验证所猜测的derived key的正确性。如果使用猜测的derived key可以成功解锁每个class key,则对应猜测的passcode为正确的passcode。
恢复passcode后,便可以解密用户存储在设备上的所有文件,以及用户存储在iCloud上的数据了。
其中,论文使用GPU高度并行计算,大大缩短了暴力搜索的时间。使用iPhone设备和GPU执行暴力搜索,在最坏情况下针对不同密码长度查找数字密码所需的时间之间的比较如下表所示:
总结
论文作者对iPhone 4实施攻击,重点介绍了两部分内容:
1. 使用已有的BootROM漏洞,通过侧信道攻击方法,采集大量波形,使用CPA恢复出iPhone 4的256位UID密钥;
2. 破解UID后,再使用GPU高度并行计算,暴力搜索passcode,大大缩短了搜索时间。
根据论文作者描述,此攻击也适用于更新的iPhone型号。但从iPhone 5s开始,iPhone具有Secure Enclave协处理器(SEP)负责数据保护,从iPhone 6s开始,采取DPA对策来保护AES引擎,这些数据保护措施加大了侧信道攻击的难度,论文暂时无法对更新型号iPhone攻击的成功与否作出任何声明,面临着一定的挑战性。
参考资料
[1] Lisovets, O., Knichel, D., Moos, T. and Moradi, A. 2021. Let’s Take it Offline: Boosting Brute-Force Attacks on iPhone’s User Authentication through SCA. IACR Transactions on Cryptographic Hardware and Embedded Systems. 2021, 3 (Jul. 2021), 496–519. DOI:https://doi.org/10.46586/tches.v2021.i3.496-519.
