[TR] 4-way Handshake nedir?

Anıl Çelik
5 min readJul 28, 2020

Herkese merhaba. Bu yazımda, 2004 yılında IEEE 802.11i standardı ile birlikte WPA2 (Wi-Fi Protected Access 2) protokolü içerisinde güvenliği arttırmak üzere tanıtılan 4-way Handshake kavramından bahsedeceğim.

Öncelikle, 4-way Handshake nedir?

Daha derine girmeden önce, 4-way Handshake kavramını bir Erişim Noktası ile iletişim kuran İstemcinin arasında 4 adımda gerçekleşen etkileşimin sonundaki Association Process sonrasında gelen ve ağ üzerinde gönderilen verilerin encrypted, yani şifreli bir biçimde gönderilmesi için İstemci ve Erişim Noktası arasında 4 adımda gerçekleştirilen bir mesajlaşma sonucunda oluşturulan encryption anahtarları olarak tanımlayabiliriz.

4-way Handshake’den tam olarak bahsetmeden önce, az önce yukarıda da bahsetmiş olduğumuz Association Process adımının da içerisinde yer aldığı ve bir İstemcinin bir Erişim Noktası ile iletişim kurmaya çalıştığında arada gerçekleşen 4 adımlı etkileşimden bahsedelim:

İstemci ve Erişim Noktası arasında gerçekleşen 4 aşamalı etkileşim
  • Beacon Frames: Erişim noktaları tarafından kendilerinin o çevrede bulunduklarını çevredeki istemci cihazlara bildirmek için Broadcast (hedefi belirli olmadan yayın yapan) paketler şeklinde yayılan framelerdir. (1)
  • Probe Request: Bu frameler, bir istemci tarafından yine Broadcast şekilde yayılan, ancak bu sefer belirli bir erişim noktasına bağlanmak için gönderildiğinden dolayı içerisinde hedef erişim noktasının SSID değerini, yani erişim noktasının adını barındıran framelerdir. (2)
  • Probe Response: Erişim noktaları tarafından kendilerine gönderilmiş Probe Requestlere cevap olarak dönen ve aldığı Probe Request paketinin kendisine başarılı bir şekilde ulaştığını Client’a (İstemci) belirtmek için yollanan paketlerdir. (2)
  • Authentication Request & Authentication Response: Erişim noktasının sahip olduğu yetkilendirme tipine göre Client tarafından AP’e (Erişim Noktası) bir Authentication Request gönderilir ve yine cevap olarak AP’den Client’a bir Authentication Response döner. (3)
  • Association Request: Bu adımda bir önceki adımdaki Authentication aşamasının başarılı olması takdirde, Client AP’in sahip olduğu ağa erişim sağlamak için bir Association Request yollar. (4)
  • Association Response: Bu noktaya kadar eğer her şey yolunda giderse, AP’e istek göndermiş olan Client ağa dahil olur ve DHCP server tarafından bir IP adresi alır. (4)

4-way Handshake öncesinde gerçekleşen ve Client ile AP arasında 4 adımda gerçekleşen etkileşimi incelediğimize göre, şimdi 4-way Handshake’i anlama aşamasına geçebiliriz:

4-way Handshake

Öncelikle yazının devamında bahsedilecek olan bazı kavramlardan bahsedelim:

  • PMK (Pairwise Master Key): Session içerisinde içinde bulunulacak Peer-to-Peer communication için bir Master Key üretilmelidir ve bu key Pairwise Master Key (PMK) olarak adlandırılır. PSK (Pre-Shared Key/Parola Değeri) ve SSID bilgisi (Service Set Identifier: Erişim Noktasının adı) tarafından oluşturulmaktadır.
  • PTK (Pairwise Transit Key): PTK, bir AP ile Client arasındaki trafiği şifrelemek için kullanılan unique bir anahtardır ve PMK yardımı ile üretilmektedir. Bir AP ile Client arasında PTK’in oluşturulabilmesi için, aşağıdaki bilgilere ihtiyaç duyulmaktadır:

PTK = PRF (PMK + ANonce + SNonce + MAC (AP) + MAC (STA))

Oluşturulmak istenen PTK, bir önceki adımda bahsetmiş olduğumuz PMK değerini alıp; ANonce (AP tarafından üretilen authentication için kullanılan random değer), SNonce (Supplicant, yani istemci tarafından üretilen random değer) ve son olarak AP ve STA (istemci) MAC adreslerini alıp bunları Pseudo-Random Function’a (PRF) verdikten sonra hesaplanmaktadır ve her bağlantı oturumunda yeniden hesaplanmaktadır.

  • GTK (Group Temporal Key): GTK adı verilen anahtar, bir AP ile birden fazla Client’ın bulunduğu bir ortamda arada giden bütün Broadcast ve Multicast (birden çok noktaya) trafiği encrypt etmek için kullanılır. GTK anahtarı, bir tane AP’e bağlı bütün Clientlar arasında paylaşılmakla beraber, her yeni AP için yeni bir GTK oluşturulmakta ve yine o AP’e bağlı Clientlar arasında paylaşılmaktadır.
  • GMK (Group Master Key): GTK anahtarının üretilmesi için kullanılmaktadır.
  • MSK (Master Session Key): 802.1X/EAP tarafından veya PSK Authentication aşaması sonucunda üretilen ilk anahtardır ve Session Key’i encrypt etmek için kullanılır.

4-way Handshake’e dair bazı kavramları açıkladığımıza göre, şimdi öncelikle 4-way Handshake öncesinde olan etkileşime dair network içerisinde oluşan trafiği, sonrasında ise 4-way Handshake aşamasında oluşan trafiği inceleyebiliriz. Öncelikle 4-way Handshake öncesinde olan etkileşimle ilgili trafiği inceleyelim:

Client & AP arasındaki temel etkileşim

Buradan görebileceğimiz gibi, ilk başta Client ile AP arasında bir temel iletişim sağlanmakta. Sonrasında ise Client AP’e bağlanırken aradaki 4-way Handshake iletişiminin gerçekleşmiş olduğunu da aşağıdaki figürden görebiliriz:

4-way Handshake

Gördüğümüz gibi, bir önceki figürde en son gelen Association Response işleminin hemen sonrasında 4-way Handshake paketleri gelmekte. Şimdi bu paketlerin içeriklerini inceleyelim. İlk olarak Key (Message 1 of 4) isimli paketle, yani 4-way Handshake işlemi esnasında gönderilen ilk paketle başlayalım.

  • EAPOL RSN Key | Message 1 of 4
EAPOL RSN Key (Message 1 of 4)

4-way Handshake içerisinde gönderilen ilk mesajda, AP tarafından Client’a PTK oluşturulması için bir EAPOL mesajı gönderilir. Bu durumda Client tarafında bulunan bilgiler; PMK, SNonce, AP’e ait ve kendine ait MAC adresleridir. AP tarafından Client’a gönderilen ANonce mesajı ile, bütün bu bilgiler PRF’e (Pseudo-Random Function) verilerek PTK oluşturulması için ilk adım tamamlanır.

  • EAPOL RSN Key | Message 2 of 4
EAPOL RSN Key (Message 2 of 4)

Gönderilmekte olan ikinci mesajda, Client tarafından AP’e içerisinde random olarak üretilen SNonce değeri yine bir EAPOL mesajı ile yollanmaktadır. Yollanan bu değer sonrasında, AP artık PTK’in üretilebilmesi için gerekli bütün değerlere sahiptir. Ayrıca gönderilmekte olan ve yukarıdaki figürde de işaretlenmiş olan WPA Key MIC (Message Integrity Check) değeri, gönderilmekte olan bu EAPOL mesajının AP tarafından gönderilme esnasında herhangi bir değişikliğe uğrayıp uğramadığını kontrol etmek için yollanmaktadır. Yollanan bu mesaj AP’e ulaştırıldığında artık PTK değeri üretilmektedir. Üretilmiş olan veriyi aşağıda görebiliriz:

Oluşturulmuş PTK değerine ait bilgiler
  • EAPOL RSN Key | Message 3 of 4
EAPOL RSN Key (Message 3of 4)

Üçüncü EAPOL mesajında, AP’den Client’a içerisinde ANonce, RSN-IE & MIC değerlerinin de bulunduğu, GMK tarafından üretilmiş bir GTK değeri gönderilir. Bu GTK değeri, Broadcast & Multicast paketlerinin decrypt edilmesi aşamasında kullanılır.

  • EAPOL RSN Key | Message 4 of 4
EAPOL RSN Key (Message 4 of 4)

4-way Handshake aşamasında Client tarafından AP’e gönderilen son EAPOL paketi ise oluşturulmuş anahtarları kullanarak şifreli iletişimi başlatır.

  • Sonuç:

Gerçekleşmiş olan 4-way Handshake işlemi ile, Client ile AP arasındaki Unicast trafik PTK ile, çoklu Clientlar arasındaki Multicast trafik ise GTK ile şifrelenmiş oldu ve daha güvenli bir bağlantı sağlanmış oldu.

4-way Handshake işlemi ile bahsetmek istediklerim bu kadardı, umarım size bir faydası olmuştur.

Yazımı okuduğunuz için teşekkür ederim, bir sonraki yazımda görüşmek üzere.

Kaynaklar:

--

--