Kerberos

Note: These lecture notes were slightly modified from the ones posted on the 6.858 course website from 2014.

Kerberos setting

What's the trust model?

Kerberos architecture

Why do we need this trusted Kerberos server?

Overall architecture diagram

                                 +-----------------------+
                  c, tgs         |                       |
  [ User: Kc ]  <-------->  [ Kerberos ]                 |
       ^      \                  |           Database:   |
       |       \                 |             c: Kc     |
       V        \    s           |             s: Ks     |
 [ Server: Ks ]  \-------->   [ TGS ]                    |
                                 |         KDC           |
                                 +-----------------------+

Kerberos constructs

Basic Kerberos constructs from the paper:

Kerberos protocol mechanics:

Naming

Getting the initial ticket: "Kerberos" protocol

General weakness: Kerberos 4 assumed encryption provides message integrity.

General weakness: adversary can mount offline password-guessing attacks.

General weakness: DES hard-coded into the design, packet format.

Authenticating to a server: "TGS" protocol

General weakness: same key, K_{c,s}, used for many things

What if users connects to wrong server (analogue of MITM / phishing attack)?

What happens if the KDC is down?

Authenticating to a Unix system.

Using Kerberos in an application.

Password-changing service (administrative interface)

Replication

Security of the Kerberos database

Why didn't Kerberos use public key crypto?

Network attacks.

Forward secrecy (avoiding the password-change problem).

Cross-realm in Kerberos.

What doesn't Kerberos address?

Follow-ons.