Kerberos ve NTLM Farkları Nelerdir?

Kerberos ve NTLM, Microsoft ortamlarında kimlik doğrulama için kullanılan iki farklı protokoldür. Kerberos, daha modern ve güvenli bir kimlik doğrulama protokolüdür.  NTLM (NT LAN Manager), eski bir protokol olup daha az güvenlidir ve genellikle eski sistemlerde veya domain’e dahil olmayan makinelerde kullanılır.

Eğer Active Directory (AD) ortamında çalışan bir SQL Server yapınız varsa, Kerberos kullanmalısınız. Ancak bazı durumlarda sistem otomatik olarak NTLM’ye düşebilir.

 1. NTLM Nedir?
NTLM (NT LAN Manager), Microsoft tarafından geliştirilen eski bir kimlik doğrulama protokolüdür. 1960’larda geliştirilmiş LM (Lan Manager) modelinin bir uzantısıdır.  Şifreleme mekanizması zayıftır ve modern saldırılara karşı dayanıklı değildir.

Kimlik doğrulama işlemi 3 aşamalıdır:
1. Kullanıcı adı ve şifre hash’lenir
2. Sunucu ile hash karşılaştırılır
3. Eğer hash eşleşirse, erişim verilir

 NTLM’in Dezavantajları:
– Kimlik doğrulama süreci güvenlik açısından zayıf (Şifre hash’leri kolay kırılabilir).
– Single Sign-On (SSO) desteği yok (Her bağlantıda kimlik doğrulama gerekir).
– Özellikle çoklu sunucu (Multi-hop) bağlantılarda çalışmaz.
– Modern güvenlik standartlarına uygun değildir.

 2. Kerberos Nedir?
Kerberos, MIT tarafından geliştirilmiş ve Microsoft’un Windows 2000 ile birlikte Active Directory’ye entegre ettiği bir kimlik doğrulama protokolüdür.

– Daha güvenli ve çoklu adım kimlik doğrulaması sağlar.
– Single Sign-On (SSO) destekler, yani bir kez giriş yapınca birçok hizmete erişebilirsiniz.
– Kimlik doğrulama süreci şifreli bilet (ticket) sistemine dayanır.
– Çoklu sunucu (multi-hop) bağlantıları destekler, bu yüzden özellikle SQL Server gibi birden fazla sunucuya bağlantı gerektiren sistemler için idealdir.

 Kerberos’un Çalışma Prensibi
Kerberos, 3 temel bileşenden oluşur:
1. KDC (Key Distribution Center) → Anahtar yönetimini sağlar.
2. TGT (Ticket Granting Ticket) → Kullanıcıya kimlik doğrulama bileti verir.
3. Service Ticket → Kullanıcı, belirli bir hizmete erişmek için bunu kullanır.

Kerberos kimlik doğrulaması sırasında:
1. Kullanıcı Active Directory’ye giriş yapar ve bir “TGT (Ticket Granting Ticket)” alır.
2. SQL Server gibi bir hizmete bağlanırken, bu bileti kullanarak erişim talep eder.
3. Kimlik doğrulama başarılı olursa, bir “Service Ticket” verilir ve kullanıcı hizmete bağlanır.

 3. Kerberos vs NTLM Karşılaştırması

ÖzellikNTLMKerberos
GüvenlikDaha düşük güvenlikDaha güçlü güvenlik
Kimlik DoğrulamaŞifre hash’ine dayanırTicket-based (bilet) kimlik doğrulama
Single Sign-On (SSO)YokVar
Çoklu sunucu (Multi-Hop) desteğiYokVar
HızEski sistemlerde çalışırYeni sistemlerde daha iyi çalışır
Eski sistem desteğiAlternatif olarak çalışırTavsiye edilir
Güvenlik ZafiyetleriHash tabanlı saldırılara açıkDaha güvenli şifreleme kullanır


 4. SQL Server İçin Kerberos Kullanımı

SQL Server’da Kerberos kullanabilmeniz için şunlara dikkat etmelisiniz:
– SQL Server servis hesabı için SPN (Service Principal Name) kaydedilmiş olmalı.
– SQL Server’a bağlanırken Windows Authentication kullanılmalı.
– SQL Server client (SSMS veya uygulama), aynı domain içinde olmalı.
– Active Directory ortamında çalışıyor olmalısınız.

SPN kaydı yoksa otomatik olarak NTLM kullanılır.

 SPN Kaydını Kontrol Etme
SQL Server’da kullanılan SPN’leri görmek için aşağıdaki komutu çalıştırabilirsiniz:

setspn -L DOMAIN\SQLServerServisHesabı

Eğer SPN kaydı yoksa, Kerberos yerine NTLM kullanılacaktır.

 SPN Kaydı Eklemek (Elle Kayıt)
Eğer SPN eksikse, şu komutları kullanarak ekleyebilirsiniz:

setspn -S MSSQLSvc/SQLServerAdı:1433 DOMAIN\SQLServerServisHesabı
setspn -S MSSQLSvc/SQLServerAdı.DOMAIN:1433 DOMAIN\SQLServerServisHesabı

5. Hangi Durumlarda NTLM Kullanılır?
Eğer Kerberos kullanımı mümkün değilse, NTLM devreye girer.
NTLM’nin kullanıldığı durumlar:
– SQL Server ve istemcinin farklı domain’lerde olması.
– Active Directory yapılandırılmamış veya hatalı olması.
– SPN kaydının eksik olması.
– SQL Server’ın, Windows Authentication yerine SQL Authentication kullanması.

 6. Sonuç: Hangi Kimlik Doğrulama Yöntemini Kullanmalısınız?
Eğer Active Directory ortamında bir SQL Server çalıştırıyorsanız, kesinlikle Kerberos kullanmalısınız.
– Daha güvenlidir
– Daha hızlıdır
– Single Sign-On (SSO) desteği sunar
– Multi-hop bağlantılar için uygundur

Ama Kerberos çalışmazsa, sistem otomatik olarak NTLM’ye geçer.
Bu yüzden SPN kayıtlarını ve AD yapılandırmanızı kontrol etmelisiniz.

Başka bir makalede görüşmek dileğiyle..

Onlar, gaybe inanırlar, namazı dosdoğru kılarlar ve kendilerine rızık olarak verdiklerimizden infak ederler.” Bakara Suresi, 3. Ayet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir