home | articles | links | fun | about
Up to: CS432 Information Security

Access Control - 11/5/02

News: Intensia: public URL, earnings report MS: ruling released early
Mistake: put something on web with "hard to guess" URL. This is not protection.

Access Control Principles

Least priviledge: give minimum priv needed to do job. Problems often happen b/c of misuse of priv. Minimize damage.

Simplicity: simple designs more likely to be right.

Trusted computing base (TCB): set of things that must work correctly for system to be secure (examples: compiler, libraries... even A/C in room for computer to work reliably).

Access control: deciding which function calls are allowed. Says "yes" or "no" to each attempted call. Usually OS tells callee who caller is, and callee's code makes access control decision.

        ( )   ( )
          \   /
           \ /
       [OS Kernel]   (this is a small peice of Windows, Linux)
             |
           |  
           [ HW ]

Authorization

Two styles

Access Control Matrix (most common)

           Objects (things you can operate on)
        S  [                     ]
        u  [                     ]
        b  [                     ]
        j  [                     ]
        e  [                     ]
        c  [                     ]
        t  [                     ]
        s  [            .        ]
                        ^       
                        |               
                        |-- Each cell: list of operations

Subject wants to do operation on object.

Two issues

  1. Matrix is big, unweildly
  2. Policy: who decides how matrix filled in?

Security labels: names/keys/markers for subjects and objects. Example: label process based on user.

Example: labeling process with a userID. Suppose Alice runs program that Bob wrote.

Another try: Some combination-type subject ("Bob's code on behalf of Alice")

Can use labels to give single name to set of subjects/objects (group)

Storing the matrix - alternatives

  1. As a matrix (almost never done): lots of redundancy that can ben compressed
  2. "Profiles" for each subject, keep list of what subject can do (like row of matrix). List of non-empty elements
  3. "Access control lists" (ACL): for each object, keep list of who can do what (like storing column)

Usually, use ACL (because # objects much greater than # of subjects). Often very small in practice.

Who sets policy?

Centralized policy

Decentralized policy - "owner" of object sets ACL

ACL model: like having guard at door, he checks list Capabilities model: as long as have ticket, get in.

Mandatory policy: imposed constraints from above. Often have mix of mandatory and discretionary rules.

Groups

Define set of subjects and treat it as an individual (makes ACL shorter)

Define by set of members or by set operations (union, intersection) on other groups

Joining/leaving group changes many permissions at once.

Often have facility for person to assume role, de-assume role.

Capabilities

Definition: data structure or reference saying "the bearer may do operation O on object X"

Implementation

Crypto model: ofen no record kept of who has what priv.

Hybrid ACL/capabilities

bootstrapping: need way to get first capabilities.

Closed system: ACL
Open: capabilities