FPGA destekli John the Ripper 1.9.0-jumbo-1

Yayınlandı Desteklenen en eski şifre tahmin programının yeni sürümü John the Ripper 1.9.0-jumbo-1. (Proje 1996 yılından bu yana geliştirilmektedir.) proje sayfası Kaynakların yanı sıra Windows için hazır derlemeler de indirilebilir.

1.8.0'den fazla geliştirici tarafından 1'den fazla değişikliğin (git taahhütleri) yapıldığı 4.5-jumbo-6000 sürümünün yayınlanmasının üzerinden 80 yıl geçtiği belirtiliyor. Bu dönemde geliştiriciler kullanılmasını önerdiler GitHub'dan güncel baskıYapılan değişikliklere rağmen durumu stabil kalan sürekli entegrasyonbirçok platformda her değişikliğin (çekme isteği) ön doğrulamasını içerir. Yeni sürümün özel bir özelliği, CPU, GPU ve Xeon Phi'ye ek olarak FPGA (FPGA) desteğinin ortaya çıkmasıdır.


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, yaklaşık 119 watt güç tüketimiyle 2^5 yinelemeyle ("2 milyar $ 05") ~27 bin c/s'lik elde edilen performans, kart başına, donanım fiyatı 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 panoya (2 FPGA) kadar test edilen bu türdeki panoların sayısı. 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ı ("--mask" modu, diğer modlarla kombinasyon dahil) ve hesaplanan karmaların FPGA tarafında yüklü olanlarla 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 (ve az sayıda eski format, yeni ve eski formatlara entegre edilerek kaldırıldı). 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. (Kısmen GSoC 2015'in bir parçası olarak.)
  • 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.
  • NVIDIA GTX'in yavaş yükselişini hesaba katarak, CPU'da kontrol edilen parolaların ("—tune=auto —verbosity=5") ve OpenCL'de optimum iş boyutlarının (varsayılan olarak etkindir) optimum ara belleğe alınmasının (otomatik) yapılandırılması serisi GPU'lar tam çalışma frekansı 10xx ve daha yenisine. 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: linux.org.ru

Yorum ekle