Ana içeriğe atla

Komplike Şifreler Sanıldığı Kadar Güvenli mi?

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.

O zaman özetle şunu söyleyebiliriz: Her zaman iki unsuru göz önünde bulundurmamız gerekir. Tasarladığımız parola ne kadar güvenli, ne kadar kullanışlı? Hem kullanılabilir hem de güvenli bir parola oluşturabilmek mümkün mü? (Usability and Security)

Yorumlar

Bu blogdaki popüler yayınlar

Erişilmesini İstemediğimiz Web Sitelerini Yapay Zekadan Yararlanarak Engellemek Mümkün Mü?

       “Bir web sitesi nasıl engellenir” başlıklı yazımızda erişilmesini istemediğimiz web adreslerini manuel olarak nasıl engelleyebileceğimizden birkaç yöntem ile bahsetmiştik. Bu işlemleri gerçekleştirirken aslında erişilmesine izin verdiğimiz web adreslerinin ve erişilmesini istemediğimiz web adreslerinin listesini yapıyoruz. Böylelikle çocuklara daha güvenli bir internet ortamı sağlayabiliyoruz. Peki gerçekten, zararlı olduğunu ya da genç yaştaki bir birey için uygun olmadığını düşündüğümüz web adreslerini manuel olarak tek tek girerek onları bu içeriklerden tamamen korumuş oluyor muyuz? Tabii ki hayır. Aktif olan milyonlarca web sitesinin varlığını düşündüğümüz zaman manuel olarak yapılan bu işlemin iyi bir çözüm olduğuna kanaat getirsek de yeterli olmayacağı aşikardır. Burada akla gelen sorulardan biri manuel olarak gerçekleştirilen bu işlemleri otomatikleştirmek mümkün mü? Yani: Bu işlemi gerçekleştirmek için yapay zekadan faydalanabilir miyiz?  Konuyu web filtreleme (Web Filt

Bir Web Sitesi Nasıl Engellenir?

     World Wide Web (WWW) üzerindeki içerikler gün geçtikçe artmakta, web kullanıcılarına zengin içerikler sunmaktadır. Bu durum aynı zamanda zararlı içeriklerin de aynı oranda artmasına sebep olmaktadır. Web üzerinde dolaşan 18 yaş altı gençleri de düşününce bu konuda ciddi adımlar atılması gerektiğini görmekteyiz. Örnek verecek olursak sosyal medya kullanımının oldukça faydalı olduğu zamanlar olsa da paylaşılan içerikler çocuklar üzerinde ciddi hasarlara neden olabilmektedir.  Bu sebeplerden ötürü erişilmesini istemediğimiz web sitelerine erişimi engelleyebilir böylece genç yaştaki insanlar için daha güvenli bir internet ortamı sağlayabiliriz.  Manuel olarak bir veya birden çok web sitesini engellemek istersek uygulayabileceğimiz birçok yöntem mevcut.    1)   Ebeveyn Denetimleri (Parental Controls)   Eğer bir Mac kullanıcısıysanız klavye üzerinden “cmd” ve “space” tuşlarına aynı anda basarak spotlight search arama kısmına Parental Controls yazarak ulaşabilirsiniz. Sistem Tercihl