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 чиптери жана алгач Биткойн казуу үчүн колдонулган сырсөз хэштеринин 7 түрү азыр ишке ашырылууда: bcrypt, классикалык дескрипт (анын ичинде bigcrypt), sha512crypt, sha256crypt, md5crypt (анын ичинде Apache apr1 жана AIX smd5), Drupal7 жана phpass (колдонулган) , атап айтканда WordPressте). Алардын айрымдары биринчи жолу FPGAде ишке ашырылууда.

bcrypt үчүн, ~119 ватт энергия керектөө менен 2^5 итерация менен ~2k c/s жетишилген өндүрүмдүүлүгү ("$05b$27") бир платага, аппараттык баага жана ватт үчүн эң акыркы GPUлардын натыйжаларынан кыйла ашып кетет. . Ошондой эле колдоого алынган кластерлер бир Raspberry Pi 16ден башкарылуучу 64 тактайга чейин (2 FPGA чиптери) сыналган ушул типтеги такталардын саны. Кадимки Джон Риппер функциясы колдоого алынат, анын ичинде бардык сырсөздү болжолдоо режимдери жана бир эле учурда көп сандагы хэштерди жүктөө .

Ишти тездетүү үчүн биз масканы («—маска» режими, анын ичинде башка режимдер менен айкалыштыруу) жана 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 боюнча тиешелүүлүгүнө жараша.

  • CPU жана OpenCL үчүн көптөгөн оптималдаштыруу, экөө тең бир эле учурда көп сандагы хэштер менен эффективдүү иштөө үчүн (мисалы, GPUга 320 миллион SHA-1 хэштерин жүктөө сыналган) жана хэш эсептөөлөрдүн ылдамдыгын жогорулатуу. Бул оптималдаштыруулардын кээ бирлери универсалдуу, кээ бирлери форматтардын ар кандай топтомдорун камтыйт жана көбү жеке форматтарга мүнөздүү.
  • Процессордогу текшерилген сырсөздөрдүн оптималдуу буферлөөнүн (автоматтык) конфигурациясы (“—түйлөө=автоматтык —вербостук=5”) жана OpenCLде оптималдуу жумуш өлчөмдөрү (демейки боюнча иштетилген), анын ичинде толук иштөө жыштыгына чейин жай рейсти эске алуу менен NVIDIA GTX сериясындагы GPU 10xx жана андан жаңы. Мындай автотюнинг үчүн иш жүзүндө жүктөлгөн хэштерди жана текшерилип жаткан сырсөздөрдүн чыныгы узундугун (алдын ала белгилүү болгондо) колдонуу.
  • Түздөн-түз буйрук сабында көрсөтүлгөн "динамикалык туюнтмалар" үчүн компиляторду кошуу жана жаңы гибрид хэш түрлөрүн ишке ашыруу, мисалы "-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: opennet.ru

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