ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ 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.
- Ang pagtanggi na suportahan ang wikang CUDA na pabor sa OpenCL, na sa anumang paraan ay hindi nakakasagabal sa buong paggamit ng mga NVIDIA GPU (at nakakatulong pa nga, salamat sa pagtutok sa pag-unlad at pag-optimize sa isang pagpapatupad ng bawat format para sa GPU sa halip na dalawang pagpapatupad dati).
- Suporta para sa mga bagong set ng pagtuturo ng SIMD - AVX2, AVX-512 (kabilang ang para sa ikalawang henerasyong Xeon Phi) at MIC (para sa unang henerasyon) - pati na rin ang mas pangkalahatan at kumpletong paggamit ng SIMD sa mga pagpapatupad ng maraming mga format, kabilang ang paggamit ng dating sinusuportahang pagtuturo ay nagse-set up sa AVX at XOP sa x86(-64) at
NEON, ASIMD ΠΈ AltiVec Π½Π° ARM, Aarch64 ΠΈ POWER, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. - Maraming mga pag-optimize para sa CPU at OpenCL, kapwa upang mas mahusay na gumana sa isang malaking bilang ng mga hash nang sabay-sabay (halimbawa, nasubok ang paglo-load ng 320 milyong SHA-1 na mga hash sa GPU), at upang mapataas ang bilis ng mga pagkalkula ng hash. Ang ilan sa mga pag-optimize na ito ay pangkalahatan, ang ilan ay sumasaklaw sa iba't ibang mga subset ng mga format, at marami ang partikular sa mga indibidwal na format.
- (ΠΠ²ΡΠΎ-)Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π½Π° CPU (Β«βtune=auto βverbosity=5Β») ΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠ΅ΠΉ Π·Π°Π΄Π°Π½ΠΈΡ Π½Π° OpenCL (Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡ ΠΎΠ΄Π° Π½Π° ΠΏΠΎΠ»Π½ΡΡ ΡΠ°Π±ΠΎΡΡΡ ΡΠ°ΡΡΠΎΡΡ GPU ΡΠ΅ΡΠΈΠΈ NVIDIA GTX 10xx ΠΈ Π½ΠΎΠ²Π΅Π΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Ρ Π΅ΡΠ΅ΠΉ ΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ (ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΈΠ·Π²Π΅ΡΡΠ½Π° Π·Π°ΡΠ°Π½Π΅Π΅) Π΄Π»Ρ ΡΠ°ΠΊΠΎΠΉ Π°Π²ΡΠΎ-Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Β«Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉΒ», ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΏΡΡΠΌΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ Π½ΠΎΠ²ΡΠ΅ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠ΅ ΡΠΈΠΏΡ Ρ Π΅ΡΠ΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«βformat=dynamic=βsha1(md5($p).$s)'Β», Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅ Π½Π° CPU Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SIMD. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ°ΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ Π±ΡΡΡΡΡΡ Ρ Π΅ΡΠ΅ΠΉ (ΠΎΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ Π²ΡΠΎΠ΄Π΅ MD5 Π΄ΠΎ ΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΡΠΊΠ·ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΠΎΠ΄Π΅ Whirlpool), ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊ, ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠ°ΡΠΎΠ»Ρ, ΡΠΎΠ»Ρ, ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ.
- Pag-aalis ng mga hindi gustong pagkakaiba mula sa hashcat, kabilang ang suporta para sa dati nang hashcat-specific na mga panuntunan (mga wordlist rule command), paglipat sa OpenCL device numbering mula 1, default na paggamit ng parehong mga haba ng password (karaniwang haba 7) para sa mga pagsubok sa pagganap.
- Mga bagong mode para sa pagbuo ng mga nabe-verify na password (cracking mode), kabilang ang PRINCE mula sa hashcat (bumubuo ng "mga parirala" sa pamamagitan ng pagsasama-sama ng ilang salita sa pagtaas ng pagkakasunud-sunod ng kabuuang haba), mga subset (naglalabas ng mga password na may hindi sapat na bilang ng magkakaibang mga character, kahit na dumating ang mga character na ito mula sa isang malaking hanay ng mga posible) at hybrid na panlabas (pinapayagan ang mga panlabas na mode, na inilarawan sa mga file ng pagsasaayos sa isang wikang tulad ng C, na bumuo ng maraming nabe-verify na mga password batay sa bawat pangunahing "salita" na natanggap mula sa isa pang mode). Gayundin, maraming bagong paunang-natukoy na mga panlabas na mode.
- Karagdagang mga tampok para sa paggamit ng ilang mga mode nang sabay-sabay (isa sa ibabaw ng isa - stacking), pati na rin para sa paggamit ng mga hanay ng mga panuntunan (wordlist rules stacking).
- Mga pagpapabuti sa mga mask mode (unti-unting pag-uunat ng mask sa isang tinukoy na hanay ng mga haba, paglalagay ng mask sa gilid ng OpenCL device o FPGA board) at single crack (makatwirang pag-uugali sa mga device na nagkalkula ng malaking bilang ng mga hash nang magkatulad. , kung saan dati ay walang sapat na nabe-verify na mga password sa mode na ito, at mga paghihigpit din sa pagkonsumo ng memorya).
- Maraming mga pagpapabuti sa suporta para sa Unicode at iba pang mga pag-encode sa iba't ibang mga subsystem.
- Maraming mga pagpapabuti sa *2john programs (na nagko-convert ng mga file ng iba't ibang format para sa
gamitin kasama si john), lalo na ang wpapcap2john (pangasiwaan ang trapiko ng WiFi). - Maraming mga bagong opsyon sa command line, mga setting sa john.conf, i-configure ang mga opsyon sa script at mga kaukulang bagong feature, hindi lahat ay nabanggit dito.
- Pagpapabuti ng kalidad ng code salamat sa built-in na suporta para sa mga build ng debug gamit ang AddressSanitizer (dati) at UndefinedBehaviorSanitizer (idinagdag), pagdaragdag ng built-in na format na fuzzer (bilang bahagi ng GSoC 2015), gamit ang tuluy-tuloy na pagsasama (bumubuo para sa dose-dosenang operating system at compiler mga kumbinasyon at pagsubok sa mga ito para sa tamang suporta para sa lahat ng mga format).
Pinagmulan: opennet.ru