- A role can represent competency to do specific tasks, such as a physician or a pharmacist.
- A role can embody authority and responsibility, e.g., project supervisor.
- Authority and responsibility are distinct from competency. Jane Doe may be competent to head several departments, but is assigned to head one of them.
- Roles can reflect specific duty assignments that are rotated through multiple users, e.g., a duty physician or shift manager.
Shift in application of RBAC: access control in mainframes, network OSs (Novell's NetWare, Windows NT) -> RBAC in application level (is application specific; challenge is to find application-independent facilities that are sufficiently flexible, yet simple to implement and use, to support a wide range of applications with minimal customization)
RBAC directly supports three well-known security principles: least privilege, separation of duties, and data abstraction. (least privilege and separation of duty have already been discussed) Data abstraction is supported by means of abstract permissions such as credit and debit for an account object, rather than the read, write, execute permissions typically provided by the operating system. However, these principles must be directly implemented by security officer; they are not automatically enforced by RBAC.
RBAC is not a panacea for all access control issues. More sophisticated forms of access control are required to deal with situations where sequences of operations need to be controlled. For example, a purchase requisition requires various steps before it can lead to issuance of a purchase order. RBAC does not attempt to directly control the permissions for such a sequence of events. Other forms of access control can be layered on top of RBAC for this purpose. (task based access control?)
Roles vs compartments
Compartments are a part of the security label structure as used in the classified defense and government sectors. (compartment = sensitivity? top secret, restricted, confidential, etc.)
Similar because they both restrict access (to the information) to those who proper permission(?).
However, the use of compartments is for the specific policy of one-directional information flow in a lattice of labels. Roles do not presume a particular policy of this kind.
Family of reference models
RBAC0 - minimum requirement for any system that professes to support RBAC
RBAC1 - adds the concept of role hierarchies (situations where roles can inherit permissions from other roles)
RBAC2 - adds constraints (which impose restrictions on acceptable configurations of the different components of RBAC)
RBAC3 - includes RBAC1 and RBAC2
RBAC0
- user
- role
- permission - authorization, access right, privilege
- permissions only apply to data and resource objects and not to the components of RBAC itself (administrative permissions)
- session - a user establishes a session during which the user activates some subset of roles that he or she is a member of
- a user may have multiple subjects (or sessions) with different permissions active at the same time
- duty - obligation on a user's part to perform one or more tasks, which are generally essential for the smooth functioning of an organization
- One approach is to treat them as similar to permissions. Other approaches could be based on new access control paradigms such as task-based authorization.
RBAC1
Mathematically, these hierarchies are partial orders. A partial order is a reflexive, transitive and anti-symmetric relation. Inheritance is reflexive because a role inherits its own permissions, transitivity is a natural requirement in this context, and anti-symmetry rules out roles that inherit from one another and would therefore be redundant.
Note that a user is allowed to establish a session with any combination of roles junior to those the user is a member of.
role hierarchy:
user is a primary-care physician
user can still establish a session as physician and(?)/or health-care provider
Private role
role hierarchy:
*test engineers wish to keep some permissions private to their role and prevent their inheritance in the hierarchy to project supervisors
**use private roles
***in some systems the effect of private roles is achieved by blocking upward inheritance of certain permissions
(private roles seem clumsy, or maybe it's just the naming - test engineer and test engineer')
RBAC2
Constraints allow the management of RBAC to be decentralized. They allow senior security officers to restrict the ability of users who can exercise administrative privileges, enabling the chief security officer to lay out the broad scope of what is acceptable and impose this as a mandatory requirement on other security officers and users who participate in RBAC management.
Constraints are defined on user assignment to roles (UA) and/or(?) permission assignment to roles (PA).
Mutually exclusive roles
Consider two mutually exclusive roles, accounts-manager and purchasing-manager. Mutual exclusion in terms of UA specifies that one individual cannot be a member of both roles. Mutual exclusion in terms of PA specifies that the same permission cannot be assigned to both roles.
Cardinality constraints
There is only one person in the role of chairman of a department.
Similarly, the number of roles to which an individual user can belong could also be limited.
Correspondingly, the number of roles to which a permission can be assigned can have cardinality constraints to control the distribution of powerful permissions.
(It should be noted that minimum cardinality constraints may be difficult to implement. For example if there is a minimum number of occupants of a role, what can the system do if one of them disappears? How will the system know this has happened?)
Prerequisite roles
UA - A user can be assigned to role A only if the user is already a member of role B.
PA - Permission p can be assigned to a role only if that role already possesses permission q. For instance, in many systems permission to read a file requires permission to read the directory in which the file is located.
Constraints on sessions
It may be acceptable for a user to be a member of two roles but the user cannot be active in both roles at the same time.
Other constraints on sessions can limit the number of sessions that a user can have active at the same time.
Correspondingly, the number of sessions to which a permission is assigned can be limited.
RBAC3
Constraints can apply to the role hierarchy.
- limit the number of senior (or junior) roles that a given role may have
- two or more roles can also be constrained to have no common senior (or junior) role
Suppose that test engineer and programmer roles are declared to be mutually exclusive in previous figure. The project supervisor role violates this mutual exclusion. It would depend on a case by case basis if this would be allowed.
For cardinality constraints, do they apply only to direct membership, or do they also carry on to inherited membership?
Private roles
The shared counterpart of the private roles can be declared to have a maximum cardinality constraint of zero members. In this way test engineers must be assigned to the test engineer' role. The test engineer role serves as a means for sharing permissions with the project supervisor role.
Management model
It is intended that administrative roles AR and administrative permissions AP be respectively disjoint from the regular roles R and permissions P. The model shows that permissions can only be assigned to roles and administrative permissions can only be assigned to administrative roles. This is a built-in constraint.
How about management of the administrative hierarchy?
- create second level to manage first level, etc etc.
- left to a single chief security officer
One of the main issues in the management model is how to scope the administrative authority vested in administrative roles (which administrative role can manage which part of the model/role hierarchy).
Research directions
- design and analysis of role hierarchies
- categorization and taxonomy of constraints
- formal notation for stating and enforcing constraints, along with some measure of difficulty of enforcement
- ability to reason about constraints and analyze the net effect of an RBAC configuration in terms of higher-level policy objectives
- development of a systematic methodology that deals with the design and analysis of role hierarchies, constraints, and RBAC management in a unified framework
