En Büyük Facebook Açığı, Sizsiniz!

En Büyük Facebook Açığı, Sizsiniz!

Günümüzde sosyal medya inanılmaz bir hızla gelişmektedir. Şu anda dünyada ve ülkemizde en çok tercih edilen sosyal ağın facebook olduğu tartışılmaz bir gerçektir. Facebook, insanların arkadaşlarıyla iletişim kurmasını ve bilgi alışverişi yapmasını amaçlayan bir sosyal paylaşım web sitesidir.[1] Facebook sosyal paylaşım sitesi doğası gereği şahsımızla ilgili birçok bilgi barındırmaktadır. Bu bilgiler kötü niyetli kişilerin elinde çok ciddi güvenlik açıklarına sebebiyet vermektedir.

Türk Ceza Kanunu (TCK) Madde243 (Bilişim Alanında Suçlar)’e göre; e-posta hesabı hackleme (ele geçirme) suçunu işleyen bir kişi, iki yıla kadar hapis veya adli para cezası istemiyle karşı karşıya kalabilir. E-posta hesabı ele geçirilen kişinin bilgilerinde bir değişiklik veya eksiklik meydana geldiğinde bu ceza, para cezasına çevrilmeyecek şekilde iki yıldan dört yıla kadar hapis cezasına dönüşebilir. (m.243/III)

Facebook ve e-posta hesabı ele geçirmenin TCK’ da ki yeri ile ilgili kısa tanımlamaların ardından facebook hesabı kullanılarak neler yapılabileceğini birkaç örnek ile açıklaya çalışalım:

Örneğin hedefledikleri kişinin e-posta hesabını ele geçirmek isteyen kötü niyetli kişiler, ya kişinin açık olan facebook duvarından ya da kendisine arkadaşlık isteğinde bulunarak paylaşımlarından e-postasını görebilirler. Saldırgan, kurbanın arkadaşlık isteğini kabul etmeyeceğini düşünerek hedefin arkadaş listesindeki birini seçer ve aynı resim ile sahte bir hesap açabilir. “Bu benim ikinci facebook hesabım” diyerek hedefi yanıltabilir. Arkadaşlık isteği kabul edildiği anda tüm paylaşılan veriler, yorumlar, resimler, videolar görülebilir. Eğer kullanıcı basit şifre ve doğrulama bilgileri kullanıyorsa, paylaşılan veriler değerlendirilerek hesap kolayca ele geçirilebilir.

Ülkemizde yapılan araştırmalara göre insanlarımız genellikle şu şekilde şifreler ve doğrulama bilgileri kullanmaktadır:

Doğum tarihi,

Doğum yeri,

En sevdiği kitap kahramanı,

123456,

Qwerty,

Asdfgh,

Asdf123,

Saldırgan, kurban olarak seçtiği kişinin facebook duvarını kullanarak kurbanın hesabına erişebilir ve istediği değişikliği yapabilir. Örneğin; kurbanın e-posta hesabını kendi belirlemiş olduğu başka bir e-posta hesabına yönlendirebilir. Kurban hesabını aktif olarak özel yazışmalar, banka hesabı işlemleri gibi işlerde kullanıyorsa e-posta hesabının ele geçirilmesi daha büyük sorunların başlamasına netice verebilir.

 

Aslında birkaç basit işlem ile en azından hesabın daha güvenli hale getirilmasi ve kötü niyetli kişi ya da kişilerin hesaba erişimi zorlaştırılabilir.

İşte yapılması gereken bir kaç basit ama oldukça faydalı güvenlik önlemi:
1.
Facebook duvarında kullanılan e-posta adresi herkese görünmeyecek şekilde kapatılmalı ya da doğru olmayan bir e-posta adresi yazılmalı.

2.
Hotmail, gmail, yahoo v.b. e-postalarınızın gizli soruya verilen cevabı başkalarının bilemeyeceği hatta zıt cevaplar olmalıdır. Örneğin; doğum yeriniz gizli sorusuna, en sevdiğiniz bir film ismi gizli cevabı gibi.

3.
Kullanılan parolalar belli aralıklar ile güncellenmelidir.

4.
Tüm hesaplarda aynı parolayı kullanmamaya dikkat edilmelidir.

5.
Kullanılan parola en az 6 karakterli, büyük küçük harf, herhangi bir noktalama işareti içermelidir. Türkçe bir karakter (ş,ğ,ç gibi) kullanılması parolanın zorluk derecesini arttırabilir.

6.
Facebook hesabının kişiye özel olan kısımları herkes ile paylaşılmamalıdır. Örneğin; doğum tarihi, memleketiniz v.b.

7.
Facebook üzerinden gelen gizli veya bilgi içerikli mesajlara cevap verilmemelidir.

8.
Herkesten gelen arkadaşlık istekleri kabul edilmemelidir.

Unutulmamalıdır ki güvenlikle ilgili ortaya çıkan sorunların büyük kısmı makinelerden değil insanlardan kaynaklanmaktadır.

Cabir TEKİN, BANK ASYA KATILIM BANKASI A.Ş.

Veritabanında Parola Saklamak için Algoritma Seçiminde Yapılan Yaygın Hatalar

Veritabanında Parola Saklamak için Algoritma Seçiminde Yapılan Yaygın Hatalar

Klasik güvenlik anlayışının temelinde olduğu gibi bilgi güvenliği felsefesinde de tedbir almada iki temel çeşit vardır. Bunlardan biri; bir güvenlik ihlalinin gerçekleşmesinin önüne geçilmesi için alınan tedbir, diğeri ise bir güvenlik ihlalinin gerçekleştiği durumlarda hasarı en aza indirecek ve olası zincirleme ihlallerin önüne geçecek olan tedbirdir. Bu iki çeşit tedbiri somut bir örnekle anlatmak gerekirse; tedbir çeşitlerinden biri arabanın lastik basıncının, fren sisteminin, lastik diş derinliğinin kontrol edilmesi, diğeri ise hava yastıklarının konması ve sürücünün emniyet kemerini takmasıdır. İlk tedbirler kazanın olmasını engellemeye yönelik iken, ikinci tedbirler ise kaza olduktan sonra meydana gelebilecek can kayıpları ve yaralanmaları engellemeye yöneliktir.

Web uygulamasının güvenliğinin sağlanmasının yanı sıra, Web uygulamasına ait parolaların veritabanında saklanması ve bu saklama yönteminin güvenliği de oldukça önemlidir. Web uygulamasındaki veya bütün bilişim altyapısını oluşturan öğelerden birindeki bir açık kullanılarak güvenlik ihlalinin oluştuğu durumlarda, parolaları ele geçiren bir saldırganın bu bilgiyi kullanamamasını sağlamak için düz metine kıyasla güvenli olduğu bilinen kriptografik özet (Hash) yöntemleri kullanılır. Bunların başında gelen popüler algoritmalardan biri de günümüzde MD5 algoritmasıdır. Hash kullanmadaki amaç, ele geçen parolaların doğrudan kullanılmasını önlemektir. Ancak sadece MD5 ile Hash edilmiş parolalar dahi günümüzde yeterli güvenlik seviyesi sağlamamaktadır. Bu yüzden kırılması daha zahmetli ve zor olan Salt kullanma yöntemi ile parolalar depolanır. Parola depolama işlemi için Hash tek yönlü algoritması düşünülürken genel bir hata “hızlı” bir algoritma seçmektir. Hızlı bir algoritma ile Hash edilen parolalar yine Rainbow Table ve Brute Force işlemleri ile yavaş algoritmalara oranla daha hızlı kırılabilirler. Hızlı algoritmalar parola depolamak amaçlı değil, kriptografik işlemler için kullanılmalıdır. Ağ iletişimi içinde veri bütünlüğü tespiti için kullanılan algoritmalar (Checksum) buna örnek gösterilebilir.

Yazılımlarda parolaları saklamak için hızlı algoritma kullanmak, kimi zaman bu algoritmalara Salt değerleri ile yaklaşılsa dahi, saldırganların parola kırma işini etkili bir ölçüde zorlaştırmamaktadır. Parolaları saklamak için kullanılan algoritma az kullanılan, güçlü ve yavaş algoritmalardan seçildiğinde, kullanımın yaygın olmaması nedeniyle sistem altyapısının değişmesi ve yeni platformlara taşınması gerektiği durumlarda sorunlarla karşılaşılabilir. Bu durum da yine kullanılabilirlik-güvenlik terazisindeki kullanılabilirlik kefesini etkilemektedir. Az kullanılan algoritmalar için hali hazırda parola kırma programları ve Rainbow Table (bir çeşit önceden kırılmış parola değerleri) bulmak zor olduğundan, saldırganı çok kullanılan bir algoritmaya oranla daha çok mesai beklemektedir.

Bir saldırgan sistemde ele geçirdiği binlerce hesabı kırmak için hıza ihtiyaç duyar. Ancak, bir Web uygulamasına giriş yapmak isteyen bir kullanıcı için algoritmanın hızı kullanılabilirlik dengesini çok değiştirmez. Çünkü kullanıcı parolasını yazdığı anda, parola doğruysa bu işlemi sisteme 1 defa yaptırır. Fakat bir saldırgan bu işlemi duruma göre binlerce veya milyonlarca defa yapmaya mahkumdur.

Bu durumda parola saklamak için kullanılan Hash algoritmasının yavaş ve güçlü olması önerilmektedir. MD5 örneğine bakıldığında, MD5 yerine daha yavaş ve güçlü olduğu bilinen SHA-512 kullanmak, burada ifade edilen bilgilere göre daha güvenli bir seçim olacaktır. Bir parola Hash işlemine tabii tutulmadan önce içine birçok Salt değerinin ve tekrarlı (belki binlerce defa) iterasyonlarının sokulduğu Hash fonksiyonları yazılmalıdır. Böylece üst üste farklı şekillerde Hash işlemine tabii tutulan parolayı deneme yanılma yöntemleriyle geri elde etmek zorlaşacak ve algoritma yavaş bir hal alacaktır.

Deneme yanılma (Brute Force) yöntemlerinin yanı sıra “doğum günü saldırısı” adı altında, algoritmanın kendisine yönelik saldırılar da vardır. Bu saldırıların temeli 366 kişiden en az 2 kişinin doğum tarihlerinin aynı gün olmasına dayanır. Kriptografik özet çıkarma işleminde giren verinin boyutu ne olursa olsun elde edilen çıktı belli matematiksel limitlere dayanır. Bu da iki farklı girdinin aynı çıktıyı vermesine neden olabilir.

Aşağıdaki tablo Hash algoritmalarının hız ve doğum günü saldırısına karşı olan süseptibilitelerine dair bilgiler içermektedir.

Tablo-1 Hash algoritmaları hız karşılaştırma tablosu.*

Tablo-2 Yaygın diğer algoritmalar ve hızları (MiB/s)*

Tablo-3 “parola” Kelimesinin Değişik Kriptografik Özet Algoritmalarındaki Sonuçları

*Veriler http://www.cryptopp.com/benchmarks.html adresinden alıntıdır.

Kriptografik özet algoritmalarının parola depolaması için kullanılmasının doğası gereğince var olan bir sistemin depolama algoritmasının değiştirilmesi de “yavaş” olan yöne doğru “kolay” yapılabilmektedir. MD5 algoritması ile Salt kullanılmadan gerçekleştirilmiş bir parola özeti, ileri bir zamanda tercih edildiğinde kolaylıkla Salt eklenerek de depolanabilir. Bunun için depolanan MD5 parola özetinin bir daha MD5 algoritmasına bir Salt değeri ile sokulması yeterli olacaktır. Ancak hali hazırda Salt eklenerek oluşturulmuş bir parola özeti sadece düz MD5 algoritması kullanılacak bir sisteme güncellenemez.

Yavaşlatılacak olan parola depolama sistemi için bir örnek:

Hızlı sistem örneği:

Kullanıcı -> (Kullanıcı bir parola kelimesi seçer) -> parola

Sistem -> (Seçimi MD5 algoritmasına sokar) -> 8287458823facb8ff918dbfabcd22ccb

Hızlı sistemin yavaşlatılması örneği:

Kullanıcı -> (Kullanıcı bir parola kelimesi seçer) -> parola

Sistem -> (Seçimi MD5 algoritmasına sokar) -> 8287458823facb8ff918dbfabcd22ccb

Yavaşlatma Sistemi -> (Var olan çıktıya Salt değeri ekler) -> md5($salt_degeri+8287458823facb8ff918dbfabcd22ccb)

Güncelleme işlemi -> (Bütün parola özetleri yeni değere göre güncellenir )-> “Güncel ve daha yavaş parola özetleri”

Salt değeri eklenmiş veya başka algoritmalarla iterasyona sokulmuş bir parola özeti daha “hızlı” yöne doğru geliştirilemez. Bunun nedeni kriptografik özet algoritmalarının tek yönlü olmasıdır. Yavaşlatma örneğinde eklenen Salt değeri aslında MD5 algoritmasının bir iterasyonudur. Yaygın kullanılan Salt ile depolama işlemi kullanıcının girdiği parola kelimesi ile işleme sokularak yapılan kriptografik özet işlemidir.

Yukarıdaki örneğe benzer olarak MD5 algoritmasının çıktıları SHA-512 algoritmasına veya tercih edilen başka bir algoritmayla işleme sokularak, parola depolama için kullanılacak algoritma daha yavaş hale getirilebilir. Bu algoritmalar kendi içinde bir algoritma oluşturabilecek şekilde farklı iterasyonlar ve kombinasyonlarla bir araya getirilebilir. Kriptografik açıdan benzer olmasa da, 3DES (Triple DES) algoritması fikir olarak buradaki anlatım ile benzerlik taşımaktadır. 3DES şifreleme algoritması, DES algoritmasının 2 düz 1 ters iterasyonu ile meydana getirilmiştir. Kriptografik özet algoritmaları için ters iterasyon mümkün olmasa da yazılımcılar farklı algoritmaları ve salt değerlerini kullanarak kendilerine özgün yeni algoritmalar oluşturabilir ve saldırganların işlerini zorlaştırabilirler.

Tinba Zararlı Yazılım Analizi

Son yıllarda siber tehditlerdeki artışın birincil nedenlerinden biri olan zararlı yazılımlar gittikçe daha karmaşık bir hal almaktadır. Bu tehditlerden biri de şu günlerde güvenlik çevrelerince sıklıkla dile getirilen Tinba zararlı yazılımıdır. CSIS tarafından adlandırılan bu zararlı yazılım tiny (küçük) ve bank (banka) kelimelerinin birleştirilmesinden oluşmaktadır. Sadece 18kb civarında olan zararlı yazılım özellikle banka uygulamalarını hedef almaktadır. Tinba’yı asıl önemli kılan ise özellikle Türkiye için özelleşmiş olması ve Türkiye üzerinde aktif olmasıdır.

tinba-sekil-1.jpg
Şekil 1 Son Dört Ayda Tespit Edilen Yayılma Haritası

Yayılma Yöntemi

Tinba yayılması için büyük oranda blackhole exploit alet çantası kullanmaktadır.

Amacı

Tinba veri çalmak için geliştirilmiş bir zararlı yazılımdır. İnternet tarayıcılarından kanca atma yöntemiyle oturum açma bilgilerini toplayabilmektedir. Ayrıca ağ trafiğini dinleme özelliği de mevcuttur. Bunların yanı sıra araya girme saldırıları ve belli web sayfalarının görünümünü değiştirme yöntemleriyle iki aşamalı yetkilendirmeyi aşabilme yeteneğine sahiptir.

Kendi kendini çalıştırma yöntemi

Zararlı yazılım çalıştıktan sonra kendisinin bir kopyası olarak “%APPDATA%\Default\bin.exe” (Windows XP işletim sistemi üzerinde”%systemDriver%\DocumentsandSettings\%UserName%\Application Data\default\bin.exe”) dosyasını oluşturmaktadır.

Bu dosyanın her oturum açılışında otomatik olarak çalıştırılabilmesi için de “HKCU\Software\Microsoft\Windows\CurrentVersion\Run\default” kayıt defteri girdisini oluşturmaktadır.

tinba-sekil-2.jpg

Dropper ve Çekirdek (core) Parçaları

İlk çalışan zararlı yazılım dosyası (dropper) yukarıda belirtilen ve kendisinin birebir kopyası olan dosyayı oluşturmaktadır. Sonrasında gerekli kayıt defteri (registry) ayarlarını gerçekleştirip, başta “winver.exe” (kendisi tarafından çalıştırılan), “svchost.exe” ve “explorer.exe” işlemleri olmak üzere kendi sahip olduğu haklar ile erişebileceği bütün işletim sistemi işlemlerine (processes) “dll injection” yöntemi ile sızmaktadır.

“Dll injection” yöntemi ile diğer işlemlerde çalıştırılan kod parçacığı asıl zararlı yazılım faaliyetlerini gerçekleştiren kısımdır. Temel olarak bu kod parçacığı, zararlı yazılım yönetim merkezi ile bağlantı kurma ve yeni çalıştırılan işlemlere sızma eylemini gerçekleştirmektedir. Çekirdek (core) olarak adlandırılan bu zararlı kod parçacığı 12866 byte’tan oluşmaktadır ve ilk çalıştırılan zararlı yazılım (dropper) içinde sadece 0x8A (örneğe göre değişmektedir) değeri ile XOR işleminden geçirilerek kodlanmıştır. Aşağıdaki şekilde bu çekirdek kodunu çözmesi ile ilgili akış şeması gösterilmektedir.

tinba-sekil-3.jpg
Şekil 2 Çekirdek Kodunun Encode Edilmesi

İlk çalıştırılan zararlı yazılım dosyası (dropper) çekirdeği aktif hale getirip diğer processlere sızma işini gerçekleştirdikten sonra çalışmasını sonlandırmakta ve eğer “%APPDATA%\Default\bin.exe” konumunda bir örneği yoksa çekirdek kod parçacığı tarafından buraya kendisini kopyalanmaktadır. Tüm bu işlemlerden sonra ilk çalıştırılan yerdeki örneğini silerek kendisini kullanıcıdan gizlemektedir.

Ağ bağlantıları:

Çekirdek çalıştırıldıktan sonra gerçekleştirdiği temel faaliyetlerden birisi de çekirdek içerisinde sabit olarak tanımlanmış yönetim merkezlerine bağlantı kurmaya çalışmaktadır. Her bir zararlı yazılım örneğinde sadece 4 adet sunucu ismi tanımlanmıştır.

tinba-sekil-4.jpg
Şekil 3 Bilinen Tinba Sunucu İsimleri

İsim çözme işlemi başarılı olduğu takdirde, tespit edilen ip adreslerine 80 inci porttan aşağıda örneklenen HTTP POST isteği (request) gönderilmektedir:

POST /dataSafer3er/ HTTP/1.1

Accept: text/html, application/xhtml+xml, */*

Accept-Language: en-US

User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

Host: %hostname%

Content-Length:

Connection: Close

Cache-Control: no-cache

Kontrol sunucusu ve ele geçirilen bilgisayar arasındaki bu haberleşme HTTP protokolü üzerinden RC4 ile şifrelenmiş komutlar aracılığıyla gerçekleştirilmektedir..

Tespit Etme Yöntemi

Ağ üzerinde yukarıda belirtilen sunucu isimlerini çözmeye çalışan ve önemli ölçüde sabit HTTP POST isteği gerçekleştirilen bilgisayarların ağ trafiğinin takip edilmesi sonucunda Tinba zararlı yazılımı tespit edilebilir.

Aşağıdak bulunan IDS imzası veya oluşturulabilecek benzer imzalar aracılığı ile bu zararlı yazılım, saldırı tespit sistemleri tarafından tespit edilebilir.

alert tcp $HOME_NET any -> $EXTERNAL_NET 80 (msg:”Tiny Banker Trojan CNC”; sid:5001300; content: “/dataSafer3er/”; http_uri; flow:established,to_server; reference:url,www.bilgiguvenligi.gov.tr; classtype:trojan-activity;)

tinba-resi-5.jpg
Şekil 4 Örnek bir saldırı tespit sistemi tarafından tespit edilen Tinba zararlı yazılımı

Söz konusu bilgisayarda “%APPDATA%\Default\bin.exe” dosyasına rastlanması ve “HKCU\Software\Microsoft\Windows\CurrentVersion\Run\default” adres defteri kaydının bu dosyayı gösteriyor olması söz konusu bilgisayara Tinba zararlı yazılımının bulaştığını göstermektedir.

Temizleme Yöntemi

Anti-virüs uygulamaları Tinba virüsünü veritabanlarına dahil etmektedirler. Bu nedenle, anti-virüs uygulaması zararlı yazılım veritabanının güncellenmesi ve sonrasında zararlı yazılımın silinebilmesi için tüm bilgisayarda tarama işleminin gerçekleştirilmesi faydalı olacaktır.

Dosyanın bulaştığı bilgisayardaki “%APPDATA%\Default\bin.exe” dosyasının veya “HKCU\Software\Microsoft\Windows\CurrentVersion\Run\default” adres defteri kaydının silinmesi sonrası işletim sisteminin yeniden başlatılması Tinba zararlı yazılımından tamamen kurtulmak için yeterli olacaktır. Fakat kurumsal ve büyük ölçekli şirketlerin zararlı yazılımdan kurtulması zaman alabileceği düşünülerek, hızlı ve geçici bir çözüm olarak yukarıda belirtilen alan adı kayıtları kara listeye alınıp, güvenlik duvarı veya saldırı tespit/engelleme sistemleri tarafından engellenebilir.

Yukarıda bahsedilen temizleme yöntemini elle değil otomatik olarak gerçekleştirmek için aşağıda verilen betik “.vbs” uzantılı bir dosya olarak kaydedilip çalıştırılabilir.

on error resume next

dim DosyaSis
Set DosyaSis = CreateObject(“Scripting.FileSystemObject”)
Set WshShell = WScript.CreateObject(“WScript.Shell”)
bulundu = 0
DosyaYolu = wshShell.ExpandEnvironmentStrings( “%AppData%” ) + “\default\bin.exe”
KayitGirdisi = “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\default”

If DosyaSis.FileExists(DosyaYolu) Then
DosyaSis.DeleteFile DosyaYolu
Wscript.echo(“Tinba dosyası bulundu ve silindi”)
bulundu = 1
End If

WshShell.RegDelete KayitGirdisi
if not err.Number <> 0 then
Wscript.echo(“Tinba kayıt girdisi bulundu ve silindi. Bilgisayarınızı yeniden başlatmanız gerekmektedir.”)
bulundu = 1
End If

if bulundu = 0 Then
Wscript.echo “Tinba izini rastlanmadı.”
End If

Parola Analizi

Bu yazı, artık kullanımdan kalkmış bir bilgi sistemine ait kullanıcı hesaplarıyla yapılan parola analizini anlatmaktadır. Parola analizinin vereceği mesaj en son paragrafta bulunmaktadır.

Veritabanında bululan kullanıcı parolaları MD5 ile hash (kriptografik özet) edilmiş formatta tutulmaktadır. En azından, kabul edilebilir bir süre içerisinde kırılamayacak parolaların, açık metin (clear text) olarak tutulmamış olması güvenlik adına iyi bir yaklaşımdır.

Parolaların elde edilme süreci

Bu veritabanıyla analiz yapmaya zemin oluşturan iki özel sebep bulunmaktadır. İlki, hash değeri bulma işlemi neticesinde, uygulamada herhangi bir parola politikasının olmadığının fark edilmesi. Böylece insanların, herhangi bir şey dayatılmadığı durumda, özgür iradeleriyle nasıl parola oluşturdukları görülebilecektir. Diğer sebep ise, uygulama kullanıcılarının ülke vatandaşı olmalarıdır. Bu ise analizin asıl amacını, ülke insanının parola oluşturma alışkanlığını, bir açıdan ortaya koyabilmeyi sağlayacaktır.

Hash’lenmiş parolaların kırılma süreci

Parolaların okunabilir halini (açık metin) elde etmek için iki farklı yöntem kullanılmıştır.

Önce parolalar sadece sayılardan oluşan (0-9 aralığı) ve 4-8 uzunluğundaki bir gökkuşağı (rainbow) tablosunda aranmıştır. Yaklaşık bir kaç saat süren çok basit bir saldırıya hash’li parolaların %38’i yenik düşmüştür.

Bu yöntemle elde edilemeyen parolalar, daha önce hash değeri hesaplanmış parolalardan oluşan bir servisteki gökkuşağı tablolarında (milyar seviyesinde kayıt) aranmıştır. Yaklaşık bir gün süren sorgulama sonucunda hash’li parolaların %37’sinin açık metin karşılıkları elde edilmiştir. Bu iki işlem sonrası hash değeri çözülemeyen parolalar analiz dışında bırakılmıştır.

Analiz başlıyor

Açık metin hali elde edilen parolaların dört farklı bölümde analizi yapılmıştır, neden bu dört kategori sorusunun cevabı yazının akışında verilecektir.

Parolanın uzunluğu

Kullanılan karakter türleri

Tahmin edilme

Çok yerde kullanım

Parolanın uzunluğu

Anketler, güçlü bir parola oluşturma endişesinin akıllara getirdiği ilk önlemi “ne kadar uzunsa o kadar iyidir” olarak söylemektedir ve bu mantığı destekleyen bir gerçek de bulunuyor. Uzunluğun artması entropy (farklı bir sözcük üretebilme ihtimali) değerini arttıran en önemli iki parametreden biridir ve güvenli parola oluşturma politikasında kabul edilen bir prensiptir.

Ne yazık ki, uzunluk, ne kadar olursa tam olarak güvendeyiz sorusunun net bir cevabı yoktur. Bu sisteminizin kritikliği ve saldırıya açıklık potansiyeliyle orantılı olarak değişebilir. Fakat konuyu aydınlatacak şöyle bir laboratuvar çalışması yapılmıştır. Güvenlik ve kullanılabilirlik dengesi koşul olarak kabul edildiği durumda “8 karakter uzunluk minimum yeterliliktir” konusunda genel bir görüş mevcuttur.

Uzunluk grafiğine bakılacak olursa;

Parolalar yoğun olarak 6, 7 ve 8 karakterden oluşmaktadır ve bu kısım toplamın %63’üne denk gelmektedir. Grafikte tehlike arz eden sütunlar, diğer ifadeyle 8 karakterden az olanlar tam yarı yarıyadır.

Bu bölümü bitirmeden önce; çözülen parolalar arasında [10-14] karakter aralığında olanlarda bulunmaktadır. Öyleyse uzunluk tek başına bir önlem olmamalı!

Kullanılan karakter türleri

Parola seçerken önemli olan bu uzunluğun içinde kullanılan karakterlerin çeşitliliği olabilir mi? Bakalım öyle mi. 25 karakter uzunluğundaki bir parola hakkında ne düşünürsünüz? Peki, parolada 25 tene 1 rakamı kullandığını öğrenseniz fikriniz kaç derece değişir?

Parola oluştururken kullanılan karakter türleri (sayı, küçük harf, büyük harf, özel karakter gibi) ne kadar çeşitlilik gösterirse farklı bir sözcük oluşturma ihtimalide de o derece artmaktadır. Yeri gelmişken, kullanılan karakter uzayı da entropy değerini arttıran ikinci önemli parametredir. Bu bölüm için genelde kabul gören prensip, en az 3 değişik karakter türünün kullanılmasıdır.

Bu veritabanı için tercih edilen karakter türlerinin grafiksel gösterimi aşağıdaki gibidir.

Grafikten tek tür karakter kullanımının %89 olduğu okunuyor. Üç ve daha fazlası %1 bile değildir. Tür bazında bir istatistik alırsak:

Sayı ve/veya küçük harf kullanımı %98 seviyesindedir. Özel karakterler (noktalama işaretleri, semboller) bir yana büyük harf kullanımı konusunda dahi büyük bir direnç görülmektedir. Açık ve net görülüyor ki büyük karakter kullanmaya alışmak gerekiyor.

Tahmin edilme

Bu bölümde, oluşturulan bir parolanın daha önce başka bir kullanıcı tarafından seçilmiş olma ihtimalinden bahsedilmektedir. Bu bizi ne ilgilendirir sorusunun cevabı, “seçilmiş olma” yerine “tahmin edilebilir olma” gözlüğünü takınca net görülüyor. Mesela, e-posta adresinizi bilen herhangi birinin, parola olarak 123456 yazıp e-postalarınıza ulaşmayı denemesinin önünde herhangi bir engel var mıdır? Tahmin edilebilir parolalar sayesinde birçok sistemin ele geçirildiği de bilinen bir gerçektir. Parola tahmin etme işini meslek haline getirenlerin yaptıkları saldırılarla ele geçirdikleri parolalardan “sözlükler” oluşturduklarını ve bunları paylaştıklarını duyuyoruz.

Bu bölümdeki analize, “veritabanındaki kaç kullanıcı aynı parolayı kullanmış” tespitini yaparak başlarsak, bu adımın ciddiyeti noktasında biraz daha ikna olunabilir.

En çok kullanılan ilk on parola:

Olağan şüphelilerin tepesi hiç birimize yabancı gelmedi değil mi? Şu anda “Listedeki şu parolayı ben de kullanıyorum…” diyenler olmuş olabilir. Bu, neden tedirgin olunması gerektiğini söylüyor aslında.

Dünyada en yoğun kullanılan parolalar listesine bakınca aynı seçimler ve bir kısım benzerlikler görüyoruz. Farklı kara parçalarındaki bu ortak noktalarımızı izah edebilen makul bir yaklaşım vardır herhalde.

İlk 10 listesindeki rakamları genele oranlarsak iç açıcı bir istatistik oluşuyor, ilk 10 tüm listenin sadece %1 ine tekabül ediyor. Daha vurucu bir detay %90 parola hiç tekrarlanmamış. Kullanılan parolaların entropy değerinin düşük olduğuna az önceki uzunluk ve tür analizinde değinilmişti. Buna rağmen böyle bir oranın gelmesi şaşırtıcı olarak değerlendirilebilir. Peki, bu veriler ne kadar yeterli, ne derece bir şeyi ifade ediyor bunu sorgulamak için bir değerlendirmeye daha ihtiyaç bulunmaktadır.

Bu bölümün teyidi için ikinci analiz yöntemi ise, elde edilen kullanıcı parolalarını saldırı sözlüklerinde aramak olacaktır. İnternette elden ele dolaşan sözlükler daha çok yabancıların kullandığı parolalardan oluşturulmuştur, bu coğrafya insanının kullandığı parolayı yine bu ülke insanının parolalarından oluşan bir sözlük içinde aramak daha sağlıklı sonuç verebilir mi? Bu tarz vakalarla oluşturulan küçük bir sözlüğün çizdiği grafik aşağıdaki gibidir.

Maalesef üçte bir parola tahmin edilebilir durumda. Yani elde sadece kullanıcı adı olsa ve hash değerleri de hiç bir şekilde kırılamamış olsaydı, parolasının tahmin edilebileceği kullanıcı oranı %33 olacaktı. Bir üstteki analizle kıyaslayınca çok daha gerçekçi olan bu grafiğin söyledikleri pek iç açıcı değil.

Bu bölümün ışığında yorumlanması gereken bir durum, “Ankara1.” ve “Qwerty123456” parolalarının sözlükten çıkması, birisinde 4 farklı karakter türü var, diğeri ise 12 karakter uzunluğunda, demek ki sorun sadece iki prensibin uygulanmasıyla da (yeterli uzunluk ve karakter türleri kullanımı) çözülmüyor. Burada işaret edilmek istenen nokta, değişik (başkasının kullanmadığı veya henüz tahmin edilmeyen) bir parola oluşturmayla ilgili olmalıdır. Çünkü güçlü parola oluşturma prensiplerine uygun görünen bu iki parola da, daha önce başka bir/birkaç kullanıcı tarafından oluşturulmuş, daha ötesinde saldırı sözlüklerine dahi düşmüş durumda. Buradan, analize başlamadan önce yapılan hash çözme işleminde, parolası açık metin olarak elde edilemeyen %25’lik kesimin kolay tahmin edilemeyen ve başkasının kullanmadığı parola tercih ettiği anlaşılmaktadır.

Çok yerde kullanım

Parola hash değerlerinin alındığı veritabanı tablosunda, kullanıcı adı ve parola dışında, e-posta adresleri gibi başka kıymetli bilgiler de bulunmaktaydı. Çok yerde kullanım adına yapılacak çalışma şu olacaktır. “Burada elde edilen parola, aynı zamanda bu e-posta adresinin de parolası mıdır?” sorusunun cevabı aranabilir. Diğer bir ifadeyle kullanıcı e-posta adresinin parolasını bu uygulamada da kullanıyorsa, birden fazla yerde kullandığı tespit edilmiş olur. Bu sağlama işlemi kişisel veriler ve mahremiyet hakkı çerçevesinde siber ihlal suçu doğurabileceği için yapılmadı fakat gerçekleşseydi daha çarpıcı bir analiz ortaya çıkabilirdi.

Riski daha net görebilmek için şu bakış açısıyla olayı ele almak daha aydınlatıcı olabilir. Saldırgan bir veritabanını ele geçirdi ve parolaları bir şekilde açık metin olarak elde etti. Bu durumda kullanıcıyı diğer hesaplarının (gmail, facebook, twitter vs.) da ele geçirilmesinden kurtaracak tek şey ne olabilir? Tekillik. Çünkü kullanıcı diğer uygulamalarda da aynı parolayı kullandıysa, otomatik olarak diğer hesaplarını da kaptırmış olacaktır.

Bugüne kadar adını saymaya vaktimizin yetmeyeceği sayıda kurumun/şirketin kullanıcılarına ait parolalar ele geçirildi. Seviyeyi biraz daha yukarı çekersek, bu bölümü şöyle bir vurguyla sonlandırabiliriz. Google’a güvendiğim için çelik para kasamda kullandığım parolayı Gmail’de kullanabilirim mantığı bir gün ters köşe olmamıza sebep olabilir. Bekle ve gör mantığını işleterek, kasa boşaldıktan sonra da ikna olmanın bir anlamı yoktur. Hiçbir zaman Gmail, Google’ındır mantığıyla düşünmemek en kârlısı olacak.

Aynı parolayı neden kullanıyoruz?

Günümüz kullanıcılarının iş yerinde/özel hayatında kullandıkları; sistemler, bilgisayarlar, e-posta adresleri, bankacılık uygulamaları, facebook, twitter vs. bunların hepsi parola istiyor. Her hesaba farklı parola oluşturulacaksa nerden bakılsa on taneye yakın parolaya ihtiyaç var. Uzunluk, karakter türü ve tahmin edilemez bir değer üretme prensiplerini de dikkate alınca, sabır taşı testten geçiyor. Bu sınavdan çakan kullanıcıların aynı parolayı diğer hesaplarında da kullanması, aykırı bir durumdan çok neredeyse bir gereklilik oluyor. Bu noktada güvenlik ve kullanılabilirlik terazisinde kendinize biçeceğiniz kritiklik seviyesiyle orantılı olarak parola tekrarınızı yapacağınız sistemleri belirlemek size kalıyor.

Mesajınız var

Aslında bu çalışmanın ortaya koydukları hiç şaşırtıcı değil.

Analiz, parolaların 8 karakterden daha az, yoğunlukla sadece sayılardan ve her 3 tanesinden birinin başka biri tarafından da kullanılma olasılığı olduğunu söylüyor. Bu parolalarımızın kolay tahmin edilebilir ve başkalarının kullandığı parolalarla aynı olduğu anlamına geliyor.

Analizin ilk bölümü parola uzunluğu ve kullanılan karakter türlerinden bahsediyor ve minimum gereksinim olarak 8 karakter uzunluk ve 3 farklı çeşit karakter türü kullanılmasını tavsiye ediyor. Sonraki bölümde yeterince düşünülmeden oluşturulan parolaların tahmin edilebilir oldukları da hesaba katılarak, olabildiğince değişkenlik gösterecek bir parola seçilmesi öneriliyor. En son olarak mümkün olan her sistemde/uygulamada neden farklı bir parola kullanılması gerektiği açıklanıyor.

Son söz olarak, anlatımda parola oluşturmada düşülen hatalar vurgulanarak nasıl parola oluşturulmaz algısı verilmeye çalışılmış, ardından önlemler sıralanarak nasıl koruma sağlanabileceğinden bahsedilmiştir. Kullanıcıların hiçbir sisteme güvenmemeleri ve her zaman güçlü parola kullanarak kendilerini korumaları hatırlatılmış, zayıf parola sahibi olan kısımsa muhtemel karşılaşabilecekleri durumlar hakkında haberdar edilmiştir.
Emre SÜREN, TÜBİTAK BİLGEM

Web Uygulamalarında Şifre Güvenliği

Web Uygulamalarında Şifre Güvenliği

Web uygulamalarında kullanıcı şifrelerinin çalınması son zamanlarda oldukça yaygın şekilde karşılaştığımız bir güvenlik sorunudur. Kullanıcılarının kişisel bilgi gizliliğini koruma zorunluluğu olan sitelerin böylesi bir açığa izin vermesi hem site sahibi firmalar veya kurumlar açısından hem de bu sitelere üye olup kişisel bilgilerini emanet eden kullanıcılar açısından ciddi sıkıntılara sebebiyet vermektedir. Linkedin, eHarmony, Lastfm ve yahoo gibi sitelerde kullanıcı şifrelerinin çalınması bu konuya daha fazla dikkat edilmesi gerekliliğini ortaya koymaktadır.

Kullanıcı kişisel bilgilerinin istenmeyen kişilerin eline geçmesinin engellenmesi için kullanıcıların şifrelerini daha özenli seçmeleri ve korumaları, yazılım geliştiricilerin ise şifreleri depolarken ve kullanıcıyı yetkilendirirken günümüzdeki saldırı çeşitlerini ve korunma yollarını iyi bilerek uygulama geliştirmeleri gerekmektedir.

Yazılım geliştiricinin şifre güvenliğinde öncelikli olarak dikkat etmesi gereken şifreleri depolama şeklidir. Şifreleri olduğu gibi saklamak çok eskilerde kalan günümüzde asla kullanılmaması gereken bir yöntemdir.

Şifre güvenliğinin sağlanmasında ilk adımı şifreleri özetleyerek, kriptoğrafik özet (hash) saklamak oluşturur. Özet algoritmaları şifre güvenliği için tasarlanmış olmasalarda şifreleri açık metin (plain text) olarak saklamaktan daha güvenli görülmüştür.

Özet algoritmaları tek yönlü algoritmalardır. Ters fonsiyonu bulunmaz. Şifreler özetlenerek saklandığında gerçek şifreye veri tabanı yöneticisi, yazılım geliştirici dahil hiçkimse herhangi bir ters fonksiyon kullanarak tekrar ulaşamaz. Özet algoritması şifrenin uzunluğundan bağımsız olarak sabit uzunlukta şifrenin özetini oluşturur. MD5, SHA1, SHA256 gibi farklı algoritmaların oluşturdukları özet uzunlukları farklıdır. Şifre içindeki tek karakterin değişimi bile özetin tamamen değişmesine sebep olur. Özet algoritmasının şifre güvenliğinde kullanılmasında, oluşturulan özetin tekrar giriş değerine dönüştürülememesi ve aynı özeti veren 2 veya daha fazla giriş değerinin bulunmasının zor olması gibi özellikleri önemli etken olmuştur.

Kullanıcı herhangi bir sitede veya uygulamada hesap açmak istediğinde kendine kullanıcı adı ve şifre seçer. Bu şifre diske yazılmadan belirli özet algoritması ile özetlenir ve veri tabanına özetlenmiş biçimiyle yazılır. Daha sonra kullanıcı tekrar giriş yapmak istediğinde girmiş olduğu şifre tekrar özetlenerek veri tabanındaki özet ile karşılaştırılır. Özetlerin aynı olması halinde kullanıcının hesabına giriş yetkisi verilir.

Peki nasıl alıyorda ters fonksiyonu bulunmayan özetlenmiş şifreler kırılabiliyor?

Özetlenen Şifrelere Karşı Saldırılar

Dictionary ve Brute Force Saldırıları:

Algoritma içindeki açıklardan ziyade, şifrenin olabileceği ihtimallerin özetlenerek denenmesi, şifreleri kırmak için en etkili yoldur. Şifrenin olabileceği değerlerin kriptoğrafik özetleri (hash) ele geçirilmiş olan veri tabanında özetlenmiş olarak saklanan şifreler ile karşılaştırılır ve eşleşen özetlere karşılık gelen şifreler kırılmış olur. Bunu yapmanın en yaygın yöntemi dictionary ve brute force saldırılarıdır.

Brute Force saldırısı, şifre içerisinde mümkün olabilecek bütün harf, rakam ve karakterlerin kombinasyonlarının teker teker özetini alır ve ele geçirilmiş veri tabanındaki özetler ile karşılaştırır. Olabilecek bütün değerler denendiği için kesin sonuç elde edilir ancak uzun zaman alır ve maliyetlidir.

Dictionary saldırısında ise kullanıcı tarafından şifre olarak kullanılabilecek sözcük, rakam ve karakterlerin tahmini yapılmaya çalışılır ve bu tahmini şifrelerin yer aldığı bir liste oluşturulur. Listedeki herbir şifrenin özeti alınır ve ele geçirilmiş veri tabanındaki herbir özet ile karşılaştırılır. Eşleşen özetler ile şifre kırılmış olur. Liste içersindeki şifreler ya gerçek bir veri tabanın şifrelerinden, bir metinden veya bir kitap içersinde bulunan sözcüklerden alıntı olabilir. Örneğin saldırgan sporla alakalı bir sitedeki kullanıcıların şifrelerini ele geçirmiş ve kırmak istiyorsa sporla alakalı kelime listesini öncelikli kullanır. İnternette dictionary saldırısı için farklı dillerde, şivelerde, alanlarda oluşturulmuş binlerce kelime listesi bulunmaktadır.

Şifreler sadece özetlenerek tutuluyor ise dictionary saldırısını engellemek neredeyse imkansızdır. Özellikle günümüzdeki işlemci hızı yüksek bilgisiyarlarla şifreler kısa zamanda kırılabilir.

Lookup Tabloları:

Dictionary listesi içersindeki şifre olabilme ihtimali olan karakterlerin hash’lenerek plain text değerleri ile birlikte lookup tablo veri yapısında tutulmasıyla lookup saldırı tabloları oluşturulur. Ele geçirilen veri tabanında depolanan özetler, lookup tablosu içersinde hazırlanmış olan milyonlarca özetin içerisinden karşılaştırılarak kısa zamanda eşlenir. Eşleşen özetlerin lookup tablosunda karşılığı olan şifreler kırılmak istenen şifrelerdir.

Kırılmak istenen herbir şifre hazırlanan lookup tablodaki özetler ile karşılaştırılarak şifre değeri bulunmaya çalışılır.

Reverse Lookup Tabloları:

Bu saldırı yönteminde de lookup tablosu oluşturulur ancak lookup saldırısının tersine kullanıcı adının ve şifre özetlerinin bulunduğu veri tabanındaki özetler, hazırlamış olan lookup tablosundaki özetlerle karşılaştırılır. Özetleri eşleşen kullancıların şifreleri kırılmış olur.

Saldırgan reverse lookup tabloları ile kullanıcı listesinde aynı şifreye ve dolayısıyla aynı özete sahip kullanıcıların şifrelerini de aynı anda kırmış olur.

Hazırlanan lookup tablosundaki herbir değer kırılmak istenen şifrelerin özetleri ile karşılaştırılarak şifre değeri bulunmaya çalışılır.

Rainbow Tabloları:

Rainbow tablolarında hazırlanan hash’ler sadece ilk ve son elemanı belli olan zincirler halinde tutulur. Böylelikle özetlerin değerinin tahmin edilmesi esnasında zamandan ve depolama alanından kazanç sağlanır. Rainbow tablosu oluşturulurken şifre ihtimali olabilen karakterler dizininden biri seçilir ve özetlenir. Haslenen özetin karakterlerinin içerisinden belirli bir parçası alınır. ASCII karakterlere çevrilir ve şifre olma ihtimali olan yeni karakter dizini elde edilerek özetlenir. Bu defalarca devam ettirilir ve en son değer tablonun 2. Kolonunda ilk şifreye karşılık olarak yazılır. Aradaki özetlenmiş değerlerin hiçbiri depolanmaz. Böylelikle özet depolama alanı azaltılmış olur. Hazırlanan bu kolonlar veri tabanında tutulur ve rainbow zincirleri denir. Özetten şifreyi elde etmek için ise kırılmak istenen özet, rainbow tablosunda 2. Kolondaki değerler ile karşılaştırılır. Eğer eşleşen değer yoksa özet azaltılır ve tekrar özeti alınarak 2. Kolondaki değerlerle tekrar karşılaştırılır. Eşleşen değer bulunana kadar bu işlem devam ettirilir. Eşleşen değer bulunduğunda şifrenin o zincirde yeraldığı bilinir ve zincir içinden özetin değeri bulunur.

Salt

Görüldüğü gibi şifreleri sadece özetleyerek depolamak güvenlik için yeterli olmamaktadır. Dictionary saldırısının, lookup ve rainbow tablosu saldırılarının etkili çalışabilir olması; her şifrenin veri tabanına aynı özet algoritmasıyla şifrelenip saklanması sonucu rastgeleliğin sağlanamamasından kaynaklanmaktadır. Her şifre için farklı algoritma kullanılamayacağından bu saldırıların etkisinin azaltılması, şifreye özetlenmeden önce rastgele değerlerin eklenmesiyle sağlanabilir.

Özetin rastgeleliğini sağlamak amacıyla, şifreye özetlenmeden önce eklenen bu rastgele bitlere salt denir. Böylelikle şifre kendine eklenen salt değeri ile özetlenerek saklanmış olur. Kullanıcı tekrar giriş yaptığında şifrenin doğruluğunu kontrol etmek için girilen şifreye salt değeri eklenerek özetlenir ve veri tabanındaki özet ile eşleşme yapılır.

Şifreye salt değerinin eklenerek özetlenmesiyle, hazır şifre listelerini kullanan dictionary saldırısı etkisiz hale getirilmiş olur ve lookup, rainbow, reverse lookup tabloları saldırılarının sonuca ulaşabilmesi zorlaştırılmış olur. (Tamamen önlenebilir diyemiyoruz.) Saldırıyı yapan rastgele oluşturulmuş salt değerlerini bilse dahi önceden lookup table oluşturması çok uzun zaman alacak ve maliyetli olacaktır.

Salt’ın etkili olabilmesi için en az şifre uzunluğunda olması ve her şifre için farklı ve rastgele salt’ın kullanılması gerekir.

Her şifre için aynı salt’ın kullanılmasının saldırıların engellemesinde hiçbir etkisi olmayacaktır. Saldırgan salt değerini ele geçirdiğinde saldırı toblosunu salt+şifre olarak oluşturacak ve ona göre eşleşen şifreleri bulabilecektir.

Ayrıca saltın aynı olması şifresi aynı olan kullanıcıların şifrelerinin salt’lı özetlerininde aynı olması demek olacaktır. Saldırgan reverse lookup table kullanarak bu şifreleri rahatlıkla kırabilir. Bu sebeple her kullanıcı yeni bir şifre aldığında veya şifresini değiştirdiğinde farklı bir salt değeri ile özetlenmelidir.

Kısa salt kullanmakta özetli saltın güvenliğini zayıflatan diğer bir etkendir. Salt kısa olduğunda olabilecek her salt ihtimali için lookup table oluşturulması kolaylaşır. Örneğin 3 ASCII karakterli salt için toplam 95*95*95= 857375 salt ihtimali oluşturulabilir. Bu fazla gibi görünebilir ancak lookup tablosu içersindeki şifrelerin toplam 1 mb olduğu varsayılırsa 3 karakterli saltın ihtimalleri için oluşturulacak lookup tablosu yaklaşık 1000 gb yani 1 terabaytlık bir harddisk ile hazırlanabilir.

Kullanıcı adları da salt olarak kullanılmamalıdır. Kullanıcı adları kullanıldığı veri tabanında tek olabilir ancak saldırgan kullanıcı adlarının tahmin edilebilir olması ve başka veri tabanındaki kullanıcı adlarıyla aynı olabilme ihtimalinden faydalanarak tahmini kullanıcı adlarıyla oluşturulmuş özetler ile lookup tablosu oluşturabilir.

Anahtar Esnetme

Şİfre güvenliğinde kullanılan özet algoritmalarının saldırıya açık olmalarında özetlerin az yer kaplaması ve şifrelerin özetlere hızlı dönüştürülebilmesi 2 önemli zayıf yön olarak karşımıza çıkmaktadır. Gün geçtikçe fiyatları ucuzlayan hard diskler ve yüksek hızlı işlemciler salt kullanılmasına rağmen lookup ve brute force gibi saldırıların daha az maliyetle ve daha hızlı yapılmasına olanak sağlamaktadırlar.

Moore Kuralı’na göre bilgisayar işlemci hızları her 1.5 yılda 2 katına çıkar ki bu bilgisayarın hesaplayacağı özet oranınında 2 katına çıkması demektir. Bu da zamanla, salt kullanarak özetlemeninde güvenliği sağlamak için yeterli olamayacağının göstergesidir.

Özetlerin kapladığı alanın artırılarak güvenliğin sağlanmaya çalışılması uygulama geliştirici içinde maliyetli olacağından, şifrenin özetlenme süresini ve buna bağlı olarak kırılma süresini uzatmak şifre güvenliğini sağlamakta kullanılabilir.

Özetlenme süresini artırmak için anahtar esnetme denilen yöntem uygulanır.

Anahtar esnetme; saldırı esnasında, rainbow yada lookup tablosunda yeralan veya brute force ile üretilen olası herbir şifrenin, anahtar esnetme fonksiyonu içindeki iterasyonlarla, saldırgan tarafından denenme süresini artırarak saldırının gerçekleşmesine engel olmak için kullanılır. Anahtar esnetme fonksiyonu CPU ya duyarlı ve ayarlanabilir özel bir fonksiyondur.

Moore Kanununa göreşifrenin güvenliğinin sağlanabilmesi için, her 1.5 yılda kod içerisinde şifreleme hızının 2 kat daha azaltmak gerektiği sonucu çıkar.

Burda dikkat edilmesi gereken önemli nokta ise sunucunun (server) kullanıcıların şifrelerinin doğruluğunu kontrol ederken bu istekleri karşılayabilecek kapasitede olması gerekliliğidir. Aksi halde server DOS saldırısına açık hale gelebilir. Kullanıcıyada gereksiz bekletme yaptırılmamalıdır.

Anahtar esnetme PBKDF2 ve bcrypt gibi fonksiyonlar kullanılarak yapılabilir. Bu fonksiyonlar içersinde kullanılan iterasyonlarla özetlenme süresi istenilen ölçüde uzatılır.

Özetlenme süresini uzatmak için, yazılım geliştiricinin şifreyi birden fazla, farklı veya aynı özet algoritması ile üst üste haslemesi hatalı bir düşüncedir. Örneğin çıktı olarak sabit 128 bit özet üreten özet algoritması tekrar aynı algoritma ile özetlenmeye çalışıldığında 2^128 bitlik sınırlı bir girdiyi şifrelemeye çalışacak ki bu yöntem özetler arasında çakışma olasılığını artıracaktır.

Kullanıcıların Dikkat Etmesi Gereken Hususlar

Bilişim güvenliğinde en zayıf halkanın kullanıcı olduğu gerçeği göz önünde tutulduğunda, şifrenin güven(siz)liğinide uygulama geliştiriciden önce tayin eden kullanıcıdır. Bu nedenle kullanıcı şifre seçiminde ve şifresini saklamada bilinçli olmalıdır. Kullanıcı için en büyük sorun şifreyi sık sık unutmasıdır. Bu sebeple doğum yeri, doğum tarihi, köpeğinin adı, sevdiği bir futbolcunun adı gibi unutmayacağı sözcükleri şifre olarak seçer. Yazılım geliştirici uygulama tarafında ne tür önlem alırsa alsın, saldırgan için bu tarz bir şifreyi tahmin etmek ve kırmak çok kolaydır.

Kullanıcının kendine şifre seçerken; soyad, doğum günü, aile bireylerinin adları, çalıştığı kurum gibi tahmini kolay kişisel bilgiler, anlamlı sözcükler tek başına şifre olarak seçilmemelidir.

Farklı site ve uygulamalar için farklı şifreler seçilmelidir ve belirli aralıklarla şifreler değiştirilmelidir.

Büyük küçük harf, rakam ve karakterlerin karışımından oluşan uzun şifreler kullanılmalıdır.

Kullanıcı şifrelerini hatırlamakta güçlük çekiyorsa, güvenliğinden emin olduğu bir yere yazıp saklamalı, şifresini başkalarıyla paylaşmamlaıdır. Şifresini ikinci bir şahısla paylaşma zorunluluğu olur ise zorunluluk durumu kalktığında şifresini değiştirmelidir.

Şifrelerin güvenli biçimde depolanmasını ve saklanmasını sağlayan açık kaynak kodlu “passwordsafe”, mobil cihazlar ve tabletlerde de kullanılabilen “roboform” gibi uygulamalar kullanıcıların şifre unutma derdini sona erdirmeye yardımcı olmaktadır.

ikinci el eşya alan yerler | ikinci el eşya alanlar
istanbul escort escort bayan