CS111, Lecture 19

by:
Zhuping Hu
Shen Shen
Nick Elya

Cloud Computing

Mainframes - 1960s Clusters - 1990s Clouds

Clouds

Most well known clouds: AmazonEC2, Globus

Advantages over clusters/grids: Disdvantages:

Security

We want something simpler than resources × principals × access types, something easier to manage & understand
Need to accurately prohibit "bad" access and allow "good" access

Traditional Unix

rwx rwx rwx
[user] [group] [other]

Originally, users had 1 group, but now they can have multiple.

ACLs - Access Control Lists

Owner of a resource can specify an access list.
An access list is a list of principals and their accesses.

In Solaris, a very simple ACL would look like this:
$ getfacl .
    user::rwx
    group::r_x
    other::r_x
	
$ setfacl .
ACL key idea: making sure the default ACLs are correct when a resource is created

Role-Based Access Control (RBAC)

Replaces principals with roles.
Users can assume various roles.
Some example roles: Applications run limited roles.

Mechanisms for enforcing access control

ACLs

Each resource has an ACL (controlled by the OS) attached to it, all accesses are mediated by the OS.

Capabilities

Each principal has a set of capabilities. They have a hashed pointer to the resource which the OS decrypts. (This can be done in hardware)

Trusted Software

From an OS viewpoint: Oses don't drust apps because they don't trust the users that run them.
However, some programs are trusted, like login. These programs have a bit set in their permissions that makes them run as the owner of the file when executed, this way they can do things only root can do.

But which programs do we trust? How can we trust login? By checking a cryptographic checksum of the program.
Apparently there's a very large trusted computing base, which is a big security problem.