25、SIMPLEX:为安全存储重新利用英特尔内存保护扩展

SIMPLEX:为安全存储重新利用英特尔内存保护扩展

1. 引言

在过去几十年里,为增强安全性,硬件层面出现了诸多特性,但这些特性因安全、性能和/或可用性问题而饱受批评。英特尔内存保护扩展(MPX)便是其中之一,它是一种指令集架构扩展,旨在通过硬件加速边界检查,以较低的性能成本实现空间内存安全。然而,近期研究发现,MPX在性能、准确性和精度方面均不如基于软件的空间内存安全方案。尽管如此,由于MPX在现代英特尔处理器中广泛存在,它实际上是一种未被充分利用的硬件资源,可用于安全目的。

MPX由三个关键部分组成:
- 架构支持:包含两个配置寄存器、一个状态寄存器和四个边界寄存器。
- 编译时插桩:在编译阶段进行相关操作。
- 运行时支持:与操作系统集成,管理MPX指令的CPU解释、设置指针边界查找表、解释状态寄存器中的错误代码,并协调操作系统进行内存管理和错误处理。

但在实际应用中,MPX未能达到预期效果。它原本期望高性能、能与未插桩的遗留代码互操作,且无需重写源代码就能在调试和发布环境中进行配置。然而,Oleksenko等人和Serebryany的研究表明,MPX的性能不如基于软件和语言的内存安全方案,即使在编译器优化良好的情况下,也有50%的性能开销,最坏情况下性能开销高达400%。GNU C编译器(GCC)已移除其libmpx库并消除插桩代码,Linux也因社区缺乏维护兴趣而取消了对内核编译的支持。尽管如此,全球仍有至少数亿台设备支持MPX,这使其成为一种普遍但未被充分利用的资源。

为解决这一问题,我们提出了Simplex,这是一个开源库,它将MPX寄存器重新用作通用寄存器。通过Simplex,我们可以直接在硬件上安全地存储敏感信息,如加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值