Lecture 18: Confidentiality, Authorization, and Protocols

Prepared by Daniel Rosales


Midterm Grade Distribution

score range # students within this range
80 - 89 3
70 - 79 7
60 - 69 25
50 - 59 30
40 - 49 23
30 - 39 10
20 - 29 2
10 - 19 2
Median 53
Mean 53.3
SD 14

Kerckhoffs's Principle

Design- algorithm, code, network
The key is kept secret.

Kerckhoffs's Principle

Would it not be easier to just keep the whole design a secret (security via obscurity)?
No, the DVD was based on this technique and it did not work. Plans will be leaked out.

Logging into Unix

The password was stored in /etc/passwd. There is a form where a cryptographic checksum (hash function) is used

Originally, the hash function was made to be expensive to frustrate hackers (using a brute force method). This did not work because computers became faster. /etc/shadow is used to store password hashes and is only readable by privileged users (root).

Authentication

External Authentication Authentication via passwords: possible attacks Internal Authentication

Authentication over a network.
We must assume attacker can snoop, alter, delete messages.
Example: Suppose we have client A and server B. We send a message, M, from A to B
Message: A->B { "I'm A" and my password is 'plugh'}
We can then use a key, k, such that


Key Distribution Problem

we can use a nonce , random bit strings ( /dev/random produces random data based on "driver noise" but this can be subtly exploited)
An example of using a nonce is as follows: A->B { "I'm A" and my password is 'plugh' ^ nonce}k

Public key System
This is slower than the previous authentication techniques
Private key: K, Public Key: U

Two Sample Protocols

SSH

IPSEC

Authentication and Access Control

Authentication Cube

Having successfully completed authentication, we need to define access (authorization). This is represented above as a 3D array of booleans

Access Control Lists
attached to each file is a a list of who's to do what with that file
Example

Capability
attached to each user is a list of files that the user is authorized to access (file descriptor in linux)

Implementation

Windows- style of ACLs extend UNIX permissions (self, group, other)

Linux
ACLs are not of fixed size
We can use the command setfacl to set the file access control list
Example: set-facl -n group:tas:rwx