John the Ripper 1.9.0-jumbo-1 release na may suporta sa FPGA

Inilabas новая вСрсия ΡΡ‚Π°Ρ€Π΅ΠΉΡˆΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ John the Ripper 1.9.0-jumbo-1 (ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ развиваСтся с 1996 Π³ΠΎΠ΄Π°). C Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии 1.8.0-jumbo-1 ΠΏΡ€ΠΎΡˆΠ»ΠΎ 4.5 Π³ΠΎΠ΄Π°, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΎ внСсСно Π±ΠΎΠ»Π΅Π΅ 6000 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (git commits) ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ 80 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Благодаря patuloy na integrasyon, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСнСния (pull request) Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ этого срока Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ kasalukuyang edisyon mula sa GitHub, состояниС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΎΡΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ нСсмотря Π½Π° вносимыС измСнСния. Основной ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ipinamahagi ni ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv2+, Π° ΠΊΠΎΠ΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π½ΠΎΠ²ΠΎΠΉ вСрсии являСтся появлСниС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ FPGA (Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ CPU, GPU ΠΈ Xeon Phi). Для ΠΏΠ»Π°Ρ‚ ZTEX 1.15y, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎ 4 Ρ‡ΠΈΠΏΠ° FPGA ΠΈ исходно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡ…ΡΡ Π² основном для ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Bitcoin, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ 7 Ρ‚ΠΈΠΏΠΎΠ² Ρ…Π΅ΡˆΠ΅ΠΉ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ: bcrypt, классичСский descrypt (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ bigcrypt), sha512crypt, sha256crypt, md5crypt (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Apache apr1 ΠΈ AIX smd5), Drupal7 ΠΈ phpass (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π² частности, Π² WordPress). НСкоторыС ΠΈΠ· Π½ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π° FPGA Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅.

Для bcrypt, достигнутая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² ~119k c/s ΠΏΡ€ΠΈ 2^5 ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ (Β«$2b$05Β») с потрСбляСмой ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΊΠΎΠ»ΠΎ ~27 Π²Π°Ρ‚Ρ‚ сущСствСнно прСвосходит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ для Π½ΠΎΠ²Π΅ΠΉΡˆΠΈΡ… GPU Π² расчСтС Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ, Π½Π° Ρ†Π΅Π½Ρƒ оборудования ΠΈ Π½Π° Π²Π°Ρ‚Ρ‚. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ mga kumpol ΠΈΠ· ΠΏΠ»Π°Ρ‚ этого Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 16 ΠΏΠ»Π°Ρ‚ (64 Ρ‡ΠΈΠΏΠ° FPGA), ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… с ΠΎΠ΄Π½ΠΎΠ³ΠΎ Raspberry Pi 2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ обычная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ John the Ripper, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Ρ€Π΅ΠΆΠΈΠΌΡ‹ ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ большого количСства Ρ…Π΅ΡˆΠ΅ΠΉ.

Для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ маски (Ρ€Π΅ΠΆΠΈΠΌ Β«β€”maskΒ», Π² Ρ‚ΠΎΠΌ числС Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ) ΠΈ сравнСниС вычислСнных Ρ…Π΅ΡˆΠ΅ΠΉ с Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° сторонС FPGA. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ· Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для sha512crypt at Drupal7) mga bloke na binubuo ng mga multi-threaded na mga core ng processor (mga soft CPU core) na nakikipag-ugnayan sa mga cryptographic core ay ginagamit. Ang pagbuo ng pagpapaandar na ito ay pinangunahan ni Denis Burykin sa pakikipag-ugnayan sa iba pang mga jumbo developer.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ измСнСния:

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° большого количСства Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ…Π΅ΡˆΠ΅ΠΉ, ΡˆΠΈΡ„Ρ€ΠΎΠ² ΠΈ Ρ‚.ΠΏ., Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ°ΠΊ классичСскиС Ρ…Π΅ΡˆΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ Π½ΠΎΠ²Ρ‹Ρ… вСрсий QNX), Ρ‚Π°ΠΊ ΠΈ кошСльки ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡŽΡ‚, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΠ²Ρ‹ ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Bitlocker ΠΈ FreeBSD geli), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… разновидностСй Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ€Π°Π½Π΅Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° bcrypt-pbkdf для OpenBSD softraid) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’ ΠΎΠ±Ρ‰Π΅ΠΉ слоТности, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 80 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π½Π° CPU ΠΈ 47 Π½Π° OpenCL. ΠžΠ±Ρ‰Π΅Π΅ количСство Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ 407 Π½Π° CPU (ΠΈΠ»ΠΈ 262 Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Β«dynamicΒ» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, настраиваСмыС ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ) ΠΈ 88 Π½Π° OpenCL.
  • Ang pagtanggi na suportahan ang wikang CUDA na pabor sa OpenCL, na sa anumang paraan ay hindi nakakasagabal sa buong paggamit ng mga NVIDIA GPU (at nakakatulong pa nga, salamat sa pagtutok sa pag-unlad at pag-optimize sa isang pagpapatupad ng bawat format para sa GPU sa halip na dalawang pagpapatupad dati).
  • Suporta para sa mga bagong set ng pagtuturo ng SIMD - AVX2, AVX-512 (kabilang ang para sa ikalawang henerasyong Xeon Phi) at MIC (para sa unang henerasyon) - pati na rin ang mas pangkalahatan at kumpletong paggamit ng SIMD sa mga pagpapatupad ng maraming mga format, kabilang ang paggamit ng dating sinusuportahang pagtuturo ay nagse-set up sa AVX at XOP sa x86(-64) at
    NEON, ASIMD ΠΈ AltiVec Π½Π° ARM, Aarch64 ΠΈ POWER, соотвСтствСнно.

  • Maraming mga pag-optimize para sa CPU at OpenCL, kapwa upang mas mahusay na gumana sa isang malaking bilang ng mga hash nang sabay-sabay (halimbawa, nasubok ang paglo-load ng 320 milyong SHA-1 na mga hash sa GPU), at upang mapataas ang bilis ng mga pagkalkula ng hash. Ang ilan sa mga pag-optimize na ito ay pangkalahatan, ang ilan ay sumasaklaw sa iba't ibang mga subset ng mga format, at marami ang partikular sa mga indibidwal na format.
  • (Авто-)настройка ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ провСряСмых ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Π½Π° CPU (Β«β€”tune=auto β€”verbosity=5Β») ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… размСрностСй задания Π½Π° OpenCL (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), Π² Ρ‚ΠΎΠΌ числС с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ частоту GPU сСрии NVIDIA GTX 10xx ΠΈ Π½ΠΎΠ²Π΅Π΅. ИспользованиС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ…Π΅ΡˆΠ΅ΠΉ ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ провСряСмых ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ (ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° извСстна Π·Π°Ρ€Π°Π½Π΅Π΅) для Ρ‚Π°ΠΊΠΎΠΉ Π°Π²Ρ‚ΠΎ-настройки.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ компилятора «динамичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉΒ», ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… прямо Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π½ΠΎΠ²Ρ‹Π΅ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ…Π΅ΡˆΠ΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«β€”format=dynamic=’sha1(md5($p).$s)'Β», вычисляСмыС Π½Π° CPU с использованиСм SIMD. Π’ качСствС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ‚Π°ΠΊΠΈΡ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ дСсятки быстрых Ρ…Π΅ΡˆΠ΅ΠΉ (ΠΎΡ‚ распространСнных Π²Ρ€ΠΎΠ΄Π΅ MD5 Π΄ΠΎ ΡƒΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ экзотичСских Π²Ρ€ΠΎΠ΄Π΅ Whirlpool), объСдинСниС подстрок, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ рСгистра символов, ссылки Π½Π° ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, соль, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ строковыС константы.
  • Pag-aalis ng mga hindi gustong pagkakaiba mula sa hashcat, kabilang ang suporta para sa dati nang hashcat-specific na mga panuntunan (mga wordlist rule command), paglipat sa OpenCL device numbering mula 1, default na paggamit ng parehong mga haba ng password (karaniwang haba 7) para sa mga pagsubok sa pagganap.
  • Mga bagong mode para sa pagbuo ng mga nabe-verify na password (cracking mode), kabilang ang PRINCE mula sa hashcat (bumubuo ng "mga parirala" sa pamamagitan ng pagsasama-sama ng ilang salita sa pagtaas ng pagkakasunud-sunod ng kabuuang haba), mga subset (naglalabas ng mga password na may hindi sapat na bilang ng magkakaibang mga character, kahit na dumating ang mga character na ito mula sa isang malaking hanay ng mga posible) at hybrid na panlabas (pinapayagan ang mga panlabas na mode, na inilarawan sa mga file ng pagsasaayos sa isang wikang tulad ng C, na bumuo ng maraming nabe-verify na mga password batay sa bawat pangunahing "salita" na natanggap mula sa isa pang mode). Gayundin, maraming bagong paunang-natukoy na mga panlabas na mode.
  • Karagdagang mga tampok para sa paggamit ng ilang mga mode nang sabay-sabay (isa sa ibabaw ng isa - stacking), pati na rin para sa paggamit ng mga hanay ng mga panuntunan (wordlist rules stacking).
  • Mga pagpapabuti sa mga mask mode (unti-unting pag-uunat ng mask sa isang tinukoy na hanay ng mga haba, paglalagay ng mask sa gilid ng OpenCL device o FPGA board) at single crack (makatwirang pag-uugali sa mga device na nagkalkula ng malaking bilang ng mga hash nang magkatulad. , kung saan dati ay walang sapat na nabe-verify na mga password sa mode na ito, at mga paghihigpit din sa pagkonsumo ng memorya).
  • Maraming mga pagpapabuti sa suporta para sa Unicode at iba pang mga pag-encode sa iba't ibang mga subsystem.
  • Maraming mga pagpapabuti sa *2john programs (na nagko-convert ng mga file ng iba't ibang format para sa
    gamitin kasama si john), lalo na ang wpapcap2john (pangasiwaan ang trapiko ng WiFi).

  • Maraming mga bagong opsyon sa command line, mga setting sa john.conf, i-configure ang mga opsyon sa script at mga kaukulang bagong feature, hindi lahat ay nabanggit dito.
  • Pagpapabuti ng kalidad ng code salamat sa built-in na suporta para sa mga build ng debug gamit ang AddressSanitizer (dati) at UndefinedBehaviorSanitizer (idinagdag), pagdaragdag ng built-in na format na fuzzer (bilang bahagi ng GSoC 2015), gamit ang tuluy-tuloy na pagsasama (bumubuo para sa dose-dosenang operating system at compiler mga kumbinasyon at pagsubok sa mga ito para sa tamang suporta para sa lahat ng mga format).

Pinagmulan: opennet.ru

Magdagdag ng komento