Untuk menggunakan suatu layanan pada beberapa server biasanya kita akan memasukan username dan password, jika banyak layanan yang kita gunakan maka akan banyak pula username dan password yang kita gunakan sehingga kurang efisien. Tetapi jika hanya menggunakan satu buah username dan password untuk semua layanan yang kita gunakan akan tidak aman, jika username dan password yang kita gunakan diketahui oleh banyak pihak maka semua layanan yang digunakan akan bocor.
Salah satu cara untuk mengatasi masalah diatas adalah dengan menggunakan protokol Kerberos, yang dalam penggunaannya cukup memasukan satu password. Kerberos adalah protokol autentikasi pada jaringan yang menyediakan autentikasi kuat untuk aplikasi client/server dengan menggunakan secure-key cryptograph. Dalam prosesnya kita hanya memasukan tiket yang didapatkan dari pihak ketiga yang terpercaya (Trusted Third Party) biasaynya menggunakan KDC (Key Distribution Center).
Sebelum menjelaskan bagaimana cara kerja protokol Kerberos lebih baik diingat-ingat dulu singkatan yang akan sering digunakan, yaitu:
- AS : Authentication Server
- SS : Service Server
- TGS : Ticket Granting Server
- TGT: Ticket-Granting Ticket
Berikut adalah cara kerja protokol Kerberos:
- Client/User Logon
- Client/User memasukan username dan password
- Client/User akan menghash password, yang akan dijadikan secret key dari client/User
- Client Authentication
- Client/User mengirimkan pesan berupa user ID ke AS untuk meminta pelayanan (service). Selain User ID juga dikirimkan secret key dan password.
- AS memeriksa apakah Secret Key dan password ada pada database. Jika ada maka AS akan mengirimkan dua pesan balasan yaitu:
- Pesan A: Client/TGS Session Key yang dienkripsi dari Secret Key
- Pesan B: TGT (Client ID, Client Network Address, Ticket Valididy Periode, dan Client/TGS Session Key) yang dienkripsi dari Secret Key dari TGS
- Setelah Client menerima Pesan A dan B maka Client dapat menggunakan Pesan A untuk berhubungan dengan TGS. Pesan B tidak dapat didekripsi karena Pesan B merupakan Enkripsi dari TGS Seckret Key. Dengan kedua buah pesan tersebut client sudah mempunyai informasi yang dibutuhkan untuk proses autentikasi ke TGS
- Client Service Authorization
- Client/user mengirim 2 Buah Pesan Ke TGS, yaitu:
- Pesan C: dibuat dari Pesan B dan ID dari layanan yang diminta
- Pesan D: Authenticator, yang terdiri dari Client ID dan Timestamp. Pesan D dienkripsi dari Client/TGS Session Key
- Ketika menerima Pesan C dan D, TGS memisahakan Pesan B dari Pesan C kemudian Pesan B didekripsi dengan Menggunakan secret key pada TGS. Selanjutnya pesan D didekripsi oleh TGS dengan menggunakan key Pesan B yang sudah didekripsi (Authenticator) dan mengirimkan kembali 2 buah pesan kepada client:
- Pesan E : Client-to-Server Ticket dienkripsi menggunakan secret key server.
- Pesan F: Client/Server Session Key dienkripsi dengan Client/TGS Session Key
- Client/user mengirim 2 Buah Pesan Ke TGS, yaitu:
- Client Service Request
- Ketika client menerima Pesan E dan F dari TGS, client sudah mempunyai informasi yang cukup untuk melakukan autentikasi pada SS. Client mengirimkan dua buah pesan ke SS, yaitu:
- Pesan E : dari langkah sebelumnya
- Pesan G: Autentikasi baru, yang berasal dari enkripsi client/server session key
- Pada SS Client-to-Server Ticket akan didekripsi dengan menggunakan secret key SS. Kemudian session key digunakan untuk mendekripsi Authenticator dan mengirim pesan berikut ke client untuk mengkonfirmasi kebenaran identitas dan keinginan untuk mengakses layanan:
- Pesan H : TimeStamp yang ditemukan pada client Authentication + 1, yang dienkrip menggunakan Client/Server Session Key
- Konfirmasi yang didapat oleh client didekripsi menggunakan Client/Server Key dan mengecek apakah timestamp sesuai. Jika sesuai, maka client dapat mengakses server dan dapat memulai untuk menggunakan layanan yang diminta
- Ketika client menerima Pesan E dan F dari TGS, client sudah mempunyai informasi yang cukup untuk melakukan autentikasi pada SS. Client mengirimkan dua buah pesan ke SS, yaitu:



