2022年真实世界密码学会议主题解析
上周,全球500多名密码学家齐聚阿姆斯特丹,参加两年来的首次线下真实世界密码学会议(Real World Crypto 2022)。与往年一样,我们派遣多名研究员和工程师参会,聆听演讲并观察密码学研究与实际工程结合领域的主要趋势。
以下是本次会议的核心主题:
可信硬件并不可信
可信硬件(包括可信执行环境TEE、硬件安全模块HSM和安全飞地)的实施者持续犯下根本性破坏硬件完整性承诺的工程错误。尽管可信硬件中的非密码学漏洞并非新问题(例如Intel因多年漏洞决定在下一代消费级CPU中移除SGX,2017年ROCA漏洞影响四分之一TPM),但新现象是可信硬件在面向消费者的场景中日益普及。普通用户通过密码管理器和手机电脑上的WebAuthn等双因素认证方案,越来越多(且无意识地)与安全飞地和TEE交互,这显著扩大了可信硬件漏洞的风险范围。
三星TrustZone加密设计漏洞研究(演讲题目:Trust Dies in Darkness)揭示了TEEGRIS(三星TrustZone OS实现)的两个关键缺陷:
- IV重用攻击:允许攻击者提取硬件保护的密钥
- 降级攻击:使即使最新已修复的三星旗舰设备仍易受第一类攻击
TEEGRIS中的IV重用
TEEGRIS作为完全独立于安卓主机OS的系统,通过Keymaster(Google标准化的命令-响应协议)与主机通信。Keymaster使用"blob"概念:加密密钥经TEE密钥材料加密(“包装”)后存储于主机OS。由于包装密钥存储于主机,其安全性最终取决于TEE在密钥包装过程中正确应用加密的安全性。
TEEGRIS Keymaster使用AES-GCM包装密钥。AES-GCM的安全性基于同一密钥下IV永不重用的假设。研究人员发现三星Keymaster实现中存在两处安全假设违反:
- Galaxy S8/S9的密钥派生函数(KDF)仅使用攻击者控制的输入生成密钥,允许攻击者强制所有加密blob使用相同AES密钥
- Galaxy S9的Keymaster实现信任主机传入的IV,允许攻击者多次使用相同IV
通过恶意blob、恶意密钥和目标blob的XOR操作,攻击者可恢复目标加密密钥的明文。此漏洞于2021年3月报告(CVE-2021-25444),仅影响Galaxy S9(S8虽使用攻击者控制的KDF输入但不使用攻击者提供的IV)。
降级攻击
在Galaxy S10/S20/S21设备上,Keymaster TA默认使用新blob格式(“v20-s10”),通过混入TEE生成的随机字节防止密钥重用。但应用可指定使用旧格式(“v15”),该格式无随机盐值,导致密钥生成可预测。此漏洞于2021年7月报告(CVE-2021-25490)。
关键结论:TEE并非特殊存在,需遵循与其他系统相同的密码工程要求。硬件保证的有效性取决于上层软件,应:(1)使用抗误用的现代密码模式;(2)最小化攻击者对密钥及派生材料的影响;(3)消除攻击者降级格式协议的能力。
安全工具仍难以使用
尽管我们推崇自动化安全工具(如开发dylint、pip-audit等开源工具),但调查显示44名来自27个主流开源密码项目的密码学家中,仅17人实际使用自动化工具检测时序漏洞,尽管所有参与者均了解时序漏洞及其严重性。未使用工具的原因包括:
- 对风险的怀疑:质疑是否需要额外工具缓解时序攻击或是否存在实际攻击
- 安装使用困难:工具安装编译使用说明复杂,旧依赖项目在现代系统难以运行
- 维护状态:多数工具为学术成果源构件,未维护或维护松散
- 侵入性:工具对分析程序有额外要求(特定构建结构、程序表示或专用DSL)
- 开销:工具学习曲线陡峭,使用耗时(误报处理、调优等)
工具认知与使用无直接关联:33名开发者知晓一种及以上工具,但仅半数实际使用。
关键结论:存在从漏洞认知到工具认知再到实际使用的"泄漏管道"。工具需改进:
- 更易安装使用:降低选择工具到实际应用的认知开销
- 更易获取:无需熟悉密码学研究即可发现工具,应从知名源(如公共Git主机)下载
编译器本身是新前沿:开发者熟悉编译器,是引入秘密类型等先进技术的理想场所。
无处不在的侧信道
侧信道漏洞极其普遍,存在源源不断的创意技术从目标机器提取信息。侧信道通常按被动-主动(攻击者是否需要交互)和本地-远程(攻击者是否需要物理邻近)分类。远程被动侧信道是攻击者"两全其美"的选择:完全隐蔽且无需物理存在。
研究"Lend Me Your Ear"揭示了笔记本电脑内置麦克风作为CPU电磁探针的侧信道:
- 内置麦克风与音频接口(进而与CPU)物理连接,数字逻辑控制Intentional数据流,但底层存在无意噪声
- 通过互联网共享音频(公司会议、VoIP等)时,攻击者可从数据中提取信息
三个案例研究:
- 网站识别:受害者浏览网站时进行VoIP通话,攻击者通过14类分类卷积神经网络识别访问网站,准确率96%
- 密码密钥恢复:受害者本地执行ECDSA签名时进行VoIP通话,攻击者利用与Minerva相同的侧信道弱点(无本地插桩)提取签名密钥,经约2万次签名操作后成功提取
- CS:GO透视作弊:受害者玩在线射击游戏时进行VoIP通话,攻击者通过频谱图中可视的"斑马纹"识别受害者 behind opaque游戏对象的位置,绕过标准"反作弊"缓解(未操纵客户端代码)
关键结论:侧信道难以预测和缓解,可破坏抽象层面安全的密码方案。此攻击颠覆了物理侧信道无法远程利用的传统假设。
密码学中的LANGSEC
LANGSEC(安全的语言理论方法)将多数可利用软件漏洞归因于对潜在不可信输入的临时解析,建议通过对比形式语言(仅含有效或预期输入)解析不可信输入。此方法与应用密码学中的常见漏洞高度相关:
- 复杂方案(如PKCS#1 v1.5)与复杂格式(如DER)持续产生可利用漏洞(如Bleichenbacher攻击)
- 复杂协议(如TLS)和升级/降级行为产生可利用漏洞(如POODLE降级SSL 3.0)
应用层协议混淆
研究"ALPACA"指出TLS的设计决策:TLS本质与应用和协议无关,无端点通信方式的概念。TLS仅关注机器间加密通道建立,不关心具体机器或服务。
Web中TLS证书通常绑定域名,但存在不足:
- 通配证书常见:攻击者控制malicious.example.com可重定向safe.example.com流量(若证书允许*.example.com)
- 证书可声明多主机(包括攻击者获取或控制的主机)
- 证书未指定预期认证服务/端口,允许攻击者重定向至同一主机不同服务
主机常运行多个类HTTP协议的服务。研究人员评估四种服务(FTP、SMTP、IMAP、POP3)和三种攻击技术:
- 反射:中间人攻击者重定向跨源HTTPS请求至同一主机不同服务,导致服务返回可信响应
- 下载:攻击者在同一主机服务存储恶意数据,诱骗后续HTTPS请求下载呈现数据(类存储XSS)
- 上传:攻击者攻陷同一主机服务,重定向后续HTTPS请求至该服务,导致敏感内容(如cookie头)上传供后续检索
评估发现:
- 所有浏览器对至少两种攻击技术(FTP上传+下载)易受攻击
- IE和Edge尤其脆弱:所有利用方法对一种及以上服务包有效
200万运行TLS应用服务(如FTP/SMTP)的唯一主机中,超过140万(69%)同时运行HTTPS,可能受跨协议攻击。其中114,000+ HTTPS主机运行可利用应用服务(如旧版ProFTPD)。
应对措施:
- 应用服务器层面:协议应更严格接受请求(如拒绝类HTTP请求),积极终止无效会话
- 证书层面:组织应警惕通配和多域证书,避免TLS应用共享主机
- 协议层面:TLS扩展(如ALPN)允许客户端指定预期应用协议,目标服务器可拒绝重定向连接(需服务器不忽略ALPN)
关键结论:跨协议攻击仍可能发生,简单扫描揭示数十万可利用应用服务器运行于共享HTTPS,利用门槛极低。SMTP/FTP等协议因类HTTP成为明显目标,但VPN协议和DTLS等新协议也出现于互联网服务。
OpenPGP中ElGamal的隔离安全与组合脆弱
研究"On the (in)security of ElGamal in OpenPGP"探讨了另一LANGSEC相关问题:标准或协议隔离安全但互操作时不安全。
OpenPGP中ElGamal的独特状态:
- 无正式规范(不同于RSA和ECDH)
- 两"官方"参考(原论文和1997应用密码手册)参数选择技术不一致;RFC引用两者,研究者认为原论文为权威
评估三个支持ElGamal的PGP实现(GnuPG、Botan、libcrypto++),发现无一遵守RFC 4880参数选择:各使用不同素数生成方法。
调查80万真实ElGamal密钥发现:
- 多数密钥使用"安全素数"技术
- 大量使用Lim-Lee素数
- 少量使用Schnorr或类似素数
- 仅5%使用"准安全"素数(可能意图符合RFC要求)
每种素数生成技术隔离安全但组合不安全:因实际ElGamal密钥使用意外素数生成技术,Go、GnuPG和libcrypto++的加密实现易受侧信道攻击导致明文恢复。约2000个密钥因"短指数"优化易受实际明文恢复攻击。研究者经2.5小时GPG加密侧信道分析成功恢复加密消息明文。
关键结论:ElGamal参数和安全性在纸面简单(类RSA),但实际实现存在显著模糊性和多样性。标准对安全至关重要,ElGamal需要真实标准!密码系统安全性顽固:仅关注自身输入的潜在侧信道不足,签名加密方案还需抵抗不良(或非常规)生成的密钥证书等。
其他精彩演讲
- 零知识中间盒:企业依赖TLS中间盒(如DNS过滤)执行数据安全策略,但存在隐私滥用和用户规避。此演讲提出实验性解决方案:中间盒验证零知识策略合规证明,无需解密TLS会话。关键结果:符合DNS策略且不破坏DoT会话,每次验证开销约5毫秒(对应一次DNS查询)。
- 尽快实施隐写术:隐写术研究 largely dried up,但演讲者认为其将在压制性国家内外可否认通信中起重要作用。提议Meteor方案:使用生成语言模型在类人语句中隐藏消息的密码安全隐写方案。
2023年再见!
如果您喜欢本文,请分享至Twitter、LinkedIn、GitHub、Mastodon或Hacker News。