SC(11): CHERI-Capabilities als Speicherschutz
Episode von SystemCall von Fachgebiet System- und Rechnerarchitektur, Leibniz Universität Hannover · 7. Oktober 2023 · 50 min
In dieser elften Folge des Systemcalls geht es um das CHERI Capability Model als Speicherschutzmechanismus. Wir diskutieren die Vorteile gegenüber herkömmlichem Speicherschutz und auch einige Randfälle.
Zunächst wiederholen wir herkömmliche Speicherschutzverfahren, also das Paging und die Segmentierung. Beim Paging wird der Speicher in gleich große Pages bzw. Frames (im physischen Adressraum) eingeteilt, die aufeinander gemappt werden können. Segmentierung teilt den physischen Speicher hingegen in unterschiedlich große Segmente ein, die nicht an alignten Adressen starten müssen. Beides implementiert sowohl Abstraktion von physischem auf virtuellen Speicher, als auch Speicherschutz, also Isolation der Prozesse untereinander.
CHERI implementiert auf Basis einer FPGA-MIPS Implementation ein anderes Modell des Speicherschutzes. Prozesse verwenden immer noch den gewohnten, durch Paging bereitgestellten virtuellen Speicher, aber auch zum Schutz einzelner Objekte so genannte Capabilities. Dazu werden (im Grunde) alle Pointer durch Capabilities ersetzt, die neben der Zieladresse noch die Länge des adressierten Objekts und einige Permissionbits enthalten. Diese Informationen sind untrennbar und unveränderbar aneinander gekoppelt. Der Prozessor selbst stellt das sicher. Die Authoren haben auf dem FPGA ein modifiziertes FreeBSD zum Laufen gebracht, eine Idee für legacy Programme entwickelt und auch Benchmarks und eine Limit-Study durchgeführt gegen andere Speicherschutzansätze.
Links
Capability Hardware Enhanced RISC Instructions (CHERI)
Jonathan Woodruff, Robert N.M. Watson, David Chisnall, Simon W. Moore, Jonathan Anderson, Brooks Davis, Ben Laurie, Peter G. Neumann, Robert Norton, and Michael Roe. The CHERI capability model: revisiting RISC in an age of risk. In Proceeding of ISCA'14. IEEE Press, 457–468. DOI: 10.1145/2678373.2665740
ACM
Jeremy Singer. Towards Secure MicroPython on Morello (WIP). In Proceedings of LCTES'2023. ACM, New York, NY, USA, 134–137. (2023) DOI: 10.1145/3589610.3596272
ACM
Intro-/Outrotheme
the_emergent
Weitere Episoden von „SystemCall“
- SC(13): Sichten auf Adressräume 24. Januar 2026
- SC(12): Was wir nie über Locking wissen wollten 2. Dezember 2023
- SC(10): GPGPU Treiber für Intel iGPUs 30. Juni 2023
- SC(9): Riesenseiten und Page-Fault Latenz 28. Januar 2023
- Advent(2): Adventskalender der Systemrufe 2. Dezember 2022
- SC(8): MirageOS und Linux als Unikernel 28. Oktober 2022
- SC(7): Partitionierung und Paravirtualisierung 15. Juli 2022
- SC(6): Exokerniges Dateihandling und Threadpooling 7. Mai 2022
- SC(5): Schneller Gegenseitiger Ausschluss im Userspace 9. April 2022
- SC(4): SGX - Trusted und Untrusted Computing 16. März 2022
- SC(3): #ifdef-Totengräber und Bibliotheksschwärzen 17. Dezember 2021
- SC(2): Himmelsbrücken durch Tunnel und Replikate bei Vielkernern 24. Oktober 2021
- SC(1): Weggabelungen, Kontrollpunkte und Adressräume 8. Juli 2021