▲ | quotemstr 3 days ago | |||||||||||||||||||||||||||||||
Yes, but CHERI opens whole new system design possibilities, including things like ultra-cheap intra-address-space security boundaries. See https://www.cl.cam.ac.uk/research/security/ctsrd/pdfs/201607... > We have used CHERI’s ISA facilities as a foundation to build a software object-capability model supporting orders of magnitude greater compartmentalization performance, and hence granularity, than current designs. We use capabilities to build a hardware-software domain-transition mechanism and programming model suitable for safe communication between mutually distrusting software and https://github.com/CTSRD-CHERI/cheripedia/wiki/Colocation-Tu... > Processes are Unix' natural compartments, and a lot of existing software makes use of that model. The problem is, they are heavy-weight; communication and context switching overhead make using them for fine-grained compartmentalisation impractical. Cocalls, being fast (order of magnitude slower than a function call, order of magnitude faster than a cheapest syscall), aim to fix that problem. This functionality revolves around two functions: cocall(2) for the caller (client) side, and coaccept(2) for the callee (service) side. Underneath they are implemented using CHERI magic in the form of CInvoke / LDPBR CPU instruction to switch protection domains without the need to enter the kernel, but from the API user point of view they mostly look like ordinary system calls and follow the same conventions, errno et al. There's a decent chance that we get back whatever performance we pay for CHERI with interest as new systems architecture possibilities open up. MTE helps us secure existing architectures. CHERI makes new architectures possible. | ||||||||||||||||||||||||||||||||
▲ | saagarjha 3 days ago | parent [-] | |||||||||||||||||||||||||||||||
Yes, but this breaks mirror mappings. | ||||||||||||||||||||||||||||||||
|