在基于 ARM 的系统上实现与攻破装载链接/条件存储
密码学与安全
2022-07-20 v1
摘要
现代电子设备的制造商不断试图在日益复杂且性能要求更高的系统中实现额外功能。这一竞争历史上由处理器时钟速度的提升所驱动,但随着嵌入式领域功耗与占用面积的担忧带来日益严峻的挑战,多线程方法已变得更加普遍且被依赖。同步对多线程系统至关重要,因为它确保线程不相互干扰彼此操作,并在最大化性能与效率的同时产生可靠且一致的输出。RISC 架构中保证同步的主要机制之一是装载链接/条件存储 (LL/SC) 例程,它实现了一个原子操作,允许线程获取锁。在本研究中,我们使用 GDB 在多线程环境中实现、测试并操纵一个 LL/SC 例程。在考察该例程机制后,我们提出了一种在 ARMv7l 上的简洁实现,并展示了在受限威胁模型下寄存器完整性的重要性以及完整性被破坏时出现的漏洞。本工作揭示了用于多线程的 LL/SC 操作及相关的锁例程。
引用
@article{arxiv.2207.09341,
title = {Implementing and Breaking Load-Link / Store-Conditional on an ARM-Based System},
author = {Evan Tilley and Alexander Liebeskind and Rafael Asensio},
journal= {arXiv preprint arXiv:2207.09341},
year = {2022}
}