John the Ripper 1.9.0-jumbo-1-vrystelling met FPGA-ondersteuning

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

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π½ΠΎΠ²ΠΎΠΉ вСрсии являСтся появлСниС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ FPGA (Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ CPU, GPU ΠΈ Xeon Phi). Для ΠΏΠ»Π°Ρ‚ Ztex 1.15j, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎ 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 Π² расчСтС Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ, Π½Π° Ρ†Π΅Π½Ρƒ оборудования ΠΈ Π½Π° Π²Π°Ρ‚Ρ‚. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ trosse ΠΈΠ· ΠΏΠ»Π°Ρ‚ этого Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 16 ΠΏΠ»Π°Ρ‚ (64 Ρ‡ΠΈΠΏΠ° FPGA), ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… с ΠΎΠ΄Π½ΠΎΠ³ΠΎ Raspberry Pi 2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ обычная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ John the Ripper, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Ρ€Π΅ΠΆΠΈΠΌΡ‹ ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ большого количСства Ρ…Π΅ΡˆΠ΅ΠΉ.

Для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ маски (Ρ€Π΅ΠΆΠΈΠΌ Β«β€”maskΒ», Π² Ρ‚ΠΎΠΌ числС Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ) ΠΈ сравнСниС вычислСнных Ρ…Π΅ΡˆΠ΅ΠΉ с Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° сторонС FPGA. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ· Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для sha512crypt en Drupal7) gebruik blokke wat bestaan ​​uit multi-draad verwerker kerne (sagte CPU kerne) in wisselwerking met kriptografiese kerne. Die ontwikkeling van hierdie funksionaliteit is gelei deur Denis Burykin in samewerking met ander jumbo-ontwikkelaars.

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

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° большого количСства Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ…Π΅ΡˆΠ΅ΠΉ, ΡˆΠΈΡ„Ρ€ΠΎΠ² ΠΈ Ρ‚.ΠΏ., Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ°ΠΊ классичСскиС Ρ…Π΅ΡˆΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ Π½ΠΎΠ²Ρ‹Ρ… вСрсий QNX), Ρ‚Π°ΠΊ ΠΈ кошСльки ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡŽΡ‚, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΠ²Ρ‹ ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Bitlocker ΠΈ FreeBSD geli), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… разновидностСй Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ€Π°Π½Π΅Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° bcrypt-pbkdf для OpenBSD softraid) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’ ΠΎΠ±Ρ‰Π΅ΠΉ слоТности, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 80 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π½Π° CPU ΠΈ 47 Π½Π° OpenCL. ΠžΠ±Ρ‰Π΅Π΅ количСство Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ 407 Π½Π° CPU (ΠΈΠ»ΠΈ 262 Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Β«dynamicΒ» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, настраиваСмыС ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ) ΠΈ 88 Π½Π° OpenCL.
  • Verwydering van CUDA-taalondersteuning ten gunste van OpenCL, wat nie in die minste inmeng met die volle gebruik van die NVIDIA GPU nie (en selfs help, danksy die fokus van ontwikkeling en optimalisering op een implementering van elke formaat onder die GPU in plaas van twee implementerings voorheen).
  • Ondersteuning vir nuwe SIMD-instruksiestelle - AVX2, AVX-512 (insluitend vir die tweede generasie Xeon Phi) en MIC (vir die eerste generasie) - sowel as meer universele en volledige gebruik van SIMD in implementering van baie formate, insluitend die gebruik van voorheen ondersteunde instruksiestelle tot AVX en XOP op x86(-64) en
    NEON, ASIMD ΠΈ AltiVec Π½Π° ARM, Aarch64 ΠΈ POWER, соотвСтствСнно.

  • Talle optimaliserings vir CPU en OpenCL, beide om meer doeltreffend te werk met 'n groot aantal hashes op dieselfde tyd (byvoorbeeld om 320 miljoen SHA-1 hashes op die GPU te laai) en om die spoed van hash-berekening te verhoog. Sommige van hierdie optimaliserings is universeel, sommige dek verskeie substelle formate, en baie is formaatspesifiek.
  • (Авто-)настройка ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ провСряСмых ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Π½Π° CPU (Β«β€”tune=auto β€”verbosity=5Β») ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… размСрностСй задания Π½Π° OpenCL (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), Π² Ρ‚ΠΎΠΌ числС с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ частоту GPU сСрии NVIDIA GTX 10xx ΠΈ Π½ΠΎΠ²Π΅Π΅. ИспользованиС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ…Π΅ΡˆΠ΅ΠΉ ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ провСряСмых ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ (ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° извСстна Π·Π°Ρ€Π°Π½Π΅Π΅) для Ρ‚Π°ΠΊΠΎΠΉ Π°Π²Ρ‚ΠΎ-настройки.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ компилятора «динамичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉΒ», ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… прямо Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π½ΠΎΠ²Ρ‹Π΅ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ…Π΅ΡˆΠ΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«β€”format=dynamic=’sha1(md5($p).$s)'Β», вычисляСмыС Π½Π° CPU с использованиСм SIMD. Π’ качСствС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ‚Π°ΠΊΠΈΡ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ дСсятки быстрых Ρ…Π΅ΡˆΠ΅ΠΉ (ΠΎΡ‚ распространСнных Π²Ρ€ΠΎΠ΄Π΅ MD5 Π΄ΠΎ ΡƒΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ экзотичСских Π²Ρ€ΠΎΠ΄Π΅ Whirlpool), объСдинСниС подстрок, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ рСгистра символов, ссылки Π½Π° ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, соль, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ строковыС константы.
  • Uitskakeling van ongewenste verskille van hashcat, insluitend ondersteuning vir voorheen hashcat-spesifieke woordlysreΓ«lopdragte, oorskakeling na OpenCL-toestelnommering vanaf 1, met dieselfde verstekwagwoordlengtes (gewoonlik lengte 7) vir prestasietoetse.
  • Nuwe kraakmodusse, insluitend PRINCE van hashcat (genereer "frases" deur veelvuldige woorde in stygende volgorde van totale lengte aaneen te koppel), subversamelings (bring wagwoorde met nie genoeg verskillende karakters nie, selfs al kom daardie karakters uit 'n groot stel moontlikes) en hibriede eksterne (laat eksterne modusse, beskryf in konfigurasielΓͺers in C-agtige taal, baie verifieerbare wagwoorde genereer gebaseer op elke basis "woord" wat van 'n ander modus ontvang word). Ook verskeie nuwe voorafbepaalde eksterne modusse.
  • Bykomende kenmerke vir die gebruik van verskeie modusse op dieselfde tyd (een bo-op die ander - stapeling), sowel as vir sulke gebruik van reΓ«lstelle (woordlysreΓ«ls stapel).
  • Verbeterings aan die maskermodusse (geleidelike maskerstrek in die gespesifiseerde reeks lengtes, die toepassing van die masker aan die kant van 'n OpenCL-toestel of FPGA-bord) en enkele kraak (redelike gedrag op toestelle wat 'n groot aantal hashes in parallel bereken, wat voorheen in hierdie modus ontbreek wagwoorde om na te gaan, en ook beperkings op geheueverbruik).
  • Baie verbeterings in ondersteuning vir Unicode en ander enkoderings in verskeie substelsels.
  • Baie verbeterings aan *2john-programme (omskakeling van lΓͺers van verskillende formate na
    gebruik saam met john), veral wpapcap2john (hanteer WiFi-verkeer).

  • Baie nuwe opdragreΓ«lopsies, john.conf-instellings, konfigurasie van skripopsies en hul ooreenstemmende nuwe kenmerke, wat nie almal hier genoem is nie.
  • Verbetering van kodekwaliteit as gevolg van ingeboude ondersteuning vir ontfoutbou met AddressSanitizer (voorheen) en UndefinedBehaviorSanitizer (bygevoeg), voeg 'n ingeboude formaat fuzzer by (binne GSoC 2015), deur gebruik te maak van deurlopende integrasie (bou vir dosyne bedryfstelsel- en samestellerkombinasies en toets hulle vir korrekte ondersteuning van alle formate).

Bron: opennet.ru

Voeg 'n opmerking