如何与你的父母谈论硬件内存安全

主要观点:与成长于不同社会规范的老一辈人进行某些对话有难度,此指南旨在帮助双方减少压力;CHERI 相关话题易引发误解,需明确 CPU 指令集架构无法提供内存安全等;CHERI 旨在为语言实现者提供工具以强制实施属性,而非规定对象模型;CHERIoT 是基于 CHERI 的硬件 - 软件平台,可让编译器对程序其他部分实施一系列属性等。

关键信息:

  • CHERI 项目已开展 14 年,其提供的内存安全等属性常被简化表述,与未接受能力系统的人交流时需精确。
  • CPU 指令集架构不能提供内存安全,因为它不知运行程序的对象模型;CFI 也依赖语言定义程序的有向图等。
  • CHERI 给语言实现者工具以强制实施属性,而非规定对象模型,如 Intel 的 iAPχ 432 等早期系统围绕特定模型设计。
  • CHERIoT 为小型嵌入式和物联网应用优化,可让编译器对程序其他部分实施多种属性,如运行代码需通过指针访问对象等。
  • CHERI 的密封机制可实现防篡改不透明引用,实现类型安全;内存分配器在 CHERIoT 中也有特殊作用等。
  • 这些语言级属性并非仅来自硬件,编译器可选择使用硬件提供的工具,安全语言的一些属性可通过构造保证等。

重要细节:

  • 以 Rust 调用 C 函数为例说明不同语言间属性差异及 CHERI 的作用。
  • 详细介绍 CHERIoT 中各种属性的实现方式,如通过标签位保护能力、利用权限实现不可变性等。
  • 说明不同属性在不同语言和系统中的应用及意义,如在 C、Java、Rust 等语言中的体现。
阅读 9
0 条评论