USB Flash闪存驱动器安全分析(第一部分)
字数 1912 2025-08-22 12:23:13
USB Flash闪存驱动器安全分析教学文档
1. 研究背景与概述
本教学文档基于SySS IT安全专家Matthias Deeg对Verbatim Keypad Secure等带有AES硬件加密功能的USB闪存驱动器的安全分析研究。研究发现,尽管这些设备宣称具有256位AES硬件加密和生物识别技术,但实际上存在多个严重安全漏洞。
2. 测试方法论
2.1 硬件分析
- 拆解硬件并识别关键组件
- 主要组件包括:
- NAND闪存芯片(TS1256G181)
- 内存控制器(MARVELL-88NV1120)
- USB至SATA桥接控制器(INIC-3637EN)
- SPI闪存芯片(XT25F01D)
- 键盘控制器(SW611 2121)
2.2 固件分析
- 获取设备固件(通过内存转储或下载)
- 使用工具如Ghidra进行反汇编和反编译
- 分析固件验证机制(发现仅使用简单的CRC-16检查)
2.3 软件分析
- 对设备客户端软件进行静态代码审查和运行时监控
- (Verbatim Keypad Secure无软件组件,故未进行此项分析)
3. 攻击面与场景
攻击需要物理接触设备,可在以下阶段实施:
- 供应链攻击(用户使用前)
- 用户使用后攻击
- 针对丢失/被盗设备的攻击
- 临时物理访问攻击
4. 安全USB闪存驱动器应有的安全特性
- 所有用户数据安全加密
- 仅授权用户可访问数据
- 无法规避的用户认证流程
- 连续X次失败尝试后自动重置
- 设备完整性加密保障
- 离线暴力破解成本极高
- 庞大的密钥搜索空间(如2^256)
- 难以提取必要数据(需高级设备/专业知识)
5. 发现的安全漏洞
5.1 锁定和重置功能失效(CVE-2022-28386)
- 宣称:20次密码尝试失败后锁定并需重新格式化
- 实际:无法实现锁定功能,可无限次尝试密码
5.2 加密实现缺陷(CVE-2022-28382)
- 使用AES-256-ECB模式,相同明文产生相同密文
- 加密数据中可见重复模式,缺乏扩散性
- 示例十六进制转储显示重复的16字节模式
5.3 固件验证不足(CVE-2022-28383)
- 固件验证仅使用XMODEM CRC-16算法
- 攻击者可植入恶意固件并通过校验和验证
5.4 用户认证缺陷(CVE-2022-28384)
- 使用可预测的hash32shift2002哈希函数
- 密码仅支持5-12位数字,搜索空间小
- 认证信息存储在SSD特殊块(如125042696号块)
- 可进行离线暴力破解攻击
6. 技术细节分析
6.1 加密分析
- 加密数据中可见重复模式表明使用ECB模式
- 相同16字节明文总是加密为相同16字节密文
- 缺乏密码学扩散性,可能泄露敏感信息
6.2 固件分析
- 使用Ghidra反汇编ARCompact架构固件
- 发现"魔法签名"INI(0x494e4920)用于验证
- 固件中包含π字节序列(未实际使用)
- 可修改固件并通过CRC-16校验
6.3 协议分析
- SPI通信协议支持6种命令:
- 0xE1: 设备初始化
- 0xE2: 设备解锁
- 0xE3: 设备锁定
- 0xE4: 未知
- 0xE5: 密码修改
- 0xE6: 未知
- 使用XMODEM CRC-16作为校验和
6.4 哈希函数分析
- 使用hash32shift2002整数哈希函数:
uint32_t hash32shift2002(uint32_t hash) { hash += ~(hash << 15); hash ^= (hash >> 10); hash += (hash << 3); hash ^= (hash >> 6); hash += ~(hash << 11); hash ^= (hash >> 16); return hash; } - 4位数字输入映射到32位哈希值(如"1111"→0x0AC91F2F)
6.5 用户认证实现
- 认证信息存储在SSD特殊块的前112字节(0x70)
- 解密后前4字节必须匹配"魔法签名"INI(0x494e4920)
- AES密钥来自键盘控制器的32字节SPI有效负载
- 特殊字节顺序:前16字节和后16字节颠倒
7. 攻击工具与方法
7.1 Verbatim Keypad Secure Cracker
- 离线暴力破解工具
- 通过分析SSD特殊块和哈希函数破解密码
- 示例成功输出:
[*] Found a plausible magic sector for Verbatim Keypad Secure (#49428) [*] Initialize passcode hash table [*] Start cracking... [+] Success! The passcode is: 99999999
7.2 硬件暴力破解
- 拆卸键盘控制器并使用扩展板
- 使用Teensy USB开发板模拟按键操作
- 收集所有可能的4位输入哈希值创建查找表
8. 修复与防御建议
- 使用更安全的加密模式(如CBC或GCM)替代ECB
- 实现更强的固件验证机制(如数字签名)
- 使用更安全的哈希算法(如PBKDF2或bcrypt)
- 增加密码复杂度要求(允许字母和特殊字符)
- 实现真正的尝试次数限制和锁定机制
- 使用安全元件存储加密密钥
- 实现硬件可信根
9. 总结与启示
本研究表明,市场上标榜"安全"的便携式存储设备仍存在已知安全问题:
- 加密实现不当(使用ECB模式)
- 固件保护不足
- 用户认证机制薄弱
- 安全声明与实际不符
这些发现强调了对安全设备进行独立验证的重要性,以及厂商需要采用更严格的安全实践。