Kerberos internet gibi güvenilmeyen bir ağ üzerinden güvenilir ana bilgisayarlar arasındaki hizmet isteklerinin kimliğini doğrulamak için kullanılan bir protokoldür. Kimlik doğrulamasını, veri bütünlüğünü, gizliliğini sağlamak için tasarlanmış güvenlik protokolüdür. MIT tarafından geliştirilen ve yaygın kullanılan güvenlik protokolüdür. Kimlik denetim mekanizması Ticket denilen biletler tarafından gerçekleşir. Kullanılan ticket dağıtımı KDC (Key Distribution Center) gerçekleştirir. Udp 88 portu üzerinden hizmet vermektedir. Client Server karşılıklı olarak birbirini yetkilendirmesine dayanan simetrik bir şifreleme yöntemidir. Kerberos desteği; Microsoft Windows, Apple macOS, FreeBSD ve Linux dahil olmak üzere tüm önemli bilgisayar işletim sistemlerinde yerleşiktir.
İçindekiler Tablosu
Bazı Terimler:
- REALM: Kerberos kullanan kaynak ve kimlikleri mantıksal olarak gruplandırmanın bir yoludur. Domain olarak düşünülebiliriz. ÖRN:DENEME.LOCAL
- PRİNCİPLE: Kerberos kullanan benzersiz bir kimlik bilgisidir. Kullanıcı adı ve realmden oluşur. ÖRN:[email protected]
- KDC:Client-Server arasında güvenli bağlantı oluşturulmasından sorumludur.Üç bileşenden oluşur.
- Veritabanı: Tüm kimlik bilgileri veritabanı üzerinde tutulmaktadır.
- Kimlik Denetim Sunucusu: Kimlik denetim işlemini başlatmakla sorumlu bileşendir.
- TGS(Ticket Granting Service): Şifreli anahtarları oluşturup kullanıcılara gönderilmesini sağlar.
- TİCKET: Kullanıcıların ağa erişimlerini sağlamaktadır.
Temel İşlevleri
Kimlik Doğrulma:
Kullanıcıların kimlik doğrulamasını sağlar. Bir kullanıcı, Kerberos üzerinden bilgisayar ağına erişmek istediğinde, kullanıcı adı ve şifresiyle oturum açma talebi gönderir.
Ticketing:
Kullanıcıların kimlik doğrulamasının ardından, Kerberos bir biletleşme mekanizması yapar. Kullanıcılara Ticket-Granting Ticket (TGT) verir. TGT, kullanıcının diğer hizmetlere erişebilmek için anahtar bulunur.
Veri Bütünlüğü ve Gizliliği:
Kullanıcı, bir kez kimlik doğrulaması yaptıktan sonra, Kerberos sayesinde farklı hizmetlere erişim sağlar. Bu, kullanıcının her hizmet için ayrı kimlik doğrulaması yapmasını engeller ve kullanıcıya daha kullanıcı dostu bir deneyim sunar.
Single Sign-On(Tek Oturum Açma):
Kullanıcı, bir kez kimlik doğrulaması yaptıktan sonra Kerberos sayesinde farklı hizmetlere erişim sağlanır. Bu, kullanıcının her hizmet için ayrı kimlik doğrulaması yapmasını engeller ve kullanıcıya daha kullanıcı dostu bir deneyim sunar.
Erişim Kontrolü:
Kullanıcılar, aldıkları biletleri kullanarak belirli kaynaklara erişim taleplerinde bulunurlar. Bu talepler, Ticket Granting Server (TGS) kontrol eder ve kullanıcının izinleri doğrultusunda erişim sağlar.
Ticket Süresi ve Yenilenmesi:
Kerberos biletleri belirli bir süre için geçerlidir. Bu süre sona erdiğinde, kullanıcılar biletlerini yenileyebilirler. Bu nedenle sürekli bir güvenlik oluşur. Biletlerin uzun süre boyunca geçerli olması riski azalır.
Kerberos Nasıl Çalışır?
- Kullanıcı, istemcide kullanıcı adı ve şifresini girer.
- İstemci, kullanıcının şifresi üzerinden tek yönlü bir hash algoritması kullanarak gizli anahtarını oluşturur.
- İstemci, Authentication Server (AS) tarafına oturum açma bilgilerini gönderir.
- AS, kullanıcının veritabanında olup olmadığını kontrol eder. Eğer kullanıcı mevcutsa, iki adet mesajı şifreler ve istemciye gönderir:
- Mesaj A: İstemci/TGS session key, kullanıcının gizli anahtarı ile şifre alır.
- Mesaj B: Ticket-Granting Ticket (TGT), kullanıcı ismi, biletin kullanım süresi gibi bilgiler içerir . TGS’nin kendi gizli anahtarı ile şifre alır.
- İstemci, Mesaj A’yı kullanıcının gizli anahtarıyla açar ve elde ettiği oturum anahtarını kullanarak TGS ile iletişim kurmaya hazır hale gelir.
Sunucu Erişim Adımları:
- İstemci, TGS’ye iki mesaj gönderir:
- Mesaj C: Mesaj B’de aldığı TGT ve erişilmek istenilen sunucu ID’sidir.
- Mesaj D: İstemci ID’si ve Zaman bilgisi (TimeStamp), istemci/TGS oturum anahtarı ile şifre almaktadır.
- TGS, aldığı mesajları kullanarak Mesaj D’yi istemci/TGS oturum anahtarı ile açar ve istemciye iki mesaj gönderir:
- Mesaj E: İstemci-Sunucu bileti. İstemci ID, istemci network adresi, geçerlilik süresi ve istemci/sunucu oturum anahtarı bilgilerini içerir. Bu mesaj sunucunun gizli anahtarı ile şifre alır.
- Mesaj F: İstemci/Sunucu oturum anahtarı, istemci/TGS oturum anahtarı ile şifre alır.
- İstemci, Mesaj E ve F’yi aldıktan sonra sunucuya erişim için gerekli bilgilere sahip olmaktadır. İstemci, bu bilgileri kullanarak sunucuya bağlanır.
- Sunucu, kendi gizli anahtarı ile Mesaj E’yi açar ve istemcinin/sunucunun oturum anahtarını alır. Mesaj F’yi de kullanarak kimlik doğrulamasını onaylamak için bir mesaj gönderir.
- İstemci, sunucudan aldığı mesajı doğrular ve timestamp’in doğru bir şekilde güncellendiğini kontrol eder. Eğer işlem doğru yapıldıysa, istemci artık sunucuya güvenir ve erişim sağlar.
KERBEROS HACKLENİR Mİ?
Kerberos, güvenli bir kimlik doğrulama protokolüdür. Hiçbir sistem protokol tam anlamıyla hacklenemez, güvenlik tehditlerine karşı tamamen bağışıklık gösteremez. Kerberos’un da bazı potansiyel güvenlik zayıflıkları ve saldırı vektörleri buldurur.
Kerberos güvenliğini sağlamak için:
- Şifrelerin Güvenliği: Kerberos, şifreleri doğrudan iletmek yerine, kullanıcıların şifrelerinden türetilen gizli anahtarları kullanır. Bu, şifrelerin ağ üzerinde açıkça iletilmesini engeller.
- Biletlerin Şifrelenmesi: Kerberos biletleri, yalnızca güvenli anahtarlarla şifrelenmiş olarak iletilir. Bu, bilgiyi ele geçirilmesini ve anlaşılmasını zorlaştırır.
- TimeStamp Kullanımı: Kerberos, zaman damgası kullanarak tekrar saldırılarına karşı koruma sağlar. Biletlerin sınırlı bir geçerlilik süresi vardır ve zaman damgası doğrulama sağlar.
Kerberos’u kullanılan spesifik uygulama konfigürasyonlara bağlı olarak etkileyebilecek bazı güvenlik zayıflıkları vardır:
- Parola Güvenliği: Kullanıcıların zayıf şifreler kullanması ve parola politikalarının yetersiz olması, Kerberos sistemini zayıflatıyor.
- KDC Güvenliği: Kerberos Key Distribution Center’ın (KDC) güvenliği kritiktir. Eğer KDC güvenliği zayıfsa, saldırganlar kimlik doğrulama bileti oluşturur . Biletleri ele geçirir.
- Bilet Yeniden Kullanımı (Replay Attacks): Eğer bir saldırgan biletleri ele geçirirse ve aynı biletleri tekrar kullanırsa, bu bir tekrar saldırısı olabilir.
- Zaman Senkronizasyonu: Kerberos, doğru bir şekilde çalışabilmesi için tüm sistemlerde zamanın senkronize olması gerektiğine dayanır. Zaman sapmaları, bazı güvenlik kontrollerini zayıflatabilir.
Kerberos güvenli bir protokol olarak kabul edilmektedir. Kullanım koşulları ve yapılandırmaya bağlı olarak güvenlik riskleri olabilir. Güvenlik açısından sürekli olarak güncellemeler yapmak, güvenlik politikalarını doğru bir şekilde uygulamak ve sistemleri düzenli olarak izlemek önemlidir.