John the Ripper 1.9.0-jumbo-1 нь FPGA дэмжлэгтэй

Суллагдсан Хамгийн эртний дэмжигдсэн нууц үг таах програмын шинэ хувилбар Жон Риппер 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 давталттай ~2k c/s-ийн гүйцэтгэл ("$05б$27") нь хавтан, техник хангамжийн үнэ болон ватт тутамд хамгийн сүүлийн үеийн GPU-ийн үр дүнгээс хамаагүй давсан байна. Мөн дэмжигдсэн кластерууд Нэг Raspberry Pi 16-оос удирддаг 64 хүртэлх хавтанг (2 FPGA) туршсан ийм төрлийн самбаруудын тоо. Нууц үг таах бүх горим, олон тооны хэшийг нэгэн зэрэг татаж авах зэрэг ердийн Жон Рипперийн функцийг дэмждэг. Ажлыг хурдасгахын тулд бид маск ("--маск" горим, түүний дотор бусад горимуудтай хослуулан) ашиглах, тооцоолсон хэшийг FPGA тал дээр ачаалагдсантай харьцуулах ажлыг хэрэгжүүлсэн. Хэрэгжүүлэх үүднээс авч үзвэл олон загвар (жишээ нь. sha512crypt болон Drupal7) криптограф цөмтэй харилцан үйлчилдэг олон урсгалтай процессорын цөм (зөөлөн CPU цөм) -ээс бүрдэх блокуудыг ашигладаг. Энэхүү функцийг хөгжүүлэх ажлыг Денис Бурыкин бусад jumbo хөгжүүлэгчидтэй хамтран удирдсан.

Бусад томоохон өөрчлөлтүүд:

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

Эх сурвалж: linux.org.ru

сэтгэгдэл нэмэх