kerberos a network authentication protocol nick parker cs372 computer networks

15
KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Upload: lamont-crenshaw

Post on 31-Mar-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

KERBEROSA NETWORK AUTHENTICATION PROTOCOLNick ParkerCS372 Computer Networks

Page 2: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Introduction

Kerberos Network Authentication Protocol Mutual Network Authentication

Project Athena Collaborative effort amongst MIT, Digital,

and IBM Support interoperability within large scale

networks Heterogeneous coherence

Page 3: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Kerberos in the field AFS Apache (with the mod_auth_kerb module) Apache 2 (using libapache-mod-auth-kerb) Cisco routers and switches running IOS Coda File System Eudora Mac OS X Microsoft Windows (2000 and later) uses as default authentication protocol Mulberry, an e-mail

client developed by Cyrusoft, Inc. NFS (since NFSv3) OpenSSH (with Kerberos v5 or higher) PAM (with the pam_krb5 module) Samba since v3.x SOCKS (since SOCKS5) Netatalk The X Window System implementations Indirectly, any software that allows the use of SASL for authentication, such as OpenLDAP, Dovecot

IMAP4 and POP3 server, Postfix mail server The Kerberos software suite also comes with kerberos-enabled clients and servers for rsh, FTP, and

Telnet Any Java based software (since 1.4.2) using JAAS/JGSS can use Kerberos for security

Page 4: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Problem

Network Resources Multiple network resources Heterogeneous resources Identity/Credential management Security risks associated with individual

authentication Result? – Administrative Nightmare

Page 5: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Solution

Kerberos Ticket based authentication system Protocol - supports variance in local

implementations Innovation – password is a shared secret. Harnesses the speed and security of symmetric

encryption Caveat

Authentication server and Ticket granting server need to be trusted by both the client and the service

Page 6: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Under the Hood

User PC, Workstation, PocketPC

Authentication Server Issues a Ticket Granting Ticket (TGT)

Ticket Granting Server (TGS) Issues tickets for Network Services

Network Service/Resource

Page 7: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Authentication Server

Issues a Ticket Granting Ticket (TGT) User sends their username to server Server responds with TGT encrypted with

user’s password User enters password on client – if

correct the TGT is successfully decrypted

Page 8: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Ticket Granting Server

Logically different from the AS, but may reside on the same server

User contacts when a network service is desired

Service ticket request encrypted with session key provided by the AS in the TGT, not user’s password

TGS authenticates ticket and issues a ticket for the resource as well as the encryption key to use with communication with the service

Page 9: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Network Service

Client sends resource ticket and authenticator to the service encrypted with client/service key

Service verifies both and issues a return message with a modified version of the timestamp the client sent in the authenticator encrypted with client/service key

Client views message – if timestamp is modified correctly then service is genuine and ready to process request.

Page 10: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Authentication Walkthrough

A user enters a username and password on the client.

The client performs a one-way hash on the entered password, and this becomes the secret key of the client.

The client sends a clear-text message to the AS requesting services on behalf of the user. Sample Message: "User XYZ would like to request services". Note: Neither the secret key nor the password is sent to the AS.

Page 11: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Authentication Walkthrough (cont.) The AS checks to see if the client is in its database. If

it is, the AS sends back the following two messages to the client: Message A: Client/TGS session key encrypted using the

secret key of the user. Message B: Ticket-Granting Ticket (which includes the

client ID, client network address, ticket validity period, and the client/TGS session key) encrypted using the secret key of the TGS.

Once the client receives messages A and B, it decrypts message A to obtain the client/TGS session key. This session key is used for further communications with TGS. (Note: The client cannot decrypt the Message B, as it is encrypted using TGS's secret key.) At this point, the client has enough information to authenticate itself to the TGS.

Page 12: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Authentication Walkthrough (cont.) When requesting services, the client sends the

following two messages to the TGS: Message C: Composed of the Ticket-Granting Ticket from

message B and the ID of the requested service. Message D: Authenticator (which is composed of the client

ID and the timestamp), encrypted using the client/TGS session key.

Upon receiving messages C and D, the TGS decrypts message D (Authenticator) using the client/TGS session key and sends the following two messages to the client: Message E: Client-to-server ticket (which includes the

client ID, client network address, validity period and Client/server session key) encrypted using the service's secret key.

Message F: Client/server session key encrypted with the client/TGS session key.

Page 13: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Authentication Walkthrough (cont.) Upon receiving messages E and F from TGS, the client has

enough information to authenticate itself to the SS. The client connects to the SS and sends the following two messages: Message E from the previous step (the client-to-server ticket,

encrypted using service's secret key). Message G: a new Authenticator, which includes the client ID,

timestamp and is encrypted using client/server session key. The SS decrypts the ticket using its own secret key and

sends the following message to the client to confirm its true identity and willingness to serve the client: Message H: the timestamp found in client's recent Authenticator

plus 1, encrypted using the client/server session key. The client decrypts the confirmation using the client/server

session key and checks whether the timestamp is correctly updated. If so, then the client can trust the server and can start issuing service requests to the server. The server provides the requested services to the client.

Page 14: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Kerberos Operation

Page 15: KERBEROS A NETWORK AUTHENTICATION PROTOCOL Nick Parker CS372 Computer Networks

Questions and Discussion