Lecture 23 Outline
Reading: § 12, 16
Due: Homework 4, due on May 30, 2018 at 11:59pm; Lab 3, due on May 23, 2018 at 11:59pm
- Attacks
- Speeding up guessing: rainbow tables
- Scavenging: passwords often typed where they might be recorded as login name, in other contexts, etc.
- Ask the user: very common with some public access services
- Defenses
- For trial and error at login: dropping or back-off
- For thwarting dictionary attacks: salting
- Password aging
- Pick age so when password is guessed, it’s no longer valid
- Implementation: track previous passwords vs. upper, lower time bounds
- Ultimate in aging: One-Time Password
- Password is valid for only one use
- May work from list, or new password may be generated from old by a function
- Challenge-response systems
- Computer issues challenge, user presents response to verify secret information known/item possessed
- Example operations: f(x) = x+1, random, string (for users without computers), time of day, computer sends E(x), you answer E(D(E(x))+1)
- Note: password never sent over network
- Biometrics
- Depend on physical characteristics
- Examples: pattern of typing (remarkably effective), retinal scans, etc.
- Location
- Bind user to some location detection device (human, GPS)
- Authenticate by location of the device
- Access Control Lists
- UNIX method
- Full ACLs: describe, revocation issue
- Capabilities
- Capability-based addressing
- Inheritance of C-Lists
- Revocation: use of a global descriptor table
- Lock and Key
- Associate with each object a lock; associate with each process that has access to object a key (it’s a cross between ACLs and C-Lists)
- Example: cryptographic (Gifford). X object enciphered with key K. Associate an opener R with X. Then:
OR-Access: K can be recovered with any Di in a list of n deciphering transformations, so
R = (E1(K), E2(K), …, En(K)) and any process with access to any of the Di’s can access the file
AND-Access: need all n deciphering functions to get K: R = E1(E2(… En(K)) …))
ks
- Secret sharing