Fact-checked by Grok 2 weeks ago

Access control matrix

The access control matrix (ACM) is a foundational abstract model in for representing and managing the state of a system, specifying which subjects are authorized to perform which operations on which objects. Introduced by Butler W. Lampson in his 1974 paper "," the model structures access rights in a where rows represent subjects—such as users, processes, or domains—and columns represent objects, including files, memory segments, or other resources; each cell at the intersection contains a set of rights, such as read (r), write (w), execute (x), or ownership (o), indicating the permissions granted. This framework enables precise modeling of policies, allowing system designers to define and enforce isolation, sharing, and modular in operating systems and beyond. In practice, the ACM serves as a theoretical basis for implementing mechanisms, primarily through two complementary approaches: access control lists (ACLs) and capability lists. ACLs correspond to the columns of the matrix, attaching lists of authorized subjects and their rights directly to each object, which facilitates efficient checks for object-oriented systems like file servers but can grow cumbersome with many subjects. Conversely, capability lists represent the rows, providing subjects with unforgeable tokens () that bundle object references with specific rights, enabling decentralized and fine-grained access in subject-centric environments, such as those supporting , though they require careful management to prevent capability leakage. The model's flexibility also extends to analyzing and policy enforcement via state transitions—defined by primitive operations like creating or deleting subjects/objects and entering/deleting rights—often formalized in extensions like the Harrison-Ruzzo-Ullman (HRU) model to determine whether unauthorized access can leak through command sequences. Beyond its core structure, the ACM has influenced broader security paradigms, including (RBAC) and (ABAC), by providing a uniform way to abstract and compare policies across diverse systems, from traditional operating systems to modern cloud and distributed environments. While the full matrix is rarely stored explicitly due to sparsity and issues—favoring implementations—it remains a cornerstone for understanding protection principles, ensuring that access decisions align with , , and goals.

Fundamentals

Definition

An access control matrix is a in represented as a , where rows correspond to (such as users or processes), columns correspond to objects (such as files or resources), and the cells contain the set of access rights (such as read, write, or execute) granted to each subject for each object. This structure captures authorizations through subject-object-right triples, where each triple specifies a particular permission, like allowing a subject to read a specific object. The model originated in the 1970s from theoretical research, first proposed by Butler W. Lampson in 1971 as a for mechanisms in operating systems. Lampson's work generalized to handle systematically, laying the foundation for analyzing states and transitions. As a core element of (DAC), the access control matrix enables owners to specify and delegate access rights flexibly based on their discretion. This contrasts with (MAC), which relies on system-enforced security labels and clearances rather than owner-defined triples, emphasizing centralized policy over individual control.

Components

The access control matrix model defines as the active entities responsible for initiating requests within a . These typically encompass users, processes, or groups that operate on behalf of users, enabling the enforcement of policies by specifying what actions they may perform. Objects represent the passive entities targeted by requests, serving as the resources that require . Common examples include files, devices, structures, segments, and terminals, each assigned unique identifiers by the protection mechanism to facilitate controlled interactions. Rights denote the specific permissions granted to subjects over objects, captured as sets of access attributes within the matrix. Standard rights often include read (r) for retrieving information, write (w) for modifying content, execute (x) for running code, own for controlling access modifications, and delete for removing the object, with these typically symbolized or enumerated to reflect the allowed operations. Entries without specified rights, such as empty cells or values, explicitly indicate the absence of , ensuring that no permissions are implicitly granted and thereby upholding the principle of least privilege in the protection state.

Representations

Matrix Structure

The is organized as a two-dimensional , with rows corresponding to —active entities such as users or processes—and columns corresponding to objects—passive entities such as files or resources. Each at the of a row and column specifies the set of granted to that subject over that object, where are typically primitive operations like read (r) or write (w). This tabular layout provides a global view of the protection state in a , capturing all subject-object interactions in a single abstract structure. For instance, the following simplified illustrates the structure, where empty cells denote no :
Subjects \ ObjectsFile AFile B
User1{r, w}{r}
User2{w}
In this representation, User1 has both read and write on A but only read access to B, while User2 has write access only to File B. The entries are subsets of a predefined set of R, ensuring that only authorized operations are permissible. Notationally, the rights held by subject s on object o are commonly denoted as P[s, o] ⊆ R in formal models, where P represents the matrix and R the universe of rights. This convention facilitates precise mathematical treatment of the protection state as a triple (S, O, P), with S as the set of subjects and O as the set of objects. The matrix structure accommodates dynamic evolution through authorized commands that modify its contents, as formalized in the Harrison-Ruzzo-Ullman (HRU) model. These include create subject s (adding a new row), create object o (adding a new column), enter r into P[s, o] (adding right r to a cell), delete r from P[s, o] (removing right r), destroy subject s (removing a row), and destroy object o (removing a column). Commands are executed conditionally based on existing matrix entries, enabling controlled updates while preserving system integrity; for example, a command might check "if own ∈ P[s, o]" before allowing a modification. This mechanism models real-world protection systems where access rights change over time in response to user actions or administrative policies.

Alternative Forms

Access control lists (ACLs) offer a column-wise representation of the access control matrix, in which each object is associated with a list enumerating the subjects authorized to access it and the specific rights granted to each such subject. This structure groups permissions by object, allowing for straightforward verification of access requests directed at a particular resource by scanning the relevant list. ACLs emerged as a practical mechanism in early systems like , where they were implemented to manage protections for shared resources efficiently. In contrast, capability lists provide a row-wise view of the matrix, assigning to each a list of capabilities—protected tokens that pair an object identifier with the set of the possesses over that object. Capabilities enable subjects to demonstrate without needing to consult a central for each access, and they support by allowing transfer of capabilities to other subjects, subject to system policies. This approach was formalized in early multiprogramming semantics to facilitate secure resource sharing in computational environments. The choice between these forms involves trade-offs in storage efficiency and operational performance relative to the full . The matrix itself can be space-intensive for sparse configurations, where most entries lack permissions, but ACLs mitigate this by storing only non-empty columns, proving advantageous when objects have limited authorized subjects, though they may incur overhead in searching lists during subject-specific queries. Capability lists, by focusing on non-empty rows, conserve space in domains where subjects interact with numerous objects, offering fast access checks via capability possession, yet they complicate since distributed capabilities must be individually invalidated or expired. These alternatives thus adapt the matrix's conceptual completeness to practical constraints, balancing lookup speed against administrative complexity.

Theoretical Aspects

Underlying Models

The access control matrix serves as the foundational structure in discretionary access control (DAC), where resource owners have the authority to assign and revoke access rights to subjects for specific objects. In this model, each entry in the matrix specifies the rights—such as read, write, or execute—that a subject holds over an object, enabling fine-grained, owner-discretionary management of permissions. This approach contrasts with mandatory access control by emphasizing user autonomy in protection decisions, allowing propagation of rights through mechanisms like access control lists or capabilities derived from the matrix. The Take-Grant model, introduced by Jones and Lipton in , extends the access control matrix into a graph-based representation to analyze rights propagation in protection systems. In this framework, subjects and objects are modeled as nodes in a , with edges labeled by specific rights (e.g., "take" for acquiring rights from another subject, "" for transferring rights to another subject), effectively abstracting the matrix's rows and columns into a more analyzable structure for dynamic access scenarios. The model defines four rules—create, destroy (delete) subject/object, take, and —that govern state transitions, allowing efficient linear-time algorithms to determine whether a right can be acquired by a subject through propagation paths. The model is often analyzed in its monotonic form, which excludes the destroy rule. This graph-theoretic extension facilitates safety analysis by simulating how rights flow without enumerating all matrix states. The Harrison-Ruzzo-Ullman (HRU) model formalizes the access control as a state machine to evaluate the of protection systems against unauthorized right leakage. It defines a protection state as a triple consisting of sets of and objects, along with the access specifying like enter (create/delete /objects), own (full control), read/write on objects, and conditional commands for complex operations. HRU introduces generic commands for manipulation, such as creating or deleting rows/columns and inserting/deleting , enabling the modeling of enforcement through state transitions. The model's undecidability result for general —determining if a right can leak to an unauthorized —highlights the computational limits of -based , though mono-operational schemes remain decidable. This framework underpins theoretical analysis of expressiveness and has influenced subsequent -checking techniques.

Formal Properties

The access control matrix (ACM) in formal models exhibits monotonicity when rights can only be added and not revoked through certain operations, ensuring that the set of rights for any subject-object pair is non-decreasing over time. In the Harrison-Ruzzo-Ullman (HRU) model, this property holds in monotonic variants where commands like "enter right" append privileges without corresponding deletion mechanisms, preventing the reduction of access rights once granted. Specifically, for a matrix M where M[s, o] denotes the set of rights held by subject s over object o, executing an "enter r into M[s, o]" command results in M'[s, o] = M[s, o] \cup \{r\}, maintaining M[s, o] \subseteq M'[s, o] for all subsequent states. This non-decreasing behavior simplifies analysis in restricted systems but does not apply universally in HRU due to potential delete operations. A central formal challenge in ACMs is the problem, which determines whether an initial allows an unauthorized to a specific right through a sequence of commands. In the general HRU model, this problem is undecidable, meaning no algorithm can always determine if a right can be illicitly acquired, as proven by reduction to the of Turing machines. Formally, given an initial matrix M_0, a generic right r, and a set of commands C, the question is whether there exists a sequence leading to a state M_k where r \in M_k[s, o] for some unauthorized s and o; the undecidability arises from the expressive power of conditional commands that simulate arbitrary computation. Restricted cases, such as mono-operational HRU (with a single command type), render safety decidable but NP-complete. ACMs also demonstrate closure properties under primitive operations, where the set of valid matrices remains invariant under executions of commands like create subject/object or delete right. In HRU, the create subject command adds a new row and column to M initialized with empty right sets, preserving the matrix structure while expanding the subject and object sets S and O such that S' = S \cup \{s'\} and O' = O \cup \{s'\} (subjects often double as objects). Similarly, delete right removes a specific from M[s, o], yielding M'[s, o] = M[s, o] \setminus \{r\}, and the overall set of reachable configurations is closed under these transformations, ensuring that all resulting matrices adhere to the model's syntax. These properties underpin the model's ability to model dynamic systems without introducing invalid states.

Applications and Evaluation

Practical Implementations

In Unix-like operating systems, access control matrices are approximated through Access Control Lists (ACLs), which extend the traditional discretionary access control model of file permissions and user groups to provide more granular rights management. POSIX ACLs, based on the draft POSIX.1e standard (IEEE 1003.1e, draft 17), allow administrators to define permissions for individual users or groups beyond the standard owner-group-others triad, effectively simulating rows and columns of an access matrix where subjects (users or groups) are granted specific operations (read, write, execute) on objects (files or directories). These ACLs are implemented in file systems like ext4 on Linux, UFS on FreeBSD, and ZFS on various Unix variants, using commands such as setfacl and getfacl to manipulate entries, which include access ACLs for direct permissions and default ACLs for inheritance on new objects. For example, an ACL entry might grant read access to a specific user on a directory while denying it to others, reducing the sparsity of a full matrix by storing only non-empty entries. Capability lists, representing the rows of the access control matrix, are implemented in various operating systems and kernels to provide subjects with unforgeable tokens bundling object references and rights. For example, the seL4 , a formally verified system, uses to enforce and mediate all and resource access, ensuring strong isolation in embedded and high-assurance environments. Historical examples include the Cambridge CAP computer, which provided hardware support for capabilities, and systems like KeyKOS and EROS, which employed capabilities for persistent, secure object management. These implementations facilitate decentralized but require mechanisms to prevent capability leakage and . In the Windows NT family of operating systems, is implemented using a token-based model for subjects and security descriptors for objects, which collectively enforce matrix-like logic without maintaining a global matrix due to scalability concerns. Each or holds an containing the user's Identifiers () and group memberships as subjects, while securable objects like files, registry keys, or processes have security descriptors that include a Discretionary Access Control List (DACL) specifying allowed accesses for . The system checks access by comparing the token's against the object's DACL entries, granting rights such as read, write, or delete if a matching allow entry exists and no deny entry overrides it, thus realizing the intersection of subjects and objects in the abstract matrix model. This approach, introduced in and refined in subsequent versions, supports auditing via System Access Control Lists (SACLs) and is managed through like SetNamedSecurityInfo or tools like icacls. Database management systems implement access control matrix principles through role-based mechanisms standardized in SQL, where privileges are granted or revoked to users or roles on database objects, approximating the matrix by associating subjects (roles or users) with operations (select, insert, update, delete) on objects (tables, views, schemas). The ANSI/ISO SQL standard (ISO/IEC 9075) defines the statement to assign privileges explicitly, optionally with the WITH GRANT OPTION to propagate rights, and the REVOKE statement to withdraw them, including or options to handle dependencies. In systems like SQL Server, , and , roles act as intermediaries to group privileges, enabling efficient management of matrix entries; for instance, a role might grant SELECT on multiple tables to an role, which is then assigned to users, avoiding per-user granularity for large-scale deployments. This SQL-based approach integrates with underlying or lists for file-level on database files but focuses on logical access within the DBMS.

Advantages and Limitations

The access control matrix offers a comprehensive view of all access rights within a , representing subjects as rows and objects as columns to enable a holistic of permissions that aids in understanding the overall . This structure facilitates auditing and by allowing systematic inspection of rights across the entire matrix, which helps identify inconsistencies, leaks, or unintended propagations of access. Moreover, it provides a theoretical foundation for proving properties, such as the safety of access rights, through formal analysis frameworks that model state transitions and command effects on the matrix. Despite these strengths, the access control matrix faces significant scalability challenges in environments with numerous subjects and objects, as maintaining a full leads to inefficient and , particularly when most entries are empty, resulting in sparse and oversized representations. In systems derived from the matrix, vulnerabilities to attacks arise, as malicious code running under a user's can exploit granted to modify the or escalate privileges without detection. Basic implementations also provide poor support for , lacking inherent controls to restrict after initial access, which allows sensitive data to propagate unchecked once read. To mitigate these drawbacks, contemporary approaches integrate the access control matrix with hybrid models incorporating (RBAC) or (ABAC), which compress the matrix by assigning permissions via roles or dynamic attributes, thereby enhancing scalability and performance without losing the underlying conceptual framework.

References

  1. [1]
    The following paper by Butler Lampson has been frequently refer
    Abstract: Abstract models are given which reflect the properties of most existing mechanisms for enforcing protection or access control, together with some.
  2. [2]
    None
    ### Summary of Access Control Matrix Model
  3. [3]
    [PDF] Access Control: Policies, Models, and Mechanisms - UTC
    The access matrix model provides a framework for describing discretionary access control.
  4. [4]
    Capability-based Access Control Mechanisms
    Capability-based Mechanisms. One approach to storing an access control matrix, discussed previously, is to store columns with objects (an ACL). We will now ...
  5. [5]
    [IT430] Class 11: Access Control
    Access Control Matrix. A straightforward method that we can use to specify which subjects can access which objects is using a big matrix. In particular, in ...
  6. [6]
    [PDF] Access Control - UTC
    “Access control” is where security engineering meets computer science. Its ... – Access Control Matrix Model. – Implementation of the Access Matrix.
  7. [7]
    [PDF] CS52600: Information Security - Access Control Matrices
    Sep 13, 2010 · Models: Access Control. • What is access control? – Limiting who is allowed to do what. • What is an access control model? – Specifying who is ...
  8. [8]
    [PDF] Access Control Models Part I Murat Kantarcioglu UT Dallas
    A state of a protection system, that is, its matrix M, is said to be safe with respect to the right r if no sequence of commands can transform M into a state.
  9. [9]
    [PDF] An Attribute-Based Access Matrix Model - Prof. Ravi Sandhu
    Mar 17, 2005 · In this paper we propose ABAM, an attribute-based access ma- trix model, by combining the simple access matrix model, as well as attributes- ...
  10. [10]
    [PDF] Lecture 27 - UT Computer Science - University of Texas at Austin
    Recall our earlier claim: Any access control policy can be represented by an access control matrix (ACM). ... An access control list (ACL) stores ...
  11. [11]
    Access Control Matrix - Glossary | CSRC
    A table in which each row represents a subject, each column represents an object, and each entry is the set of access rights for that subject to that object.Missing: origin theoretical 1970s discretionary
  12. [12]
    Protection - Butler Lampson
    Abstract models are given which reflect the properties of most existing mechanisms for enforcing protection or access control, together with some possible ...
  13. [13]
    Protection in operating systems
    A model of protection mechanisms in computing systems is presented and its appropriateness is argued. The "safety" problem for protection systems under.
  14. [14]
    Lecture 18: Security and Protection
    Access Matrix Model. O = current objects, e.g., a file, a process; S = current subjects, e.g., a process; R = generic rights, e.g., read, write, execute, delete ...
  15. [15]
    [PDF] Comparing the Expressive Power of Access Control Models
    Γ is the set of all possible access matrices. Formally, each γ ∈ Γ is identified by three finite sets, Sγ ⊂ S, Oγ ⊂ O, and Rγ ⊂ R, ...
  16. [16]
    [PDF] The Protection of Information in Computer Systems
    Abstract - This tutorial paper explores the mechanics of protecting computer-stored information from unauthorized use or modification.
  17. [17]
    [PDF] Assessment of Access Control Systems
    An ACL corresponds to a column of the access control matrix. (described next) ... A capability list corresponds to a row of the access control matrix.Missing: seminal | Show results with:seminal
  18. [18]
    [PDF] Programming Semantics for Multiprogrammed Computations
    North Holland, Amsterdam, 1959. Programming Semantics for Multiprogrammed. Computations. Jack B. Dennis and Earl C. Van Horn. Massachusetts Institute of ...
  19. [19]
    [PDF] Protection in Operating Systems
    A model of protection mechanisms in computing systems is presented and its appropriateness is argued. The "safety" problem for protection systems under.
  20. [20]
    Protection in operating systems | Communications of the ACM
    A model of protection mechanisms in computing systems is presented and its appropriateness is argued. The “safety” problem for protection systems under this ...
  21. [21]
    [PDF] The Foundational work of Harrison-Ruzzo-Ullman Revisited
    The work by Harrison, Ruzzo and Ullman (the HRU paper) on safety in the context of the access matrix model is widely considered to be foundational work in ...
  22. [22]
    acl(5) - Linux manual page - man7.org
    This manual page describes POSIX Access Control Lists, which are used to define more fine-grained discretionary access rights for files and directories.Acl Entries Top · Acl Text Forms Top · See Also Top
  23. [23]
    13.9. Access Control Lists - FreeBSD Documentation Archive
    Access Control Lists ( ACL s) extend the standard UNIX® permission model in a POSIX®.1e compatible way. This permits an administrator to take advantage of a ...
  24. [24]
    POSIX Access Control Lists on Linux - USENIX
    Only some UNIX-like systems support the POSIX.1e ACL library functions and other systems have their own operating system interfaces. Even worse, the ...
  25. [25]
    11 Access Control Lists in Linux - SUSE Documentation
    POSIX ACLs (access control lists) can be used as an expansion of the traditional permission concept for file system objects.
  26. [26]
    Parts of the Access Control Model - Win32 apps | Microsoft Learn
    Jan 7, 2021 · Access tokens, which contain information about a logged-on user; Security descriptors, which contain the security information that protects a ...
  27. [27]
    Windows Security Model for Driver Developers - Microsoft Learn
    Dec 9, 2024 · An access token that describes a restricted security context for a thread or process is called a restricted token. The SIDs in a restricted ...Windows security model · Security related debugger...
  28. [28]
    [PDF] Windows 2000 Access Control Lists - GIAC Certifications
    Dec 27, 2002 · Access Tokens. 2. Security Descriptors. Access tokens provide the security context that users and processes use to interact with securable ...
  29. [29]
    GRANT (Transact-SQL) - SQL Server - Microsoft Learn
    Dec 17, 2024 · Granting a permission removes DENY or REVOKE of that permission on the specified securable. If the same permission is denied at a higher scope ...Missing: standard | Show results with:standard
  30. [30]
    REVOKE - Oracle Help Center
    The REVOKE statement can revoke only privileges and roles that were previously granted directly with a GRANT statement.
  31. [31]
    Database-level roles - SQL Server - Microsoft Learn
    Jul 31, 2025 · The permissions of user-defined database roles can be customized by using the GRANT, DENY, and REVOKE statements.
  32. [32]
    Use of grant and revoke privileges to control access - IBM
    The SQL GRANT statement lets you grant explicit privileges to authorization IDs. The REVOKE statement lets you take them away.Missing: ISO | Show results with:ISO
  33. [33]
    [PDF] A systematic literature review for authorization and access control
    They demonstrated DAC, MAC, RBAC, ABAC and OrBAC along with the advantages and disadvantages of each access control model. According to the current cloud ...