POPL 2024
Sun 14 - Sat 20 January 2024 London, United Kingdom

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

Title
Capabilities for safe cross-language interoperability
POCL
CHERI C semantics
POCL
CHERI static analysis
POCL
Compartmentalisation models
POCL
Concurrent Mutation must go
POCL
ESBMC-CHERI: Towards Verification of C/C++ Programs for CHERI Platforms with ESBMC
POCL
Morello Cerise: proving secure encapsulation (work in progress)
POCL
Morello software and compilers
POCL
Object Capabilities
POCL
Proving capability safety in the presence of indirect sentries
POCL
Rust on Morello
POCL
Sealed with a Library Call: Memory Allocators Should Track Capability Seal Operations
POCL
File Attached
Secure Calling Conventions for CHERI Capability Machines in Practice (Work in Progress)
POCL
The Morello ISA semantics, proof, and test generation
POCL
The state of Morello and CHERI
POCL
The state of Morello software and projects
POCL

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.

Plenary
You're viewing the program in a time zone which is different from your device's time zone change time zone

Tue 16 Jan

Displayed time zone: London change

09:00 - 10:30
Session 1POCL at Flowers Room
Chair(s): Peter Sewell University of Cambridge
09:00
40m
Talk
The state of Morello and CHERI
POCL
Robert N. M. Watson University of Cambridge
09:45
15m
Talk
The state of Morello software and projects
POCL
Konrad Witaszczyk University of Cambridge, UK
10:00
15m
Talk
The Morello ISA semantics, proof, and test generation
POCL
Thomas Bauereiss University of Cambridge, Brian Campbell University of Edinburgh
10:15
15m
Talk
Morello Cerise: proving secure encapsulation (work in progress)
POCL
Angus Hammond University of Cambridge, Ricardo Almeida University of Edinburgh
10:30 - 11:00
10:30 - 11:00
10:30
30m
Coffee break
Break
Catering

11:00 - 12:30
Session 2POCL at Flowers Room
Chair(s): Ian Stark The University of Edinburgh
11:00
22m
Talk
Compartmentalisation models
POCL
Dapeng Gao University of Cambridge
11:22
23m
Talk
Proving capability safety in the presence of indirect sentries
POCL
Bastien 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
22m
Talk
Sealed with a Library Call: Memory Allocators Should Track Capability Seal Operations
POCL
Jeremy Singer University of Glasgow
File Attached
12:08
22m
Talk
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
90m
Lunch
Lunch
Catering

12:30 - 14:00
12:30
90m
Lunch
Lunch
Catering

14:00 - 15:30
Session 3POCL at Flowers Room
Chair(s): Simon W. Moore University of Cambridge
14:00
22m
Talk
Morello software and compilers
POCL
Jessica Clarke University of Cambridge
14:22
22m
Talk
CHERI C semantics
POCL
Vadim Zaliva University of Cambridge, UK
14:45
22m
Talk
CHERI static analysis
POCL
Irina Dudina University of Edinburgh
15:07
22m
Talk
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
30m
Coffee break
Break
Catering

15:30 - 16:00
15:30
30m
Coffee break
Break
Catering

16:00 - 17:30
Session 4POCL at Flowers Room
Chair(s): Brian Campbell University of Edinburgh
16:00
22m
Talk
Rust on Morello
POCL
Sarah Harris University of Kent, Simon Cooksey NVIDIA, Michael Vollmer University of Kent, Mark Batty University of Kent
16:22
22m
Talk
Capabilities for safe cross-language interoperability
POCL
David Chisnall SCI Semiconductor
16:45
22m
Talk
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
22m
Talk
Object Capabilities
POCL
Sophia Drossopoulou Imperial College London, Susan Eisenbach Imperial College London, Julian Mackay Victoria University of Wellington, James Noble Creative Research & Programming