ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ FPGA (Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ CPU, GPU ΠΈ Xeon Phi). ΠΠ»Ρ ΠΏΠ»Π°Ρ
ΠΠ»Ρ bcrypt, Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² ~119k c/s ΠΏΡΠΈ 2^5 ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ (Β«$2b$05Β») Ρ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΡΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ ~27 Π²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ΅Π²ΠΎΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΄Π»Ρ Π½ΠΎΠ²Π΅ΠΉΡΠΈΡ
GPU Π² ΡΠ°ΡΡΠ΅ΡΠ΅ Π½Π° ΠΏΠ»Π°ΡΡ, Π½Π° ΡΠ΅Π½Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π° Π²Π°ΡΡ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ
ΠΠ»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠΊΠΈ (ΡΠ΅ΠΆΠΈΠΌ Β«βmaskΒ», Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ) ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΡΡ
Ρ
Π΅ΡΠ΅ΠΉ Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ FPGA. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΈΠ· Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ
ΠΡΡΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Ρ Π΅ΡΠ΅ΠΉ, ΡΠΈΡΡΠΎΠ² ΠΈ Ρ.ΠΏ., Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Ρ Π΅ΡΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ 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