Bilindiği üzere modern şifreleme araçları güçlü şifreleme algoritmaları ve hash iterasyonları kullanarak parolaları kırmayı son derece zor hale getiriyor. Bu durumda ise şifreleri daha hızlı kırabilmek için bazı hızlandırma yöntemleri bulunuyor. Bu makalemizde ise bu hızlandırma yöntemlerinden ikisine detaylıca değineceğiz.
Neden GPU Hızlandırmasına İhtiyaç Duyuyoruz?
Kısaca yanıtlamak gerekirse parolaları daha hızlı kırabilmek için GPU hızlandırmasına ihtiyaç duyuyoruz. Peki bu hızdan kasıt ne ve bir GPU normalde olduğundan ne kadar fazla hızlandırılabilir? Bunu en kolay çözebilmenin yolu işe şudur; bu durum sistemde ne kadar çok ekran kartı olduğuna, ekran kartlarının ne olduğuna ve kırılacak parolanın 128-bit ya da 256-bit şifreleme anahtarına dönüştürülmesinde kullanılan algoritmaya bağlı.
Günümüzde çoğu veri koruma sistemi şifreleme kullanıyor. Şifreleme algoritmaları, veriyi 128-bit veya 256-bit uzunluğunda bir Media Encryption Key (MEK) yani Veri Şifreleme Anahtarı (DEK) ile koruyor. Bu anahtarlar o kadar uzun ki, klasik brute-force saldırılarıyla doğrudan kırılmaları pratikte imkansız diyebiliriz. Bu yüzden saldırganlar doğrudan şifreleme anahtarını hedef almak yerine başka bir noktaya yöneliyor. Yöneldikleri nokta ise genellikle tam olarak kullanıcının kendi parolası oluyor. Çünkü çoğu kullanıcı parolası, 128-bit veya 256-bit şifreleme anahtarlarına kıyasla çok daha düşük entropiye sahip.
Veriye erişebilmenin tek ve kolay yolu çoğu zaman orijinal parolayı bulmaktır. Parola kurtarma araçlarının geliştiricileri saniyede daha fazla parola kombinasyonu deneyebilmek için sürekli hız artırmaya çalışırken, veri koruma yazılımlarının geliştiricileri tam tersini yapar. Bu da saldırıları mümkün olduğunca yavaşlatmak Bunu da genellikle hash fonksiyonunu tekrar tekrar çalıştırarak sağlarlar. Yani kullanıcı parolası, şifreleme anahtarına dönüştürülürken yüz binlerce hatta milyonlarca kez işlenebilir.
Ancak tam bu noktada önemli bir detay var. Veri koruma sistemleri bu işlemleri sonsuza kadar ağırlaştıramaz. Çünkü kullanıcılar da bir dosyanın açılması veya şifreli diskin bağlanması için dakikalarca beklemek istemezler. Bu nedenle çoğu sistem, ortalama bir bilgisayarda yaklaşık 0.3 ila 1 saniyede çalışacak şekilde optimize edilir.
Bir diğer önemli nokta da şu ki; bu parola doğrulama işlemleri çoğunlukla yalnızca işlemciyi kullanır. İşte GPU hızlandırmasının devreye girdiği yer tam olarak burası.
GPU Hızlandırma İşlemi Nasıl Çalışıyor?
Tek başına bir CPU’nun hızı, birçok parola türünü kırmak için yeterli değil. Özellikle yüz binlerce hash iterasyonu kullanılan sistemlerde, yalnızca işlemciyle yapılan saldırılar ancak çok basit parolaları çözebilir. Bu durumda da daha fazla işlem gücüne ihtiyaç duyuluyor.
Modern ekran kartları ise tam olarak bunun için biçilmiş kaftan diyebiliriz. Günümüzde NVIDIA ve AMD’nin orta ve üst segment ekran kartları, yüzlerce hatta binlerce paralel çalışan çekirdeğe sahip. Bu kartlar gerçek zamanlı karmaşık 3D sahneler oluşturabilir.
GPU hızlandırma işlemi, yoğun hesaplama gerektiren işlemleri CPU’dan alıp ekran kartına aktarır. Yüzlerce GPU çekirdeği sayesinde tek bir ekran kartı bile üst düzey bir işlemciden çok daha yüksek performans sağlayabilir. Kullanılan ekran kartına ve hedeflenen şifreleme algoritmasına bağlı olarak, GPU hızlandırmasının CPU’ya kıyasla yaklaşık 50 ila 250 kat arasında performans artışı sağladığını söyleyebiliriz.
Asenkron GPU Hızlandırma
Sistemde birden fazla ekran kartı varsa, Elcomsoft Distributed Password Recovery aynı anda 32’ye kadar ekran kartını kullanabilir. Peki ya ekran kartlarının hızları farklıysa ya da tamamen farklı modeller kullanılıyorsa bu durumda ne oluyor?
İşte burada asenkron GPU hızlandırması devreye giriyor. Parola kurtarma yazılımı işi küçük parçalara böler ve her ekran kartına ayrı görevler verir. Bir ekran kartı işini erken bitirdiğinde, diğer kartların tamamlamasını beklemeden yeni görev alabilir.
Daha basit anlatmak gerekirse farklı marka ve modellerdeki ekran kartlarını aynı anda verimli şekilde kullanabilirsiniz. Bu da AMD ve NVIDIA kartlarını karışık şekilde kullanabileceğiniz ve hatta işlemcinin dahili Intel HD Graphics birimini bile sürece dahil edebileceğiniz anlamına geliyor. Buradaki asıl amaç sistemdeki tüm parçalardan alabileceğiniz maksimum performansı almanızı sağlamak.
GPU Hızlandırması Aslında Ne Kadar Hızlı?
Bu soru aslında zor bir soru çünkü hız tamamen kullanılan ekran kartına bağlı. Ancak şunu unutmamak gerekir ki oyunlarda çok güçlü performans sağlayan bir ekran kartı, parola kurtarma konusunda da en güçlü kart olmak zorunda değil.
Örneğin NVIDIA RTX serisindeki ray tracing çekirdekleri, parola kırma işlemlerinde neredeyse hiçbir işe yaramaz. Bu nedenle GeForce GTX 1660 Super ile RTX 2060 Super arasında fiyat farkı büyük olsa da parola kırma performansı birbirine oldukça yakın olabilir.


O halde gerçek birkaç örnekle bir ekran kartının ne kadar hızlı olabileceğine değinelim;
Örneğin tek bir ekran kartıyla Microsoft Office 2013 şifreli bir belgeye saldırıldığında yaklaşık saniyede 2900 parola denenebilir. Bu da saatte yaklaşık 1 milyon parola kombinasyonu anlamına geliyor.
Sadece küçük harfler ve rakamlardan oluşan 5 karakterli bir parola yaklaşık 60 milyon kombinasyona sahip. Bu durumda bir GPU ile brute-force saldırısı yaklaşık 58 saat sürer. Aynı saldırı yalnızca CPU ile yapılırsa yaklaşık 1.5 yıl sürebilir. Daha önce söylediğimiz gibi ekran kartları bu işi işlemcilerden 250 kat daha hızlı yapabiliyordu.
Küçük harf, büyük harf ve rakamlardan oluşan 6 karakterli bir parola yaklaşık 56 milyar kombinasyona sahip. Bunun da tek bir GPU ile kırılması yaklaşık 6.3 yıl sürebilir.
Aynı karakter setiyle oluşturulmuş 7 karakterli bir parola ise yaklaşık 385 yıl süren bir brute-force saldırısı gerektiriyor. 385 yıl bu tür işler için ciddi anlamda uzun bir süreç ve eminiz ki bu süreç hiçbir parola saldırısı için yetmeyecek. Peki bu durumda ne yapmak gerek? Burada devreye Distributed Computing denilen Dağıtık Hesaplama sistemi devreye giriyor.
Dağıtık Hesaplama (Distributed Computing)
Bu kadar uzun yıllar alan işlemlerde tek GPU yeterli olmayacağı için devreye çoklu GPU çalıştırma giriyor.
Örneğin aynı işlemi tek ekran kartıyla yapmak yerine 8 ekran kartıyla yapmayı denerseniz bu sefer 385 yıl yerine 48 yıl beklemeniz gerekebilir. Ancak bu halen ciddi anlamda uzun bir süre. Bir sonraki adım ise bu süreyi kısaltabilecek daha fazla sunucu çalıştırmak. Daha önce de bahsettiğimiz Elcomsoft Distributed Password Recovery ile teorik olarak 10.000’e kadar sunucu tek bir dağıtık ağda kullanılabiliyor.
Bulut Tabanlı Saldırılar
Dağıtık sistemler çok etkili olsa da büyük bir veri merkezi kurmanın maliyeti oldukça yüksek. Böyle bir sunucu kurmak için donanım maliyetleri, bakım giderleri, elektrik tüketimi ve soğutma masrafları ciddi seviyelere ulaşabilir. Özellikle her sistemin yaklaşık 1500W güç tüketebildiği düşünülürse bu ciddi bir maliyete sebep olur.
Bu yüzden bazı durumlarda yükün bir kısmını bulut sistemlerine taşımak daha mantıklı olabiliyor. Elcomsoft Distributed Password Recovery ise şu anda Amazon ve Microsoft Azure bulut altyapılarını destekliyor.
Bulut sistemlerden faydalanmanın tek avantajı elbette maliyet değil. Bulut sistemler diğerlerinin aksine ihtiyaç duyulduğunda ek işlem gücü kiralayabilmeyi, iş bittiğinde kaynakları azaltarak maliyeti düşürebilmeyi ve fiziksel veri merkezi kurma derdini ortadan kaldırıyor diyebiliriz.
Bazı bulut platformlarında tek bir sistem üzerinde 16 adede kadar GPU çalıştırılabiliyor. Bu da kullanıcıların ihtiyaçlarına bağlı olarak son derece yüksek işlem gücüne sahip, geniş ölçekli bir parola kırma altyapısı oluşturmasına olanak tanıyor.
Kısaca sonuca varmak gerekirse parola kırma işlemlerinde birden fazla GPU’dan ve bulut sunuculardan faydalanmak hem süreden hem de iş maliyetinden avantaj sağlamanıza yarıyor.