The CHERI CPU Hardware software co design for security
Channel: British Computer Society Open Source Specialists
Date: 2020-04-01

Presented by: David Chisnall

This talk will introduce the CHERI CPU and associated C/C++ compiler stack. Various design decisions in the project were made based on the needs of programming languages to support real-world code and the requirements of hardware implementation. The C specification is intentionally vague and it would be very easy to create a conforming implementation of the language if this were the only requirement, but a C environment is only as good as the code that it runs. In the CHERI project, we have investigated a number of common C idioms and ensured that these can be supported by our hardware, while simultaneously allowing fine-grained memory safety and coarser-grained compartmentalisation of C programs.

David Chisnall is a Senior Research Associate at the University of Cambridge. His primary research interest is safe interoperability between programming languages. Most recently, he has been working on this in the context of the CHERI project, creating an implementation of the C programming language that can be used safely in the same process as languages with stricter safety guarantees. He presented a case study of this, allowing Java and C code to coexist in the same process without violating any of the JVM's safety and security guarantees at ASPLOS earlier this year. David is an active open source contributor, having been an LLVM committer since 2008, a member of the FreeBSD Core Team for two successive terms, and the author/maintainer of widely deployed Objective-C and C++ runtime libraries.