Protection
Protection
Goals of Protection Domain of Protection Access Matrix Implementation of Access Matrix Revocation of Access Rights Capability-Based Systems Language-Based Protection
Protection
Operating system consists of a collection of objects, hardware or software Each object has a unique name and can be accessed through a well-defined set of operations. Protection problem - ensure that each object is accessed correctly and only by those processes that are allowed to do so.
Domain Structure
Access-right = <object-name, rights-set> where rights-set is a subset of all valid operations that can be performed on the object.
Operating System Concepts FAROOQ
UNIX
Domain = user-id Domain switch accomplished via file system.
Each file has associated with it a domain bit (setuid bit). When file is executed and setuid = on, then user-id is set to owner of the file being executed. When execution completes user-id is reset.
If j < I Di Dj
Multics Rings
Access Matrix
View protection as a matrix (access matrix) Rows represent domains Columns represent objects Access(i, j) is the set of operations that a process executing in Domaini can invoke on Objectj
Operating System Concepts FAROOQ
Access Matrix
Figure A
Operating System Concepts FAROOQ
Policy
User dictates policy. Who can access what object and in what mode.
Figure B
Capability List Scheme required to locate capability in the system before capability can be revoked.
Reacquisition Back-pointers Indirection Keys
Capability-Based Systems
Hydra
Fixed set of access rights known to and interpreted by the system. Interpretation of user-defined rights performed solely by user's program; system provides access protection for use of these rights.
Language-Based Protection
Specification of protection in a programming language allows the high-level description of policies for the allocation and use of resources.
Operating System Concepts FAROOQ
Language implementation can provide software for protection enforcement when automatic hardware-supported checking is unavailable. Interpret protection specifications to generate calls on whatever protection system is provided by the hardware and the operating system.
Protection in Java 2
Protection is handled by the Java Virtual Machine (JVM) A class is assigned a protection domain when it is loaded by the JVM.
The protection domain indicates what operations the class can (and cannot) perform.
If a library method is invoked that performs a privileged operation, the stack is inspected to ensure the operation can be performed by the library.
Stack Inspection