Extending Layered Attestation into ARM Application Run-Times
本文提出了 ARA,一种基于 ARM 的应用运行时锚点(application-runtime anchor),它通过利用权限叠加扩展(Permission Overlay Extensions)来创建一个用于运行时完整性验证和密钥保护的受保护且经过证明的域,从而将硬件支持的度量从加载时扩展到执行时,并保持极低的性能开销。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在现代计算领域,信任通常在程序启动的那一刻便已建立。当你打开手机上的应用时,设备会进行检查,以确保该软件是正版的且未被篡改,然后才会开始运行。这个被称为“证明”(attestation)的过程,依赖于一个硬件支持的“信任根”(root of trust)——这是内置于芯片本身的可靠基础,用于验证软件的身份。然而,一旦通过了最初的检查并且应用程序开始工作后,这种高水平的安全保障往往就会消失。设备会假设程序正在正常运行,从而留下了一个漏洞,恶意攻击者可能会利用这个漏洞改变应用的行为、窃取秘密或操纵数据,而系统却无法察觉。多年来,解决这一问题的方案是将敏感任务转移到独立的隔离环境中,但这样做需要计算机在不同的安全区域之间不断切换,这一过程既缓慢又耗电。
来自苏黎世大学和华为的研究团队开发了一种新方法来弥补这一差距,使安全性能够在应用程序的整个生命周期内持续存在,而不会产生沉重的性能代价。他们创建了一个名为 ARA 的系统,该系统直接在应用程序自身的内存空间内建立了一个安全且受保护的区域。通过利用现代 ARM 处理器中新引入的一项硬件特性,研究人员使应用程序能够托管自己的“信任卫士”,能够实时监控程序的行为并保护敏感密钥。他们的工作证明,在保持高性能的同时,实现高水平的安全并验证应用在运行时是否行为正确是完全可能的,且运行速度几乎与未受保护的应用持平。
研究人员面临的核心挑战是如何在不强迫它们跨越缓慢且遥远的边界进行通信的情况下,让可信的安全系统与可能被攻破的应用保持隔离。传统方法通常依赖于在完全独立的进程或专门的硬件飞地(enclave)中运行安全服务。虽然这些方法很安全,但每次需要进行安全检查时,都需要计算机停止主程序、切换上下文并在复杂的障碍物之间进行通信。这种不断的切换会产生显著的延迟,使得对于需要频繁、瞬时决策的任务(例如监控程序的每一步操作或实时解密视频流)来说并不实用。研究人员意识到,解决方案在于一种名为“权限叠加扩展”(Permission Overlay Extensions)的新硬件能力,它允许单个程序将其自身的内存划分为具有不同访问规则的离散、隔离的“房间”,并由处理器本身进行管理。
利用这项技术,团队构建了 ARA,使其作为应用程序地址空间中的一个安全锚点。当应用启动时,一个可信加载器首先设置环境,将内存划分为三个截然不同的区域:一个用于不可信的应用代码,一个用于受控的入口点,以及一个用于安全服务。随后,处理器被指示对这些区域执行严格的规则。主程序可以读取和写入自己的数据,但被完全禁止触碰存放安全服务的内存。至关重要的是,应用程序无法自行更改这些规则。即使黑客成功向应用注入了恶意代码,该代码在物理上也无法触及安全区域,也无法更改维持其安全的权限。应用与安全服务交互的唯一方式是通过一个由安全系统控制的特定、预先批准的“门口”。
研究人员通过两个不同的场景测试了这个系统,以观察其在现实世界中的表现。在第一种情况下,他们模拟了一个需要使用密钥解密视频内容的媒体流服务。他们将新系统与使用独立进程进行解密的标准方法进行了对比。结果显示,新系统的速度大幅提升。对于一个两小时的视频文件,传统方法由于在进程间不断切换会增加数秒的延迟,而新系统仅增加了不到一秒。在第二种情况下,他们测试了一个需要不断监控应用行为以确保其遵循正确路径的系统,这项任务每秒需要进行数千次安全检查。在这种情况下,新系统的速度比传统方法快了约 30 到 55 倍。速度的提升源于消除了在不同进程之间切换或请求操作系统帮助的需求;安全检查直接在应用程序自身的流程中完成,并受到硬件的保护。
该研究还探讨了该系统如何融入移动设备的现有安全格局。现代手机已经在使用硬件来验证应用在首次安装或启动时的合法性。研究人员设计他们的系统来扩展这一现有的信任链。当应用启动时,设备会像验证应用本身一样验证这些安全服务。这意味着远程服务器可以确信,在应用内部进行的安全性检查是真实的,且未被篡改。该系统还包括一种向应用程序安全交付密钥的方法。服务器可以发送一个加密密钥,只有特定的、经过验证的应用实例才能解锁该密钥,从而确保即使应用运行在被攻破的设备上,秘密仍会在受保护的内存区域内保持安全。
尽管该系统展现出巨大的潜力,但研究人员指出,所需的硬件特性目前尚未在任何商用设备中普及。他们使用模拟环境和经过修改的物理处理器构建了原型机,以证明概念的可行性。他们还承认,目前的方案假设应用运行在单线程上,若要支持多个同时运行的线程,则需要额外的工程设计以确保为每个线程都维持安全规则。尽管存在这些局限性,这项工作仍为“应用既能快速又能安全”的未来提供了一个实用的蓝图。它表明,性能与保护之间的长期权衡并非不可避免,而且通过合适的硬件支持,我们可以拥有既能保护自身秘密、又能验证自身完整性,又不会降低用户体验的应用。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。