46 terms
Glossary terms
A
- ABI
Application Binary Interface. The conventions that let compiled code, libraries, and an operating system agree on data layouts, calling conventions, registers, and binary formats.
Authority available to code without being passed explicitly. Capability systems seek to reduce ambient authority so that access is tied to specific capabilities.
- Attack surface
All the parts of a system that an attacker could potentially target or exploit to gain access or cause harm.
The right to access a resource or perform an operation. A CHERI capability carries authority through its bounds, permissions, validity, and sealing state.
B
- Bounds
The lower and upper limits of the memory region that a capability can address. A memory access outside those limits is rejected by the processor.
C
- CHERI
Capability Hardware Enhanced RISC Instructions. An architectural protection model that adds hardware-supported capabilities to conventional processor architectures.
- CHERI C/C++
C and C++ language and ABI adaptations that represent pointers with CHERI capabilities and expose capability-aware operations where needed.
- CHERIoT
A CHERI-based hardware-software platform designed for small embedded systems, with memory safety and fine-grained compartments built into its processor and RTOS model.
- Capability
A hardware-protected reference that carries a memory location, the bounds of the memory region, the access rights associated with it, and some other metadata.
- Capability fault
An exception raised when an operation violates a capability rule, such as using an invalid capability, accessing outside its bounds, or attempting an operation without the required permission.
- Capability provenance
The valid derivation history that connects a capability to existing authority. Integer values cannot simply be converted into usable capabilities with new authority.
- Capability register
A processor register able to hold a complete capability, including its address and protected metadata.
- CheriABI
A pure-capability POSIX process environment developed for CheriBSD in which C and C++ pointers are represented as capabilities.
- CheriBSD
A FreeBSD-derived research operating system used to develop and evaluate CHERI memory protection and compartmentalisation.
- Compartment
A software component isolated from other components and given only selected access to code, data, devices, or services.
- Compartmentalisation
The division of software into isolated components so that a fault or compromise in one component has limited authority over the rest of the system.
D
F
H
- Hybrid ABI
An application binary interface in which conventional pointers remain the default while software can explicitly use capabilities for selected data and interfaces.
I
L
M
- Memory safety
Protection against invalid uses of memory, including accesses outside an object's bounds and, where temporal protection is present, accesses after an object's lifetime has ended.
- Monotonicity
The rule that deriving a capability can preserve or reduce its authority but cannot increase it beyond the authority of the source capability.
- Morello
Arm's experimental high-performance processor, SoC, and development board implementing an adaptation of CHERI for the Arm architecture.
N
O
P
- Permission
A right recorded in a capability, such as permission to load data, store data, or execute code. An operation is rejected when the relevant permission is absent.
- Pointer
A pointer is a value that contains the address of a location in memory. In conventional systems, this is just an integer.
- Pointer provenance
Information about where a pointer came from and which storage or object it is authorised to reference. CHERI makes valid provenance a hardware-enforced part of pointer use.
- Program Counter Capability (PCC)
The capability that authorises instruction fetch and constrains the region of code that can execute in the current context.
- Pure-capability ABI
An application binary interface in which language-level pointers, code pointers, return addresses, and related runtime structures are represented with capabilities.
R
- RISC-V
An open instruction-set architecture. CHERI extensions for RISC-V have been used in research processors, embedded systems, and ongoing standardisation work.
S
- Sail
A language for describing instruction-set architectures formally. CHERI uses Sail models as executable specifications and as inputs to testing and proof tools.
- Sealed capability
A capability placed in a protected sealed state. It cannot be used for ordinary memory access until an authorised mechanism unseals or invokes it.
- Sentry capability
A sealed executable capability used to provide a controlled entry point into code without exposing unrestricted access to the target code capability.
- Spatial memory safety
Protection against accessing memory outside the intended bounds of an object, allocation, stack frame, or other region.
T
- Tag
A protected validity bit associated with a capability. Ordinary data operations cannot manufacture a set tag, and operations that corrupt a capability representation clear it.
- Tagged memory
Memory that stores capability validity tags separately from ordinary software-visible data so that the integrity of in-memory capabilities can be enforced.
- Temporal memory safety
Protection against using memory outside its valid lifetime, including use-after-free and use-after-reallocation errors.
U
- Use-after-free
A temporal memory-safety error in which software accesses an allocation after it has been released and may have been reused for another purpose.
No matching terms.