Kerberos temel olarak Needham-Schroeder protokolünü kullanır. Mantıksal olarak iki ayrı bölümden oluşan "anahtar dağıtım merkezi (KDC)" olarak bilinen güvenilir bir üçüncü taraf kimlik doğrulamasından yararlanır: bir Kimlik Doğrulama Sunucusu (AS) ve bir Bilet Verme Sunucusu (TGS). Kerberos, kullanıcıların kimliğini kanıtlamaya yarayan "biletler" (Kerberos biletleri olarak adlandırılır) temelinde çalışır.
Kerberos veritabanı: Anahtar dağıtım merkezi (KDC) gizli anahtarlardan oluşan bir veritabanı tutar; ağdaki her varlık - ister istemci ister sunucu olsun - yalnızca kendisinin ve KDC'nin bildiği bir gizli anahtarı paylaşır. Bu anahtarın bilinmesi her bir varlığın kimliğini kanıtlamaya yarar. İki varlık arasındaki iletişim için KDC, iletişimlerini güvence altına almak için kullanabilecekleri bir oturum anahtarı oluşturur.
"Kerberos sunucusu" terimi genellikle KDC'yi ifade eder. Güvenilirlik amacıyla, yedek KDC'lere sahip olmak mümkündür. Bunlar "Kerberos bağımlı sunucuları" olarak adlandırılır. Tüm slave sunucular veritabanlarını ana Kerberos sunucusundan senkronize eder.
"Kerberleştirilmiş uygulama sunucusu" terimi genellikle istemcilerin kimlik doğrulama için Kerberos biletleri kullanarak iletişim kurduğu Kerberleştirilmiş programları ifade eder. Örneğin, Kerberos telnet sunucusu Kerberleştirilmiş uygulama sunucusuna bir örnektir . "Kerberleştirilmiş uygulamalar" terimi Kerberleştirilmiş uygulama sunucusunun istemci tarafına atıfta bulunmak için kullanılırken, örneğin Kerberos telnet istemcisi Kerberleştirilmiş uygulamalara bir örnektir
Protokolün güvenliği büyük ölçüde şunlara bağlıdır:
- Katılımcılar gevşek senkronize zamanı korurlar.
- Kısa ömürlü bir orijinallik beyanı: Kerberos biletleri.
Protokolün basitleştirilmiş açıklaması
Aşağıdaki kısaltmalar kullanılacaktır:
· AS = Kimlik Doğrulama Sunucusu
· TGS = Bilet Verme Sunucusu
· SS veya Sunucu = Hizmet Sunucusu (Yazdırma sunucusu, dosya sunucusu vb. gibi hizmet talep eden sunucu kullanıcısı)
· TGT = Ticket Granting Ticket (TGS için Kerberos bileti. AS tarafından hazırlanır, daha sonra TGS ile konuşmak için kullanılır).
Kısaca, istemci uzun vadeli bir paylaşılan sır kullanarak AS'ye kimlik doğrulaması yapar ve AS'den bir bilet alır. Daha sonra istemci aynı paylaşılan sırrı kullanarak SS için ek bilet almak üzere bu bileti kullanabilir. Bu biletler SS'ye kimlik doğrulamasını kanıtlamak için kullanılabilir.
Daha ayrıntılı olarak protokol
Kullanıcı İstemcisi Tabanlı Oturum Açma Adımları:
- Kullanıcı, istemci makineye bir kullanıcı adı ve parola girer.
- İstemci, girilen parola üzerinde tek yönlü bir işlev (çoğunlukla bir Hash işlevi) gerçekleştirir ve bu, istemci/kullanıcının gizli anahtarı haline gelir.
İstemci Kimlik Doğrulama Adımları:
- İstemci, AS'ye kullanıcı adına hizmet talep eden bir açık metin mesajı gönderir.
Örnek mesaj: "Kullanıcı XYZ hizmet talep etmek istiyor".
Not: AS'ye ne gizli anahtar ne de parola gönderilir. - AS, istemcinin kendi veritabanında olup olmadığını kontrol eder. Eğer öyleyse, AS aşağıdaki iki mesajı istemciye geri gönderir:
- Mesaj A: İstemci/kullanıcının gizli anahtarı kullanılarak şifrelenmiş İstemci/TGS Oturum Anahtarı.
- Mesaj B: TGS'nin gizli anahtarı kullanılarak şifrelenmiş TGT (istemci kimliği, istemci ağ adresi, bilet geçerlilik süresi ve İstemci/TGS Oturum Anahtarını içerir).
- İstemci A ve B mesajlarını aldıktan sonra, İstemci/TGS Oturum Anahtarını elde etmek için A mesajının şifresini çözer. Bu oturum anahtarı TGS ile daha sonraki iletişimler için kullanılır. Bu noktada, istemci kendisini TGS'ye doğrulamak için yeterli bilgiye sahiptir.
Not: İstemci, TGS'nin gizli anahtarı kullanılarak şifrelendiği için B mesajının şifresini çözemez.
Müşteri Hizmetleri Yetkilendirme Adımları:
- Hizmet talep ederken, istemci TGS'ye aşağıdaki iki mesajı gönderir:
- Mesaj C: Mesaj B'deki TGT ve talep edilen hizmetin ID'sinden oluşur.
- Mesaj D: Kimlik Doğrulayıcı (istemci kimliği ve zaman damgasından oluşur), İstemci/TGS Oturum Anahtarı kullanılarak şifrelenir.
- C ve D mesajlarını aldıktan sonra, TGS C mesajından B mesajını alır ve TGS gizli anahtarını kullanarak B mesajının şifresini çözer. Bu ona Müşteri/TGS Oturum Anahtarını verir. TGS bu anahtarı kullanarak D mesajının (Doğrulayıcı) şifresini çözer ve istemciye aşağıdaki iki mesajı gönderir:
- Mesaj E: SS gizli anahtarı kullanılarak şifrelenmiş İstemci-Sunucu bileti (istemci kimliği, istemci ağ adresi, geçerlilik süresi ve İstemci/Sunucu Oturum Anahtarını içerir).
- Mesaj F: İstemci/Sunucu Oturum Anahtarı, İstemci/TGS Oturum Anahtarı ile şifrelenmiştir.
Müşteri Hizmet Talebi Adımları:
- TGS'den E ve F mesajlarını alan istemci, SS'ye kimlik doğrulaması yapmak için yeterli bilgiye sahip olur. İstemci SS'ye bağlanır ve aşağıdaki iki mesajı gönderir:
- Mesaj E: önceki adımdan (SS gizli anahtarı kullanılarak şifrelenmiş İstemci-Sunucu bileti).
- Mesaj G: istemci kimliğini, zaman damgasını içeren ve İstemci/Sunucu Oturum Anahtarı kullanılarak şifrelenen yeni bir Kimlik Doğrulayıcı.
- SS, İstemci/Sunucu Oturum Anahtarını almak için kendi gizli anahtarını kullanarak biletin şifresini çözer. Oturum anahtarını kullanarak, SS Kimlik Doğrulayıcının şifresini çözer ve gerçek kimliğini ve müşteriye hizmet verme isteğini onaylamak için müşteriye aşağıdaki mesajı gönderir:
- Mesaj H: İstemcinin Kimlik Doğrulayıcısında bulunan zaman damgası artı 1, İstemci/Sunucu Oturum Anahtarı kullanılarak şifrelenmiştir.
- İstemci, İstemci/Sunucu Oturum Anahtarını kullanarak onayın şifresini çözer ve zaman damgasının doğru şekilde güncellenip güncellenmediğini kontrol eder. Eğer öyleyse, istemci sunucuya güvenebilir ve sunucuya hizmet istekleri göndermeye başlayabilir.
- Sunucu, talep edilen hizmetleri istemciye sağlar.