FPGA қолдауы бар Джон Риппер 1.9.0-jumbo-1

Босатылған Қолдау көрсетілетін ескі құпия сөзді анықтау бағдарламасының жаңа нұсқасы John the Ripper 1.9.0-jumbo-1. (Жоба 1996 жылдан бері дамып келеді.) On жоба беті Дереккөздер жүктеп алуға, сондай-ақ Windows үшін дайын жинақтарға қол жетімді.

1.8.0-jumbo-1 нұсқасы шыққаннан бері 4.5 жыл өткені атап өтілді, оның барысында 6000-нен астам әзірлеушілерден 80-нан астам өзгерістер (git commits) енгізілген. Осы кезеңде әзірлеушілер пайдалануды ұсынды GitHub ұсынған ағымдағы шығарылым, арқасында енгізілген өзгерістерге қарамастан жағдайы тұрақты сақталды үздіксіз интеграция, ол көптеген платформаларда әрбір өзгерісті алдын ала тексеруді (тарту сұрауын) қамтиды. Жаңа нұсқаның ерекшелігі - CPU, GPU және Xeon Phi-ге қосымша FPGA (FPGA) қолдауының пайда болуы.


Тақталар үшін ZTEX 1.15 ж, оның ішінде 4 FPGA чиптері және бастапқыда негізінен биткоинді өндіру үшін пайдаланылған, қазір құпия сөз хэштерінің 7 түрі енгізілген: bcrypt, классикалық дешифрлеу (бигкриптті қоса), sha512crypt, sha256crypt, md5crypt (Apache apr1 және AIX smd5 қоса), Drupal7 және phpass (пайдаланылған). , атап айтқанда WordPress-те). Олардың кейбіреулері FPGA-да алғаш рет іске асырылуда. bcrypt үшін 119^2 итерациямен («$5б$2») қол жеткізілген өнімділігі шамамен 05 ватт қуат тұтынуы бір платаға, аппараттық құрал бағасына және ваттқа арналған соңғы GPU нәтижелерінен айтарлықтай асып түседі. Сондай-ақ қолдау көрсетіледі кластерлер бір Raspberry Pi 16-ден басқарылатын 64 тақтаға дейін (2 FPGA) сыналған осы типтегі тақталардың саны. Кәдімгі Джон Риппер функциясына қолдау көрсетіледі, оның ішінде барлық құпия сөзді болжау режимдері және көптеген хэштерді бір уақытта жүктеп алу. Жұмысты жеделдету үшін біз масканы («--маска» режимі, оның ішінде басқа режимдермен бірге) пайдалануды және есептелген хэштерді FPGA жағында жүктелгендермен салыстыруды жүзеге асырдық. Іске асыру тұрғысынан көптеген конструкциялар (мысалы, sha512crypt және Drupal7) криптографиялық өзектермен әрекеттесетін көп ағынды процессор өзектерінен (жұмсақ процессор өзектері) тұратын блоктар қолданылады. Бұл функцияны әзірлеуді басқа jumbo әзірлеушілерімен келісе отырып, Денис Бурыкин басқарды.

Басқа маңызды өзгерістер:

  • Классикалық пароль хэштерін де (мысалы, QNX жаңа нұсқаларынан), сондай-ақ криптовалюта әмияндарын, шифрланған мұрағаттарды және шифрланған файлдық жүйелерді (мысалы, Bitlocker және FreeBSD geli), сондай-ақ бұрын қолдау көрсетілетін пішімдердің жаңа түрлерін қолдау (мысалы, OpenBSD бағдарламалық жасақтамасы үшін bcrypt-pbkdf қолдауы қосылған) және т.б. Барлығы CPU-ға 80 пішім және OpenCL-ге 47 пішім қосылды (және аздаған ескілері жаңа және ескіргендерге біріктірілгендей жойылды). Пішімдердің жалпы саны қазір CPU-да 407 (немесе конфигурация файлдарынан конфигурацияланған «динамикалық» пішімдерді қоспағанда 262) және OpenCL-де 88.
  • OpenCL пайдасына CUDA тілін қолдаудан бас тарту, ол NVIDIA графикалық процессорларының толық пайдаланылуына ешбір кедергі келтірмейді (және тіпті бұрын екі іске асырудың орнына GPU үшін әрбір пішімді бір іске асыруға әзірлеу мен оңтайландыруды шоғырландыру арқасында көмектеседі).
  • Жаңа SIMD нұсқаулық жинақтарын қолдау - AVX2, AVX-512 (соның ішінде Xeon Phi екінші буыны үшін) және MIC (бірінші буын үшін) - сонымен қатар SIMD-ді көптеген форматтарды іске асыруда әмбебап және толық пайдалану, соның ішінде x86(-64) жəне AVX жəне XOP нұсқаларына дейін қолдау көрсетілетін нұсқаулықтар жинағы
    NEON, ASIMD және AltiVec тиісінше ARM, Aarch64 және POWER құрылғыларында. (Ішінара GSoC 2015 бөлігі ретінде.)
  • Бір уақытта көптеген хэштермен тиімдірек жұмыс істеу үшін (мысалы, GPU-ға 320 миллион SHA-1 хэштерін жүктеу сыналды) және хэшті есептеу жылдамдығын арттыру үшін CPU және OpenCL үшін көптеген оңтайландырулар. Бұл оңтайландырулардың кейбірі әмбебап, кейбіреулері пішімдердің әртүрлі ішкі жиынын қамтиды, ал көпшілігі жеке пішімдерге тән.
  • Орталық процессордағы тексерілген құпия сөздерді оңтайлы буферлеудің (автоматты) конфигурациясы («—түйеу=авто —вербостық=5») және OpenCL жүйесіндегі оңтайлы жұмыс өлшемдері (әдепкі бойынша қосулы), соның ішінде NVIDIA GTX жылдамдығының баяу өсуін ескере отырып. толық жұмыс жиілігіне 10xx және одан жоғары GPU сериялары. Мұндай автоматты реттеу үшін нақты жүктелген хэштерді және тексерілетін құпия сөздердің нақты ұзындығын (ол алдын ала белгілі болған кезде) пайдалану.
  • Пәрмен жолында тікелей көрсетілген «динамикалық өрнектер» үшін компиляторды қосу және жаңа гибридті хэш түрлерін енгізу, мысалы, SIMD арқылы CPU-да есептелген «-format=dynamic='sha1(md5($p).$s)' . Мұндай өрнектердің құрамдас бөліктері ретінде ондаған жылдам хэштерге (MD5 сияқты қарапайымдардан Whirlpool сияқты орташа экзотикалықларға дейін), ішкі жолды біріктіру, кодтау және декодтау, таңба регистрін түрлендіру, құпия сөзге, тұзға, пайдаланушы атына және жол тұрақтыларына сілтемелер қолданылады.
  • Hashcat-тен қажетсіз айырмашылықтарды жою, оның ішінде бұрын хэшкат-арнайы ережелерді қолдау (сөздер тізімі ережесі пәрмендері), 1-ден OpenCL құрылғысын нөмірлеуге көшу, өнімділік сынақтары үшін бірдей құпия сөз ұзындықтарының әдепкі қолданылуы (әдетте ұзындығы 7).
  • Тексерілетін құпия сөздерді генерациялаудың жаңа режимдері (жарылу режимдері), соның ішінде hashcat-тен PRINCE (жалпы ұзындықтың өсу реті бойынша бірнеше сөздерді біріктіру арқылы «сөз тіркестерін» құрайды), ішкі жиындар (бұл таңбалар келсе де, әртүрлі таңбалардың жеткіліксіз саны бар құпия сөздерді шығарады) мүмкін болатындардың үлкен жиынтығынан) және гибридті сыртқы (С-тәрізді тілдегі конфигурация файлдарында сипатталған сыртқы режимдерге басқа режимнен алынған әрбір негізгі «сөзге» негізделген көптеген тексерілетін құпия сөздерді жасауға мүмкіндік береді). Сондай-ақ, бірнеше жаңа алдын ала анықталған сыртқы режимдер.
  • Бірнеше режимді бір уақытта пайдалануға (бірінің үстіне бірі – стекке), сондай-ақ ережелер жиынын пайдалануға арналған қосымша мүмкіндіктер (сөздер тізімі ережелерін жинақтау).
  • Маска режимдерін жақсарту (ұзындықтардың белгілі бір диапазонында масканы біртіндеп созу, OpenCL құрылғысының немесе FPGA тақтасының жағында масканы қолдану) және жалғыз крек (параллельде хэштердің көп санын есептейтін құрылғылардағы ақылға қонымды әрекет) , олар үшін бұрын осы режимде тексерілетін құпиясөздер жеткіліксіз, сонымен қатар жадты тұтынуға шектеулер болды).
  • Юникодты және әртүрлі ішкі жүйелердегі басқа кодтауларды қолдауға арналған көптеген жақсартулар.
  • *2john бағдарламаларына көптеген жақсартулар (әртүрлі форматтағы файлдарды
    john-мен бірге пайдаланыңыз), әсіресе wpapcap2john (WiFi трафигін реттейді).
  • Көптеген жаңа пәрмен жолы опциялары, john.conf ішіндегі параметрлер, сценарий опцияларын конфигурациялау және сәйкес жаңа мүмкіндіктер бар, олардың барлығы осы жерде айтылмаған.
  • AddressSanitizer (бұрын) және UndefinedBehaviorSanitizer (қосылған) көмегімен түзетілімдерді түзетуге кірістірілген қолдаудың арқасында код сапасын жақсарту, кірістірілген пішім фузерін қосу (GSoC 2015 бөлігі ретінде), үздіксіз интеграцияны қолдану (ондаған операциялық жүйе мен компилятор үшін құрастырылады) комбинациялар және оларды барлық пішімдерге дұрыс қолдау көрсету үшін сынау).

Ақпарат көзі: linux.org.ru

пікір қалдыру