John the Ripper 1.9.0-jumbo-1 FPGA-tuella

Julkaistu uusi versio vanhimmasta tuetusta salasanan arvausohjelmasta John the Ripper 1.9.0-jumbo-1. (Hanketta on kehitetty vuodesta 1996.) Päällä projektin sivu Lähteet ovat ladattavissa sekä valmiita kokoonpanoja Windowsille.

On huomattava, että version 1.8.0-jumbo-1 julkaisusta on kulunut 4.5 vuotta, jonka aikana tehtiin yli 6000 80 muutosta (git commits) yli XNUMX kehittäjältä. Tänä aikana kehittäjät suosittelivat käyttöä nykyinen versio GitHubista, jonka tila pysyi vakaana tehdyistä muutoksista huolimatta jatkuva integraatio, joka sisältää jokaisen muutoksen (pull-pyynnön) alustavan todentamisen monilla alustoilla. Uuden version erityispiirre on FPGA:n (FPGA) tuki CPU:n, GPU:n ja Xeon Phin lisäksi.


Laudoille ZTEX 1.15v, sisältäen 4 FPGA-sirua ja joita käytettiin alun perin pääasiassa Bitcoinin louhintaan, nyt on otettu käyttöön 7 erilaista salasanahajautustyyppiä: bcrypt, klassinen descrypt (mukaan lukien bigcrypt), sha512crypt, sha256crypt, md5crypt (mukaan lukien Apache apr1 ja AIX smd5), Drupal7 ja phpass (käytetty). , erityisesti WordPressissä). Jotkut niistä on otettu käyttöön FPGA:lla ensimmäistä kertaa. Bcryptillä saavutettu ~119 2 c/s suorituskyky 5^2 iteraatiolla ("05b$27") noin XNUMX watin virrankulutuksella ylittää merkittävästi uusimpien GPU:iden tulokset korttia, laitteistohintaa ja wattia kohti. Myös tuettu klustereita tämän tyyppisiä levyjä, joita on testattu jopa 16 levylle (64 FPGA:ta), joita ohjataan yhdestä Raspberry Pi 2:sta. Tavallista John the Ripper -toimintoa tuetaan, mukaan lukien kaikki salasanan arvaustilat ja useiden hajautusten samanaikainen lataaminen. Työn nopeuttamiseksi toteutimme maskin käytön ("--mask"-moodi, myös yhdessä muiden tilojen kanssa) ja laskettujen tiivisteiden vertailun FPGA-puolelle ladattuihin. Toteutuksen näkökulmasta monet suunnitelmat (esim. sha512crypt ja Drupal7) käytetään lohkoja, jotka koostuvat monisäikeisistä prosessoriytimistä (pehmeistä CPU-ytimistä), jotka ovat vuorovaikutuksessa kryptografisten ytimien kanssa. Tämän toiminnon kehitystä johti Denis Burykin yhteistyössä muiden jumbo-kehittäjien kanssa.

Muita suuria muutoksia:

  • Tuki suurelle määrälle lisätiivistetyyppejä, salauksia jne., mukaan lukien sekä klassiset salasanatiivisteet (esimerkiksi QNX:n uusista versioista), että kryptovaluuttalompakot, salatut arkistot ja salatut tiedostojärjestelmät (esim. Bitlocker ja FreeBSD geli), samoin kuin tuki uusille aiemmin tuetuille formaateille (esimerkiksi lisätty tuki bcrypt-pbkdf OpenBSD softraidille) ja paljon muuta. Yhteensä 80 formaattia on lisätty CPU:lle ja 47 OpenCL:lle (ja pieni määrä vanhoja on poistettu integroituina uusiin ja vanhentuneisiin). Formaattien kokonaismäärä on nyt 407 CPU:ssa (tai 262 ilman "dynaamisia" muotoja, jotka on määritetty asetustiedostoista) ja 88 OpenCL:ssä.
  • Kieltäytyminen tukemasta CUDA-kieltä OpenCL:n hyväksi, mikä ei millään tavalla häiritse NVIDIA-grafiikkasuorittimien täysimääräistä käyttöä (ja jopa auttaa, koska kehitys ja optimointi keskitetään yhteen GPU-muodon toteutukseen kahden aikaisemman toteutuksen sijaan).
  • Tuki uusille SIMD-käskysarjoille - AVX2, AVX-512 (mukaan lukien toisen sukupolven Xeon Phi) ja MIC (ensimmäiselle sukupolvelle) - sekä SIMD:n universaalimpi ja täydellisempi käyttö monien muotojen toteutuksissa, mukaan lukien aiemmin tuetut ohjeasetukset AVX:ään ja XOP:iin asti x86(-64) ja
    NEON, ASIMD ja AltiVec vastaavasti ARM:ssa, Aarch64:ssä ja POWER:ssä. (Osittain osana GSoC 2015:tä.)
  • Lukuisia optimointeja CPU:lle ja OpenCL:lle, sekä tehokkaampaan työskentelyyn useiden hajautusten kanssa samanaikaisesti (esimerkiksi 320 miljoonan SHA-1-tiivisteen lataamista GPU:lle testattiin) että hash-laskennan nopeuden lisäämiseksi. Jotkut näistä optimoinneista ovat universaaleja, jotkut kattavat eri muotojen osajoukkoja ja monet ovat erityisiä yksittäisille muodoille.
  • (Automaattinen) konfigurointi suorittimen tarkistettujen salasanojen optimaalisen puskuroinnin ("—tune=auto —verbosity=5") ja optimaalisten työkokojen OpenCL:ssä (oletusarvoisesti käytössä), mukaan lukien NVIDIA GTX:n hidas ylösajo. sarjan GPU:t täydelle toimintataajuudelle 10xx ja uudemmat. Käytä todella ladattuja tiivisteitä ja tarkistettavien salasanojen todellista pituutta (kun se tiedetään etukäteen) tällaiseen automaattiseen viritykseen.
  • Kääntäjän lisääminen suoraan komentorivillä määritetyille "dynaamisille lausekkeille" ja uusien hybridihajautustyyppien käyttöönotto, esimerkiksi "-format=dynamic='sha1(md5($p).$s)'", joka lasketaan CPU:ssa SIMD:n avulla . Tällaisten lausekkeiden komponentteina tuetaan kymmeniä nopeita tiivisteitä (yleisistä, kuten MD5, kohtalaisen eksoottisiin, kuten Whirlpool), osamerkkijonojen yhdistäminen, koodaus ja dekoodaus, kirjainkokomuunnos, viittaukset salasanaan, suola, käyttäjätunnus ja merkkijonovakiot.
  • Ei-toivottujen erojen poistaminen hashcatista, mukaan lukien tuki aiemmin hashcat-spesifisille säännöille (sanalistasääntökomennot), siirtyminen OpenCL-laitenumerointiin 1:stä, oletusarvoisesti samojen salasanapituuksien (yleensä pituus 7) käyttö suorituskykytesteissä.
  • Uusia tiloja todennettavien salasanojen luomiseen (krakkaustilat), mukaan lukien PRINCE hashcatista (muodostaa "lauseita" yhdistämällä useita sanoja kasvavassa järjestyksessä kokonaispituuden mukaan), osajoukot (saa esiin salasanoja, joissa on riittämätön määrä eri merkkejä, vaikka näitä merkkejä tulisikin suuresta joukosta mahdollisia) ja hybridi ulkoinen (sallii ulkoisten tilojen, jotka on kuvattu konfiguraatiotiedostoissa C-kaltaisella kielellä, luoda useita todennettavissa olevia salasanoja kunkin toisesta tilasta vastaanotetun perus "sanan" perusteella). Lisäksi useita uusia ennalta määritettyjä ulkoisia tiloja.
  • Lisäominaisuudet useiden tilojen samanaikaiseen käyttöön (yksi päällekkäin - pinoaminen) sekä sääntöjoukkojen käyttöön (sanalistan sääntöjen pinoaminen).
  • Parannuksia maskitiloihin (maskin asteittainen venyttely tietyillä pituuksilla, maskin asettaminen OpenCL-laitteen tai FPGA-levyn kylkeen) ja yksittäinen halkeama (kohtuullinen käyttäytyminen laitteissa, jotka laskevat suuren määrän hajautusarvoja rinnakkain , joille aiemmin ei ollut tarpeeksi tarkistettavia salasanoja tässä tilassa, ja myös muistinkulutuksen rajoituksia).
  • Monet parannukset tukemaan Unicodea ja muita koodauksia eri alijärjestelmissä.
  • Monet parannukset *2john-ohjelmiin (jotka muuntavat eri muotoisia tiedostoja
    käytä johnin kanssa), erityisesti wpapcap2john (käsittelee WiFi-liikennettä).
  • Siellä on monia uusia komentorivivaihtoehtoja, asetuksia john.conf-tiedostossa, konfigurointikomentosarjan asetuksia ja vastaavia uusia ominaisuuksia, joita kaikkia ei ole mainittu tässä.
  • Koodin laadun parantaminen AddressSanitizerin (aiemmin) ja UndefinedBehaviorSanitizerin (lisätty) avulla tehdyn virheenkorjauskoontituen ansiosta, sisäänrakennetun muotofuzzerin lisäämisen (osa GSoC 2015:tä) jatkuvan integroinnin avulla (koontiversiot kymmenille käyttöjärjestelmille ja kääntäjälle) yhdistelmiä ja testaamalla niiden oikean tuen kaikille muodoille).

Lähde: linux.org.ru

Lisää kommentti