John the Ripper 1.9.0-jumbo-1 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ FPGA

Π’Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° новая вСрсия старСйщСй ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ John the Ripper 1.9.0-jumbo-1. (ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ развиваСтся с 1996 Π³ΠΎΠ΄Π°.) На страницС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° доступны для скачивания исходники, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ сборки ΠΏΠΎΠ΄ Windows.

ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ с Π²Ρ‹Ρ…ΠΎΠ΄Π° вСрсии 1.8.0-jumbo-1 ΠΏΡ€ΠΎΡˆΠ»ΠΎ 4.5 Π³ΠΎΠ΄Π°, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΎ внСсСно Π±ΠΎΠ»Π΅Π΅ 6000 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (git commits) ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ 80 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ этого срока Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΡŽ с GitHub, состояниС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΎΡΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ нСсмотря Π½Π° вносимыС измСнСния благодаря Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСнСния (pull request) Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π½ΠΎΠ²ΠΎΠΉ вСрсии являСтся появлСниС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ 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 Π² расчСтС Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ, Π½Π° Ρ†Π΅Π½Ρƒ оборудования ΠΈ Π½Π° Π²Π°Ρ‚Ρ‚. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ кластСры ΠΈΠ· ΠΏΠ»Π°Ρ‚ этого Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 16 ΠΏΠ»Π°Ρ‚ (64 FPGA), ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… с ΠΎΠ΄Π½ΠΎΠ³ΠΎ Raspberry Pi 2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ обычная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ John the Ripper, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Ρ€Π΅ΠΆΠΈΠΌΡ‹ ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ большого количСства Ρ…Π΅ΡˆΠ΅ΠΉ. Для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ маски (Ρ€Π΅ΠΆΠΈΠΌ "—mask", Π² Ρ‚ΠΎΠΌ числС Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ) ΠΈ сравнСниС вычислСнных Ρ…Π΅ΡˆΠ΅ΠΉ с Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° сторонС FPGA. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ· Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для sha512crypt ΠΈ Drupal7) ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ Π±Π»ΠΎΠΊΠΈ состоящиС ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… процСссорных ядСр (soft CPU cores), Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… с криптографичСскими ядрами. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π΅Π» ДСнис Π‘ΡƒΡ€Ρ‹ΠΊΠΈΠ½ Π² ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ jumbo.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ваТнСйшиС измСнСния:

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° большого количСства Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ…Π΅ΡˆΠ΅ΠΉ, ΡˆΠΈΡ„Ρ€ΠΎΠ² ΠΈ Ρ‚.ΠΏ., Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ°ΠΊ классичСскиС Ρ…Π΅ΡˆΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ Π½ΠΎΠ²Ρ‹Ρ… вСрсий QNX), Ρ‚Π°ΠΊ ΠΈ кошСльки ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡŽΡ‚, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΠ²Ρ‹ ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Bitlocker ΠΈ FreeBSD geli), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… разновидностСй Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ€Π°Π½Π΅Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° bcrypt-pbkdf для OpenBSD softraid) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’ ΠΎΠ±Ρ‰Π΅ΠΉ слоТности, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 80 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π½Π° CPU ΠΈ 47 Π½Π° OpenCL (ΠΈ нСбольшоС количСство старых ΡƒΠ΄Π°Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Π½ΠΎΠ²Ρ‹Π΅ ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅). ΠžΠ±Ρ‰Π΅Π΅ количСство Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ 407 Π½Π° CPU (ΠΈΠ»ΠΈ 262 Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ «dynamic» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, настраиваСмыС ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ) ΠΈ 88 Π½Π° OpenCL.
  • ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ языка CUDA Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ OpenCL, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡ΡƒΡ‚ΡŒ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΌΡƒ использованию GPU ΠΎΡ‚ NVIDIA (ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚, благодаря Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ Π½Π° ΠΎΠ΄Π½Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΏΠΎΠ΄ GPU вмСсто Π΄Π²ΡƒΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Ρ€Π°Π½Π΅Π΅).
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² инструкций SIMD — AVX2, AVX-512 (Π² Ρ‚ΠΎΠΌ числС для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ поколСния Xeon Phi) ΠΈ MIC (для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ поколСния) — Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ использованиС SIMD Π² рСализациях ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² инструкций Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ AVX ΠΈ XOP Π½Π° x86(-64) ΠΈ
    NEON, ASIMD ΠΈ AltiVec Π½Π° ARM, Aarch64 ΠΈ POWER, соотвСтствСнно. (Частично Π² Ρ€Π°ΠΌΠΊΠ°Ρ… GSoC 2015.)
  • ΠœΠ½ΠΎΠ³ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ для CPU ΠΈ OpenCL, ΠΊΠ°ΠΊ для Π±ΠΎΠ»Π΅Π΅ эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большим количСством Ρ…Π΅ΡˆΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ»Π°ΡΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° 320 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Ρ…Π΅ΡˆΠ΅ΠΉ SHA-1 Π½Π° GPU), Ρ‚Π°ΠΊ ΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ скорости вычислСния Ρ…Π΅ΡˆΠ΅ΠΉ. Π§Π°ΡΡ‚ΡŒ ΠΈΠ· этих ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅, Ρ‡Π°ΡΡ‚ΡŒ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ подмноТСства Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ спСцифичны для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ².
  • (Авто-)настройка ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ провСряСмых ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Π½Π° CPU ("—tune=auto —verbosity=5") ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… размСрностСй задания Π½Π° OpenCL (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), Π² Ρ‚ΠΎΠΌ числС с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ частоту GPU сСрии NVIDIA GTX 10xx ΠΈ Π½ΠΎΠ²Π΅Π΅. ИспользованиС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ…Π΅ΡˆΠ΅ΠΉ ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ провСряСмых ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ (ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° извСстна Π·Π°Ρ€Π°Π½Π΅Π΅) для Ρ‚Π°ΠΊΠΎΠΉ Π°Π²Ρ‚ΠΎ-настройки.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ компилятора «Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΡ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ», ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… прямо Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π½ΠΎΠ²Ρ‹Π΅ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ…Π΅ΡˆΠ΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "—format=dynamic=’sha1(md5($p).$s)’", вычисляСмыС Π½Π° CPU с использованиСм SIMD. Π’ качСствС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ‚Π°ΠΊΠΈΡ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ дСсятки быстрых Ρ…Π΅ΡˆΠ΅ΠΉ (ΠΎΡ‚ распространСнных Π²Ρ€ΠΎΠ΄Π΅ MD5 Π΄ΠΎ ΡƒΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ экзотичСских Π²Ρ€ΠΎΠ΄Π΅ Whirlpool), объСдинСниС подстрок, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ рСгистра символов, ссылки Π½Π° ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, соль, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ строковыС константы.
  • УстранСниС Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ ΠΎΡ‚ hashcat, Π² Ρ‚ΠΎΠΌ числС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π½Π΅Π΅ спСцифичных для hashcat ΠΏΡ€Π°Π²ΠΈΠ» (wordlist rule commands), ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ OpenCL устройств с 1-Π³ΠΎ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π΅Ρ… ΠΆΠ΅ Π΄Π»ΠΈΠ½ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π»ΠΈΠ½Π° 7) ΠΏΡ€ΠΈ тСстах ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  • НовыС Ρ€Π΅ΠΆΠΈΠΌΡ‹ гСнСрирования провСряСмых ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ (cracking modes), Π²ΠΊΠ»ΡŽΡ‡Π°Ρ PRINCE ΠΈΠ· hashcat (Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ «Ρ„Ρ€Π°Π·Ρ‹», объСдиняя нСсколько слов Π² порядкС возрастания суммарной Π΄Π»ΠΈΠ½Ρ‹), subsets (ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ с нСдостаточным количСством Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… символов, Π΄Π°ΠΆΠ΅ Ссли эти символы ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΈΠ· большого Π½Π°Π±ΠΎΡ€Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ…) ΠΈ hybrid external (позволяСт внСшним Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌ, описываСмым Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° Π‘ΠΈ-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ языкС, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ провСряСмых ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Π½Π° основС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ «ΡΠ»ΠΎΠ²Π°», ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠ΅Π³ΠΎ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°). Π’Π°ΠΊΠΆΠ΅, нСсколько Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ².
  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠΏΠΎ использованию Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ (ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ — stacking), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ использованию Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΏΡ€Π°Π²ΠΈΠ» (wordlist rules stacking).
  • Π£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² mask (постСпСнноС растягиваниС маски Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π΄Π»ΠΈΠ½, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ маски Π½Π° сторонС OpenCL-устройства ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹ FPGA) ΠΈ single crack (Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° устройствах, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰ΠΈΡ… большоС количСство Ρ…Π΅ΡˆΠ΅ΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ Ρ€Π°Π½Π΅Π΅ Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ провСряСмых ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ограничСния Π½Π° расход памяти).
  • Много ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Unicode ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² Ρ€Π°Π·Π½Ρ‹Ρ… подсистСмах.
  • Много ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ *2john (ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² для
    использования с john), Π² особСнности wpapcap2john (ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ WiFi Ρ‚Ρ€Π°Ρ„ΠΈΠΊ).
  • Много Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, настроСк Π² john.conf, ΠΎΠΏΡ†ΠΈΠΉ configure-скрипта ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ здСсь.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ качСства ΠΊΠΎΠ΄Π° благодаря встроСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… сборок с AddressSanitizer (Π±Ρ‹Π»Π° Ρ€Π°Π½Π΅Π΅) ΠΈ UndefinedBehaviorSanitizer (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°), добавлСнию встроСнного Ρ„Π°Π·Π·Π΅Ρ€Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² (Π² Ρ€Π°ΠΌΠΊΠ°Ρ… GSoC 2015), ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (сборки ΠΏΠΎΠ΄ дСсятки сочСтаний ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ компилятора ΠΈ тСстированиС Π² Π½ΠΈΡ… ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ всСх Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru