Capability-Based Access Control
Capability-Based Access Control is an approach to controlling access in which a subject holds a token, often called a capability, that both names a resource and specifies what actions the holder may perform on it. Instead of the system checking a central list to decide whether someone is allowed in, possession of the capability itself grants the permission. This model is used in various contexts, including operating system design and, in some proposals, resource-constrained environments such as IoT devices.
Capability-Based Access Control (CBAC) is an access control model in which authorization decisions are governed by unforgeable references known as capabilities. Conceptually, a capability can be represented as a pair (x, r), where x identifies an object and r denotes the set of rights the holder may exercise over it; this corresponds to storing an access control matrix by rows associated with subjects, in contrast to access control lists, which store the matrix by columns associated with objects. Because authority is bound to possession of the capability rather than to a subject's identity checked against a separate policy store, the model differs from identity- and list-oriented approaches such as RBAC, which associates permissions with roles assigned to identified subjects. Note that in security theory, capability-based security is broader than any single token implementation, and the specifics of capability issuance, delegation, and revocation vary by design and deployment context (for example, operating system kernels, IoT authorization schemes, or vendor feature-access systems such as Gravwell's CBAC). This entry addresses the access control model and does not, by itself, specify an authentication mechanism for establishing who a subject is.
Why it matters
Capability-Based Access Control matters because it inverts the assumption behind most enterprise access systems. In identity- and list-oriented models such as RBAC, the system authenticates a subject and then consults a separate policy store to decide what that identified subject may do. Under CBAC, authority travels with the subject in the form of an unforgeable capability that both names a resource and enumerates the rights the holder may exercise. This design can reduce reliance on centralized policy lookups at enforcement time, which is one reason it has drawn interest in operating system design and in resource-constrained settings.
The model's practical significance is clearest where centralized, identity-based authorization is expensive or awkward. Research on IoT authorization has described capabilities-based access control as a promising paradigm for handling the particularities of IoT systems, though the same work notes that existing systems are not without limitations. Because a capability grants access by possession, delegation can be expressed simply by handing over or minting a capability, but revocation is correspondingly harder: once a capability is distributed, invalidating it depends entirely on the specifics of the design, and there is no single mechanism that applies across all implementations.
It is important not to overstate what CBAC provides. Capability-based security in security theory is broader than any particular token implementation, and the properties an organization actually gets depend on how capabilities are issued, delegated, and revoked in a given system. Vendor feature-access systems that carry the CBAC label, such as Gravwell's, use the term for fine-grained access configuration and may differ substantially from operating-system-kernel capability models or academic IoT schemes. Readers evaluating a product or design should therefore examine its concrete issuance and revocation behavior rather than assuming a shared meaning across the label.
Who it's relevant to
Inside CBAC
Common questions
Answers to the questions practitioners most commonly ask about CBAC.
