Key Dist Auth
Key Dist Auth
and Authentication
Key Distribution
Key Distribution
various key distribution alternatives for parties A and B:
1. A can select key and physically deliver to B
similar comment as 1
sometimes finding a trusted third party is another problem
If large
less secure, but less delay
Basic idea:
whenever a user A wants to communicate with B,
it requests a session key (Ks) from KDC
In other words
distribution of public keys
use of Public Key Cryptography to
distribute secret keys
public/private key as a master key
Some methods
Public Announcement
Publicly available databases/directories
Centralized distribution
Certificates
Public Announcement
Publicly available
directories/databases
There exists a directory/database for
{name, public key} pairs
write controlled
a trusted administrator
Authentication
Messages
Disadvantages
authority is an active entity and may create
a performance bottleneck
database should be kept secure to prevent
unauthorized modification
Public-Key Certificates
Public-Key Certificates
Public-Key Certificates
Digital signatures
talked about them
confidentiality
theoretically possible but slow
instead session keys can be distributed
those session keys are used for symmetric
encryption
C
E(PUa, Ks)
E (PUc, Ks)
In practice
two types
message authentication
mostly one-way
Countermeasures - 1
Sequence numbers
not a practical method
parties should keep track of the sequence
numbers
and should take care of message losses,
duplications in a secure manner
complicates the protocol
Countermeasures - 2
Timestamps
messages contain a timestamp
accept only fresh messages based on this
timestamp
sometimes used, but there are some
practical problems
clocks must be synchronized in a secure
manner (if the timestamp generated by a party
will be checked by another party)
tolerance to network delays
Countermeasures - 3
Challenge/response
Initiator sends a nonce (a challenge phrase
or number used only one-time) and
expects that nonce (or a transformation of
it) in the response
easier to implement
but may require extra message transfer
and requires active parties
not suitable for connectionless services
Needham-Schroeder Protocol
protocol overview
1. AKDC: IDA || IDB || N1
2. KDCA: E (Ka,[Ks || IDB || N1 || E (Kb,[Ks||IDA]) ])
3. AB: E (Kb,[Ks||IDA])
4. BA: E (Ks,[N2])
5. AB: E (Ks,[f(N2)])
3. AB: E (Kb,[Ks||IDA||T])
4. BA: E (Ks,[N1])
5. AB: E (Ks,[f(N1)])
1.
2.
3.
4.
5.
6.
7.
A -> B
B -> A
A -> KDC :
KDC -> A :
A -> B :
B -> A :
A -> B :
: IDA
: E (Kb, [IDA || Nb])
IDA || IDb || Na || E (Kb,[IDA || Nb])
E (Ka, [Na || IDb || Ks || E (Kb, [Ks || Nb || IDA])])
E (Kb, [Ks || Nb || IDA])
E(Ks, [Nb])
E(Ks, [f(Nb)])
Synchronization problem
Neuman Protocol
1. A -> B
: IDA || Na
2. B -> KDC : IDB || Nb || E (Kb, [IDA || Na ||Tb])
3. KDC -> A :E (Ka,[IDB || Na || Ks || Tb]) || E (Kb, [IDA||Ks ||Tb])||Nb
4. A -> B : E (Kb, [IDA || Ks || Tb]) || E(Ks, [Nb])
1. A -> B
2. B -> A
3. A -> B
A timestamp approach
A nonce approach
One-Way Authentication
Public-Key Approaches
have seen some public-key approaches
if confidentiality is major concern, can use:
tA: timestamp
rA: nonce
generated by B
not a replay (guaranteed by tB and rB)
includes rA to match the messages
Question: Do we really need tB and rB to avoid replay of
second message?
Answer is in the next protocol!