SeL4 security proofs now complete on AArch64 (proofcraft.systems)
StilesCrisis 17 hours ago
msdz 16 hours ago
StilesCrisis 16 hours ago
monster_truck 16 hours ago
less_less 13 hours ago
avadodin 16 hours ago
We're in the philosophical territory of tasking infallible beings with stopping their own flawless creations.
fosslinux 16 hours ago
brohee 9 hours ago
I'm afraid it means clearing all caches at each context switch. The performance penalty is really high.
torginus 16 hours ago
That said, the big caveat of the whole thing, is that by pushing stuff traditionally considered to be sensitive to user space doesn't solve security or stability, it makes it other people's problem. There's no reason you couldn't do a side channel (or a different kind of) attack against a process that hosts the filesystem.
brohee 16 hours ago
The one covering side channels is pretty honest:
Information side-channels: this assumption applies to the confidentiality proof only and is not present for functional correctness or integrity. The assumption is that the binary-level model of the hardware captures all relevant information channels. We know this not to be the case. This is not a problem for the validity of the confidentiality proof, but means that its conclusion (that secrets do not leak) holds only for the channels visible in the model. This is a standard situation in information flow proofs: they can never be absolute. As mentioned above, in practice the proof covers all in-kernel storage channels but does not cover timing channels.
So the proof won't be invalidated at it does not cover that particular threat.
Now the question is how useful the is a proof not covering side channels? I'd say pretty useful and it doesn't mean they don't have counter measures for to counter their exploitation, nor that they are not effective, just that a proof of efficiency is out of reach for now.
brohee 15 hours ago
And then you'd need assurance that the Verilog is faithfully transcribed in the silicon, which is a can of worms in itself.
simiones 15 hours ago
Would something like this guarantee that no side-channels are possible on any architecture? Perhaps not, but it would still get you most of the way there.
brohee 14 hours ago
Your version is likely good enough in practice though.
logdahl 14 hours ago
I googled a bit and found Sense Amplifier-Based Logic (SABL). Super interesting :^)
less_less 13 hours ago
For software like seL4 it would generally be out-of-scope, because it depends too much on the specific hardware and specific application, not just on the kernel, and protection usually requires extensive countermeasures in those places.
mswphd 14 hours ago
1. Some known set of architectures, with
2. Some known set of (constant time/variable time) operations
And then prove things about programs written against those architectures. See for example
https://github.com/PLSysSec/FaCT
That being said, practically the operations that are variable time are known, and are mostly* the same on all modern architectures. In particular
1. Branching on a secret-dependent variable, or
2. Indexing an array with a secret-dependent index, or
3. Some architecture specific operations (typically things like division, occasionally things like multiplications/shifting).
brohee 14 hours ago
gizmo686 9 hours ago
Sure a hardware or model bug would render your proof non-applicable, but that is already the case for the existing proofs.
The bigger problem is simply that hardware designers do not care about timing side channels. Even if you did accurately model the timing behavior of a modern processor, you would just discover that trying to write software free from timing side channels is a practical impossibility.
> And then you'd need assurance that the Verilog is faithfully transcribed in the silicon, which is a can of worms in itself.
You would also need to prove that our model of physics accurately describes how that silicon would behave, and the the environment around the silicon is within the physical parameters you modeled...
brohee 5 hours ago
eigenform 7 hours ago
You could have an ISA where timing information is simply not presented to the programmer, but programmers like being able to profile their programs.
IsTom 16 hours ago
dathinab 14 hours ago
just because something isn't perfect and handles everything you can come up with doesn't mean it isn't still very very useful
nothing in nature is truly perfect and down-talking grate but not perfect things will just make us stuck in a pretty shitty world which never improves because no improvement by itself "perfectly/fully" solves whatever problem set you are looking at
CalChris 9 hours ago
warkdarrior 5 hours ago
kvuj 17 hours ago
- GenodeOS
- LionsOS
- A chinese car maker was using it as a hypervisor in their cars, IIRC
- What else? Are there any private deployments you guys are aware of?
angry_octet 16 hours ago
There are a number of talks at the upcoming seL4 summit, but see 2025, e.g. Kry10 KOS.
i_am_a_peasant 17 hours ago
avadodin 17 hours ago
Secure–boot virtualization platforms are dime a dozen nowadays.
jdub 16 hours ago
avadodin 16 hours ago
A Linux VM isn't it.
boredatoms 15 hours ago
So its more of an economic argument than that of increasing security
simiones 15 hours ago
Are you using "seL4/Linux" in the style of "GNU/Linux"? Because then it should be "GNU/seL4" - that would describe an OS exposing the GNU core utilities on top of the seL4 kernel. There's no way to mix the Linux kernel with the seL4 kernel, other than using one to run VMs of the other.
avadodin 14 hours ago
It doesn't even have to be a Linux–compatible OS in theory although that is the standard to beat.
wmf 12 hours ago
avadodin 7 hours ago
The difference with a VM is that Linux is privileged vs the Linux user-land where most interesting things happen so a vulnerability within that blob is as critical as it was before other than for the few modules that are placed in seL4 custody.
For embedded applications, the Linux part is often just used to display a UI so the criticality math is a bit different.
NewJazz 14 hours ago
simiones 14 hours ago