John lub Ripper 1.9.0-jumbo-1 tso tawm nrog FPGA kev txhawb nqa

Tso tawm tshiab version ntawm qhov qub tshaj plaws kev txhawb nqa tus password guessing program John lub Ripper 1.9.0-jumbo-1 (qhov project tau tsim txij li xyoo 1996). 1.8.0 xyoo dhau los txij li qhov kev tso tawm dhau los version 1-jumbo-4.5, thaum lub sijhawm uas ntau tshaj 6000 kev hloov pauv (git commits) tau tsim los ntawm ntau dua 80 tus tsim tawm. Ua tsaug rau kev koom ua ke tsis tu ncua, uas suav nrog kev kuaj ua ntej ntawm txhua qhov kev hloov pauv (rub thov) ntawm ntau lub platform, lub sijhawm no cov neeg tsim khoom pom zoo siv Kev kho tam sim no los ntawm GitHub, lub xeev uas tau tuav ruaj khov txawm tias muaj kev hloov pauv. Main project code faib los ntawm raws li daim ntawv tso cai GPLv2+, thiab cov cai ntawm qee cov khoom yog nyob rau hauv daim ntawv tso cai BSD.

Ib qho tshwj xeeb ntawm cov ntawv tshiab yog qhov pom ntawm FPGA kev txhawb nqa (ntxiv rau CPU, GPU thiab Xeon Phi). Rau boards Ztex 1.15 y, suav nrog 4 FPGA chips thiab thawj zaug siv feem ntau rau Bitcoin mining, 7 hom lo lus zais hashes tam sim no siv: bcrypt, classic descrypt (xws li bigcrypt), sha512crypt, sha256crypt, md5crypt (xws li Apache apr1 thiab AIX smd5), Drupal7 thiab phpass (used , tshwj xeeb hauv WordPress). Qee qhov ntawm lawv tau ua tiav ntawm FPGA thawj zaug.

Rau bcrypt, kev ua tiav ntawm ~ 119k c / s nrog 2^5 iterations ("$ 2b $ 05") nrog lub zog noj ntawm ~ 27 watts ho ntau dua cov txiaj ntsig rau qhov tseeb GPUs ib lub rooj tsavxwm, ib tus nqi kho vajtse, thiab ib watt. . Kuj txhawb pawg ntawm cov laug cam ntawm hom no, uas tau sim mus txog 16 boards (64 FPGA chips) tswj los ntawm ib qho Raspberry Pi 2. Qhov kev ua haujlwm li John the Ripper ib txwm tau txais kev txhawb nqa, suav nrog txhua tus password guessing hom thiab ib txhij rub tawm ntawm ntau tus hashes. .

Txhawm rau kom ua haujlwm nrawm, peb tau siv lub npog ntsej muag (tus "-mask" hom, nrog rau kev sib xyaw nrog lwm hom) thiab kev sib piv ntawm cov lej suav nrog cov khoom thauj ntawm FPGA sab. Los ntawm kev pom kev siv, ntau ntawm cov qauv tsim (piv txwv li. sha512crypt thiab Drupal7) siv cov blocks uas muaj ntau lub xov tooj processor cores (mos CPU cores) cuam tshuam nrog cryptographic cores. Kev txhim kho ntawm qhov kev ua haujlwm no tau coj los ntawm Denis Burykin hauv kev sib koom tes nrog lwm tus tsim tawm jumbo.

Lwm yam kev hloov tseem ceeb:

  • Kev them nyiaj yug rau ntau yam ntxiv ntawm hashes, ciphers, thiab lwm yam, suav nrog ob qho tib si classic lo lus zais hashes (piv txwv li, los ntawm cov qauv tshiab ntawm QNX), nrog rau cov hnab nyiaj cryptocurrency, cov ntaub ntawv encrypted thiab cov ntaub ntawv encrypted (piv txwv li, Bitlocker thiab FreeBSD geli), nrog rau kev txhawb nqa rau hom tshiab ntawm cov qauv yav dhau los txhawb nqa (piv txwv li, ntxiv kev txhawb nqa rau bcrypt-pbkdf rau OpenBSD softraid) thiab ntau ntxiv. Nyob rau hauv tag nrho, 80 hom tau ntxiv rau CPU thiab 47 ntawm OpenCL. Tag nrho cov qauv tam sim no yog 407 ntawm CPU (lossis 262 tsis suav nrog "dynamic" hom teeb tsa los ntawm cov ntaub ntawv teeb tsa) thiab 88 ntawm OpenCL.
  • Kev tshem tawm ntawm CUDA cov lus txhawb nqa hauv kev pom zoo ntawm OpenCL, uas tsis cuam tshuam nrog kev siv tag nrho ntawm NVIDIA GPU tsawg kawg (thiab txawm pab tau, ua tsaug rau kev tsom mus rau kev txhim kho thiab kev ua kom zoo ntawm ib qho kev siv ntawm txhua hom hauv qab GPU es tsis txhob siv ob kev siv ua ntej).
  • Kev them nyiaj yug rau SIMD cov kev qhia tshiab - AVX2, AVX-512 (suav nrog rau tiam thib ob ntawm Xeon Phi) thiab MIC (rau thawj tiam) - nrog rau kev siv dav dav thiab ua tiav ntawm SIMD hauv kev siv ntau hom, suav nrog kev siv ntawm yav dhau los kev txhawb nqa kev qhia teeb tsa rau AVX thiab XOP ntawm x86(-64) thiab
    NEON, ASIMD thiab AltiVec ntawm ARM, Aarch64 thiab POWER, feem.

  • Ntau qhov kev ua kom zoo tshaj plaws rau CPU thiab OpenCL, ob qho tib si ua haujlwm tau zoo dua nrog ntau tus hashes tib lub sijhawm (piv txwv li, thauj 320 lab SHA-1 hashes ntawm GPU) thiab ua kom nrawm ntawm hash xam. Qee qhov kev ua kom zoo tshaj plaws no yog universal, qee qhov npog ntau yam subsets ntawm cov qauv, thiab ntau yam yog hom tshwj xeeb.
  • (Auto-) kev teeb tsa ntawm kev pom kev tsis zoo ntawm cov ntawv txheeb xyuas ntawm CPU (β€œβ€”tune = auto β€”verbosity = 5”) thiab qhov ua haujlwm zoo tshaj plaws ntawm OpenCL (tsim los ntawm lub neej ntawd), suav nrog kev suav rau hauv tus lej qeeb mus txog qhov ua haujlwm ntau zaus ntawm NVIDIA GTX series GPUs 10xx thiab tshiab dua. Siv tiag tiag loaded hashes thiab qhov tseeb ntev ntawm cov passwords raug kuaj (thaum nws paub ua ntej) rau xws li pib-tuning.
  • Ntxiv cov compiler rau "dynamic expressions" qhia ncaj qha rau ntawm kab hais kom ua thiab siv cov tshiab hybrid hash hom, piv txwv li "-format=dynamic='sha1(md5($p.$s)'", xam ntawm CPU siv SIMD . Raws li cov ntsiab lus ntawm cov kab lus no, ntau ntau qhov hashes ceev tau txais kev txhawb nqa (los ntawm cov khoom siv xws li MD5 mus rau cov kab txawv me me xws li Whirlpool), substring concatenation, encoding thiab decoding, character case conversion, references to password, salt, username and string constants.
  • Kev tshem tawm qhov tsis xav tau qhov sib txawv ntawm hashcat, suav nrog kev txhawb nqa rau yav dhau los hashcat-cov lus qhia tshwj xeeb cov lus txib, hloov mus rau OpenCL ntaus lej los ntawm 1, siv tib lo lus zais ntev ntev (feem ntau ntev 7) rau kev sim ua haujlwm.
  • Cov qauv tshiab rau kev tsim cov passwords uas tau lees paub (cov qauv tawg), suav nrog PRINCE los ntawm hashcat (cov ntaub ntawv "cov lus" los ntawm kev sib txuas ob peb lo lus nyob rau hauv qhov kev txiav txim siab ntawm tag nrho ntev), subsets (nqa cov passwords nrog tus lej tsis txaus ntawm cov cim sib txawv, txawm tias cov cim no los ntawm ib txheej loj ntawm qhov ua tau) thiab hybrid sab nraud (tso cai rau lwm hom, piav qhia hauv C-zoo li cov ntaub ntawv teeb tsa, tsim kom muaj ntau tus passwords uas tau lees paub raws li txhua lub hauv paus "lo lus" tau txais los ntawm lwm hom). Tsis tas li ntawd, ob peb yam tshiab predefined sab nrauv.
  • Cov yam ntxwv ntxiv rau kev siv ntau hom tib lub sijhawm (ib qho nyob rau sab saum toj ntawm lwm qhov - stacking), nrog rau kev siv cov cai teev (wordlist rules stacking).
  • Kev txhim kho rau cov hom npog ntsej muag (cov npog ntsej muag maj mam ncab ntawm qhov ntev ntawm qhov teev, siv lub npog ntsej muag ntawm ib sab ntawm OpenCL ntaus ntawv lossis FPGA pawg thawj coj saib) thiab ib qho tawg (tus cwj pwm tsim nyog ntawm cov khoom siv uas suav nrog ntau tus hashes sib npaug, uas yav dhau los nyob rau hauv hom no tsis muaj cov passwords los kuaj xyuas, thiab tseem txwv tsis pub siv lub cim xeeb).
  • Muaj ntau qhov kev txhim kho hauv kev txhawb nqa rau Unicode thiab lwm yam encodings hauv ntau lub subsystems.
  • Ntau yam kev txhim kho rau *2john cov kev pab cuam (hloov cov ntaub ntawv ntawm ntau hom rau
    siv nrog john), tshwj xeeb tshaj yog wpapcap2john ( tuav WiFi tsheb).

  • Ntau qhov kev xaiv kab hais kom ua tshiab, john.conf teeb tsa, teeb tsa cov ntawv xaiv, thiab lawv cov yam ntxwv tshiab sib xws, tsis yog txhua tus tau hais ntawm no.
  • Kev txhim kho cov cai zoo vim muaj kev txhawb nqa tsim los rau kev debug tsim nrog AddressSanitizer (yav dhau los) thiab UndefinedBehaviorSanitizer (ntxiv), ntxiv cov qauv tsim ua fuzzer (hauv GSoC 2015), siv kev sib koom ua ke tsis tu ncua (tsim rau kaum ob ntawm kev khiav haujlwm thiab kev sib txuas ua ke thiab kuaj lawv kom raug txhawb nqa ntawm txhua hom).

Tau qhov twg los: opennet.ru

Ntxiv ib saib