Kerberos Protokolü Nedir?Nasıl Çalışır?

Nuri Yavuz
3 min readMay 26, 2019

--

Öncelikle, Kerberos nedir?

  • MIT tarafından oluşturulmuş “Ağ kimlik denetim sistemi”dir.
  • Client ve server ın karşılıklı olarak birbirini yetkilendirmesine dayanan simetrik bir şifreleme yöntemidir.
  • Kimlik denetim mekanizması Ticket denilen biletler üzerinden gerçekleştirilir.
  • Kullanıcılara ticket dağıtımı KDC(Key Distribution Center) gerçekleştirir.
  • UDP 88 portu üzerinden hizmet vermektedir.
  • Microsof,Google gibi büyük firmalar bu protokolü desteklemektedir.

Kerberos protokolünün mekanizmasını ilk önce çok basit bir anlatımını yapıp daha sonra nispeten daha detaylı bir anlatım yapacağım.

  1. )Alice,AS(Authentication Service) e al benim kullanıcı bilgilerim,bak.Eğer bu sistemde bir kullanıcıysam bana bilet sağlayan bilet (TGT,Ticket Granting Ticket) ver,talebinde bulunur.

2,3.)AS,kontrol eder ve evet buna hakkın var derse,bilet sağlayan bilet (TGT,Ticket Granting Ticket) i Alice e yollar,yollar yollamasına da öyle plain-text olarak yollamaz Alice’in kullanıcı password u ile hash işlemine sokar ve yollar,hash işlemine sokmasındaki amaç bilet sağlayan bilet (TGT,Ticket Granting Ticket) i ağ üzerinden yolladığı için ve plain-text olması güvenli olmayacağı için bunu sadece Alice kullanabilsin diye Alice’nin parolası ile hashler ve hashlenmiş mesajı sadece Alice kendi parolası ile açar ve Alice dışındakiler ağ üzerinde bilet sağlayan bilet (TGT,Ticket Granting Ticket) i yakalasalar bile kullanılan hash’in anahtarına sahip olmadıkları için ellerindeki bu bilet sağlayan bilet hiçbir işe yaramaz.

4.)Alice elindeki TGT(Ticket Granting Ticket) ile TGS(Ticket Granting Service) den kullanmak istediği servis için bilet talep eder.

5.)TGT de bir sorun yoksa,TGS al sana kullanmak istediğin servis için bilet der.

6.) Alice bu servis biletiyle ulaşmak istediği ağ servisine bağlanma isteği yollar.

7.)Bağlanılmak istenen servis,ona yollanan servis bileti sayesinde bağlantıya izin verir.

Şimdi kerberos protokolünün daha detaylı bir anlatımını yapalım;

1.)Bir Kerberos istemcisi, kullanıcı kimliğini clear-text olarak AS(Authentication Service) ye gönderir.

2.)AS(Authentication Service), istemcinin kullanıcı veritabanında olup olmadığını kontrol eder ve bulunursa,istemci için istemcinin parolası ile hash işlemine tabi tutar ve istemciye secret-key oluşturur.AS(Authentication Service) daha sonra Kerberos istemcisine bir “client/TGS session-key” ve “TGT:Ticket Granting Ticket (bilet sağlayan bilet)” gönderir.“client/TGS session-key” istemcinin secret-key ile şifrelenir.

3.)Kerberos istemcisi,secret-key ile encrypt edilmiş olarak gelen“client/TGS session-key” i decrypt eder.TGT yi ve erişmek istediği kerberos servisinin (DNS vs.) ID si içeren bir “İSTEK MESAJI” ve client/TGS session-key ile şifrelenmiş bir client ID ile timestamp içeren “AUTHENTICATOR MESSAGE” yollar.

4.)TGS(Ticket Granting Service),kerberos istemcisinin istenen kerberos servisine erişme yetkisi olduğunu doğrular ve sonra kerberos istemcisine bir “service-ticket” ile client/TGS session-key ile encrypt edilmiş olan bir “client/server session-key” yollar.

5.)Kerberos istemcisi,erişmek istediği kerberos servisine,“service-ticket” ve client/server session-key ile encrypt edilmiş “yeni bir authenticator-message” yollar.

6.)Kerberos servisi,client/server session-key i görmek için service-ticket i decrypt eder, ardından istemcinin timestampini görmek için authenticator message ın decrypt eder.Kerberos servisi,client/server session-key ile decrypt edimiş olan timestamp i içeren, “servis onay mesajı” nı Kerberos istemcisine geri gönderir.

Encryption aşamaları:

--

--

Nuri Yavuz

“No effect is before the cause” in the same time “Cause doesn’t necessarily come before effect”