CS 378 Kerberos Vitaly Shmatikov slide 1 ManytoMany
CS 378 Kerberos Vitaly Shmatikov slide 1
Many-to-Many Authentication ? Users Servers How do users prove their identities when requesting services from machines on the network? Naïve solution: every server knows every user’s password • Insecure: compromise of one server is enough to compromise all users • Inefficient: to change his password, user must contact every server 2
Requirements u. Security • Against attacks by passive eavesdroppers and actively malicious users u. Reliability u. Transparency • Users shouldn’t be aware of authentication taking place • Entering password is Ok, if done rarely u. Scalability • Large number of users and servers 3
Threats u. User impersonation • Malicious user with access to a workstation pretends to be another user from the same workstation – Can’t trust workstations to verify users’ identities u. Network address impersonation • Malicious user changes network address of his workstation to impersonate another workstation u. Eavesdropping, tampering and replay • Malicious user eavesdrops on, tampers with or replays other users’ conversations to gain unauthorized access 4
Solution: Trusted Third Party User requests ticket for some service; proves his identity Knows all users’ and servers’ passwords User receives ticket User Ticket is used to access desired network service Servers u. Trusted authentication service on the network • Knows all passwords, can grant access to any server • Convenient, but also the single point of failure • Requires high level of physical security 5
What Should a Ticket Look Like? User Ticket gives holder access to a network service Server u. Ticket cannot include server’s plaintext password • Otherwise, next time user will access server directly without proving his identity to authentication service u. Solution: encrypt some information with a key derived from the server’s password • Server can decrypt ticket and verify information • User does not learn server’s password 6
What Should a Ticket Include? User Encrypted ticket Knows all users’ and servers’ passwords Encrypted ticket Server u User name u Server name u Address of user’s workstation • Otherwise, a user on another workstation can steal the ticket and use it to gain access to the server u Ticket lifetime u A few other things (e. g. , session key) 7
How Is Authentication Done? User Password Encrypted ticket Authentication server u. Insecure: passwords are sent in plaintext • Eavesdropper can steal the password and later impersonate the user to the authentication server u. Inconvenient: need to send the password each time to obtain the ticket for any network service • Separate authentication for email, printing, etc. 8
Solution: Two-Step Authentication u. Prove identity once to obtain special TGS ticket • Instead of password, use key derived from password u. Use TGS to get tickets for many network services Joe the User USER=Joe; service=TGS Encrypted TGS ticket Encrypted service ticket Authentication server (AS) Ticket granting service (TGS) Key distribution center (KDC) File server, printer, other network services 9
Still Not Good Enough u. Ticket hijacking • Malicious user may steal the service ticket of another user on the same workstation and use it – IP address verification does not help • Servers must be able to verify that the user who is presenting the ticket is the same user to whom the ticket was issued u. No server authentication • Attacker may misconfigure the network so that he receives messages addressed to a legitimate server – Capture private information from users and/or deny service • Servers must prove their identity to users 10
Symmetric Keys in Kerberos u. Kc is long-term key of client C • Derived from user’s password • Known to C and key distribution center KDC u. KTGS is long-term key of ticket granting service TGS • Known to KDC and TGS u. Kv is long-term key of network service V • Known to V and TGS; separate key for each service u. Kc, TGS is short-term key between C and TGS • Created by KDC, known to C and TGS u. Kc, v is short-term key betwen C and V • Created by TGS, known to C and V 11
“Single Logon” Authentication kinit program (client) password User Key Distribution Center (KDC) IDc , IDTGS , timec Convert into client master key Kc Decrypts with Kc and obtains Kc, TGS and ticket. TGS Encrypt. Kc(Kc, TGS , IDTGS , time. KDC , lifetime , ticket. TGS) Fresh key to be used between client and TGS Encrypt. KTGS(Kc, TGS , IDc , Addrc , IDTGS , time. KDC , lifetime) Client will use this unforgeable ticket to get other tickets without re-authenticating Key = KTGS Key = Kc … All users must pre-register their passwords with KDC u Client only needs to obtain TGS ticket once (say, every morning) • Ticket is encrypted; client cannot forge it or tamper with it 12
Obtaining A Service Ticket Client Knows Kc, TGS and ticket. TGS System command, e. g. “lpr –Pprint” User Encrypt. Kc, TGS(IDc , Addrc , timec) Proves that client knows key K c, TGS contained in encrypted TGS ticket Ticket Granting Service (TGS) usually lives inside KDC IDv , ticket. TGS , auth. C Encrypt. Kc, TGS(Kc, v , IDv , time. TGS , ticketv) Fresh key to be used between client and service Knows key Kv for each service Encrypt. Kv(Kc, v , IDc , Addrc , IDv , time. TGS , lifetime) Client will use this unforgeable ticket to get access to service V u Client uses TGS ticket to obtain a service ticket and a short-term key for each network service • One encrypted, unforgeable ticket per service (printer, email, etc. ) 13
Obtaining Service Client Knows Kc, v and ticketv System command, e. g. “lpr –Pprint” User Encrypt. Kc, v(IDc , Addrc , timec) Proves that client knows key K c, v contained in encrypted ticket Server V ticketv , auth. C Encrypt. Kc, v(timec+1) Authenticates server to client Reasoning: Server can produce this message only if he knows key K c, v. Server can learn key K c, v only if he can decrypt service ticket. Server can decrypt service ticket only if he knows correct key K v. If server knows correct key K v, then he is the right server. u For each service request, client uses the short-term key for that service and the ticket he received from TGS 14
Kerberos in Large Networks u. One KDC isn’t enough for large networks (why? ) u. Network is divided into realms • KDCs in different realms have different key databases u. To access a service in another realm, users must… • Get ticket for home-realm TGS from home-realm KDC • Get ticket for remote-realm TGS from home-realm TGS – As if remote-realm TGS were just another network service • Get ticket for remote service from that realm’s TGS • Use remote-realm ticket to access service • N(N-1)/2 key exchanges for full N-realm interoperation 15
Summary of Kerberos 16
Important Ideas in Kerberos u. Use of short-term session keys • Minimize distribution and use of long-term secrets; use them only to derive short-term session keys • Separate short-term key for each user-server pair – But multiple user-server sessions reuse the same key! u. Proofs of identity are based on authenticators • Client encrypts his identity, address and current time using a short-term session key – Also prevents replays (if clocks are globally synchronized) • Server learns this key separately (via encrypted ticket that client can’t decrypt) and verifies user’s identity u. Symmetric cryptography only 17
Problematic Issues u. Password dictionary attacks on client master keys u. Replay of authenticators • 5 -minute lifetimes long enough for replay • Timestamps assume global, secure synchronized clocks • Challenge-response would be better u. Same user-server key used for all sessions u. Homebrewed PCBC mode of encryption • Tries to combine integrity checking with encryption u. Extraneous double encryption of tickets u. No ticket delegation • Printer can’t fetch email from server on your behalf 18
Kerberos Version 5 u. Better user-server authentication • Separate subkey for each user-server session instead of re-using the session key contained in the ticket • Authentication via subkeys, not timestamp increments u. Authentication forwarding • Servers can access other servers on user’s behalf u. Realm hierarchies for inter-realm authentication u. Richer ticket functionality u. Explicit integrity checking + standard CBC mode u. Multiple encryption schemes, not just DES 19
Practical Uses of Kerberos u. Email, FTP, network file systems and many other applications have been kerberized • Use of Kerberos is transparent for the end user • Transparency is important for usability! u. Local authentication • login and su in Open. BSD u. Authentication for network protocols • rlogin, rsh, telnet u. Secure windowing systems • xdm, kx 20
Reading Assignment u. Stallings 4. 1 • Detailed discussion of Kerberos u“Designing an Authentication System: A Dialogue in Four Scenes” • Nice high-level survey of network threats and design principles behind Kerberos 21
- Slides: 21