Kerberos Altyapısının Tanıtımı

Kerberos'a Giriş

Kerberos; Athena Projesinin bir parçası olarak MIT'de geliştirilen bir kimlik denetim sistemidir. Kerberos açık bir ağda güvenli kimlik denetimini sağlamak için şifreleme teknolojisini ve hakem olarak güvenilen bir üçüncü tarafı kullanır. Parolaların ağda düz metin olarak aktarılması kriptografik biletler kullanılarak önlenir. Kerberos Needham-Schroeder protokolünü temel alır.

Kerberos'un halen kullanımda olan iki sürümü vardır; sürüm 4 ve sürüm 5. Kerberos'un sürüm 1'den sürüm 3'e kadar olan sürümleri iç geliştirme sürümleridir ve hiç yayınlanmamışlardır. Kerberos sürüm 4'ün bilinen bir çok zayıflığı bulunduğundan kullanılmamalıdır. Bu belgede sadece Kerberos 5'e değinilmektedir. Kerberos 5 RFC1510'da tanımlanmıştır.

Kerberos Altyapısı terimi ile bir yöneticinin Kerberos protokolünü kullanarak ağda kimlik denetimi yapmasına izin veren yazılım, sunucu ve istemci yapılandırmaları kastedilir. Kerberos Altyapısı, Kerberos yazılımının kendisini, güvenli kimlik doğrulama sunucularını ve Kerberos protokolü üzerinden kimlik denetimi yapmak için yapılandırılmış sistemleri kapsar. Bu belge sizi böyle bir altyapının kurulum, yapılandırma ve yerleşim aşamalarından geçirecektir.

Kerberos'un Yararları

Kerberos protokolüne aşina olmayanlar için onu ağda kullanmanın yararları açık olmayabilir. Bununla birlikte, tüm sistem yöneticileri Kerberos'un hafifletmek için tasarlandığı sorunlara aşinadır. Parola dinlenilmesi, parola veya dosya/veritabanı çalınması ve büyük miktarda hesabın bulunduğu veri tabanlarının korunması bu sorunlardan bazılarıdır.

Uygun bir şekilde yapılandırılmış bir Kerberos Altyapısı bu sorunları adreslemenize yardımcı olarak işletmenizi daha güvenli hale getirir. Kerberos kullanımı parolaların ağda düz metin olarak iletilmesini önler. Kerberos sistemi, kullanıcı adı ve parola bilgilerinizi merkezileştirerek korunmasını ve yönetilmesini de kolaylaştırır. Son olarak, Kerberos parola bilgilerinizi yerel bir iş istasyonunda veya sunucuda tutma zorunluluğunuzu ortadan kaldırır. Böylece bir makinanın karşılaşacağı tehlikenin diğerlerini etkileme ihtimali azaltılmış olur.

Özetle, büyük bir işletmede Kerberos'un yararları; kullanıcı hesabı ve parolalaların daha kolay yönetilebilmesi sayesinde azaltılmış yönetim maliyeti ve güçlendirilmiş güvenlik olur. Daha küçük işletmelerde ise, ölçeklendirilebilir kimlik denetimi alt yapısı ve güçlendirilmiş ağ güvenliği gibi faydaları vardır.

Kerberos Nasıl Çalışır

Kerberos istemcilerin kimlik kanıtlamaları için, paylaşılan bir sırrı ve güvenilen üçüncü taraf bir hakemi kullanan bir kimlik denetim protokolüdür. Kerberos'da istemci kullanıcılar, sunucular veya yazılımlar olabilir. Güvenilen üçüncü taraf hakem ise Anahtar Dağıtım Merkezi (KDC) olarak bilinen Kerberos artalan sürecinin çalıştığı bir sunucudur. Paylaşılan sır kullanıcının kriptografik anahtara dönüştürülmüş parolasıdır. Sunucular ve yazılım sistemleri için rasgele anahtarlar üretilir.

Kerberos'da kullanıcılar yetkililerdir. KDC kullanıcılardan ve onların kimlik kanıtlamasında kullandıkları parolalarından oluşan bir veritabına sahiptir. Kerberos'da gizli anahtar bilgisinin kimlik kanıtlamada yeterli olduğu kabul edildiğinden Kerberos sunucusu bir istemcinin diğer bir istemciye kimliğini kanıtlamasında güvenilir taraf olarak kabul edilebilir. Kerberos'da kimlik kanıtlaması ağda hiç düz metin iletilmeden gerçekleştirilir. Aşağıda Kerberos protokolünün GNU/Linux'da Kerberos yazılımıyla nasıl gerçekleştirildiğini açıklayacağım.

KDC iki önemli Kerberos artalan süreci çalıştırır. Bunlar kadmind ve krb5kdc'dir. GNU/Linux artalan süreci adlandırmasında "k" ile başlayan süreçlerin Çekirdekle ilgili veya Çekirdek bölgesi süreçleri olması önerilmesine rağmen krb5kdc ve kadmind böyle süreçler değildirler. Bu iki artalan süreci root haklarıyla kullanıcı alanında çalışırlar.

kadmind Kerberos sunucusunun yönetimle ilgili sürecidir. kadmind yetkili kullanıcıların ve kural yapılandırma veritabanının muhafaza edilmesi için kadmin isimli program tarafından kullanılır. Eğer Kerberos donanımınıza ssh ile uzak bağlantı yapılmamasını seçmişseniz kadmin sunucunuzun bileşenlerini uzaktan yönetme imkanı sunar.

krb5kdc Kerberos sunucusunun yükünü taşıyan süreçtir. Kerberos kimlik denetiminde güvenilen üçüncü taraf hakem rolünü yerine getirmekle yükümlüdür. Bir kullanıcı kimliğini bir sistem veya bir servise kanıtlamak isterse KDC'den bir bilet talebinde bulunur. Bilet; istemcinin kimliği, oturum anahtarı, zaman bilgisi ve bazı diğer bilgilerden oluşan bir datagramdır. Datagram sunucunun gizli anahtarıyla şifrelenir.

Bu süreç ayrıntılı olarak şöyle çalışır; ilk olarak kimlik denetim talebi krb5kdc artalan sürecine gönderilir. Artalan süreci bu isteği aldığında istemciyi esas veritabanından kimlik denetimi yaparak kontrol eder. İstemcinin gizli anahtarını bu veritabanından okur ve ona geri göndermek için Bilet Veren Bilet (TGT) adında özel bilet olarak şifreler. İstemci oturum anahtarını içeren bu şifrelenmiş TGT'yi alır. Eğer istemci parolayı bilir (gizli anahtar esas veritabanında tutulur) ve başarıyla TGT'nin şifresini çözebilirse bileti oturum anahtarını da ekleyip şifreleyerek Bilet Verme Servisine (TGS) sunabilir. TGS daha sonra istemcinin özel bir sistem veya servisi kullanmasını sağlayacak yeni bir bilet yayınlar.

Sadece gizli anahtarı bilen istemcilerin şifresini çözebileceği şifrelenmiş biletlerin kullanımı sayesinde güvenli kimlik denetimi gerçekleştirilmiş olur. Tekrarlama ataklarından korunabilmek için bilete zaman bilgisi de dahil edilir. Tekrarlama atağı; yetkisiz erişim hakkı kazanmak için daha önceden kullanılmış bir biletin sahte gösterimidir.

Kerberos Altyapısının Ele Geçirilmesi

Bir Kerberos altyapısını ele geçirmek isteyen bir saldırganın öncelikle yapacağı şey Kerberos sunucularına saldırmak olacaktır. Eğer saldırgan KDC'ye root hakkıyla erişebilirse şifrelenmiş parolaların bulunduğu veritabanına da erişebilir. Böylece saldırgan Kerberos yazılımına ve yapılandırma dosyalarına da erişebilecek ve sistemi uygunsuz erişimlere izin verecek hale getirebilecektir.

Kerberos Altyapısına saldırmanın diğer yolları tekrarlama atakları ve parola tahmin ataklarıdır. Tekrarlama atağı bir Kerberos biletinin durdurulması veya ele geçirilmesi ve ardından sahtekarlıkla yetkisiz erişim kazanmaya çalışmak için kullanılması demektir. Parola tahmini ise bir Kerberos sisteminde ağdaki bütün Kerberos biletlerinin yakalanarak onları deşiflemek için mümkün tüm parolaların denenmesidir.

Bir saldırgan altyapıya saldırmak için eskimiş bir yazılımın açıklarından faydalanabilir. Örneğin Kerberos 4'ün bilinen pek çok sorunu vardır. En önemlisi, Kerberos 4'ün şifrelemede kullandığı protokolün temel zayıflıkları vardır. Kerberos 4'ün tasarımında standart kipte DES kullanılmıştır, bu sayede bir saldırgan Kerberos biletlerinin şifrelenmiş hallerini durdurup değiştirebilmekte ve tespit edilememektedir. Bu ataklardan korunmak için Kerberos 5, üçlü DES'i CBC kipinde kullanacak şekilde değiştirilmiştir.

Kerberos 4'ün dayanıklılığını tartışırken birçok Kerberos 4 uygulamasının hafıza taşması (buffer overflow) açığına sahip olduğu unutulmamalıdır. Sürüm 4'ün hafıza taşması zayıflığını kapatacak sürüm 5 geliştirilirken Kerberos dağıtımları genellikle Kerberos 4 uygulamaları için geriye dönük uyumluluk sağlayacak şekilde dağıtıldı. Kerberos 5'deki geriye uyumluluk kodlarının hala hafıza taşması ataklarına açık olduğuna inanılmaktadır.

Sürüm 4'ün protokol zayıtlıkları ve olası hafıza taşması atakları yüzünden en iyisi Kerberos 4'ü kullanmamak ve desteklememektir.

Özetle, Kerberos altyapısının nasıl ele geçirilebileceğinin bu tanımından Kerberos sunucuların güvenliklerine birincil derecede önemin verilmesi gerektiği, güncel Kerberos yazılımı kullanılması gerektiği ve tedbirli olup iyi parolalar seçilerek iyi bir parola politikası uygulanması gerektiği sonuçları çıkarılmalıdır.