Hem kullanılabilir hem de güvenli bir parola oluşturabilmek
için nelere dikkat etmeliyiz?
Bilindiği üzere parolalar günlük hayatımızın büyük bir
bölümünü oluşturuyor ve bizler genelde, daha sonrasında hatırlayamayacağımız
komplike parolalar üretip kullanıyoruz. Peki bu parolalar gerçekten yeteri
kadar güvenilir mi? Ya da başka bir deyişle kullanılabilirliği arttırıp, daha
kolay hatırlanabilir parolalar oluşturmak mümkün mü? Gelin bütün olasılıkları beraber inceleyelim
ve aynı zamanda parolaları deşifre etmeye çalışan insanların hangi metotlara
ihtiyaç duyduğuna bir göz atalım.
Bir parolayı deşifre etmek için kullanılan belli başlı
yöntemler vardır. Ben yazımda en sık kullanılanlardan bahsedeceğim. Bu konuda
ufak bir hatırlatma yapmak istiyorum.
Aranızda Mr. Robot izleyenler varsa bir sahnede Elliot,
psikiyatristinin erkek arkadaşının sosyal medya hesabına ulaşmak istiyor ve
bunu gerçekleştirebilmek için bir sosyal mühendislik uygulamasına başvuruyordu.
Evcil hayvanının ismi, doğum yılı gibi parola oluştururken kullanabileceği
birkaç parametreyi sosyal mühendislik ile elde edip bunların olası bütün
kombinasyonlarını deneyerek kurbanın sosyal medya hesabına girmeyi başarıyordu.
Aslında Elliot burada olası ihtimalleri deneyerek bir brute force atağı
gerçekleştirmiş oldu. Biz de sırasıyla bu ataklara değiniyor olacağız.
1)
Sorarak veya tahmin ederek ( Asking or Guessing
)
Bu tür bir saldırı gerçekleştirmek
istiyorsanız kurban olarak belirlediğiniz kişi ile yakın bir geçmişe sahip
olmalısınız. Eğer ilişki içerisinde olduğunuz bir kişinin güvenini yeterince
kazanmış iseniz sahip olduğu parolayı direkt sorarak öğrenebilirsiniz. Ya da
yakın olduğunuz kişinin soyadı, annesinin veya babasının adı, evcil hayvanın
adı, kız/erkek arkadaşının adı, doğum tarihi, tuttuğu takımın kurulduğu yılı, doğduğu
şehrin plakası, favori çiçeğinin adı gibi birkaç parametreyi kullanarak olası
bütün ihtimalleri deneyebileceğiniz bir kaba kuvvet (Brute Force) atağı
uygularsanız yüksek oranda, kurbanın parolasına erişebilirsiniz. Hatta genelde
bir nokta veya virgülü de bir parametre olarak kullanıp daha iyi sonuçlar elde
edebilirsiniz (Her ikisini de kullanabilirsiniz). Unutmayın, yakınınızda
şifrenizi ele geçirmek isteyen biri varsa tüm bu olasılıkları deneyecektir.
Sadece yukarıda belirttiğim parametreler ile oluşturduğunuz şifreler varsa bir
kez daha düşünün derim.
2)
Kaba Kuvvet (Brute Force) Atakları
Kısaca Brute Force ataklarını
bütün olası ihtimalleri deneyen bir yöntem olarak düşünebilirsiniz. O zaman
basitçe şunu söyleyebiliriz eğer uzun ve komplike bir şifre kullanıyorsak brute
force atağına maruz kalmamız daha zordur. Burada, peki bu kadar geniş
ihtimaller kümesinde nasıl oluyor da brute force atakları yapılıp sonuca
ulaşılabiliyor diye sorabilirsiniz. Ortalama bir brute force atağında saniyede
100 tahmin veya 1000 tahmin yapılabiliyor. O zaman günler de sürecek olsa eğer
sızmak istenilen sistemde en sonunda doğru parola bulunacaksa bu sisteme
güvenilir diyebilir miyiz? Peki bu konuda biz nasıl önlemler alabiliriz?
Geçtiğimiz senelerde hatırlarsanız Icloud sistemlerine sızılmış hatta birçok
ünlünün fotoğrafları sızdırılmıştı. Peki burada brute force atağı uygulandığını
biliyor muydunuz? Bir de şöyle düşünelim, varsayalım ki saniyede 1000 tahmin
üretebilen bir brute force atağına maruz kaldınız. Her bir parola denemesi için
5 saniye bekleme süresi konulduğunu düşünelim. Saniyede 1000 tahmin üretebilen
bir sistem ikinci tahminini üretebilmek için beş saniye daha beklemek zorunda
kalacak (Yüksek bir ihtimalle gerçek bir kullanıcı bu 5 saniyelik bekleme
süresini fark edemeyecektir). Aynı zamanda her 10 yanlış denemede parolayı
girmeye çalışan kişiye 1 saatlik bir ceza uygulansa ve sonrasında parola
girişimlerine devam etme hakkı sunulsa bu kadar kolay bir şekilde Icloud
sistemlerine sızılabilir miydi?
3)
Yaygın Kullanılan Sözcükler (Common Word
Attacks)
Bu atak yöntemi için basit bir
brute force atağı olduğunu söyleyebiliriz fakat daha sınırlı bir alan
içerisinde tahminleme yaptığı için klasik brute force ataklarından
sıyrılmaktadır. En çok kullanılan kelimeler kullanarak tahminleme
yapılmaktadır.
4)
Sözlük Atakları (Dictionary Words)
Bir önceki bahsettiğimiz atak ile
aynı yöntemi kullanmaktadır fakat sadece en sık kullanılan sözcükleri değil
sözlükte geçen bütün kelimeleri tahminleme için kullanmaktadır.
5)
Rainbow Table Attacks
Günümüzde veritabanları,
kullanıcılarının parolalarını direkt olarak yalın bir şekilde tutmamaktadır.
Bunun anlamı, olası bir saldırı halinde veritabanı ele geçirilebilse dahi
kullanıcı şifrelerine ulaşılamamasını sağlamaktadır. Örneğin bir veritabanında
parolaların MD5 algoritması kullanılarak saklandığını düşünelim. Bu atak
türünde saldırganların elinde olası parolaların MD5 algoritması ile şifrelenmiş
hashlerinin bulunduğunu ve bizim veritabanımız ile karşılaştırdığını düşünelim.
Olası bir eşleşme durumunda saldırgan bizim parolamıza ulaşabilecektir.
Yazımızın bu ana kadar olan kısmında saldırganların hangi
atak yöntemleri ile parolalarımza ulaşabileceklerini gördük. Peki bu
saldırılardan korunmak için nasıl parolalar seçmeliyiz? Komplike bir parola
seçerek gerçekten tam anlamıyla korunmuş oluyor muyuz?
İlk olarak basit iki durumu karşılaştıralım, farz edelim ki
bir parolamız 4srt3> diğer bir parolamız ise merhaba. Saniyede 1000 tahmin
yapabilen bir atağa maruz kaldığımızı düşündüğümüz zaman brute force atağı
kullanılarak 4srT3> parolasının bulunması 22 yıl, merhaba kelimesinin
bulunması ise common word attack kullanılarak sadece birkaç dakika sürecektir.
Burada en çok kullanılan kelimelerin bulunduğu listedeki kelimeler kullanılarak
brute force atak yapılmaktadır. Evet bu örneğimize baktığımız zaman komplike
bir parola daha güvenilirdir diyebiliriz. Burada değinmek istediğim bir başka
konu daha var: Bir kişi ilk olarak “Common word attack” kullanmak yerine direkt
brute force atağı ile saldırıyor olsaydı merhaba kelimesini bulması ne kadar
sürecekti? Alfabemizde 29 harf bulunduğundan Merhaba kelimesindeki harf sayısı
kadar olasılık denenmiş olacaktı. Bu da 29 üzeri 7 demektir ki 17249876309
olası kombinasyonun olduğu anlamına gelmektedir. Saniyede 100 tahmin
yapıldığını varsaydığımız zaman ise yaklaşık olarak 5,5 yıl sürecek bir işlem
olacaktır. Bu sebeple ilk olarak denenecek yöntem genelde “Common words attack”
olmaktadır.
Şimdi ise bir başka iki örneği karşılaştıralım. Yine aynı
şekilde 4srt3> parolasını bu sefer “hayatçokkısa” parolası ile
karşılaştıralım. “hayatçokkısa” parolasına ulaşabilmek için yaygın kullanılan
kelimeler ile bir brute force atağı yapılması gerekecektir. ”hayatçokkısa”
parolasının bütün olasılıkları düşünüldüğü zaman aynı zamanda 3 farklı
kelimenin kullanıldığı da göz önünde bulundurulunca bunların kombinasyonlarının
açığa çıkarılması yaklaşık 250 yıl sürmektedir. O zaman sonuç olarak şunu
söylerebiliriz ki “hayatçokkısa” parolası “4srt3>” parolasından yaklaşık 10
kat daha kuvvetlidir ve hangi parolanın daha kolay hatırlanabilir olacağını
düşündüğümüz zaman ise “hayatçokkısa” parolasının daha önde olduğu açıkça
görülmektedir. O zaman şu ikilemi iyi anlamak gerekmektedir. Bir parolanın çok
komplike olması onun çok güvenilir olduğu anlamına gelmeyebilir. Bu yazımızda
gördüğümüz gibi daha kolay hatırlanabilir (kullanılabilirlik) bir parola aynı
zamanda daha güvenli olabilmektedir.
Yorumlar
Yorum Gönder