Authentication Flashcards
1
Q
Choosing Strong Passwords - calculation
A
A^L
A:= symbols; eg A-Z - A = 28
L:= length of password
2
Q
Dictionary Attacks
A
- passwords aren’t random & we had leaks
- space is cheap
- attacker can precompute hash for the safe passwords(offline)
3
Q
Salt
A
- append a random nonce to password before hashing (different for each user)
- > H(Password_Alice | salt_Alice)
- store in database salt and hash
4
Q
Pepper
A
- is a secret at users database
- make impossible with salt to reverse the hash
- > H(Password_Alice | salt_Alice | pepper)
- even when salt and hash are leaked; still no problem
5
Q
Hash Stretching
A
- slow down hash computation
- by doing several hashing rounds
6
Q
Password-Based Authentication Schemes
A
C - S: I’m user xxx
S - C: nonce
C - S: HMAC(n, pw)
7
Q
DH-EKE – Encrypted Key Exchange based on DH
A
A -> B: A, {X = g^x mod p}_pw B -> A: {Y = g^y mod p}_pw for themself: calculate key B -> A: {N_B}_k A -> B: {N_B, N_A}_k B -> A: {N_A}_k
8
Q
SPEKE – Simple Password Exponential Key Exchange
A
A -> B: A, Q_A = f(pw)^x mod p B -> A: B, Q_B = f(pw)^y mod p for themself: k = h(Q_B^x mod p) = h(Q_A^y mod p) B -> A: {N_B}_k A -> B: {N_B, N_A}_k B -> A: {N_A}_k
9
Q
Time-based token
A
- server and a person share same key
- P_T = F(K,T), where T the exact time is
- then server compares if get’s same value
10
Q
Counter-based token
A
- server and a person share same key
- P_C = F(K,C), where C is an count
- then server compares if get’s same value