RBAC: Role-based Access Control
1. Overview
Note
:::{image} ../fig/csc603/05-rbac/basic_rbac.png :alt: Basic RBAC illustration :class: bg-primary mb-1 :height: 500px :align: center :::
???note Reference Models
- RBAC<sub>0</sub>: minimum functionalities
- RBAC<sub>1</sub>: RBAC<sub>0</sub> + role hierarchies
- RBAC<sub>2</sub>: RBAC<sub>0</sub> + constraints
- RBAC<sub>3</sub>: RBAC<sub>1</sub> + RBAC<sub>2</sub>
???note RBAC0
- Users: individuals with access to the system
- Role: named job function within the org
- Permission: approval of a particular mode of access to objects
- Session: mapping between a user and a subset of roles
:::{image} ../fig/csc603/05-rbac/rbac0.png :alt: RBAC0 :class: bg-primary mb-1 :height: 500px :align: center :::
???note RBAC<sub>1</sub>
- Reflect hierarchical structure of roles in org
- Mathematically, partial order (reflexive, transitive, antisymmetric)
:::{image} ../fig/csc603/05-rbac/rbac1.png
:alt: RBAC1
:class: bg-primary mb-1
:height: 500px
:align: center
:::
???note RBAC2
- Reflect higher-level organizational policy
- Mutually exclusive roles
- Cardinality: maximum numbers with respect to role
- Pre-requisite:
- can assign role only if already assigned prerequisite role
- Not hierarchical
???note RBAC<sub>3</sub>
- Consolidation
:::{image} ../fig/csc603/05-rbac/rbac3.png
:alt: RBAC3
:class: bg-primary mb-1
:height: 500px
:align: center
:::
2. NIST RBAC
Note
- RBAC System and Administrative Functional Specifications
- Three categories:
- Administrative functions: create, delete, maintain RBAC elements and relations
- Supporting system functions: session management, access control decisions
- Review functions: query operations on RBAC elements and relations
- Four components:
- Core RBAC: similar to RBAC0
- Hierarchical RBAC: similar to RBAC1
- Static Separation of Duty (SSD):
- Prevent conflict of interest
- Cardinality constraints (e.g., maximum number of roles)
- Mutually exclusive roles
- Dynamic Separation of Duty (DSD):
- Similar to SSD but activated within session
- Temporary conflict of interest (e.g., author and PC member of a conference)
:::{image} ../fig/csc603/05-rbac/nist_rbac.png :alt: NIST RBAC :class: bg-primary mb-1 :height: 500px :align: center :::
???note Unspecified by NIST RBAC
- Scalability
- Authentication
- Negative permissions
- Nature of permissions
- Discretionary role activation
- Role engineering
- Constraints
- RBAC administration
- Role revocation
3. Role Engineering
Note
- Definition of role can be difficult
- Requirement engineering process
- Basic steps:
- Collect activities
- Group into clusters
- Name clusters
- Describe
- Remove duplicates
- Indentify minimal set of permissions
- Simulate activities
- Role candidates
???note Case Study: RBAC for a bank - Migrating from old local access control files - Application now query security for authorization profiel - Role = (official position, job function) :::{image} ../fig/csc603/05-rbac/case1.png :alt: role and functions :class: bg-primary mb-1 :height: 400px :align: center ::: :::{image} ../fig/csc603/05-rbac/case2.png :alt: Role, applications, and access rights :class: bg-primary mb-1 :height: 400px :align: center ::: :::{image} ../fig/csc603/05-rbac/case3.png :alt: Assume B inherits A :class: bg-primary mb-1 :height: 400px :align: center ::: :::{image} ../fig/csc603/05-rbac/case4.png :alt: Architecture :class: bg-primary mb-1 :height: 500px :align: center :::