Authentication
Authentication
AUTHENTICATION
Alice must prove her identity to Bob
Alice and Bob can be humans or computers
Prove it
My password is “frank”
Alice Bob
Prove it
My password is “frank”
Alice Bob
Trudy
AUTHENTICATION ATTACK
“I’m Alice”
Prove it
My password is “frank”
Trudy Bob
Alice Bob
Prove it
h(Alice’s password)
Alice Bob
Nonce
Nonce
E(R,K)
Alice, K Bob, K
E(R,K)
E(R,K)
Alice, K Bob, K
RB, E(RA, K)
E(RB, K)
Alice, K Bob, K
2. RB, E(RA, K)
5. E(RB, K)
Trudy Bob, K
3. “I’m Alice”, RB
4. RC, E(RB, K)
Trudy Bob, K
MUTUAL AUTHENTICATION
Our one-way authentication protocol is not secure for
mutual authentication
Protocols are subtle!
The “obvious” thing may not be secure
RB, E(“Bob”,RA,K)
E(“Alice”,RB,K)
Alice, K Bob, K
{R}Alice
Alice Bob
Is this secure?
Trudy can get Alice to decrypt anything!
So, should have two key pairs
PUBLIC KEY AUTHENTICATION
“I’m Alice”
[R]Alice
Alice Bob
Is this secure?
Trudy can get Alice to sign anything!
Same as previous should have two key pairs
PUBLIC KEYS
Generally, a bad idea to use the same key pair for encryption and signing
Instead, should have…
…one key pair for encryption/decryption…
…and a different key pair for signing/verifying signatures
KEY DISTRIBUTION
SESSION KEY
Usually, a session key is required
i.e., a symmetric key for a particular session
Used for confidentiality and/or integrity
{R,K}Alice
{R +1,K}Bob
Alice Bob
Is this secure?
Alice is authenticated and session key is secure
Alice’s “nonce”, R, useless to authenticate Bob
The key K is acting as Bob’s nonce to Alice
No mutual authentication
PUBLIC KEY AUTHENTICATION
AND SESSION KEY
“I’m Alice”, R
[R,K]Bob
[R +1,K]Alice
Alice Bob
Is this secure?
Mutual authentication (good), but…
… session key is not secret (very bad)
PUBLIC KEY AUTHENTICATION
AND SESSION KEY
“I’m Alice”, R
{[R,K]Bob}Alice
{[R +1,K]Alice}Bob
Alice Bob
Is this secure?
Seems to be OK
Mutual authentication and session key!
PUBLIC KEY AUTHENTICATION
AND SESSION KEY
“I’m Alice”, R
[{R,K}Alice]Bob
[{R +1,K}Bob]Alice
Alice Bob
Is this secure?
Seems to be OK
Anyone can see {R,K}Alice and {R +1,K}Bob
TIMESTAMPS
A timestamp T is derived from current time
Timestamps used in some security protocols
Kerberos, for example
Alice Bob
Alice Bob
Trudy Bob
[{T +1}Alice]Bob
Alice Bob
Alice’s a TGT
password
E(SA,TGT,KA)
Computer KDC
Alice
REPLY
E(timestamp + 1, KAB)
Alice’s Bob
Computer