WEP' in Açıkları, Kablosuz Ağlara Saldırı & Defans - 2

22-12-2005

Sorun Nerede Başlıyor?

Sniffing , ARP Poisoning yıllardır kullandığımız kablolu ağlarda ciddi sorunlar arasında gelse de bu ataklar özellikle küçük oranizasyon ve ağlarda önemsiz sayılabilirler. Başlıca nedeni bu atakları yapabilecek saldırganının network ()’ e fiziksel erişimi olmalıdır. Daha geniş şekilde bakarsak bu ya bir çalışan ya da içeriye kadar girebilmiş bir saldırgan olmalıdır.

Bunun fiziksel güvenlik ve firma içerisindeki güvenlik politikası kısmını bir yana alırsak genelde bu tip bir yaklaşımı güvenli olarak kabul edebiliriz.

Ancak kablosuz ağlar bu güven zincirinin yegane özelliğini kırıyor ve fiziksel erişimi bir adım daha genişletiyor. Artık siz kablosuz olarak ağınıza bağlanabildiğiniz gibi size yakın bir saldırgan yada bedava internete girmek isteyen komşunuzun sevimli çocuğu da sizin ağınıza erişebiliyor.

Tabii ki kablosuz ağlar geliştirilirken bu da düşünülmüş ve bu tip ağlar için belli güvenlik yöntemleri geliştirilmiş, işte sorunda burada bir yerlerde başlıyor.

 

Kablosuz Ağlarda Güvenlik Opsiyonları

Bir kablosuz ağınız varsa seçebileceğiniz belli güvenlik seçenekleri vardır, Popülerlik sırasına göre bazıları;

Burada “Open Security“ olarak geçen güvenlik modeli –Güvenlik modeli mi?-. şifre gerektirmeyen bağlantı demektir. Yani herhangi biri bu kablosuz ağlara basitçe bağlanabilir.

WEP, Open Security ve WEP iki en çok kullanılan modeldir. Open Security dediğimiz gibi bir güvenlik sağlamamaktadır ancak WEP bir güvenlik adımı olarak ortaya çıkmıştır. WEP kablosuz ağların güvenliğini sağlamak için geliştirilmesine rağmen çok büyük hatalar ile ciddi bir fiyaskodur.

WPA, Gene açık bulunan ancak WEP’ e  göre çok daha güçlü bir opsiyon.

RADIUS, Klasik dial-up modem desteği veren ISP lerdeki sistemdir. Bağlantı kuran istemci (client) bir bilet (ticket) sistemi ile kablosuz ağa bağlanır. Ortak bir server olduğundan doğru implemantasyonda gayet güvenli bir kablosuz ağ deneyimi sağlayabilir. Ancak  ev kullanıcıları ya da küçük organizasyonlar için çok kullanışsızdır. RADIUS-WPA ise aynı sistemin WPA desteklisidir.

RSN, RSN’ i WPA’ nın gideceği nokta olduğunu söyleyebiliriz ancak RSN henüz tam olarak oturmamıştır, WPA RSN’ in temellerinde yer almaktadır. Henüz piyasada RSN destekleyen AP (Access Point) bulmakta zor bir iştir. WPA TKIP e dayalıyken RSN AES i de desteklemektedir. İçerisinde anahtar dağıtımı gibi çözümleri de getirmektedir. Bu yazıda RSN e daha fazla değinmeyeceğiz.

Wireless Gateway, Özellikle halka açık yerlerde kablosuz ağ sunan firmaların kurduğu sistemlerdir. Ağ ile kablosuz cihazlar arasında bir bağlantı noktası oluşturur, giren kişiler bu sistemden bir defa onay aldıktan sonra ilgili kota ve ayarlara göre gerçek ağa (mesela internet) erişebilirler.  Ülkemizde TTNet’ in sunduğu TiWinet ve özellikle Amerika’ da bir çok yerde gördüğünüz kablosuz internet erişimlerinde de bu metod kullanılır. Bu sistemin de kendi içerisinde farklı potansiyel açıkları ve saldırı noktaları vardır.

Firmalara Özel Çözümler, WEP’ in kısa sürede patlaması sonucu Cisco gibi firmalar kendi AP (Access Point)’ lerine özgü güvenlik önlemleri getirdiler. Bunların birçoğu geniş kitleler tarafından test edilmediğinden gerçek bir güvenlik önlemi olarak kabul edilemez. Bir kısmı zaten mantık hataları içerirken, henüz açığı bulunmamış olanlaraysa gerçek bir güvenlik gereksiniminde ciddi bakılamaz. Ek olarak ciddi bir limitasyonları ise bağlantı kuracak kablosuz cihazlarda (STA  - Station) genelde kendi donanımlarını ya da özel bir ekstra program istemeleridir.

Bu makalede önce Kablosuz Ağları tespit etmek (wardriving tadında), Daha sonra WEP ile şifrelenmiş kablosuz ağları kırmayı ve son olarak ta ağlarımızı güvenli kılmak için alınabilecek önlemlere değineceğiz.

 

WEP Nasıl Kırıldı?

WEP’ in çözmesi gereken üç temel öğre vardı;

Bunun harici aslında çözülmesi gereken Cevap Kontrolü (Replay Control), Erişim Kontrolü, Anahtar Dağıtımı ve Korunması konularına ise hiç WEP girmemiştir. Bu sorunların birçoğu bir sonraki WPA, RSN gibi standartlarda hep çözümlenmeye çalışılmıştır.

Kimlik Doğrulama

İlk adım kimlik doğrulamadır, ağa bağlanan kişinin gerçekten ağa bağlanma yetkisinin olup olmamasının düzenlenmesi, ikinci adım ise ağa bağlı kişinin trafiğinin diğer kişiler tarafından izlenilememesi.

WEP’ in kimlik doğrulaması şu şekilde çalışıyor;
WEP Kimlik

 

Cihaz istek gönderiyor, AP cevap veriyor eğer bağlantı tipi “Open Security” olsaydı cihaz Onay Mesajı (Authentication Message) istek gönderirken Algoritma Numarasını 0 olarak gönderecekti, bağlantı WEP ise bu numara 1 olur.

Şekildeki 3. ve 4. adımlar sadece WEP bağlantılarında olur ve onay mekanizması için kullanılır. 4. adımda AP geriye Durum Kodu (Status Code) gönderir.

Burada iki ciddi sorun vardır. Birincisi STA’ in (kablosuz cihaz) karşıdaki AP hakkında ve AP’ nin şifreyi bilip bilmemesi hakkında gerçek bir fikri olmamasıdır. Çünkü sadece onay cevabı göndermektedir.

Yani herhangi bir AP olabilir ve her isteğe doğru durum kodu ile cevap verebilir. Ancak tabii ki WEP şifresini bilmediğinden dolayı daha sonradan gelen paketleri açamayacak (WEP simetrik şifreleme kullanmaktadır) , dolayısıyla çalışmayan bir AP olacaktır. Ancak karşılıklı onay (mutual) bu noktada kaybolmuş oluyor.

Daha sonra da WPA’ da çözülen implemantasyon hatalarından biri de buradaki onay süreci ve data trafiğinin şifrelenmesinde aynı anahtarın kullanılması sorunudur.

İkinci sorun ise bağlantıyı dinleyen (sniff) kişi iki kritik bilgi yi alır. 2. adımdaki şifrelenmemiş metin (plaintext) ve 3. adımdaki şifrelenmiş hali (chipertext). Bu da potansiyel olarak güzel bir kriptografik atak için hoş bir başlangıçtır.

Buraya kadar iki kritik nokta öğrendik ancak daha önemli bir bilgi şimdi geliyor;

WEP şifreleme için RC4 kullanıyor ve RC4’ te stream şifreleme yapar blok değil. RC4’ şifrelemede XOR u kullanıyor. XOR hakkında bilmeniz gereken en önemli şey bir datayı iki defa aynı anahtar ile XOR larsanız aynı datayı tekrar geri alırsınız.

Şimdi buradaki WEP onay sisteminde şu RC4’ ün 128 rasgele byte’ ı şu şekilde ortaya çıkabiliyor;

PlainText XOR RC4Byteları = Chipertext

İki defa XOR lama aynı sonucu veriyor,

ChiperText XOR RC4Byteları = PlainText

O zaman;

RC4Byteları = ChiperText XOR PlainText

Yukarıdaki son satırın anlamı da RC4’ ün ürettiği ilk rasgele 128 byte’ ın hepsini bu onay prosedüründen çıkartabiliyoruz (bkz: Ek-2). Çünkü 2. adımda plaintext ve 3. adımda da chipertext’ i almış bulunmaktayız.

Dolayısıyla şu an saldırgan olarak onay alan bir kullanıcı gibi bizde elimizdeki bulduğumuz anahtar ile onay sürecini başarılı bir şekilde geçebiliriz (tabii ki daha önce de dediğimiz gibi bu bizim başka bağlantılar yapabileceğimiz anlamına gelmiyor).

Bilgi Değiştirme Kontrolü

Normalde WEP ICV (Integrity Check Value) ile paket/mesaj modifikasyonlarına karşı önlemini almış durumda ancak CRC hesaplamasındaki algoritma doğrusal arttığından dolayı paket ile birlikte bir dizi byte değiştirildiğinde ICV nin sonuçları gene doğru çıkabiliyor. Her ne kadar pratik bir atak olmasa da bu güvenlik sistemi de kırılmış durumda.

 

Gizlilik ve WEP Şifresinin’ in Kırılma Noktası

WEP aynı datanın tekrar oluşmaması için IV (Initialization Vector) kullanır. Bu trafik ile birlikte sürekli artan bir değerdir. Zaten bu IV yüzünden 64bit WEP aslında 40bit’ tir çünkü 24bit IV yer tutmaktadır. IV paket içerisinde şifrelenmez çünkü açma (decrypt) işlemi yapılırken kullanılacaktır, yegane amacı aynı metnin iki defa geçmesi durumunda farklı şifrelenmiş çıktıların oluşmasını sağlamaktır. Aksi takdirde kriptografik ataklar çok daha kolay olacaktır.

WEP’ te kullanılan IV’ nin boyutu (24bit) düşük bir boyuttur tekrara neden olabilir. Bu yüzden WPA (TKIP) gene RC4 e dayalı olmasına rağmen bu sorunu gidermiş ve IV boyutunu yükseltmiştir.

Eğer tekrar kullanılan IV numaralarını (collusion) yakalayabilir ve toplayabilirsek bundan şifreyi üretmek için bir adım atabiliriz. Buradaki en büyük avantajımız da ağlarda LLC Headerlar gibi klasik genişliği ve değeri sabit trafiğin her zaman olmasıdır. Bu sayede yeterli tekrar edilen IV toplayabilirsek şifreyi elde etme şansına sahip oluyoruz. Ancak bu da çok pratik bir saldırı değil.

 

Gerçek açık ise RC4’ ün WEP implemantasyonunda çıktı.

RC4’ ün açılış süreci şu şekilde;
RC4 çalışırken 2 dizi (array) kullanıyor. İlk dizi (s-box / state box) 0-255 arası tüm karakterleri içeriyor, ikinci 256 bytelık dizi ise “şifre (key)” ile dolduruluyor, şifre kısaysa tekrar edilerek 256 byte lık dizi tam olarak doldurulmuş oluyor.

RC4 çalışma mantığında her oluşturulan keystream’ in her byte’ ının bir öncekinden byte’ tan değişik olma ihtimali %50 ancak “Weaknesses in the Key Scheduling Algorithm of RC4” isimli makalesi ile RC4 ile rasgele üretim sürecinde zayıf anahtarlar (weak keys) olduğu ortaya çıktı.

RC4 Bu ilk açılış sürecinden sonra sbox ve kbox arasında belli bir algoritma ile (bkz: Ek3 RC4 VB.NET implemantasyonu) döngü başlıyor. Bu karıştırma işleminde ilk ve belli döngülerde bazı byteların tahmin edilebilme oranı normal tahmin edilebilirliğe göre çok daha yüksek, işte bu tahmin edilmesi daha kolay olan byte’ lar zayıf anahtarlar (weak keys) olarak geçiyor. Buradaki tahmin edilebilirliğin temel neden s-box’ ın içerisindeki datanın açılış süresinde biliniyor olması. Ancak ilk açılış ve döngüden sonra bu tip bir sorun kalmıyor ve RC4 sorunsuz ve güvenli olarak çalışıyor.

Normalde RSA RC4’ ün implemantasyonunda ilk 256byte’ ın kullanılmaması gerektiğini ve herhangi bir data ile geçiştirilmesini, sistemin bundan sonrakileri datayı kullanması gerektiğini bildiriyor. Ancak WEP’ te kullanılan RC4 implemantasyonu bu uyarıya kulak asmamış olması bugün bizim WEP’ i rahatça kırmamızı sağlıyor.

IV ile bu kırma işleminin ilişkisi de burada başlıyor. Daha önceden de dediğimiz gibi IV gerçek anahtara eklenilip RC4 işleme giriyor dolayısıyla her IV değiştirildiğinde RC4 tekrar şifrelemeye başlıyor ve bu açılış sürecinde (initialization) elimize yeni zayıf anahtarlar geçmiş oluyor. Yeterli derecede tekil (tekrar etmeyen, unique) IV içeren paket topladığımızda WEP’ i rahatça kırabiliyoruz. Çünkü elimizde kriptografik atak yapmaya yeterli derecede zayuf anahtar geçmiş oluyor.

Eğer weak key’ lere saldırı hakkında daha fazla teknik bilgi arıyorsanız şiddetle “Weak Keys in RC4” ve “Practical Exploitation of RC4 Weaknesses in WEP Environments” makalelerini tavsiye ederim.

Genelde 300.000 – 1.000.000 arasında tekil IV ile WEP şifreleri kırılabiliyor. Buradaki rakamın sabit olmamasının temel nedeni bunun bir olasılık hesabı olması. Aslında teorik olarak 10.000.000 IV ile de kıramama şansınız var.

İşin teknik boyutunu anladık, şimdi  konuya gelelim.

 

Devam edin - Konuya Gelelim WEP' i Kırma, Kablosuz Ağlara Saldırı & Defans - 3 ;

Recent Blog Posts

See all of the blog posts