Hasty Briefsbeta

双语

InvisiCaps: The Fil-C Capability Model

14 hours ago
  • Fil-C通过指针的能力系统确保内存安全,动态跟踪允许的对象,并禁止越界、释放后使用及其他不安全访问。
  • InvisiCaps是最新的能力模型,取代了PLUT、SideCaps和MonoCaps,在64位系统上提供64位指针,并将性能开销降低至约4倍。
  • InvisiCaps支持有意义的联合体使用、线程安全以及灵活的内存类型重新解释,同时不牺牲安全性。
  • 每个飞行指针都有一个可信的下界(用于边界检查)和一个不可信的intval(原始C指针值);程序无法修改下界。
  • 当指针存储到堆时,intval放入对象负载中,下界放入单独的辅助分配中,使能力对程序不可见。
  • 原子指针使用原子箱实现无锁操作,而非原子指针采用更便宜的辅助分配方法。
  • 释放后使用通过将上界设置为与下界相等来确定性检测,访问时会触发恐慌。
  • 该模型极度兼容,甚至支持未定义行为惯用法,灵感来自SoftBound和CHERI,但具有更好的线程安全性和兼容性。