John the Ripper 1.9.0-jumbo-1 FPGA колдоосу менен

Чыгарылды Эң эски колдоого алынган сырсөздү болжолдоо программасынын жаңы версиясы 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.15y, анын ичинде 4 FPGA чиптери жана алгач Биткойн казуу үчүн колдонулган сырсөз хэштеринин 7 түрү азыр ишке ашырылууда: bcrypt, классикалык дескрипт (анын ичинде bigcrypt), sha512crypt, sha256crypt, md5crypt (анын ичинде Apache apr1 жана AIX smd5), Drupal7 жана phpass (колдонулган) , атап айтканда WordPressте). Алардын айрымдары биринчи жолу FPGAде ишке ашырылууда. Bcrypt үчүн, 119^2 итерациясы менен ~5k c/s жетишилген көрсөткүчү («$2b$05») болжол менен 27 ватт энергия керектөө менен, тактага, аппараттык баага жана ватт үчүн эң акыркы GPUлардын натыйжаларынан кыйла ашып кетет. Ошондой эле колдоого алынган кластерлер бир Raspberry Pi 16ден башкарылуучу 64 тактайга (2 FPGA) чейин сыналган ушул типтеги такталардын саны. Кадимки Жон Риппер функциясы колдоого алынат, анын ичинде бардык сырсөздү болжолдоо режимдери жана бир эле учурда көп сандагы хэштерди жүктөө. Ишти тездетүү үчүн биз масканы («--mask» режими, анын ичинде башка режимдер менен айкалыштыруу) жана FPGA тарабында жүктөлгөн эсептелген хэштерди салыштырууну ишке ашырдык. Ишке ашыруунун көз карашынан алганда, көптөгөн конструкциялар (мис. sha512crypt жана Drupal7) криптографиялык өзөктөр менен өз ара аракеттенүүчү көп агымдуу процессор өзөктөрүнөн (жумшак CPU өзөктөрүнөн) турган блоктор колдонулат. Бул функцияны иштеп чыгууну Денис Бурыкин башка jumbo иштеп чыгуучулары менен бирге жетектеген.

Башка негизги өзгөрүүлөр:

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

Source: linux.org.ru

Комментарий кошуу