Vrijgegeven de nieuwe versie van het oudste ondersteunde wachtwoordkraakprogramma John the Ripper 1.9.0-jumbo-1. (Het project is sinds 1996 in ontwikkeling.) Op de projectpagina zijn de bronbestanden en kant-en-klare builds voor Windows te downloaden.
Het is opgemerkt dat er sinds de release van versie 1.8.0-jumbo-1 4,5 jaar zijn verstreken, waarin meer dan 6000 wijzigingen (git commits) zijn aangebracht door meer dan 80 ontwikkelaars. Gedurende deze tijd hebben de ontwikkelaars aanbevolen om de huidige versie van GitHub, waarvan de status stabiel werd gehouden ondanks de aangebrachte wijzigingen dankzij van continue integratie, die een voorlopige controle van elke wijziging (pull request) op veel platforms omvat. Een kenmerk van de nieuwe versie is de ondersteuning voor FPGA (Field-Programmable Gate Array) naast CPU, GPU en Xeon Phi.
Voor kaarten ZTEX 1.15y, die elk 4 FPGA-chips bevatten en oorspronkelijk hoofdzakelijk voor Bitcoin-mining werden gebruikt, zijn nu 7 typen wachtwoordhashes geïmplementeerd: bcrypt, klassieke descrypt (inclusief bigcrypt), sha512crypt, sha256crypt, md5crypt (inclusief Apache apr1 en AIX smd5), Drupal7 en phpass (dat onder andere in WordPress wordt gebruikt). Sommige van deze zijn voor het eerst op FPGA geïmplementeerd. Voor bcrypt is de behaalde prestatie van ~119k c/s bij 2^5 iteraties ('$2b$05') met een stroomverbruik van ongeveer 27 watt aanzienlijk beter dan de resultaten van de nieuwste GPU's per kaart, de prijs van de hardware en per watt. Ook worden ondersteund clusters van dit type kaarten, wat is getest tot 16 kaarten (64 FPGA), aangestuurd door één Raspberry Pi 2. De gewone functionaliteit van John the Ripper wordt ondersteund, inclusief alle modi van wachtwoordkraken en de gelijktijdige verwerking van een groot aantal hashes. Voor de versnelling van de werking is het gebruik van een masker (modus "—mask", ook in combinatie met andere modi) en de vergelijking van de berekende hashes met die geladen aan de FPGA geïmplementeerd. Wat betreft de implementatie zijn in veel van de ontwerpen (bijvoorbeeld voor sha512crypt en Drupal7) blokken toegepast die uit multi-threaded processorkernen (soft CPU cores) bestaan, die samenwerken met cryptografische kernen. De ontwikkeling van deze functionaliteit is geleid door Denis Burykin in samenwerking met andere jumbo-ontwikkelaars.
Andere belangrijke veranderingen:
- Ondersteuning voor een groot aantal extra hash- en encryptietypes, waaronder zowel klassieke wachtwoordhashes (zoals van de nieuwste versies van QNX) als cryptocurrency-portefeuilles, versleutelde archieven en versleutelde bestandssystemen (zoals Bitlocker en FreeBSD geli), evenals ondersteuning voor nieuwe varianten van eerder ondersteunde formats (bijvoorbeeld is ondersteuning voor bcrypt-pbkdf toegevoegd voor OpenBSD softraid) en nog veel meer. In totaal zijn er 80 formats toegevoegd voor CPU en 47 voor OpenCL (en een klein aantal oude is verwijderd omdat deze zijn geïntegreerd in nieuwe en verouderde). Het totale aantal formats is nu 407 voor CPU (of 262 zonder de
- Afzien van ondersteuning voor de CUDA-taal ten gunste van OpenCL, wat het volledige gebruik van NVIDIA GPU's niet belemmerd (en zelfs helpt, dankzij de focus op ontwikkeling en optimalisatie op één implementatie van elk formaat voor GPU in plaats van twee implementaties zoals voorheen).
- Ondersteuning voor nieuwe SIMD-instructiesets — AVX2, AVX-512 (inclusief voor de tweede generatie Xeon Phi) en MIC (voor de eerste generatie) — evenals een meer algemene en complete toepassing van SIMD in implementaties van veel formaten, inclusief de toepassing van eerder ondersteunde instructiesets tot AVX en XOP op x86(-64) en
NEON, ASIMD en AltiVec op ARM, Aarch64 en POWER, respectievelijk. (Deels in het kader van GSoC 2015.) - Talrijke optimalisaties voor CPU en OpenCL, zowel voor een efficiëntere verwerking van een groot aantal hashes tegelijkertijd (bijvoorbeeld werden 320 miljoen SHA-1 hashes op GPU getest) als voor het verhogen van de hashesnelheid. Een deel van deze optimalisaties is algemeen, een deel bestrijkt verschillende subsets van formaten, en veel zijn specifiek voor afzonderlijke formaten.
- (Auto-)instellingen voor de optimale buffering van gecontroleerde wachtwoorden op CPU ("—tune=auto —verbosity=5") en optimale taakformaten op OpenCL (standaard ingeschakeld), rekening houdend met de langzame oprichting van de volledige werkfrequentie van de NVIDIA GTX 10xx-serie GPU's en nieuwer. Gebruik van echt geladen hashes en de werkelijke lengte van de gecontroleerde wachtwoorden (wanneer deze van tevoren bekend is) voor dergelijke auto-instellingen.
- Toevoeging van een compiler voor 'dynamische expressies', direct opgegeven op de opdrachtregel en implementerend nieuwe hybride hashtypes, bijvoorbeeld "—format=dynamic='sha1(md5($p).$s)'", berekend op CPU met behulp van SIMD. Als onderdelen van dergelijke expressies worden tientallen snelle hashes ondersteund (van gangbare zoals MD5 tot gematigd exotische zoals Whirlpool), het combineren van substrings, coderen en decoderen, omzetten van lettertype, verwijzingen naar wachtwoord, zout, gebruikersnaam en stringconstantwaarden.
- Eliminatie van ongewenste afwijkingen van hashcat, waaronder ondersteuning voor eerder specifieke hashcat-regels (wordlist rule commands), overschakeling naar nummering van OpenCL-apparaten vanaf 1, en standaard hetzelfde wachtwoordlengte gebruiken (meestal lengte 7) tijdens prestatietests.
- Nieuwe generatiemodi van te testen wachtwoorden (cracking modes), waaronder PRINCE van hashcat (vormt 'zinnen' door meerdere woorden samen te voegen op basis van toenemende totale lengte), subsets (zoekt naar wachtwoorden met een onvoldoende aantal verschillende symbolen, zelfs als deze symbolen uit een grote set mogelijke komen) en hybride externe (staat externe modi, beschreven in configuratiebestanden in een C-achtige taal, toe om veel te testen wachtwoorden te vormen op basis van elk basaal 'woord' dat van een andere modus komt). Daarnaast, verschillende nieuwe gedefinieerde externe modi.
- Aanvullende mogelijkheden voor het gelijktijdig gebruiken van meerdere modi (één bovenop de ander - stacking), evenals voor het gebruik van regelsets (wordlist rules stacking).
- Verbeteringen in de maskermodi (geleidelijke uitbreiding van de masker binnen gespecificeerde lengtes, toepassing van de masker aan de kant van het OpenCL-apparaat of FPGA-bord) en single crack (redelijk gedrag op apparaten die een groot aantal hashes parallel berekenen, waar eerder in deze modus niet genoeg te testen wachtwoorden beschikbaar waren, evenals een beperking op geheugengebruik).
- Veel verbeteringen in de ondersteuning van Unicode en andere coderingen in verschillende subsystemen.
- Veel verbeteringen in de programma's *2john (die bestanden van verschillende formaten omzetten voor
gebruik met john), in het bijzonder wpapcap2john (verwerkt WiFi-verkeer). - Veel nieuwe opties voor de commandoregel, instellingen in john.conf, configure-scriptopties en de bijbehorende nieuwe mogelijkheden, waarvan lang niet allemaal hier zijn genoemd.
- Verbetering van de codekwaliteit door de ingebouwde ondersteuning voor debug-builds met AddressSanitizer (voorheen) en UndefinedBehaviorSanitizer (toegevoegd), de toevoeging van een ingebouwde fuzz-test voor formats (in het kader van GSoC 2015), en het toepassen van continue integratie (builds voor tientallen combinaties van besturingssystemen en compilers en het testen van de correcte ondersteuning van alle formats).
Bron: linux.org.ru
