Vydaná nová verzia najstaršieho podporovaného programu na rozlúštenie hesiel John the Ripper 1.9.0-jumbo-1. (Projekt sa vyvíja od roku 1996.) Na stránke projektu sú dostupné na stiahnutie zdrojové súbory, ako aj hotové zostavy pre Windows.
Upozorňuje sa, že od vydania verzie 1.8.0-jumbo-1 uplynulo 4,5 roka, počas ktorého bolo vykonaných viac ako 6000 zmien (git commits) od viac ako 80 vývojárov. Počas tohto obdobia vývojári odporúčali používať aktuálnu edíciu z GitHubu, ktorého stav bol udržiavaný stabilný napriek vykonaným zmenám vďaka nepretržitej integrácie, ktorá zahŕňa predbežnú kontrolu každého zmeny (pull request) na mnohých platformách. Vlastnosťou novej verzie je podpora FPGA (programovateľné logické obvody) okrem CPU, GPU a Xeon Phi.
Pre karty ZTEX 1.15y, ktoré obsahujú 4 čipy FPGA a pôvodne sa používali predovšetkým na ťažbu Bitcoinu, je teraz implementovaných 7 typov hashov hesiel: bcrypt, klasický descrypt (vrátane bigcrypt), sha512crypt, sha256crypt, md5crypt (vrátane Apache apr1 a AIX smd5), Drupal7 a phpass (používaný najmä vo WordPress). Niektoré z nich sú na FPGA implementované po prvýkrát. Pre bcrypt bola dosiahnutá výkonnosť približne 119k c/s pri 2^5 iteráciách („$2b$05“) s odberom okolo 27 wattov, čo výrazne prevyšuje výsledky pre najnovšie GPU na kartu, na cenu hardvéru a na watt. Podporujú sa tiež klastre z kariet tohto typu, čo bolo overené až do 16 kariet (64 FPGA), kontrolovaných z jedného Raspberry Pi 2. Podporuje sa bežná funkčnosť John the Ripper, vrátane všetkých režimov rozlúštenia hesiel a súčasného nahrávania veľkého množstva hashov. Pre zrýchlenie práce bola implementovaná aplikácia masky (režim "—mask", vrátane kombinácie s inými režimami) a porovnanie vypočítaných hashov s nahratými na strane FPGA. Z hľadiska implementácie, v mnohých z návrhov (napríklad pre sha512crypt a Drupal7) použité bloky pozostávajúce z viacvláknových procesorových jadier (soft CPU cores), ktoré komunikujú s kryptografickými jadrami. Vývoj tejto funkcionality viedol Denis Burikin v koordinácii s ďalšími vývojármi jumbo.
Ďalšie dôležité zmeny:
- Podpora veľkého množstva dodatočných typov hashov, šifrovaní a tak ďalej, vrátane klasických hashov hesiel (napríklad z nových verzií QNX), ako aj kryptomenových peňaženiek, šifrovaných archívov a šifrovaných súborových systémov (napríklad Bitlocker a FreeBSD geli), a tiež podpora nových odrôd formátov, ktoré boli predtým podporované (napríklad pridanie podpory bcrypt-pbkdf pre OpenBSD softraid) a mnoho ďalšieho. Celkovo bolo pridaných 80 formátov na CPU a 47 na OpenCL (a malé množstvo starých bolo odstránených, pretože boli integrované do nových a zastaraných). Celkový počet formátov je teraz 407 na CPU (alebo 262 bez „dynamic“ formátov, prispôsobiteľných z konfiguračných súborov) a 88 na OpenCL.
- Odstránenie podpory jazyka CUDA v prospech OpenCL, čo nijako nebráni plnému využitiu GPU od NVIDIA (a dokonca to pomáha, vďaka zameraniu vývoja a optimalizácií na jednu implementáciu každého formátu pod GPU namiesto dvoch implementácií predtým).
- Podpora nových súborov inštrukcií SIMD — AVX2, AVX-512 (vrátane pre druhú generáciu Xeon Phi) a MIC (pre prvú generáciu) — ako aj univerzálnejšie a úplnejšie využitie SIMD v implementáciách mnohých formátov, vrátane aplikácie predtým podporovaných súborov inštrukcií až po AVX a XOP na x86(-64) a
NEON, ASIMD a AltiVec na ARM, Aarch64 a POWER, resp. (Čiastočne v rámci GSoC 2015.) - Množstvo optimalizácií pre CPU a OpenCL, ako pre efektívnejšiu prácu s veľkým počtom hashov súčasne (napríklad testovanie 320 miliónov hashov SHA-1 na GPU), tak aj pre zvýšenie rýchlosti výpočtu hashov. Časť týchto optimalizácií je univerzálna, časť pokrýva rôzne podmnožiny formátov, a mnohé sú špecifické pre jednotlivé formáty.
- (Automatická) optimalizácia bufferovania kontrolovaných hesiel na CPU ("—tune=auto —verbosity=5") a optimálne rozmery úloh na OpenCL (predvolene zapnuté), vrátane pomalého dosahovania plnej pracovnej frekvencie GPU série NVIDIA GTX 10xx a novších. Použitie skutočne zaťažených hashov a skutočnej dĺžky kontrolovaných hesiel (keď je známa vopred) pre tento automatický tunning.
- Pridanie kompilátora „dynamických výrazov“, ktoré sú špecifikované priamo na príkazovom riadku a realizujú nové hybridné typy hashov, napríklad "—format=dynamic=’sha1(md5($p).$s)’", počítané na CPU s využitím SIMD. Ako komponenty týchto výrazov sú podporované desiatky rýchlych hashov (od bežných ako MD5 až po mierne exotické ako Whirlpool), spájanie podreťazcov, kódovanie a dekódovanie, zmenu veľkosti písmen, odkazy na heslo, soľ, meno používateľa a reťazcové konštanty.
- Odstránenie nežiaducich rozdielov od hashcat, vrátane podpory predtým špecifických pre hashcat pravidiel (príkazy pre pravidlá wordlist), prechod na číslovanie zariadení OpenCL od 1, aplikovanie rovnakých dĺžok hesiel (zvyčajne dĺžka 7) pri výkonových testoch ako predvolené.
- Nové režimy generovania overovaných hesiel (cracking modes), vrátane PRINCE z hashcat (tvorí "frázy", kombinujúc niekoľko slov v poradí zvyšujúcich sa celkovej dĺžky), subsets (vyberá heslá s nedostatočným množstvom rôznych symbolov, aj keď tieto symboly pochádzajú z veľkého súboru možností) a hybrid external (umožňuje externým režimom, popísaným v konfiguračných súboroch v C-podobnom jazyku, vytvárať množstvo overovaných hesiel na základe každého základného "slova", pochádzajúceho z iného režimu). Taktiež niekoľko nových preddefinovaných vonkajších režimov.
- Rozšírené možnosti používania viacerých režimov súčasne (jeden nad druhým — stacking), ako aj používania súborov pravidiel (wordlist rules stacking).
- Vylepšenia režimov mask (postupné natiahnutie masky v určenom rozsahu dĺžok, aplikácia masky na strane zariadenia OpenCL alebo platne FPGA) a single crack (rozumné správanie na zariadeniach, ktoré počítajú veľké množstvo hashov paralelne, na čo predtým v tomto režime chýbali overované heslá, rovnako ako obmedzenia na využitie pamäte).
- Množstvo vylepšení podpory Unicode a iných kódovaní v rôznych subsystémoch.
- Množstvo vylepšení programov *2john (prevádzajúce súbory rôznych formátov na
používanie s john), najmä wpapcap2john (spracováva WiFi traffic). - Mnoho nových možností příkazového řádku, nastavení v john.conf, možností skriptu configure a odpovídajících nových funkcí, z nichž všechny zde nebyly zmíněny.
- Zvýšení kvality kódu díky vestavěné podpoře ladicích sestavení s AddressSanitizer (dříve) a UndefinedBehaviorSanitizer (přidáno), přidáním zabudovaného fuzzování formátů (v rámci GSoC 2015), použití nepřetržité integrace (sestavení pro desítky kombinací operačního systému a kompilátoru a testování správné podpory všech formátů v nich).
Zdroj: linux.org.ru
