SlideShare a Scribd company logo
Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Chapter 14: Protection
14.2 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Chapter 14: Protection
 Goals of Protection
 Principles of Protection
 Domain of Protection
 Access Matrix
 Implementation of Access Matrix
 Access Control
 Revocation of Access Rights
 Capability-Based Systems
 Language-Based Protection
14.3 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Objectives
 Discuss the goals and principles of protection in a modern
computer system
 Explain how protection domains combined with an access
matrix are used to specify the resources a process may
access
 Examine capability and language-based protection systems
14.4 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Goals of Protection
 In one protection model, computer 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
14.5 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Principles of Protection
 Guiding principle – principle of least privilege
 Programs, users and systems should be given just
enough privileges to perform their tasks
 Limits damage if entity has a bug, gets abused
 Can be static (during life of system, during life of
process)
 Or dynamic (changed by process as needed) – domain
switching, privilege escalation
 “Need to know” a similar concept regarding access to
data
14.6 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Principles of Protection (Cont.)
 Must consider “grain” aspect
 Rough-grained privilege management easier, simpler,
but least privilege now done in large chunks
 For example, traditional Unix processes either have
abilities of the associated user, or of root
 Fine-grained management more complex, more
overhead, but more protective
 File ACL lists, RBAC
 Domain can be user, process, procedure
14.7 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
 Domain = set of access-rights
14.8 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Domain Implementation (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
 Domain switch accomplished via passwords
 su command temporarily switches to another user’s
domain when other domain’s password provided
 Domain switching via commands
 sudo command prefix executes specified command in
another domain (if original domain has privilege or
password given)
14.9 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Domain Implementation (MULTICS)
 Let Di and Dj be any two domain rings
 If j < I  Di  Dj
14.10 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Multics Benefits and Limits
 Ring / hierarchical structure provided more than the basic
kernel / user or root / normal user design
 Fairly complex -> more overhead
 But does not allow strict need-to-know
 Object accessible in Dj but not in Di, then j must be < i
 But then every segment accessible in Di also
accessible in Dj
14.11 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
14.12 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Use of Access Matrix
 If a process in Domain Di tries to do “op” on object Oj, then “op”
must be in the access matrix
 User who creates object can define access column for that
object
 Can be expanded to dynamic protection
 Operations to add, delete access rights
 Special access rights:
 owner of Oi
 copy op from Oi to Oj (denoted by “*”)
 control – Di can modify Dj access rights
 transfer – switch from domain Di to Dj
 Copy and Owner applicable to an object
 Control applicable to domain object
14.13 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Use of Access Matrix (Cont.)
 Access matrix design separates mechanism from policy
 Mechanism
 Operating system provides access-matrix + rules
 If ensures that the matrix is only manipulated by
authorized agents and that rules are strictly enforced
 Policy
 User dictates policy
 Who can access what object and in what mode
 But doesn’t solve the general confinement problem
14.14 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Access Matrix of Figure A with Domains as Objects
14.15 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Access Matrix with Copy Rights
14.16 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Access Matrix With Owner Rights
14.17 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Modified Access Matrix of Figure B
14.18 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Implementation of Access Matrix
 Generally, a sparse matrix
 Option 1 – Global table
 Store ordered triples <domain, object,
rights-set> in table
 A requested operation M on object Oj within domain
Di -> search table for < Di, Oj, Rk >
 with M ∈ Rk
 But table could be large -> won’t fit in main memory
 Difficult to group objects (consider an object that all
domains can read)
14.19 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Implementation of Access Matrix (Cont.)
 Option 2 – Access lists for objects
 Each column implemented as an access list for one
object
 Resulting per-object list consists of ordered pairs
<domain, rights-set> defining all domains with
non-empty set of access rights for the object
 Easily extended to contain default set -> If M ∈ default
set, also allow access
14.20 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Implementation of Access Matrix (Cont.)
 Each column = Access-control list for one object
Defines who can perform what operation
Domain 1 = Read, Write
Domain 2 = Read
Domain 3 = Read
 Each Row = Capability List (like a key)
For each domain, what operations allowed on what objects
Object F1 – Read
Object F4 – Read, Write, Execute
Object F5 – Read, Write, Delete, Copy
14.21 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Implementation of Access Matrix (Cont.)
 Option 3 – Capability list for domains
 Instead of object-based, list is domain based
 Capability list for domain is list of objects together with operations
allows on them
 Object represented by its name or address, called a capability
 Execute operation M on object Oj, process requests operation and
specifies capability as parameter
 Possession of capability means access is allowed
 Capability list associated with domain but never directly accessible
by domain
 Rather, protected object, maintained by OS and accessed
indirectly
 Like a “secure pointer”
 Idea can be extended up to applications
14.22 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Implementation of Access Matrix (Cont.)
 Option 4 – Lock-key
 Compromise between access lists and capability lists
 Each object has list of unique bit patterns, called locks
 Each domain as list of unique bit patterns called keys
 Process in a domain can only access object if domain
has key that matches one of the locks
14.23 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Comparison of Implementations
 Many trade-offs to consider
 Global table is simple, but can be large
 Access lists correspond to needs of users
 Determining set of access rights for domain non-
localized so difficult
 Every access to an object must be checked
– Many objects and access rights -> slow
 Capability lists useful for localizing information for a given
process
 But revocation capabilities can be inefficient
 Lock-key effective and flexible, keys can be passed freely
from domain to domain, easy revocation
14.24 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Comparison of Implementations (Cont.)
 Most systems use combination of access lists and
capabilities
 First access to an object -> access list searched
 If allowed, capability created and attached to
process
– Additional accesses need not be checked
 After last access, capability destroyed
 Consider file system with ACLs per file
14.25 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Access Control
 Protection can be applied to non-file
resources
 Oracle Solaris 10 provides role-
based access control (RBAC) to
implement least privilege
 Privilege is right to execute
system call or use an option
within a system call
 Can be assigned to processes
 Users assigned roles granting
access to privileges and
programs
 Enable role via password to
gain its privileges
 Similar to access matrix
14.26 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Revocation of Access Rights
 Various options to remove the access right of a domain to an
object
 Immediate vs. delayed
 Selective vs. general
 Partial vs. total
 Temporary vs. permanent
 Access List – Delete access rights from access list
 Simple – search access list and remove entry
 Immediate, general or selective, total or partial,
permanent or temporary
14.27 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Revocation of Access Rights (Cont.)
 Capability List – Scheme required to locate capability in the system
before capability can be revoked
 Reacquisition – periodic delete, with require and denial if revoked
 Back-pointers – set of pointers from each object to all capabilities
of that object (Multics)
 Indirection – capability points to global table entry which points to
object – delete entry from global table, not selective (CAL)
 Keys – unique bits associated with capability, generated when
capability created
 Master key associated with object, key matches master key for
access
 Revocation – create new master key
 Policy decision of who can create and modify keys – object
owner or others?
14.28 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Capability-Based Systems
 Hydra
 Fixed set of access rights known to and interpreted by the system
 i.e. read, write, or execute each memory segment
 User can declare other auxiliary rights and register those with
protection system
 Accessing process must hold capability and know name of
operation
 Rights amplification allowed by trustworthy procedures for a
specific type
 Interpretation of user-defined rights performed solely by user's
program; system provides access protection for use of these rights
 Operations on objects defined procedurally – procedures are
objects accessed indirectly by capabilities
 Solves the problem of mutually suspicious subsystems
 Includes library of prewritten security routines
14.29 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Capability-Based Systems (Cont.)
 Cambridge CAP System
 Simpler but powerful
 Data capability - provides standard read, write, execute
of individual storage segments associated with object –
implemented in microcode
 Software capability -interpretation left to the
subsystem, through its protected procedures
 Only has access to its own subsystem
 Programmers must learn principles and techniques
of protection
14.30 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Language-Based Protection
 Specification of protection in a programming language
allows the high-level description of policies for the
allocation and use of resources
 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
14.31 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
 Generally, Java’s load-time and run-time checks enforce type
safety
 Classes effectively encapsulate and protect data and
methods from other classes
14.32 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Stack Inspection
Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
End of Chapter 14

More Related Content

PPT
system protection.ppt
PPT
ch14 protection use in operating sys.ppt
PPT
chapter in operating system presentation
PPT
14.Protection
PPTX
ch17.pptx
PPT
W ch14
PPT
Lecture10-File Systems-PAfgfgfgfgfgfgf.ppt
PPT
Chapter 11 File-System Interface in os.ppt
system protection.ppt
ch14 protection use in operating sys.ppt
chapter in operating system presentation
14.Protection
ch17.pptx
W ch14
Lecture10-File Systems-PAfgfgfgfgfgfgf.ppt
Chapter 11 File-System Interface in os.ppt

Similar to ch1sdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsds4.ppt (20)

PPT
process and threads in operating systems
PPT
Computer Operating Systems Structure Management Chapter 2
PPT
chapter 2 name:- operating System Structures
PPT
operating system introduction to os1.ppt
PPT
chapter 2 operating systems galvin slides
PPT
Operating System task and sub task system call ch2 system call.ppt
PPT
PPT
PPT
ch2.ppt
PPT
ch2.ppt
PPT
PPT
Operating-System Structures
PDF
Operating System - Unit I - Operating System Structures
PPTX
Unit 1 ppt
PPT
operating system structures by silberschastz
PPT
MODULE 2.ppt
PPT
operating Systems Structures and functions
process and threads in operating systems
Computer Operating Systems Structure Management Chapter 2
chapter 2 name:- operating System Structures
operating system introduction to os1.ppt
chapter 2 operating systems galvin slides
Operating System task and sub task system call ch2 system call.ppt
ch2.ppt
ch2.ppt
Operating-System Structures
Operating System - Unit I - Operating System Structures
Unit 1 ppt
operating system structures by silberschastz
MODULE 2.ppt
operating Systems Structures and functions
Ad

Recently uploaded (20)

PPTX
UNIT 4 Total Quality Management .pptx
PPTX
Safety Seminar civil to be ensured for safe working.
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PDF
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
PPT
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
PPT
A5_DistSysCh1.ppt_INTRODUCTION TO DISTRIBUTED SYSTEMS
PDF
null (2) bgfbg bfgb bfgb fbfg bfbgf b.pdf
PDF
COURSE DESCRIPTOR OF SURVEYING R24 SYLLABUS
PDF
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
PDF
86236642-Electric-Loco-Shed.pdf jfkduklg
PDF
Visual Aids for Exploratory Data Analysis.pdf
PPTX
Artificial Intelligence
PPT
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
PPTX
communication and presentation skills 01
PPTX
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
PPT
Total quality management ppt for engineering students
PDF
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
PPTX
Nature of X-rays, X- Ray Equipment, Fluoroscopy
PPTX
Current and future trends in Computer Vision.pptx
PDF
BIO-INSPIRED ARCHITECTURE FOR PARSIMONIOUS CONVERSATIONAL INTELLIGENCE : THE ...
UNIT 4 Total Quality Management .pptx
Safety Seminar civil to be ensured for safe working.
Automation-in-Manufacturing-Chapter-Introduction.pdf
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
A5_DistSysCh1.ppt_INTRODUCTION TO DISTRIBUTED SYSTEMS
null (2) bgfbg bfgb bfgb fbfg bfbgf b.pdf
COURSE DESCRIPTOR OF SURVEYING R24 SYLLABUS
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
86236642-Electric-Loco-Shed.pdf jfkduklg
Visual Aids for Exploratory Data Analysis.pdf
Artificial Intelligence
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
communication and presentation skills 01
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
Total quality management ppt for engineering students
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
Nature of X-rays, X- Ray Equipment, Fluoroscopy
Current and future trends in Computer Vision.pptx
BIO-INSPIRED ARCHITECTURE FOR PARSIMONIOUS CONVERSATIONAL INTELLIGENCE : THE ...
Ad

ch1sdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsds4.ppt

  • 1. Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Chapter 14: Protection
  • 2. 14.2 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Chapter 14: Protection  Goals of Protection  Principles of Protection  Domain of Protection  Access Matrix  Implementation of Access Matrix  Access Control  Revocation of Access Rights  Capability-Based Systems  Language-Based Protection
  • 3. 14.3 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Objectives  Discuss the goals and principles of protection in a modern computer system  Explain how protection domains combined with an access matrix are used to specify the resources a process may access  Examine capability and language-based protection systems
  • 4. 14.4 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Goals of Protection  In one protection model, computer 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
  • 5. 14.5 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Principles of Protection  Guiding principle – principle of least privilege  Programs, users and systems should be given just enough privileges to perform their tasks  Limits damage if entity has a bug, gets abused  Can be static (during life of system, during life of process)  Or dynamic (changed by process as needed) – domain switching, privilege escalation  “Need to know” a similar concept regarding access to data
  • 6. 14.6 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Principles of Protection (Cont.)  Must consider “grain” aspect  Rough-grained privilege management easier, simpler, but least privilege now done in large chunks  For example, traditional Unix processes either have abilities of the associated user, or of root  Fine-grained management more complex, more overhead, but more protective  File ACL lists, RBAC  Domain can be user, process, procedure
  • 7. 14.7 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition 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  Domain = set of access-rights
  • 8. 14.8 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Domain Implementation (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  Domain switch accomplished via passwords  su command temporarily switches to another user’s domain when other domain’s password provided  Domain switching via commands  sudo command prefix executes specified command in another domain (if original domain has privilege or password given)
  • 9. 14.9 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Domain Implementation (MULTICS)  Let Di and Dj be any two domain rings  If j < I  Di  Dj
  • 10. 14.10 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Multics Benefits and Limits  Ring / hierarchical structure provided more than the basic kernel / user or root / normal user design  Fairly complex -> more overhead  But does not allow strict need-to-know  Object accessible in Dj but not in Di, then j must be < i  But then every segment accessible in Di also accessible in Dj
  • 11. 14.11 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition 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
  • 12. 14.12 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Use of Access Matrix  If a process in Domain Di tries to do “op” on object Oj, then “op” must be in the access matrix  User who creates object can define access column for that object  Can be expanded to dynamic protection  Operations to add, delete access rights  Special access rights:  owner of Oi  copy op from Oi to Oj (denoted by “*”)  control – Di can modify Dj access rights  transfer – switch from domain Di to Dj  Copy and Owner applicable to an object  Control applicable to domain object
  • 13. 14.13 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Use of Access Matrix (Cont.)  Access matrix design separates mechanism from policy  Mechanism  Operating system provides access-matrix + rules  If ensures that the matrix is only manipulated by authorized agents and that rules are strictly enforced  Policy  User dictates policy  Who can access what object and in what mode  But doesn’t solve the general confinement problem
  • 14. 14.14 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Access Matrix of Figure A with Domains as Objects
  • 15. 14.15 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Access Matrix with Copy Rights
  • 16. 14.16 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Access Matrix With Owner Rights
  • 17. 14.17 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Modified Access Matrix of Figure B
  • 18. 14.18 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Implementation of Access Matrix  Generally, a sparse matrix  Option 1 – Global table  Store ordered triples <domain, object, rights-set> in table  A requested operation M on object Oj within domain Di -> search table for < Di, Oj, Rk >  with M ∈ Rk  But table could be large -> won’t fit in main memory  Difficult to group objects (consider an object that all domains can read)
  • 19. 14.19 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Implementation of Access Matrix (Cont.)  Option 2 – Access lists for objects  Each column implemented as an access list for one object  Resulting per-object list consists of ordered pairs <domain, rights-set> defining all domains with non-empty set of access rights for the object  Easily extended to contain default set -> If M ∈ default set, also allow access
  • 20. 14.20 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Implementation of Access Matrix (Cont.)  Each column = Access-control list for one object Defines who can perform what operation Domain 1 = Read, Write Domain 2 = Read Domain 3 = Read  Each Row = Capability List (like a key) For each domain, what operations allowed on what objects Object F1 – Read Object F4 – Read, Write, Execute Object F5 – Read, Write, Delete, Copy
  • 21. 14.21 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Implementation of Access Matrix (Cont.)  Option 3 – Capability list for domains  Instead of object-based, list is domain based  Capability list for domain is list of objects together with operations allows on them  Object represented by its name or address, called a capability  Execute operation M on object Oj, process requests operation and specifies capability as parameter  Possession of capability means access is allowed  Capability list associated with domain but never directly accessible by domain  Rather, protected object, maintained by OS and accessed indirectly  Like a “secure pointer”  Idea can be extended up to applications
  • 22. 14.22 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Implementation of Access Matrix (Cont.)  Option 4 – Lock-key  Compromise between access lists and capability lists  Each object has list of unique bit patterns, called locks  Each domain as list of unique bit patterns called keys  Process in a domain can only access object if domain has key that matches one of the locks
  • 23. 14.23 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Comparison of Implementations  Many trade-offs to consider  Global table is simple, but can be large  Access lists correspond to needs of users  Determining set of access rights for domain non- localized so difficult  Every access to an object must be checked – Many objects and access rights -> slow  Capability lists useful for localizing information for a given process  But revocation capabilities can be inefficient  Lock-key effective and flexible, keys can be passed freely from domain to domain, easy revocation
  • 24. 14.24 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Comparison of Implementations (Cont.)  Most systems use combination of access lists and capabilities  First access to an object -> access list searched  If allowed, capability created and attached to process – Additional accesses need not be checked  After last access, capability destroyed  Consider file system with ACLs per file
  • 25. 14.25 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Access Control  Protection can be applied to non-file resources  Oracle Solaris 10 provides role- based access control (RBAC) to implement least privilege  Privilege is right to execute system call or use an option within a system call  Can be assigned to processes  Users assigned roles granting access to privileges and programs  Enable role via password to gain its privileges  Similar to access matrix
  • 26. 14.26 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Revocation of Access Rights  Various options to remove the access right of a domain to an object  Immediate vs. delayed  Selective vs. general  Partial vs. total  Temporary vs. permanent  Access List – Delete access rights from access list  Simple – search access list and remove entry  Immediate, general or selective, total or partial, permanent or temporary
  • 27. 14.27 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Revocation of Access Rights (Cont.)  Capability List – Scheme required to locate capability in the system before capability can be revoked  Reacquisition – periodic delete, with require and denial if revoked  Back-pointers – set of pointers from each object to all capabilities of that object (Multics)  Indirection – capability points to global table entry which points to object – delete entry from global table, not selective (CAL)  Keys – unique bits associated with capability, generated when capability created  Master key associated with object, key matches master key for access  Revocation – create new master key  Policy decision of who can create and modify keys – object owner or others?
  • 28. 14.28 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Capability-Based Systems  Hydra  Fixed set of access rights known to and interpreted by the system  i.e. read, write, or execute each memory segment  User can declare other auxiliary rights and register those with protection system  Accessing process must hold capability and know name of operation  Rights amplification allowed by trustworthy procedures for a specific type  Interpretation of user-defined rights performed solely by user's program; system provides access protection for use of these rights  Operations on objects defined procedurally – procedures are objects accessed indirectly by capabilities  Solves the problem of mutually suspicious subsystems  Includes library of prewritten security routines
  • 29. 14.29 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Capability-Based Systems (Cont.)  Cambridge CAP System  Simpler but powerful  Data capability - provides standard read, write, execute of individual storage segments associated with object – implemented in microcode  Software capability -interpretation left to the subsystem, through its protected procedures  Only has access to its own subsystem  Programmers must learn principles and techniques of protection
  • 30. 14.30 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Language-Based Protection  Specification of protection in a programming language allows the high-level description of policies for the allocation and use of resources  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
  • 31. 14.31 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition 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  Generally, Java’s load-time and run-time checks enforce type safety  Classes effectively encapsulate and protect data and methods from other classes
  • 32. 14.32 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Stack Inspection
  • 33. Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition End of Chapter 14