The CHERI capability model: Revisiting RISC in an age of risk
Top Cited Papers
- 1 June 2014
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10636897,p. 457-468
- https://doi.org/10.1109/isca.2014.6853201
Abstract
Motivated by contemporary security challenges, we reevaluate and refine capability-based addressing for the RISC era. We present CHERI, a hybrid capability model that extends the 64-bit MIPS ISA with byte-granularity memory protection. We demonstrate that CHERI enables language memory model enforcement and fault isolation in hardware rather than software, and that the CHERI mechanisms are easily adopted by existing programs for efficient in-program memory safety. In contrast to past capability models, CHERI complements, rather than replaces, the ubiquitous page-based protection mechanism, providing a migration path towards deconflating data-structure protection and OS memory management. Furthermore. CHERI adheres to a strict RISC philosophy: it maintains a load-store architecture and requires only single-cycle instructions, and supplies protection primitives to the compiler, language runtime, and operating system. We demonstrate a mature FPGA implementation that runs the FreeBSD operating system with a full range of software and an open-source application suite compiled with an extended LLVM to use CHERI memory protection. A limit study compares published memory safety mechanisms in terms of instruction count and memory overheads. The study illustrates that CHERI is performance-competitive even while providing assurance and greater flexibility with simpler hardware.Keywords
This publication has 29 references indexed in Scilit:
- HardboundACM SIGARCH Computer Architecture News, 2008
- CCuredACM SIGPLAN Notices, 2002
- Hardware support for fast capability-based addressingACM SIGPLAN Notices, 1994
- The architecture of the Burroughs B5000ACM SIGARCH Computer Architecture News, 1982
- A penetration analysis of a Burroughs Large SystemACM SIGOPS Operating Systems Review, 1981
- A hardware architecture for implementing protection ringsCommunications of the ACM, 1972
- Virtual MemoryACM Computing Surveys, 1970
- Dynamic storage allocation systemsCommunications of the ACM, 1968
- Programming semantics for multiprogrammed computationsCommunications of the ACM, 1966
- Dynamic storage allocation in the Atlas computer, including an automatic use of a backing storeCommunications of the ACM, 1961