Hardware support for capabilities offers the prospect of substantially increased security for the computing infrastructure that we all depend on. Capabilities are an old idea, but in the last 15 years the CHERI project, working closely with Arm and others, has proposed extensions to conventional hardware Instruction-Set Architectures (ISAs) with new architectural features based on hardware capabilities, along with CHERI dialects of C and C++, to enable fine-grained memory protection and highly scalable software compartmentalisation. This is a hardware/software/semantics co-design project, involving architecture design, hardware implementation, system software adaption, and formal semantics and mechanised proof of security properties. Arm and the UKRI Digital Security by Design Challenge (with of the order of £200m government and industry investment from 2019–2024), has developed the industrial prototype Arm Morello CHERI-ARM 64-bit CPU, SoC, and board, to evaluate and demonstrate the mass-market industrial feasibility of CHERI. Several hundred Morello boards have been shipped to various academic and industry projects for evaluation, and millions of lines of conventional C and C++ code have been ported to CHERI; additional explorations of CHERI are underway in Microsoft and Google. Initial results suggest that existing C/C++ code can often be ported to CHERI with very few changes, and with promisingly low runtime costs.
The introduction of hardware support for capabilities, in an application-class processor and software stack, raises many compelling questions in programming languages, semantics, and verification - including verification of CHERI hardware; the semantics of the instruction-set architectures; how one can reason about that; the semantics and implementation of CHERI-enabled dialects of C, Rust, WebAssembly, and other languages; the pragmatics of porting code to these and analysis tools that can help; formal and informal reasoning about the security properties they provide; and related capability systems.
This workshop will provide an introduction to the current state of CHERI and Morello, with a combination of invited talks and talks selected from an open call for short abstracts, and stimulate discussion among interested parties. It will not have published proceedings.
Schedule permitting, there may also be the opportunity for short (5 minute) talks
Talks
Call for Presentations.
Hardware support for capabilities offers the prospect of substantially increased security for the computing infrastructure that we all depend on. Capabilities are an old idea, but in the last 15 years the CHERI project, working closely with Arm and others, has proposed extensions to conventional hardware Instruction-Set Architectures (ISAs) with new architectural features based on hardware capabilities, along with CHERI dialects of C and C++, to enable fine-grained memory protection and highly scalable software compartmentalisation. This is a hardware/software/semantics co-design project, involving architecture design, hardware implementation, system software adaption, and formal semantics and mechanised proof of security properties. Arm and the UKRI Digital Security by Design Challenge (with of the order of £200m government and industry investment from 2019–2024), has developed the industrial prototype Arm Morello CHERI-ARM 64-bit CPU, SoC, and board, to evaluate and demonstrate the mass-market industrial feasibility of CHERI. Several hundred Morello boards have been shipped to various academic and industry projects for evaluation, and millions of lines of conventional C and C++ code have been ported to CHERI; additional explorations of CHERI are underway in Microsoft and Google. Initial results suggest that existing C/C++ code can often be ported to CHERI with very few changes, and with promisingly low runtime costs.
The introduction of hardware support for capabilities, in an application-class processor and software stack, raises many compelling questions in programming languages, semantics, and verification - including verification of CHERI hardware; the semantics of the instruction-set architectures; how one can reason about that; the semantics and implementation of CHERI-enabled dialects of C, Rust, WebAssembly, and other languages; the pragmatics of porting code to these and analysis tools that can help; formal and informal reasoning about the security properties they provide; and related capability systems.
This Principles of Capability Languages (POCL) workshop will provide an introduction to the current state of CHERI and Morello, with a combination of invited talks and talks selected from an open call for short abstracts, and stimulate discussion among interested parties. It will not have published proceedings.
If you would like to propose a talk, please send a plain-text email including the title, authors, and a short abstract (a paragraph or three) to Peter.Sewell@cl.cam.ac.uk by the end of Friday 27 October 2023, AoE. The organising committee will select a programme from these and other invited talks.
Tue 16 JanDisplayed time zone: London change
09:00 - 10:30 | |||
09:00 40mTalk | The state of Morello and CHERI POCL Robert N. M. Watson University of Cambridge | ||
09:45 15mTalk | The state of Morello software and projects POCL Konrad Witaszczyk University of Cambridge, UK | ||
10:00 15mTalk | The Morello ISA semantics, proof, and test generation POCL | ||
10:15 15mTalk | Morello Cerise: proving secure encapsulation (work in progress) POCL |
10:30 - 11:00 | |||
10:30 - 11:00 | |||
10:30 30mCoffee break | Break Catering |
11:00 - 12:30 | |||
11:00 22mTalk | Compartmentalisation models POCL Dapeng Gao University of Cambridge | ||
11:22 23mTalk | Proving capability safety in the presence of indirect sentries POCL June Rousseau Aarhus University, Aina Linn Georges Max Planck Institute for Software Systems (MPI-SWS), Dominique Devriese KU Leuven, Jean Pichon-Pharabod Aarhus University, Lars Birkedal Aarhus University | ||
11:45 22mTalk | Sealed with a Library Call: Memory Allocators Should Track Capability Seal Operations POCL Jeremy Singer University of Glasgow File Attached | ||
12:08 22mTalk | Secure Calling Conventions for CHERI Capability Machines in Practice (Work in Progress) POCL Elias Storme KU Leuven, Sander Huyghebaert Vrije Universiteit Brussel, Steven Keuchel Vrije Universiteit Brussel, Thomas Van Strydonck KULeuven, Dominique Devriese KU Leuven |
12:30 - 14:00 | |||
12:30 90mLunch | Lunch Catering |
12:30 - 14:00 | |||
12:30 90mLunch | Lunch Catering |
14:00 - 15:30 | |||
14:00 22mTalk | Morello software and compilers POCL Jessica Clarke University of Cambridge | ||
14:22 22mTalk | CHERI C semantics POCL Vadim Zaliva University of Cambridge, UK | ||
14:45 22mTalk | CHERI static analysis POCL Irina Dudina University of Edinburgh | ||
15:07 22mTalk | ESBMC-CHERI: Towards Verification of C/C++ Programs for CHERI Platforms with ESBMC POCL Franz Brausse The University of Manchester, Kunjian Song The University of Manchester, Fedor Shmarov The University of Manchester, Rafael Menezes University of Manchester, Mikhail R. Gadelha Igalia, Konstantin Korovin University of Manchester, Giles Reger University of Manchester, Lucas C. Cordeiro University of Manchester, UK |
15:30 - 16:00 | |||
15:30 30mCoffee break | Break Catering |
15:30 - 16:00 | |||
15:30 30mCoffee break | Break Catering |
16:00 - 17:30 | |||
16:00 22mTalk | Rust on Morello POCL Sarah Harris University of Kent, Simon Cooksey NVIDIA, Michael Vollmer University of Kent, Mark Batty University of Kent | ||
16:22 22mTalk | Capabilities for safe cross-language interoperability POCL David Chisnall SCI Semiconductor | ||
16:45 22mTalk | Concurrent Mutation must go POCL Matthew J. Parkinson Microsoft Azure Research, Sylvan Clebsch Microsoft Azure Research, Tobias Wrigstad Uppsala University, Sophia Drossopoulou Imperial College London, Elias Castegren KTH Royal Institute of Technology, Ellen Arvidsson Uppsala University, Luke Cheeseman Imperial College London | ||
17:07 22mTalk | Object Capabilities POCL Sophia Drossopoulou Imperial College London, Susan Eisenbach Imperial College London, Julian Mackay Victoria University of Wellington, James Noble Creative Research & Programming |