FPGA destekli John the Ripper 1.9.0-jumbo-1 sürümü

Yayınlandı Desteklenen en eski şifre tahmin programının yeni sürümü Karındeşen John 1.9.0-jumbo-1 (proje 1996'dan beri geliştirilmektedir). 1.8.0'den fazla geliştirici tarafından 1'den fazla değişikliğin (git taahhütleri) yapıldığı önceki sürüm 4.5-jumbo-6000'in piyasaya sürülmesinden bu yana 80 yıl geçti. Sayesinde sürekli entegrasyonBirçok platformdaki her değişikliğin (çekme isteği) ön kontrolünü içeren bu süre zarfında geliştiriciler, geliştiricilerin kullanılmasını önerdi. GitHub'dan güncel baskıYapılan değişikliklere rağmen durumu stabil tutuldu. Ana proje kodu tarafından dağıtıldı GPLv2+ lisansı altındadır ve bazı bileşenlerin kodu BSD lisansı altındadır.

Yeni sürümün özel bir özelliği, FPGA desteğinin ortaya çıkmasıdır (CPU, GPU ve Xeon Phi'ye ek olarak). Panolar için ZTEX 1.15y4 FPGA yongası da dahil olmak üzere ve başlangıçta esas olarak Bitcoin madenciliği için kullanılan, artık 7 tür şifre karması uygulanmaktadır: bcrypt, classic descrypt (bigcrypt dahil), sha512crypt, sha256crypt, md5crypt (Apache apr1 ve AIX smd5 dahil), Drupal7 ve phpass (kullanılıyor) , özellikle WordPress'te). Bunlardan bazıları ilk kez FPGA üzerinde uygulanıyor.

Bcrypt için, ~119 watt güç tüketimiyle 2^5 yinelemede ("$2b$05") elde edilen ~27k c/s performansı, kart başına, donanım fiyatı başına ve watt başına en yeni GPU'ların sonuçlarını önemli ölçüde aşıyor . Ayrıca destekleniyor kümeler Tek bir Raspberry Pi 16'den kontrol edilen 64 adede kadar kart (2 FPGA yongası) test edilen bu türden kartlar. Tüm şifre tahmin modları ve çok sayıda karmanın eşzamanlı indirilmesi de dahil olmak üzere olağan John the Ripper işlevselliği desteklenir. .

Çalışmayı hızlandırmak için bir maske kullanımını (diğer modlarla kombinasyon dahil “—mask” modu) ve hesaplanan karmaların FPGA tarafında yüklenenlerle karşılaştırılmasını uyguladık. Uygulama açısından bakıldığında, tasarımların çoğu (örn. sha512crypt ve Drupal7kriptografik çekirdeklerle etkileşime giren çok iş parçacıklı işlemci çekirdeklerinden (soft CPU çekirdekleri) oluşan bloklar kullanılır. Bu işlevselliğin geliştirilmesi Denis Burykin tarafından diğer jumbo geliştiricilerle koordineli olarak yürütüldü.

Diğer önemli değişiklikler:

  • Hem klasik şifre karmaları (örneğin, QNX'in yeni sürümlerinden), hem de kripto para birimi cüzdanları, şifrelenmiş arşivler ve şifrelenmiş dosya sistemleri (örneğin, Bitlocker ve FreeBSD gel), ayrıca daha önce desteklenen yeni format türleri için destek (örneğin, OpenBSD softraid için bcrypt-pbkdf desteği eklendi) ve çok daha fazlası. Toplamda CPU'ya 80, OpenCL'e ise 47 format eklendi. Formatların toplam sayısı artık CPU'da 407'dir (veya yapılandırma dosyalarından yapılandırılan "dinamik" formatlar hariç 262) ve OpenCL'de 88'dir.
  • OpenCL lehine CUDA dilini desteklemeyi reddetmek; bu, hiçbir şekilde NVIDIA GPU'ların tam kullanımına müdahale etmez (ve hatta geliştirme ve optimizasyonun, daha önce iki uygulama yerine GPU için her formatın tek bir uygulamasına odaklanılması sayesinde yardımcı olur).
  • Yeni SIMD talimat setleri desteği - AVX2, AVX-512 (ikinci nesil Xeon Phi dahil) ve MIC (birinci nesil için) ve ayrıca SIMD'nin kullanımı da dahil olmak üzere birçok formatın uygulamalarında daha evrensel ve eksiksiz kullanımı x86(-64) ve üzerinde AVX ve XOP'a kadar önceden desteklenen talimat setleri ve
    ARM, Aarch64 ve POWER'da sırasıyla NEON, ASIMD ve AltiVec.

  • Hem çok sayıda hash ile aynı anda daha verimli çalışmak (örneğin, GPU'ya 320 milyon SHA-1 hash yüklemek test edildi) hem de hash hesaplamalarının hızını artırmak için CPU ve OpenCL için çok sayıda optimizasyon. Bu optimizasyonlardan bazıları evrenseldir, bazıları farklı format alt kümelerini kapsar ve çoğu da bireysel formatlara özeldir.
  • Tam çalışma frekansına yavaş yükselişin hesaba katılması da dahil olmak üzere, CPU'da kontrol edilen parolaların (“—tune=auto —verbosity=5”) ve OpenCL'deki optimum iş boyutlarının (varsayılan olarak etkindir) optimum ara belleğe alınmasının (otomatik) yapılandırılması NVIDIA GTX serisi GPU'lar 10xx ve daha yenisi. Bu tür bir otomatik ayarlama için, fiili olarak yüklenmiş karmaların ve kontrol edilen şifrelerin gerçek uzunluğunun (önceden bilindiğinde) kullanılması.
  • Doğrudan komut satırında belirtilen "dinamik ifadeler" için bir derleyici ekleme ve SIMD kullanılarak CPU üzerinde hesaplanan "-format=dynamic='sha1(md5($p).$s)'" gibi yeni karma karma türlerini uygulama . Bu tür ifadelerin bileşenleri olarak düzinelerce hızlı karma (MD5 gibi yaygın olanlardan Whirlpool gibi orta derecede egzotik olanlara kadar), alt dize birleştirme, kodlama ve kod çözme, karakter büyük/küçük harf dönüşümü, parolaya, tuza, kullanıcı adına ve dize sabitlerine referanslar desteklenir.
  • Daha önce hashcat'e özgü kuralların (kelime listesi kural komutları) desteklenmesi, 1'den OpenCL cihaz numaralandırmasına geçiş, performans testleri için aynı şifre uzunluklarının (genellikle uzunluk 7) varsayılan kullanımı da dahil olmak üzere, hashcat'ten istenmeyen farklılıkların ortadan kaldırılması.
  • Doğrulanabilir şifreler oluşturmak için yeni modlar (kırma modları), hashcat'ten PRINCE (birkaç kelimeyi artan toplam uzunlukta birleştirerek "ifadeler" oluşturur), alt kümeler (bu karakterler gelse bile yetersiz sayıda farklı karaktere sahip şifreler getirir) dahil geniş bir olası parola kümesinden) ve hibrit harici (C benzeri bir dilde yapılandırma dosyalarında açıklanan harici modların, başka bir moddan alınan her temel "kelime" temelinde birçok doğrulanabilir parola oluşturmasına olanak tanır). Ayrıca birkaç yeni önceden tanımlanmış harici mod.
  • Birkaç modu aynı anda kullanmak (biri diğerinin üstünde - istifleme) ve ayrıca kural kümelerini (kelime listesi kuralları istifleme) kullanmak için ek özellikler.
  • Maske modlarında iyileştirmeler (maskenin belirli bir uzunluk aralığında kademeli olarak uzatılması, OpenCL cihazının veya FPGA kartının yan tarafına maske uygulanması) ve tek çatlak (paralel olarak çok sayıda karma hesaplayan cihazlarda makul davranış) , daha önce bu modda yeterli sayıda doğrulanabilir şifrenin bulunmadığı ve ayrıca bellek tüketimiyle ilgili kısıtlamaların olduğu).
  • Farklı alt sistemlerdeki Unicode ve diğer kodlamaları desteklemek için birçok iyileştirme.
  • *2john programlarında (farklı formatlardaki dosyaları dönüştüren) birçok iyileştirme
    john ile kullanın), özellikle wpapcap2john (WiFi trafiğini yönetir).

  • John.conf'ta birçok yeni komut satırı seçeneği, ayarlar, komut dosyası yapılandırma seçenekleri ve bunlara karşılık gelen yeni özellikler bulunmaktadır; bunların hepsi burada belirtilmemiştir.
  • AdresSanitizer (önceden) ve UnDefinitionBehaviorSanitizer (eklendi) ile hata ayıklama derlemelerine yönelik yerleşik destek sayesinde kod kalitesini artırma, yerleşik bir format fuzzer ekleme (GSoC 2015'in bir parçası olarak), sürekli entegrasyon kullanma (düzinelerce işletim sistemi ve derleyici için derlemeler) kombinasyonları ve bunların tüm formatlar için doğru destek açısından test edilmesi).

Kaynak: opennet.ru

Yorum ekle