Distribusi Kunci

Teknik autentikasi kunci rahasia tidak menjelaskan bagaimana klien dan server mendapatkan rahasia kunci sesi digunakan dalam sesi satu sama lain. Jika mereka adalah orang-orang, mereka bisa bertemu secara rahasia dan menyetujui kunci. Tetapi jika klien adalah program yang berjalan di stasiun kerja dan server adalah layanan yang berjalan di server jaringan, metode tersebut tidak akan berfungsi.

Klien akan ingin berkomunikasi dengan banyak server dan akan membutuhkan kunci yang berbeda untuk masing-masing server. Server berkomunikasi dengan banyak klien dan membutuhkan kunci yang berbeda untuk masing-masing klien. Jika setiap klien membutuhkan kunci yang berbeda untuk setiap server, dan setiap server memerlukan kunci yang berbeda untuk setiap klien, distribusi kunci menjadi masalah. Selain itu, kebutuhan untuk menyimpan dan melindungi banyak kunci di banyak komputer menciptakan risiko keamanan yang sangat besar.

Nama protokol Kerberos menyarankan solusinya untuk masalah distribusi kunci. Kerberos (atau Cerberus) adalah sosok dalam migrasi Yunani klasik—anjing ganas berkepala tiga yang menjaga penyusup hidup dari memasuki Dunia Bawah. Seperti penjaga mitos, protokol Kerberos memiliki tiga kepala: klien, server, dan pihak ketiga tepercaya untuk menengahi di antara mereka. Perantara tepercaya dalam protokol ini adalah Pusat Distribusi Kunci (KDC).

KDC adalah layanan yang berjalan di server yang aman secara fisik. Ini mempertahankan database dengan informasi akun untuk semua prinsip keamanan di ranahnya. Realm adalah kerberos yang setara dengan domain di Windows.

Bersama dengan informasi lain tentang setiap prinsip keamanan, KDC menyimpan kunci kriptografi yang hanya diketahui oleh prinsipal dan KDC. Ini adalah kunci master digunakan dalam pertukaran antara setiap prinsip keamanan dan KDC. Dalam sebagian besar implementasi protokol Kerberos, kunci master ini diturunkan menggunakan fungsihashdari kata sandi perwakilan keamanan.

Ketika klien ingin membuat koneksi aman dengan server, klien mulai dengan mengirim permintaan ke KDC, bukan ke server yang ingin dijangkaunya. KDC membuat dan mengirim ke klien kunci sesi unik untuk klien dan server untuk digunakan untuk mengautentikasi satu sama lain. KDC memiliki akses ke kunci master klien dan kunci master server. KDC mengenkripsi salinan server kunci sesi menggunakan kunci master server, dan salinan klien menggunakan kunci master klien.

KDC dapat memenuhi perannya sebagai perantara tepercaya dengan mengirim kunci sesi langsung ke masing-masing prinsip keamanan yang terlibat, tetapi dalam praktiknya prosedur ini tidak akan berfungsi, karena sejumlah alasan. Sebagai gantinya, KDC mengirimkan kedua kunci sesi terenkripsi ke klien. Kunci sesi untuk server disertakan dalam tiket sesi .