Bir kullanıcı sabah parolasını bir kez girer, sonra gün boyunca dosya sunucusuna, yazıcıya ve iç uygulamalara parola sormadan erişir. Bunu mümkün kılan Kerberos’tur ve temel fikri şudur: parolayı her seferinde göndermek yerine, bir kez doğrulanıp bilet almak.
Neden bilet
Parolayı her erişimde ağda dolaştırmak iki sorun doğurur: yakalanabilir, ve her hizmetin parolayı doğrulayabilmesi gerekir.
Kerberos ikisini birden çözer. Kullanıcı yalnızca merkeze bir kez kanıt verir, karşılığında süreli bir bilet alır. Sonraki erişimlerde bileti gösterir. Hizmetler parolayı hiç görmez.
Biletlerin süresi vardır — genelde on saat. Süre dolduğunda yenilenir. Bu, çalınmış bir biletin sonsuza kadar kullanılamamasını sağlar.
İki tür bilet
Süreç iki aşamalıdır ve ikisini ayırmak, sorun giderirken işe yarar.
TGT (bilet verme bileti). Kullanıcı oturum açtığında alınır. “Bu kişi kim olduğunu kanıtladı” belgesidir. Kendisi bir hizmete erişim vermez; yalnızca başka bilet istemeye yarar.
Hizmet bileti. Kullanıcı dosya sunucusuna erişmek istediğinde, TGT’sini gösterip o sunucuya özel bir bilet ister. Bu bileti sunucuya sunar ve erişir.
Merkezdeki bileşene KDC denir ve etki alanı denetleyicilerinde çalışır. Yani her etki alanı denetleyicisi aynı zamanda bir Kerberos sunucusudur.
Bu yapının içine oturduğu bütün için Active Directory nedir yazısı var.
SPN: bilet kime yazılacak
Kullanıcı bir hizmet bileti isterken hangi hizmeti istediğini söylemelidir. Bunun için hizmet asıl adı (SPN) kullanılır — hizmet türü ve sunucu adını birleştiren bir etiket.
SPN yanlış ya da eksikse istemci doğru bileti isteyemez ve kimlik doğrulama Kerberos yerine daha eski bir yönteme düşer. Belirti genelde şudur: erişim çalışır ama beklenenden yavaştır, ya da bazı senaryolarda hiç çalışmaz.
Aynı SPN’in iki hesaba birden kaydedilmesi de klasik bir arızadır. Bu durumda KDC hangi hesabı kullanacağını bilemez ve bilet vermeyi reddeder.
Saat toleransı: en sık karşılaşılan tuzak
Kerberos biletleri zaman damgası taşır ve bu, tekrar saldırılarına karşı korumanın temelidir. Bu yüzden istemci ile denetleyici arasındaki saat farkı sınırlıdır — Windows’ta öntanımlı tolerans beş dakikadır.
Fark bunu aşarsa bilet reddedilir. Kullanıcının gördüğü şey “parolam doğru ama giremiyorum” olur; günlükte ise saatle ilgisi belirgin olmayan bir hata görünür.
Sanallaştırılmış etki alanı denetleyicilerinde bu risk artar: hem ana makineden hem ağdan saat almak, çift kaynak yaratır ve kayma üretir. Hiyerarşinin doğru kurulması ve toleransın nasıl hesaplandığı NTP saat planlayıcı aracında ele alınıyor.
NTLM’e düşmek
Kerberos çalışmadığında Windows sessizce daha eski bir yönteme, NTLM’e geçebilir. Erişim çalışmaya devam eder, bu yüzden sorun fark edilmez.
Ama NTLM belirgin biçimde zayıftır ve modern saldırı tekniklerinin çoğu onu hedefler. Kerberos’un çalıştığını varsaymak yerine doğrulamak gerekir; bir oturumun hangi protokolle doğrulandığı denetim günlüklerinden görülebilir.
Düşmenin yaygın nedenleri: IP adresiyle bağlanmak (SPN ada yazılıdır), eksik SPN, DNS’te ad çözülememesi ve saat kayması.
Hesap kilitlenmeleri
Kerberos hataları çoğu zaman parola sorunları gibi görünür. Bir hesap sürekli kilitleniyorsa, arkada eski bir parolayla bilet istemeye çalışan bir hizmet ya da zamanlanmış görev olabilir.
Kaynağı bulmak için ilgili olay kayıtlarını izlemek gerekir; yöntemi hesap kilitlenmesi ve 4740 olayı rehberinde, kilitleme eşiklerinin nasıl seçileceği kilitleme politikası aracında.
Bilet neye benzer, içinde ne var
Bir hizmet bileti, hizmetin hesabına ait bir anahtarla şifrelenmiştir. İstemci onu açamaz — zaten açmasına gerek yoktur, yalnızca taşır. Hizmet bileti alınca kendi anahtarıyla açar ve içindeki kimlik bilgisini okur.
Biletin içinde kullanıcının kim olduğu, hangi gruplarda bulunduğu ve biletin ne zamana kadar geçerli olduğu yazar. Grup üyeliklerinin bilette taşınması, pratik bir sonuç doğurur: bir kullanıcıyı yeni bir gruba eklediğinizde erişim hemen açılmaz. Kullanıcının yeni bir bilet alması, yani oturumu kapatıp açması gerekir.
Bu, “gruba ekledim ama hâlâ erişemiyor” vakalarının en yaygın açıklamasıdır ve yeniden başlatmanın neden işe yaradığını da anlatır.
Çok sayıda gruba üye olan hesaplarda bilet büyür; belirli bir sınırın üstünde kimlik doğrulama başarısız olmaya başlar. Yıllar içinde grup biriktiren yönetici hesaplarında bu gerçek bir arıza nedenidir.
Devretme (delegation)
Bir hizmetin, kullanıcı adına başka bir hizmete erişmesi gerekebilir — web uygulamasının kullanıcı kimliğiyle veritabanına bağlanması gibi. Kerberos bunu devretme ile çözer.
Ama kısıtsız devretme tehlikelidir: o sunucuyu ele geçiren biri, ona bağlanan her kullanıcının kimliğiyle her yere gidebilir. Kısıtlı devretme kullanmak ve ayrıcalıklı hesapları devretmeye kapalı işaretlemek temel önlemdir.
Ayrıcalıklı hesapların bütünsel yönetimi ayrıcalıklı hesap yönetimi rehberinde.
Kısaca
Kerberos, parolayı bir kez doğrulayıp süreli biletlerle çalışan bir kimlik protokolüdür. Üç şeye bağımlıdır: doğru DNS, doğru SPN ve doğru saat. Açıklanamayan bir kimlik doğrulama sorununda bu üçünü sırayla denetlemek, vakaların büyük kısmını kapatır.