Bracket Capability For Distributed Systems Security - Presentation Transcript
Talal A. Alsubaie Presenting “Evereds” Paper (2001) Bracket Capability for Distributed Systems Security Talal A. Alsubaie
Overview
Protection in Operating System
Distributed System Security
Access Control
Access control lists
Capabilities
Case Study
Bracket Capabilities
Bracket Capabilities Implementation
Talal A. Alsubaie
Protection in Operating System
Protection features are provided by O.S.
There are many controlling access approaches to control access to objects:
Access Control Matrix, ACL, Capabilities
Most of security concerns about “Controlling Access”.
Talal A. Alsubaie
Protection in Operating System
Entities that can perform actions in the system are called subjects i.e. (Ahmed account).
Entities representing resources to which access may need to be controlled are called objects i.e. (xyz file).
Talal A. Alsubaie Object Subject Access
Protected Objects
Typical Objects We Desire to Protect:
Memory
Disk and tape drives
Printers
Programs
Networks
Data
…
Talal A. Alsubaie
Distributed System Security
Components of a distributed system can be viewed as objects according to the object-oriented paradigm.
One advantage of an object-oriented approach is that the security can be based on the interface methods of an object.
In this presentation, well talk about Object Oriented Programming Access Control.
Talal A. Alsubaie
Access Control
Is the ability to permit or deny the use of a particular resource by a particular entity.
Access control mechanisms can be used in managing
Physical resources
Accessing the University.
Logical resources
Banking Account.
Digital resources
Text document.
We’ll have an example of a Banking System
Talal A. Alsubaie
Access Control Talal A. Alsubaie Request for Operation Authorize Request
Imagine a server with a number of entities (which we will call objects) under its control.
Requests come in, but are allowed only if the sender has sufficient access rights.
Access control is how to verify rights.
Access Control List (ACL) Talal A. Alsubaie
Access Control List (ACL)
A list of permissions attached to an object.
The list specifies who is allowed to access the object and what operations are allowed to be performed on the object.
Each entry in the list specifies a subject and an operation.
Example: ( Ahmed , Write )
( Saleh, Read )
( Mohammed, Read/Write )
on XYZ file.
Talal A. Alsubaie
General Schema
One list for each object.
Shows all users who have access.
Shows what access each user has.
Can have default entries for any users.
Specific users have explicit rights and all other users have default rights.
Objects can be shared by all possible users.
Talal A. Alsubaie Ahmed R Mohammed R/W Talal W Omar Deny
How does ACL Works? Talal A. Alsubaie Create Request ( r ) as Subject ( s ) ( r , s ) Object ACL If ( s appears in ACL) if( r appears in ACL[ s ] ) grant access;
Capabilities Talal A. Alsubaie
Capabilities
A capability is a token (or ticket or key ) which :
Gives the possessor certain rights to an object.
Must be unforgeable.
May grant transfer(or propagate) rights
Something like delegation of authority.
A right to pass copies of capabilities to others.
Also should be able to revoke the capability.
User holds a “ ticket ” for each resource.
Example: ( XYZ , delete ) , hold by Ahmed
Talal A. Alsubaie
How does Capabilities Works? Talal A. Alsubaie ( r , o ) Object if( r appears in C ) grant access; ( C ) Create Request ( r ) for object ( o ) Pass capability ( C )
Case Study
E-Banking System using Java
Talal A. Alsubaie
Java Interface
An interface is a contract between a class and the outside world.
When a class implements an interface, it promises to provide the behavior published by that interface.
Talal A. Alsubaie interface Bicycle { void changeGear( int newValue); void speedUp( int increment); void applyBrakes( int decrement); } class MyBicycle implements Bicycle { // remainder of this class }
Banking System Talal A. Alsubaie A Bank Account object
What access to an Accounts object should be given to the owner of an individual account?
We must ensure that only the right account is being accessed.
This means that the Key parameter of balance and getName and the fromKey parameter of transfer must be restricted to a particular value ( Owners’ Account # ).
Talal A. Alsubaie
Extending Role-based Security
Would like the account owner to view the object as if it had the type:
MyAccount object can be seen as a virtual object .
Talal A. Alsubaie interface MyAccount { Currency balance (); String getName (); void transfer (Key toKey, Currency amount) }
Bracket Capabilities Talal A. Alsubaie
Bracket Capabilities
To gain access to an object, the object is “opened” using a capability.
For example:
Where c is a variable of type Capability .
Talal A. Alsubaie Accounts acc= c.open();
Bracket Capabilities
Each persistent object, as well as implementing an interface such as Accounts also implements the standard interface Persistent which includes methods such as deleteObject , deleteCapability and refine .
Call refine method when the possessor of a capability wishes to grant a more restricted view of the object to other users in the system.
The refine method is called as:
Talal A. Alsubaie x = c.open(); Capability cref = x.refine(interface, class);
Bracket Capabilities Talal A. Alsubaie Capability C Capability Cerf Interface x = c.open(); Capability cref = x.refine(interface, class); Bracketing Object
Bracket Capabilities
It can be seen that calls using the capability cref are directed through a kind of proxy or bracketing object.
Talal A. Alsubaie Capability C Capability Cerf Interface Bracketing Object
Bracket Capabilities Implementation Talal A. Alsubaie Capability objc Capability AtmCap ATMAccount The result of a further 'refine' operation Capability cerf2 Interface2
Talal A. Alsubaie eMail : [email_address] Website : www.talals.net
0 comments
Post a comment