Protection Models Yeong-Tay Timothy Sun September 27, 2011 Dennis Kafura – CS5204 – Operating Systems 1 Agenda What is Protection (and why do we need it?) A Simple Message Passing System Collaborative Access Control Models Access Matrix Role-Based Access Control (RBAC) Task-Based Access Control (TBAC) Team-Based Access Control (TBAC) Bell-LaPadula Lock and Key Spatial Access Control (SPACE) Context-Aware Access Control Conclusion Dennis Kafura – CS5204 – Operating Systems 2 What is Protection? Protection governs access to shared system assets Unsolicited access may be malicious or simply unintentional Having different protections in different system contexts is a core concept A Simple Message Passing System Primitive Message System consists of isolated processes Processes encapsulate their own collection of objects Inter-process communication consists of passing message back and forth; message IDs cannot be forged Communication protocols become complicated when multiple processes are involved Cannot force a process to do anything, or to destroy it Implications for Access Control Models? Should be applied and enforced at a distributed level Should be generic and configurable (expressive) Should support both fine and coarse granularity Should be usable (transparent = good) Should be easy to summarize (manageable) Should support dynamic policies Should perform reasonably (scalable) Collaborative Access Control Models (Access Matrix) Object system has a subject-object relationship Different domains have different access rights Access Matrix (2) Access Matrix (3) Both implementations (ACLs, C-Lists) have disadvantages, dynamic changes to access rights not well-supported Difficult to adapt to more complex schemes (competency, least privilege, etc.) without additional system context Ownership may be subject to other system constraints Role-Based Access Control Permissions assigned to roles rather than individual users A role models a job function Users can be assigned from one role to another Role-Based Access Control (2) Early implementations not dynamic in their assignment of roles, did not account for context (passive vs. active) Early implementations did not support role assignments to specific object instances Task-Based Access Control (TBAC) Domains contain task-based contextual information Access control changes dynamically w/ task progression Supports type-based, instance, usage-based access over RBAC Task-Based Access Control (2) Context awareness remains tied to activities, tasks, workflow progression JIT permission assignments could lead to race conditions Mainly used to augment other access control models Team-Based Access Control (TMAC, C-TMAC) Access rights associated with groups of users User context, object context Offers fine-grained control Team-Based Access Control (2) Existing implementations are underdeveloped Lacks self-adminstration capabilities of models like access matrices Needs more context-awareness Suitability for certain tasks is unclear Bell-LaPadula Intended to control the proliferation of data Uses access matrix for level clearance ★ Property – information can only become more secure, not less Lock and Key Similar but different from C-List Involves Keys and Locks Keys can change hands Key doesn’t tell you capabilities it “unlocks” until it is used Spatial Access Control (SAC) Transparent security mechanisms Access governed by credentials Does not allow for fine-grained control Difficult to apply Context-Aware Access Control Extends RBAC w/ environmental roles Roles capture environment state Activated based on environment conditions Ubiquitous computing Conclusion There are many things to consider when choosing a protection scheme for a system. No single protection model can address all of these issues but some excel at areas where others do not.