Yaygın olarak kullanılan seri haberleşme standartlarından biri olan PPP (Point-to-Point Protocol – Noktalar Arası İletişim Kuralı), bağlantıyı yapan cihazın yetkili cihaz olup olmadığını anlamak için kimlik denetimi yapabilir. PPP, bu kimlik denetimini PAP (Password Authenticaton Protocol - Şifre Doğrulama Kuralı) ve CHAP (Challenge Handshake Authentication Protocol - Üçlü El Sıkışma Kimlik Doğrulama Kuralı) isimli protokoller aracılığıyla gerçekleştirir. Bu protokoller aracılığıyla gerçekleştirilen kimlik denetimi zorunlu değil, tercihidir. Kimlik doğrulama yapılmadan da bağlantı kurulabilir.
PAP, 2-Way Handshake (İki Yönlü El Sıkışma) yaparak kimlik denetimini gerçekleştirir. Kullanıcı adı ve şifre bu yöntemde şifreleme yapılmadan, açık olarak karşı tarafa ulaştırırlır. PAP’ta bağlantı kurulduktan sonra bir daha kimlik denetimi yapılmaz. Ayrıca PAP’ta şifrelerin aynı olma zorunluluğu yoktur. Aşağıdaki şekilde de görülebileceği gibi PAP kimlik denetimi sırasında şu işlemleri gerçekleştirir:
- R1 PAP kullanıcı adı ve şifresini R3’e gönderir.
- R3, R1’den gelen kullanıcı adı ve şifreyi kendi yerel veritabanında arar. R1’in gönderdiği kullanıcı adı ve şifre R1’de daha önceden tanımlanmıştır.
- R3 herhangi bir eşleşme bulursa accept (kabul), aksi durumda reject (ret) mesajı yollar.
PAP, kimlik doğrulama işlemini gerçekleştirmesine karşın çok güçlü bir denetim yapmaz. PAP protokolünde “playback” (tekrarlama) isimli atak ile bilgilerin alınıp, geri paket gönderme yapılarak oturuma dahil olunması şeklinde kimlik denetimi aşılabilir. Bunun yanı sıra bir kere kimlik denetiminden geçtikten sonra bir daha kimlik denetimi olmadığı için “session hijacking” (oturumun çalınması) mümkündür. Bu sorunlara çözüm amaçlı CHAP protokolü geliştirilmiştir.
CHAP, PAP’tan farklı olarak 3-Way Handshake (Üç Yönlü El Sıkışma) yapar. Kimlik denetimi açık olarak yapılmaz, md5 matematik fonksiyonuna tabi tutularak “hash” (geri dönüşü olmayan fonksiyon) haline getirilir. Ayrıca CHAP’ta kimlik doğrulama belirli aralıklarla yapılır. Bütün bu özellikleri CHAP’ı PAP’tan daha güvenli bir protokol yapmaktadır. Aşağıdaki şekilde de görülebileceği gibi CHAP kimlik denetimi sırasında şu işlemler gerçekleşir:
R3, üçlü el sıkışmayı başlatır ve R1’e “challenge” isimli rastlantısal, o anda belirlenmiş bir değer gönderir.
- R1, kullanıcı adını, şifresini ve gelen “challenge” değerini md5 matematik fonksiyonuna tabi tutar ve R3’e gönderir.
- R3, kendi yerel veritabanında bulunan kullanıcı adı ve şifre ile “challenge” değerini md5’e tabi tutarak elde ettiği değeri R1’in yolladığı değer ile karşılaştırır.
CHAP’ta “challenge” değeri için bağlantı her kuruldulduğunda rastlantısal olarak başka bir değer seçileceği için şifreyi oluşturan “hash”li ifade bir daha aynı olmaz. Bu da “playback” ataklarını engeller. Ayrıca iki tarafın da aynı sonucu alabilmesi için her iki cihaz için de verilen şifreler aynı olmalıdır.
PPP Kimlik Doğrulama Yapılandırması
PPP kimlik doğrulaması yapılırken hangi doğrulama protokolünün kullanılacağı aşağıdaki komutlarla belirlenir. Bu komutlar “global configuration mode”dan ilgili seri “interface”e girildikten sonra yazılır.
Router(config-if)#ppp authentication pap // ilgili interface’te pap’ı etkinleştirir.
Router(config-if)#ppp authentication chap // ilgili interface’te chap’ı etkinleştirir.
Router(config-if)#ppp authentication pap chap // hem chap hem pap etkinleştirilir, pap daha önce işleme alınır.
Router(config-if)#ppp authentication chap pap // hem chap hem pap etkinleştirilir, chap daha önce işleme alınır.
PAP Yapılandırması
R1'de Girilmesi Gereken Komutlar
R1(config)#username R3 password sifre1
R1(config-if)#ppp authentication pap
R1(config-if)#ppp pap sent-username R1 password sifre2
R3'te Girilmesi Gereken Komutlar
R3(config)#username R1 password sifre2
R3(config-if)#ppp authentication pap
R3(config-if)#ppp pap sent-username R3 password sifre1
PAP yapılandırmasında istenirse şifreler farklı da yapılabilir. Yukarıda da görülebilceği gibi “username” komutu ile kendisine bağlanacak diğer yönlendiricinin kullanıcı adı ve şifre bilgisi, “ppp pap sent-username” komutu ile ise kendi kullanıcı adı ve şifre bilgisi tanımlanır.
CHAP Yapılandırması
R1'de Girilmesi Gereken Komutlar
R1(config)#username R3 password ayni
R1(config-if)#ppp authentication chap
R3'te Girilmesi Gereken Komutlar
R3(config)#username R1 password ayni
R3(config-if)#ppp authentication chap
CHAP yapılandırmasında varsayılanda yönlendirici kendi “hostname”ini kendi kullanıcı adı olarak, “enable password” komutuyla girilen şifreyi kendi şifresi olarak karşı tarafa yollar. CHAP protokolünde şifrelerin aynı olması gerekmektedir.
PAP ve CHAP arasındaki temel farklar aşağıdaki tabloda gösterilmiştir:
PAP | CHAP |
2 yönlü el sıkışma yapılır. | 3 yönlü el sıkışma yapılır. |
Kullanıcı adı ve şifre karşı tarafa açık olarak gönderilir. | Kullanıcı adı ve şifre md5 şifrelemesi ile karşı tarafa gönderildiğinden daha güvenlidir. |
Kimlik denetimi bağlantı kurulduktan sonra bir daha yapılmaz. | Kimlik denetimi belli aralıklarla tekrar gerçekleşir. |
İki tarafta kullanılan şifreler aynı olmak zorunda değildir. | Şifrelerin aynı olma zorunluluğu vardır. |