Нашри John the Ripper 1.9.0-jumbo-1 бо дастгирии FPGA

Озод карда шуд версияи нави қадимтарин барномаи тахминии парол Ҷон Риппер 1.9.0-jumbo-1 (лоиња аз соли 1996 тањия мешавад). Аз нашри версияи қаблии 1.8.0-jumbo-1 4.5 сол гузашт, ки дар давоми он аз зиёда аз 6000 таҳиягарон зиёда аз 80 тағйирот (git commits) ворид карда шуданд. Ташаккур ба муттаҳидсозии доимӣ, ки санҷиши пешакии ҳар як тағиротро дар бар мегирад (дархости кашидан) дар бисёр платформаҳо, дар ин давра таҳиягарон тавсия доданд, ки истифодаи нашри ҷорӣ аз GitHub, ки вазъияти он сарфи назар аз тагйироти воридшуда муътадил нигох дошта мешуд. Рамзи асосии лоиҳа паҳн мекунад дар доираи иҷозатномаи GPLv2+ ва рамзи баъзе ҷузъҳо зери иҷозатномаи BSD аст.

Хусусияти махсуси версияи нав пайдоиши дастгирии FPGA мебошад (ба ғайр аз CPU, GPU ва Xeon Phi). Барои тахтахо ZTEX 1.15y, аз ҷумла 4 микросхемаҳои FPGA ва аслан барои истихроҷи Bitcoin истифода мешуданд, ҳоло 7 намуди хэшҳои парол татбиқ карда мешаванд: bcrypt, descrypt классикӣ (аз ҷумла bigcrypt), sha512crypt, sha256crypt, md5crypt (аз ҷумла Apache apr1 ва AIX smd5), Drupal7 ва phpass (истифода бурда мешавад) , махсусан дар WordPress). Баъзеи онҳо бори аввал дар FPGA амалӣ карда мешаванд.

Барои bcrypt, иҷрои ҳосилшудаи ~119к c/s бо 2^5 итератсия («$2б$05») бо истеъмоли қувваи ~27 ватт аз натиҷаҳои GPU-ҳои навтарин барои як тахта, нархи сахтафзор ва як ватт ба таври назаррас зиёдтар аст. . Инчунин дастгирӣ карда мешавад кластерҳо аз тахтаҳои ин намуд, ки то 16 тахта (64 микросхемаҳои FPGA) санҷида шудааст, ки аз як Raspberry Pi 2 идора карда мешавад. Функсияи муқаррарии Ҷон Риппер дастгирӣ карда мешавад, аз ҷумла ҳама усулҳои тахминии парол ва зеркашии ҳамзамон шумораи зиёди хэшҳо. .

Барои суръат бахшидан ба кор, мо истифодаи ниқобро (режими "— маска", аз ҷумла дар якҷоягӣ бо дигар режимҳо) ва муқоисаи хэшҳои ҳисобшударо бо онҳое, ки дар тарафи FPGA бор карда шудаанд, амалӣ кардем. Аз нуқтаи назари татбиқ, бисёре аз тарҳҳо (масалан. sha512crypt ва Drupal7) блокҳое истифода мешаванд, ки аз ядроҳои протсессори чанд ришта (ядроҳои CPU нарм), ки бо ядроҳои криптографӣ ҳамкорӣ мекунанд. Рушди ин функсия аз ҷониби Денис Бурикин дар ҳамоҳангӣ бо дигар таҳиягарони jumbo роҳбарӣ карда шуд.

Дигар тағйироти муҳим:

  • Дастгирии шумораи зиёди намудҳои иловагии хэшҳо, рамзҳо ва ғайра, аз ҷумла ҳам ҳешҳои пароли классикӣ (масалан, аз версияҳои нави QNX), инчунин ҳамёнҳои криптовалютӣ, бойгониҳои рамзгузоришуда ва системаҳои файлии рамзгузорӣ (масалан, Bitlocker ва FreeBSD geli), инчунин дастгирии намудҳои нави форматҳои қаблан дастгирӣшуда (масалан, дастгирии иловагии bcrypt-pbkdf барои нармафзори OpenBSD) ва ғайра. Дар маҷмӯъ, 80 формат дар CPU ва 47 формат дар OpenCL илова карда шудаанд. Шумораи умумии форматҳо ҳоло дар CPU 407 (ё 262 форматҳои "динамикӣ"-ро аз файлҳои конфигуратсияшуда дар бар намегиранд) ва 88 дар OpenCL аст.
  • Рад кардани дастгирии забони CUDA ба манфиати OpenCL, ки ба ҳеҷ ваҷҳ ба истифодаи пурраи GPU-ҳои NVIDIA халал намерасонад (ва ҳатто ба шарофати тамаркузи рушд ва оптимизатсия ба як татбиқи ҳар як формат барои GPU ба ҷои ду татбиқи қаблӣ кӯмак мекунад).
  • Дастгирии маҷмӯи дастурҳои нави SIMD - AVX2, AVX-512 (аз ҷумла барои насли дуюм Xeon Phi) ва MIC (барои насли аввал) - инчунин истифодаи универсалӣ ва пурраи SIMD дар татбиқи форматҳои бисёр, аз ҷумла истифодаи Дастурҳои қаблан дастгирӣшаванда то AVX ва XOP дар x86(-64) ва
    NEON, ASIMD ва AltiVec дар ARM, Aarch64 ва POWER мутаносибан.

  • Оптимизатсияҳои сершумор барои CPU ва OpenCL, ҳарду барои самараноктар кор кардан бо шумораи зиёди hashes ҳамзамон (масалан, боркунии 320 миллион hashes SHA-1 дар GPU санҷида шуд) ва баланд бардоштани суръати ҳисобҳои hash. Баъзе аз ин оптимизатсияҳо универсалӣ мебошанд, баъзеҳо зергурӯҳҳои гуногуни форматҳоро дар бар мегиранд ва бисёриҳо ба форматҳои инфиродӣ хосанд.
  • (Авто) конфигуратсияи буферии оптималии паролҳои санҷидашуда дар CPU (“—танзимкунӣ=авто —вербосият=5”) ва андозаи оптималии кор дар OpenCL (бо нобаёнӣ фаъол аст), аз ҷумла бо назардошти суръати суст то басомади пурраи корӣ аз NVIDIA GTX силсилаи GPUs 10xx ва навтар. Истифодаи хэшҳои воқеан боршуда ва дарозии воқеии паролҳои тафтишшаванда (вақте ки он пешакӣ маълум аст) барои чунин танзими худкор.
  • Илова кардани компилятор барои "ифодаҳои динамикӣ" мустақиман дар сатри фармон нишондодашуда ва татбиқи навъҳои нави гибридии хэш, масалан "-format=dynamic='sha1(md5($p).$s)'", ки дар CPU бо истифода аз SIMD ҳисоб карда шудааст . Ҳамчун ҷузъҳои чунин ифодаҳо, даҳҳо хэшҳои зуд дастгирӣ карда мешаванд (аз MD5 ба таври мӯътадил экзотикӣ ба монанди Whirlpool), пайвасткунии зерсатри, рамзгузорӣ ва рамзкушоӣ, табдили ҳарфҳои ҳарфҳо, истинод ба парол, намак, номи корбар ва константаҳои сатр.
  • Бартараф кардани фарқиятҳои номатлуб аз hashcat, аз ҷумла дастгирии қоидаҳои қаблан хоси hashcat (фармонҳои қоидаҳои рӯйхати калима), гузариш ба рақамгузории дастгоҳи OpenCL аз 1, истифодаи пешфарз аз ҳамон дарозии парол (одатан дарозии 7) барои санҷишҳои иҷроиш.
  • Усулҳои нави тавлиди паролҳои тасдиқшаванда (режимҳои крекинг), аз ҷумла PRINCE аз hashcat ("ибораҳо" -ро бо якҷоя кардани якчанд калимаҳо бо тартиби афзоиши дарозии умумӣ), зермаҷмӯаҳо (паролҳоро бо шумораи нокифояи аломатҳои гуногун меоранд, ҳатто агар ин аломатҳо омада бошанд ҳам. аз маҷмӯи зиёди имконоти имконпазир) ва гибридии беруна (ба режимҳои беруна, ки дар файлҳои конфигуратсия бо забони C монанд тавсиф шудаанд, имкон медиҳад, ки паролҳои зиёди тафтишшавандаро дар асоси ҳар як "калимаи" аз режими дигар гирифташуда тавлид кунанд). Инчунин, якчанд намуди нави пешакӣ муайяншудаи беруна.
  • Хусусиятҳои иловагӣ барои истифодаи якчанд шеваҳои ҳамзамон (як ба болои дигар - stacking), инчунин барои истифодаи маҷмӯи қоидаҳо (стекинги қоидаҳои рӯйхати калимаҳо).
  • Такмили режимҳои ниқоб (таҳриҷи дарозии ниқоб дар доираи муайяни дарозӣ, татбиқи ниқоб дар паҳлӯи дастгоҳи OpenCL ё тахтаи FPGA) ва креки ягона (рафтори оқилона дар дастгоҳҳое, ки миқдори зиёди хэшҳоро дар баробари ҳисоб мекунанд) , ки қаблан барои онҳо дар ин режим гузарвожаҳои тасдиқшаванда кофӣ набуданд ва инчунин маҳдудиятҳои истеъмоли хотира).
  • Бисёр такмилҳо барои дастгирии Юникод ва рамзгузории дигар дар зерсистемаҳои гуногун.
  • Бисёр такмил додани барномаҳои *2john (ки файлҳои форматҳои гуногунро барои
    бо Ҷон истифода баред), махсусан wpapcap2john (трафики WiFi-ро идора мекунад).

  • Бисёр имконоти нави сатри фармон, танзимот дар john.conf, танзим кардани имконоти скрипт ва хусусиятҳои нави мувофиқ мавҷуданд, ки на ҳама дар ин ҷо зикр шудаанд.
  • Баланд бардоштани сифати код ба шарофати дастгирии дарунсохт барои сохтани дебагҳо бо AddressSanitizer (қаблан) ва UndefinedBehaviorSanitizer (иловашуда), илова кардани fuzzer формати дарунсохт (ҳамчун қисми GSoC 2015), бо истифода аз ҳамгироии муттасил (барои даҳҳо системаи амалиётӣ ва компилятор сохта мешавад) комбинатсияҳо ва санҷиши онҳо барои дастгирии дуруст барои ҳама форматҳо).

Манбаъ: opennet.ru

Илова Эзоҳ