- Client
- Key Distribution Centre consisting of:
- AS - Authentication Server
- TGS - Ticket Granting Server
- File Server (an example service)
- with
username
andpassword
- Client puts
username
&password
through a one way hash to createClient secret key
- "username wants to use file server" in clear text
- AS checks if
username
is in database - AS generates
Client secret key
fromusername
andpassword
- A:
Client/TGS session key
(encrypted withClient secret key
) - B:
Ticket Granting Ticket
- includesClient ID
,client network address
,ticket validity period
andClient/TGS session key
(encrypted withTGS secret key
)- only the AS and the TGS know the
TGS secret key
- only the AS and the TGS know the
- Client decodes message A: using
Client secret key
to getClient/TGS session key
- Client can't decode B: because it doesn't have the
TGS secret key
- C:
Ticket Granting Ticket
from B: (encrypted withTGS secret key
) + File Service ID - D: Authenitcator composed of
Client ID
andtimestamp
(encrypted withClient/TGS session key
from A:) - TGS decrypts C: to get
TGT
(which includesClient ID
,client network address
,ticket validity period
andClient/TGS session key
) Now client & TGS can talk to each other because they both haveClient/TGS session key
. - TGS decrypts D: using
Client/TGS session
key to getClient ID
andtimestamp
- TGS checks that
Client ID
from C: matchesClient ID
from D: andtimestamp
does not exceed ticket validity period
- E:
Client-to-FS ticket
(Client ID
,network address
,validity period
,Client/Server session key
- encrypted withFS secret key
) - only file server can decrypt E:
- F:
Client/Server session key
(encrypted withClient/TGS session key
from A:) - Client decodes F: with
Client/TGS session key
to getClient/Server session key
-
E: Client to FS ticket (
Client ID
,network address
,validity period
,Client/Server session key
- encrypted withFS secret key
) -
G:
Authenticator
composed ofClient ID
andtimestamp
(encrypted withClient/Server session key
from F:) -
FS decrypts E: using FS secret key to get:
Client ID
,network address
,validity period
,Client/Server session key
-
FS decrypts G: using
Client/Server session key
to getClient ID
andtimestamp
-
FS checks:
Client ID
from E: matchesClient ID
from G:timestamp
does not exceedvalidity period
- H: the
timestamp
found in G + 1 encrypted withClient/Server session key
- Client decrypts H: using
Client/Server session key
, and checkstimestamp
istimestamp
+ 1 - if so, Client and FS can communicate safely