Formally verified software in the real world
The work
| Authors | Gerwin Klein; June Andronick; Matthew Fernandez; Ihor Kuz; Toby Murray; Gernot Heiser |
|---|---|
| Editors | |
| Type | article |
| Year | 2018 |
| Citekey | klein2018formally |
Where it appeared
| Published in | Communications of the ACM |
|---|---|
| Publisher | Association for Computing Machinery |
| Volume | 61 |
| Issue | 10 |
| Pages | 68--77 |
Identifiers
| DOI | 10.1145/3230627 |
|---|
Related
| Distinct from | brotherston2017biabduction |
|---|---|
| Distinct from | gleirscher2020formal |
| Distinct from | klein2006machinechecked |
| Distinct from | klein2009sel4 |
| Distinct from | knuppel2018experience |
| Distinct from | lee2014proof |
| Distinct from | monti2022deductive |
| Distinct from | newcombe2015amazon |
Abstract
We present an approach for building highly-dependable systems that derive their assurance from a formally-verified operating-system which guarantees isolation between subsystems. We leverage those guarantees to enforce security through non-bypassable architectural constraints, and through generation of code and proofs from the architecture. We show that this approach can produce a system that is highly robust against cyber attacks, even without formal proof of its overall security. We demonstrate not only that this approach is applicable to real-world systems, such as autonomous vehicles, but also that it is possible to re-engineer an existing insecure system to achieve high robustness, and that this can be done by engineers not trained in formal methods.
A copy is held
pdf, 566.1 kB. Not published — it may be under copyright. The facts and links here are.
How it got here
| How it got here | import via bibtex |
|---|---|
| Added | 2026-08-10 00:00 UTC |
| Approved by | a person 2026-08-16 15:48 UTC |
Cite it as
@article{klein2018formally,
title = {Formally verified software in the real world},
author = {Gerwin Klein and June Andronick and Matthew Fernandez and Ihor Kuz and Toby Murray and Gernot Heiser},
year = {2018},
journal = {Communications of the ACM},
publisher = {Association for Computing Machinery},
volume = {61},
number = {10},
pages = {68--77},
doi = {10.1145/3230627},
}
This record lives at https://refs.drheap.org/klein2018formally/ and will keep doing so.