Sayfayı Yazdır | Pencereyi Kapat

Kerberos Güvenlik Protokolu

Nereden Yazdırıldığı: Bilginin Adresi
Kategori: Bilgisayar Güvenliði / Computer Security
Forum Adı: Güvenlik / Security Makaleleri
Forum Tanımlaması: Bilgisayarýnýzý Her Türlü Saldýrýya Karþý Korumak Ýçin Yapmanýz Gerekenler
URL: https://www.bilgineferi.com/forum/forum_posts.asp?TID=8591
Tarih: 25-04-2024 Saat 10:24


Konu: Kerberos Güvenlik Protokolu
Mesajı Yazan: megabros
Konu: Kerberos Güvenlik Protokolu
Mesaj Tarihi: 18-04-2010 Saat 11:25

MIT’de çalýþan bir grup mühendis tarafýndan üzerinde çalýþtýklarý Athena projesi sýrasýnda geliþtirildi. Protokolün kabul gören ve kullanýlan ilk sürümü versiyon 4 olarak kendini göstermiþ. IT sektöründe bazý sistem üreticileri tarafýndan kabul gören protokol daha sonra yazarlarý tarafýndan daha da geliþtirilip versiyon 5’e yükseltilmiþ. Daha sonra bu versiyon IETF tarafýndan bilgisayar aðlarýnýn kaynaklarýný kullanmak için aða baðlanmak sýrasýnda maksimum güvenlik saðlamak amacýyla kullanýlabilir þeklinde standardize edildi. (RFC 1510 ).

Kerberos, iki istemci arasýnda paylaþtýrýlan gizli anahtarlarý kullanma esasýna göre hazýrlanmýþ bir protokol. Dayandýðý temel esasen çok basit: Eðer gizli bir anahtar sadece iki insan tarafýndan bilinirse, bu durumda iki insan da karþýsýndakinin kim olduðu konusunda söylediði bilgilere, bu anahtarý kullanarak inanabilir. (Askerlikte nöbetlerde kullanýlan parola gibi).

Örnek olarak Mehmet yüzbaþýnýn Ahmet yüzbaþýya bir mesaj göndermesi gerektiðini düþünelim. Bu mesajýn Ahmet tarafýndan Mehmet’ten geldiðine inanýlmasý lazým ki, gereken tedbirler alýnabilsin, iþler yapýlabilsin. Bu durumda iki mehmetçik arkadaþýmýz, aralarýnda baþtan bir anlaþma yaparak bir parola seçerler ve bu parolayý da baþka kimseye söylemezler. Eðer Mehmet’in Ahmet’e gönderdiði mesaj bir þekilde parola bilgisini içinde taþýyorsa, Ahmet mesajý aldýðýnda gerçekten de Mehmet’ten geldiðini anlayabilir.

Bu iþlem sýrasýnda aklýmýza hemen Ahmet’e mesajý gönderen Mehmet’in parolayý da bildiðini ona nasýl göstereceði sorusu takýlýyor. Basit olarak Mehmet mesajýn içine bu parolayý da ilave edebilirdi. (Belki de mesajýn sonuna bir imza atar, altýna da gizli anahtarýmýz budur notunu düþer). Bu yöntem tabii ki bilgisayar aðlarýnda giden gelen mesajlarýn baþkalarý tarafýnda okunamadýðý durumlarda geçerli olabilir. Günümüzde ise maalesef durum böyle deðil. Tüm bu mesajlar, üçüncü bir kiþi, Önder yüzbaþýnýn da bilgisayarýnýn baðlý bulunduðu bir bilgisayar aðý üzerinde gidip geliyor. Önder Bey’in ise bilgisayarýnda bir að dinleme yazýlýmý varsa, ve bu arkadaþýmýz da boþ zamanlarýnda bilgisayar aðýndaki paketleri yakalayýp “Ýçlerinde acaba neler var ?” diye incelemeler yaparak vakit geçiriyorsa iþler hiç de bu kadar kolay deðil.

 

Kerberos protokolü, bahsettiðimiz bu problemi, gizli anahtarlarýn kriptolanmasý (þifrelenmesi) tekniði ile çözüyor. Gizli bir þifreyi paylaþmak yerine, iki yüzbaþý kriptolanmýþ bir anahtarý paylaþýyorlar ve bu anahtar sayesinde birbirlerine güveniyorlar. Bu tekniðin çalýþmasý için, paylaþýlan bu anahtarýn simetrik olmasý gerekir. Yani tek bir anahtar hem mesajlarý kriptolayabilmeli, hem de açabilmeli. Ahmet yüzbaþý mesajý açabilirse, gönderenin de bunu kriptolayabildiðine inanmýþ olur.

Bu þekilde gizli kriptolanmýþ anahtarlarý kullanan bir protokolün prensipleri, bir kiþinin kapýnýza kadar gelip onu çalmasý ile baþlar. Ziyaretçinin içeriye girebilmesi için, gelen, ayný zamanda kendisinin de kimliðini bir þekilde kapýdaki nöbetçiye bildirmek zorundadýr. Bunu yaparken kullandýðý teknik ise her defasýnda farklý olmalý ve baþkalarý tarafýnda da kullanýlamamalýdýr. Yoksa, duvarýn diðer tarafýndan konuþmalarý dinleyen istenmeyen kulaklar, daha sonra ayný tekniði kullanarak nöbetçiyi de kandýrabilirler. Ali Baba ve Kýrk Haramiler hikaseyinde “Açýl Susam Açýl” þifresi aynen böyle öðreniliyor deðil mi?

Gelin biraz da bu iþin detaylarýna bakalým:

1. Mehmet, Ahmet’e text olarak ismini ve bu ikilinin anlaþtýðý gizli anahtarlarý ile kriptolanmýþ olarak da kimliðini içeren mesajýný gönderir. Mesajda kullanýlan kimlik bilgisinin içinde iki tane alan vardýr. Birinci alanda, Mehmet ile ilgili bilgiler bölümü -belki de Mehmet’in soyismi- tutulur, ikinci alanda ise, Mehmet’in saatinin mesajý gönderdiði anda kaç olduðu bilgisi yer alýr.

2. Ahmet yüzbaþý, Mehmet olduðunu iddia eden birisinden gelen mesajý alýr ve Mehmet ile baþtan anlaþtýklarý anahtarý kullanarak þifreyi çözer. Mesajýn içinden Mehmet’in saatini inceler, ve bunu kendisininki ile karþýlaþtýrýr. Eðer Mehmet’in saati, Ahmet’in saatinden beþ dakika geri ya da ileri ise, Ahmet mesajý kesin olarak reddeder.

Eðer Mehmet ile Ahmet’in saatleri baþtan birbirleriyle uyumlu olsa, sistem sorunsuz çalýþacak gibi görünüyor. Þimdilik bilgisayar aðýmýzdaki bilgisayarlarýn sistem saatlerinin otomatik olarak senkronize edildiðini düþünelim. (Windows 2000’de “time server” servisi var).

Eðer, mesajlarýn saatleri birbirlerini tutuyorsa, mesajýn gerçekten de Mehmet’ten gelme ihtimali olabilir. Ancak, yine de Ahmet yüzbaþý mesajýn kesinlikle Mehmet’ten geldiðine emin olamaz. Yine de bilgisayar aðýný sabahtan beri dinleyen birisi, sabah yakaladýðý mesajlarý öðleden sonra tekrar birilerine göndermek gibi iþlerle uðraþýyorlarsa, sistem saatlerinin kayýt edilmesi tekniði bu gibi atak risklerini ortadan kaldýrýr.

3. Ahmet yüzbaþý, Mehmet ile baþtan anlaþtýðý anahtarý kullanarak, çözdüðü mesajdan Mehmet’in sistem saatini anlar ve bunu tekrar Mehmet’e geri gönderir. Sadece Mehmet yüzbaþýnýn sistem saati bilgisinin geri gönderilmesi, mesajýn içinden Mehmet’in kimlik bilgisinin tamamýný kopyalayýp birilerine gönderen casuslara karþý iyi bir koruma saðlar. Casuslarýn tabii ki, anahtarlarý olmadýðýndan mesajlarý çözebilmek yerine sadece kopyalabilirler. Sistem saati bilgisini geri gönderme sebebi ise, her mesaj için farklý olmasý garanti olan, tekil bir bilgiye iyi bir örnek olmasýdýr.

Tartýþtýðýmýz bu teknikle ilgili önemli bir þey aklýnýza takýldý mý? Hala, bu yüzbaþý arkadaþlarýmýzýn bu iþlerde kullanýlan kod çözücü anahtarlarý nasýl elde ettiklerini belirtmedik. “Sadece herkesin bir anahtarý vardýr” kabülünü yaptýk. Eðer bu sistem günlük hayatta kullanýlsa idi, yüzbaþýlar gizli bir yerde konuþarak bu anahtar enformasyonunu deðiþ tokuþ edebilirlerdi, ancak bizim bilgisayar aðlarýnda konuþan PC’ler devri daha baþlamadý bildiðiniz gibi.

Kerberos protokolü, bu sorunu, bize anahtar daðýtým merkezini (Key Distribution Center - KDC) tanýþtýrarak çözüyor. Kerberos (Cerberus), eski Yunan mitolojisinde Alt Dünya’nýn kapýlarýnda bekleyen ve geçiþlere izin veren üç baþlý bir köpek. Bekçi Kerberos köpeði gibi, güvenlik protokolümüzün de üç tane kafasý var: Bir tane istemci, bir tane sunucu, ve Anahtar Daðýtým Merkezi. Ýþte bu iþlemlerde arada bulunan güvenilir yere KDC diyoruz.

Güvenlik protokolümüzün tanýmýna göre KDC, fiziksel olarak güvenli olduðu kabul edilen bir sunucuda çalýþýr. Kendi REALM’ýndaki (Windows 2000’deki domain’in Kerberos karþýlýðý) tüm PRINCIPAL’lara (Windows 2000 domain’deki kullanýcýlarýn Kerberos karþýlýðý) ait kullanýcý bilgilerini bir veritabanýnda tutar. Ayrýca, kullanýcýlara ait kimlik bilgileri ile beraber, sadece kullanýcýnýn kendisi ve KDC tarafýndan bilinen özel bir anahtarý da tutar. Bu anahtar, kullanýcý ile, KDC arasýnda daha sonra yapýlacak olan mesaj transferlerinin güvenli bir þekilde kriptolanmasý için kullanýlýr. Çoðu Kerberos implementasyonunda, bu özel anahtar, kullanýcýnýn þifresinden türetilir.


Ýstemci, bir sunucu ile konuþmak istediðinde, KDC’ye bir istek iletir ve bu ikilinin konuþmalarý sýrasýnda kullanacaklarý oturum anahtarlarý (session key) üretilir. Ýstemcinin bu isteðine karþý getirilen iki oturum anahtarý da KDC tarafýndan istemciye gönderilir þöyle ki: Ýstemcinin oturum anahtarý istemcinin KDC ile paylaþtýðý özel anahtar ile kriptolanýr, sunucuya ait oturum anahtarý ise istemciye giden bilgi paketinin içine, istemciye ait bilgiler ile birlikte yerleþtirilir. Ýlgili sunucunun KDC ile paylaþtýðý özel anahtar ile kriptolanan ve içinde istemciyi tanýtan bilgiler de olan sunucuya ait bilgiler, en son olarak bir de istemcinin KDC ile paylaþtýðý özel anahtar ile kriptolanýp istemciye KDC tarafýndan gönderilir.

Ýstemci, KDC’den cevabý aldýðýnda, kendi anahtarý ile verileri okur ve þifresi çözülmüþ bu bilgileri hafýzasýna yazar. (Güvenlik açýsýndan Kerberos’un Windows 2000’deki uygulamasýnda disk bu verileri saklamak için kullanýlmýyor). Sunucuya baðlanmak istediðinde ise, sunucuya, içinde sunucunun KDC ile paylaþtýðý anahtarý ile kriptolanmýþ oturum anahtarýnýn da bulunduðu isteðini gönderir. (Ýstemciye sunucuya gönderilmek üzere KDC tarafýndan oluþturulmuþ özel bölümü, sunucuya ait anahtarý bilmediði için çözemez, böylece sunucuya ait, içinde bu oturuma ait sunucu oturum anahtarlarýnýn olduðu bilgiler de, istemci tarafýnda sunucuya gönderilmesine raðmen güvence altýna alýnmýþ olur.)

Sunucu, istemciden gelen bu isteði aldýðýnda, kendi özel anahtarý ile kimlik bilgilerinin bulunduðu bölümü çözer. Ýstemci, bu haberleþme için karþýlýklý kimlik ispatlanmasýný da sunucudan istemiþse, sunucu, istemcinin gönderdiði mesajýn içinden, bu mesajýn oluþtuðu zamanki sistem saatini de çözüp kriptolayarak istemciye gönderebilir. Eðer her þey yolunda giderse, sunucu, istemcinin güvenilen bir KDC’den kimlik bilgilerini aldýðýný öðrenir ve istemci de sunucuya güvenir. Böylece bu mesajýn içinden elde edilen oturum anahtarý da kullanýlarak istemci ile sunucu arasýndaki oturum baþlatýlýr. Sunucu ile istemcinin bundan sonraki haberleþmelerinde kullanacaklarý bu oturum anahtarlarý genelde en fazla 8 saat boyunca bilgisayarlarýn hafýzalarýnda dururlar, bu süre içinde kapatýlan ya da logoff olunan makinalarda anahtar hafýzadan silinir, süre bittiðinde ayný iþlemler yeniden baþlatýlarak, yenilenir.

Oturum þifrelerinin kriptolanmasý ve açýlmasý sýrasýnda kullanýlan ve istemci ile sunucularýn KDC ile paylaþtýklarý özel anahtarlar da bilgisayarlarýn ve kullanýcýlarýn þifrelerinden türetilir. (Kullanýcýlar için kullanýcý hesabýnýn þifresi, sunucular için bilgisayar hesabýnýn domain’deki þifresi).

Herhangi bir kullanýcý aða ilk baðlandýðýnda (Kullanýcý Windows 2000 domainine logon olduðunda), kullanýcýnýn bilgisayarýndaki Kerberos yazýlýmý þifreden özel anahtarý üreterek, istemciye özel bir kriptolama algoritmasý ile þifreleyerek gönderir. (Teknik olarak DES-CBC-MD5 kriptolamasý tekniðinin bu iþlemde kullanýldýðýný ayrýca belirtelim). Bu bilgi KDC’ye geldiðinde, KDC, kullanýcýnýn þifresini zaten bildiðinden, (Windows 2000 domain sunucularý ayný zamanda KDC görevini üstlenmekteler), gelen bu bilgiyi kendisinin ürettiði ile karþýlaþtýrýr ve istemcinin logon þifresini onaylar. Bu iþlem sabah bir kere yapýldýktan sonra, KDC, bu istemciye, kendisine ilerde herhangi bir oturum anahtarý almak için bir kere baþvurmak isterse, giden gelen mesajlarý kriptolayarak yollamak için kullanacaðý bir anahtar alma anahtarý da gönderir (Ticket Granting Ticket). Bu sayede tüm istemcilerin KDC ile bundan sonraki tüm konuþmalarýnýn da bu oturum anahtarý ile kriptolanmasý saðlanmýþ olur.

Saygýlar.



Sayfayı Yazdır | Pencereyi Kapat