Skip to content

Files

Latest commit

18cbdae · Jun 16, 2023

History

History
This branch is 630 commits behind seL4/l4v:master.

infoflow

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Mar 29, 2023
Mar 29, 2023
Jul 14, 2014
Mar 29, 2023
Mar 13, 2020
Jan 25, 2023
Jan 25, 2023
Feb 9, 2023
Nov 11, 2021
Oct 4, 2021
Jan 25, 2023
Feb 9, 2023
Jan 25, 2023
Oct 4, 2021
Jan 9, 2023
Oct 4, 2021
Oct 4, 2021
Jun 16, 2023
Feb 9, 2023
Oct 4, 2021
Jan 24, 2023
Mar 13, 2020
Oct 4, 2021
Oct 4, 2021
Oct 4, 2021
Mar 30, 2023
Nov 11, 2021
Feb 9, 2023
Feb 9, 2023
Feb 9, 2023
Oct 4, 2021

Confidentiality Proof

This proof establishes that seL4 enforces information flow, and so enforces the security property of confidentiality. Information flow security is defined in terms of (intransitive) noninterference, and implies confidentiality: data cannot be inferred without appropriate read authority. This proof is described in a 2013 IEEE Symposium on Security and Privacy paper. This proof firstly establishes noninterference for seL4's abstract specification, building on top of the Access Control Proof, before transferring the noninterference result to the kernel's C implementation via the Design Spec Refinement Proof and the C Refinement Proof.

Building

To build for the ARM architecture from the l4v/ directory, run:

L4V_ARCH=ARM ./run_tests InfoFlow

Important Theories

The top-level theory where noninterference is proved for the seL4 abstract specification is Noninterference; it is transferred to the C implementation via refinement in the theory Noninterference_Refinement. The base theory where noninterference is (generically) defined is Noninterference_Base. The bottom-level theory where confidentiality is formalised over the seL4 abstract specification is InfoFlow. Confidentiality is a relational property and the theory EquivValid defines these generically for the nondeterministic state monad of the abstract specification.