Secure Operating Systems Lesson F: Capability Based Systems.

Slides:



Advertisements
Similar presentations
Computer-System Structures Er.Harsimran Singh
Advertisements

OS Components and Structure
CMSC 414 Computer (and Network) Security Lecture 13 Jonathan Katz.
Chapter 6 User Protections in OS. csci5233 computer security & integrity (Chap. 6) 2 Outline User-level protections 1.Memory protection 2.Control of access.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
Bilkent University Department of Computer Engineering
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 14: Protection.
CS-550 (M.Soneru): Protection and Security - 1 [SaS] 1 Protection and Security.
CS 300 – Lecture 22 Intro to Computer Architecture / Assembly Language Virtual Memory.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 14: Protection.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Protection.
Lecture 18 Page 1 CS 111 Online Access Control Security could be easy – If we didn’t want anyone to get access to anything The trick is giving access to.
2.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 2: Computer-System Structures Computer System Operation I/O Structure.
CHAPTER 2: COMPUTER-SYSTEM STRUCTURES Computer system operation Computer system operation I/O structure I/O structure Storage structure Storage structure.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 2: Computer-System Structures Computer System Operation I/O Structure.
1 CSE Department MAITSandeep Tayal Computer-System Structures Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection.
Chapter 14 Protection Bernard Chen Spring Goal of Protection Protection was originally conceived as an adjunct to multiprogramming operation.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 14: Protection.
CIT 380: Securing Computer SystemsSlide #1 CIT 380: Securing Computer Systems Access Control.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 18: Protection Goals of Protection Objects and Domains Access Matrix Implementation.
Cosc 4740 Chapter 13: Protection. Goals of Protection Operating system consists of a collection of objects, hardware or software Each object has a unique.
CE Operating Systems Lecture 21 Operating Systems Protection with examples from Linux & Windows.
14.1/21 Part 5: protection and security Protection mechanisms control access to a system by limiting the types of file access permitted to users. In addition,
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
Lecture 18 Page 1 CS 111 Online OS Use of Access Control Operating systems often use both ACLs and capabilities – Sometimes for the same resource E.g.,
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 2 Computer-System Structures Slide 1 Chapter 2 Computer-System Structures.
Silberschatz, Galvin and Gagne  Applied Operating System Concepts Chapter 2: Computer-System Structures Computer System Architecture and Operation.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Lecture 14 Page 1 CS 111 Summer 2013 Security in Operating Systems: Basics CS 111 Operating Systems Peter Reiher.
Chapter 2: Computer-System Structures(Hardware) or Architecture or Organization Computer System Operation I/O Structure Storage Structure Storage Hierarchy.
CSS430 Protection1 Textbook Ch14 These slides were compiled from the OSC textbook slides (Silberschatz, Galvin, and Gagne) and the instructor’s class materials.
Lecture 12 Page 1 CS 111 Summer 2014 Security in Operating Systems: Basics CS 111 Operating Systems Peter Reiher.
Lecture 3 Page 1 CS 236 Online Security Mechanisms CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Lecture 4 Page 1 CS 111 Online Modularity and Memory Clearly, programs must have access to memory We need abstractions that give them the required access.
CSE Operating System Principles Protection.
ACCESS MATRIX IMPLEMENTATION AND COMPARISON By: Rushabh Dharwadkar Roll no: TE COMP.
Chapter 3:File Management
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
PROTECTION.
Introduction to Operating Systems
Chapter 2: Computer-System Structures(Hardware)
Chapter 2: Computer-System Structures
Operating Systems Protection Alok Kumar Jagadev.
Chapter 14: Protection Modified by Dr. Neerja Mhaskar for CS 3SH3.
Chapter 14: System Protection
Modularity and Memory Clearly, programs must have access to memory
Chapter 14: Protection.
Chapter 14: Protection Source & Copyright: Operating System Concepts, Silberschatz, Galvin and Gagne.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
Introduction to Operating Systems
CE Operating Systems Lecture 21
Chapter 14: Protection.
Computer-System Architecture
Module 2: Computer-System Structures
Chapter 14: Protection.
Chapter 14: Protection.
Module 2: Computer-System Structures
OS Components and Structure
Chapter 14: Protection.
Chapter 14: Protection.
Chapter 2: Computer-System Structures
Chapter 2: Computer-System Structures
Module 2: Computer-System Structures
Module 2: Computer-System Structures
Chapter 14: Protection.
Presentation transcript:

Secure Operating Systems Lesson F: Capability Based Systems

Where are we?  Half way through Windows, but I feel the need for a break; I’m depressed about security so I need to look at something hopeful: Capability based systems

Capabilities  Old idea, goes back to the mid-sixties (Dennis and Van Horn, 1966)  Capabilities provide: Single mechanism to address primary and secondary memory Single mechanism to address both hardware and software resources  Solve or simplify many problems, but also create some 

Concept  A capability is “a token, ticket or key that gives the possessor permission to access an entity or object in a computer system”  Implemented as an object identifier and access rights  In principle, the object could be anything at all (file, array, sheep) Rights define operations we can carry out (read, write, shear)

Capability List  Each program would have a capability list – this defines all the objects available  Thus, a capability provides addressing and access rights to the object Because of this, the system must prevent capability object manipulation (i.e. forged capabilities) Does this sound like HANDLES yet?  When a new file is created, a new capability is added to the capability list

Memory, Conventionally  System supports a segmented process virtual address; virtual address is local, and is translated through the process-local segment table  A program can construct any virtual address it likes; on each reference, the OS has to check the validity of the request  Loading a segment table is a privileged operation by the OS  Sharing of segments between processes is messy – must be moderated by the OS – and is worse if we want the same virtual address (when would that happen?)  Dynamic sharing requires OS intervention

Memory, Capabilities  System has segmented virtual memory, but can only be addressed if a capability for that segment has been loaded  Loading a capability register is not privileged, but the OS must control the contents  Address space can be changed dynamically  Sharing a virtual address with something doesn’t necessarily imply access  A process can share by copying or sending the capability to another process

Private capability lists  Capability systems work very well with respect to objects Allow a routine to have a private capability list Can help isolate errors We simply pass the capability to give access to a particular object

Temporal advantages  A huge advantage of capabilities is that a capability exists system wide Thus, in a traditional system, an address is only meaningful within a particular process In a capability system, addresses (capabilities) are independent of the process using it  Use the unique identifier to determine if something should be freed

Default deny?  Capabilities are interesting, because in some sense, they are default deny… if you don’t have the capability, you can’t access something  In a “normal” system, you can roll the dice and see if the file/object will open for you

Real World Example  Carla has a safe deposit box. Sometimes, she would like trusted friends to make deposits or withdrawals Approach 1: ACL Approach 2: Carla gives you a key when she allows you in

The trade off ACL  Bank must maintain a list for each box  Bank must ensure the validity of the list at all times  Bank must prove identity  To allow a new person, Carla needs to visit the bank  A friend cannot extend the privilege  Removal requires a visit to the bank Capability  Once the keys are given out, the bank is out of the loop  The lock/key system must be very secure; hard to copy a key  The owner can give out a key to anyone, anytime  One a key is out of Carla’s sight she doesn’t know what happens to it  Carla can ask for her key back when she is done

Issues: Storage  A capability based system doesn’t really have a privileged mode of operation; it’s just about what capabilities you have  The hardware must be able to detect every attempt to forge or modify a capability  Remember, must store identifier or name and the privileges the capability grants

Issue: Concurrency  Sharing of objects is now easy, but concurrency can become a bit of a problem  Of course this isn’t specific to a capability based system

Revocation  Dealing with revocation can be tricky – you can design a system, but it’s hard  Once someone has the capability, how, as the object owner, can you force it back?  Can you force the capability to be non- transferrable, while you’re at it?

To Do  Read Capability-Based Computer Systems, Ch 1 and Ch 10  This will be on the final

Questions & Comments  What do you want to know?