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 փոփոխություն (git commits) ավելի քան 80 ծրագրավորողների կողմից։ Այս ժամանակահատվածում մշակողները խորհուրդ են տվել օգտագործել ընթացիկ հրատարակությունը 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-ի համար ~119k c/s արդյունքը 2^5 կրկնություններով («$2b$05») մոտ 27 վտ էներգիայի սպառմամբ զգալիորեն գերազանցում է վերջին GPU-ների արդյունքները մեկ տախտակի, սարքաշարի գնի և մեկ վտ-ի համար: Նաև աջակցվում է կլաստերներ Այս տեսակի տախտակներ, որոնք փորձարկվել են մինչև 16 տախտակներ (64 FPGA), որոնք կառավարվում են մեկ Raspberry Pi 2-ից: Աջակցվում է John the Ripper-ի սովորական գործառույթը՝ ներառյալ գաղտնաբառի գուշակման բոլոր ռեժիմները և մեծ թվով հեշերի միաժամանակյա ներբեռնումը: Աշխատանքն արագացնելու համար մենք իրականացրեցինք դիմակի օգտագործումը («--mask» ռեժիմը, ներառյալ այլ ռեժիմների հետ համատեղ) և հաշվարկված հեշերի համեմատությունը FPGA կողմում բեռնվածների հետ: Իրականացման տեսանկյունից, նախագծերից շատերը (օրինակ. sha512crypt և Drupal7) օգտագործվում են կրիպտոգրաֆիկ միջուկների հետ փոխազդող բազմաթելային պրոցեսորային միջուկներից (փափուկ պրոցեսորային միջուկներից) բաղկացած բլոկներ։ Այս ֆունկցիոնալության զարգացումը ղեկավարել է Դենիս Բուրիկինը` համակարգելով այլ jumbo մշակողների հետ:

Այլ հիմնական փոփոխություններ.

  • Աջակցություն մեծ թվով լրացուցիչ տեսակի հեշերի, ծածկագրերի և այլնի համար, ներառյալ դասական գաղտնաբառերի հեշերը (օրինակ՝ QNX-ի նոր տարբերակներից), ինչպես նաև կրիպտոարժույթների դրամապանակներ, կոդավորված արխիվներ և կոդավորված ֆայլային համակարգեր (օրինակ՝ Bitlocker և FreeBSD geli), ինչպես նաև նախկինում աջակցվող ձևաչափերի նոր տեսակների աջակցություն (օրինակ՝ ավելացված աջակցություն bcrypt-pbkdf-ին OpenBSD softraid-ի համար) և շատ ավելին: Ընդհանուր առմամբ, պրոցեսորի վրա ավելացվել է 80 ֆորմատ, իսկ OpenCL-ում՝ 47 (և փոքրաթիվ հին ձևաչափեր հեռացվել են որպես նոր և հնացած ձևաչափեր ինտեգրված): Ձևաչափերի ընդհանուր թիվն այժմ 407 է պրոցեսորի վրա (կամ 262-ը՝ առանց կազմաձևման ֆայլերից կազմաձևված «դինամիկ» ձևաչափերի), իսկ OpenCL-ում՝ 88:
  • Հրաժարվում է աջակցել CUDA լեզվին հօգուտ OpenCL-ի, որը ոչ մի կերպ չի խանգարում NVIDIA GPU-ների լիարժեք օգտագործմանը (և նույնիսկ օգնում է մշակման և օպտիմիզացման շնորհիվ յուրաքանչյուր ձևաչափի մեկ իրականացման վրա GPU-ի համար նախկինում երկու ներդրման փոխարեն):
  • Աջակցություն նոր SIMD հրահանգների հավաքածուներին՝ AVX2, AVX-512 (ներառյալ երկրորդ սերնդի Xeon Phi) և MIC (առաջին սերնդի համար), ինչպես նաև SIMD-ի ավելի համընդհանուր և ամբողջական օգտագործումը բազմաթիվ ձևաչափերի իրագործման մեջ, ներառյալ՝ նախկինում աջակցվող հրահանգը սահմանում է մինչև AVX և XOP x86(-64) և
    NEON-ը, ASIMD-ը և AltiVec-ը համապատասխանաբար ARM-ի, Aarch64-ի և POWER-ի վրա: (Մասամբ որպես GSoC 2015-ի մաս):
  • Բազմաթիվ օպտիմիզացումներ CPU-ի և OpenCL-ի համար՝ միաժամանակ մեծ թվով հեշերի հետ ավելի արդյունավետ աշխատելու համար (օրինակ, փորձարկվել է 320 միլիոն SHA-1 հեշեր GPU-ի վրա), և հեշ հաշվարկների արագությունը մեծացնելու համար: Այս օպտիմալացումներից մի քանիսը ունիվերսալ են, որոշներն ընդգրկում են ձևաչափերի տարբեր ենթախմբեր, և շատերը հատուկ են առանձին ձևաչափերին:
  • (Ավտո-) CPU-ի վրա ստուգված գաղտնաբառերի օպտիմալ բուֆերացման («—tune=auto —verbosity=5») և OpenCL-ում աշխատանքի օպտիմալ չափերի կազմաձևում (միացված է լռելյայն), ներառյալ՝ հաշվի առնելով NVIDIA GTX-ի դանդաղ աճը։ սերիայի GPU-ներ 10xx և ավելի նոր գործառնական հաճախականությամբ: Օգտագործելով իրականում բեռնված հեշերը և ստուգվող գաղտնաբառերի իրական երկարությունը (երբ դա նախապես հայտնի է) նման ավտոմատ կարգաբերման համար:
  • Անմիջապես հրամանի տողում նշված «դինամիկ արտահայտությունների» կոմպիլյատորի ավելացում և նոր հիբրիդ հեշ տեսակների ներդրում, օրինակ՝ «-format=dynamic='sha1(md5($p).$s)'», որը հաշվարկվում է պրոցեսորի վրա՝ օգտագործելով SIMD: . Որպես այդպիսի արտահայտությունների բաղադրամասեր, աջակցվում են տասնյակ արագ հեշեր (սովորականներից, ինչպիսիք են MD5-ը մինչև չափավոր էկզոտիկները, ինչպիսին է Whirlpool-ը), ենթալարերի միացում, կոդավորում և վերծանում, նիշերի փոխակերպում, հղումներ գաղտնաբառին, աղին, օգտվողի անունին և լարային հաստատուններին:
  • Hashcat-ից անցանկալի տարբերությունների վերացում, ներառյալ նախկինում hashcat-ին հատուկ կանոնների աջակցություն (wordlist կանոնների հրամաններ), անցում OpenCL սարքի համարակալման 1-ից, նույն գաղտնաբառի երկարությունների լռելյայն օգտագործումը (սովորաբար երկարությունը 7) կատարողականի թեստերի համար:
  • Ստուգման ենթակա գաղտնաբառերի ստեղծման նոր ռեժիմներ (ճեղքման ռեժիմներ), ներառյալ PRINCE-ը hashcat-ից (ձևավորում է «արտահայտություններ»՝ մի քանի բառեր համադրելով ընդհանուր երկարության մեծացման կարգով), ենթաբազմություններ (բերում է գաղտնաբառեր ոչ բավարար թվով տարբեր նիշերով, նույնիսկ եթե այդ նիշերը գալիս են։ հնարավորների մեծ շարքից) և հիբրիդային արտաքին (թույլ է տալիս արտաքին ռեժիմներին, որոնք նկարագրված են կազմաձևման ֆայլերում C-ի լեզվով, ստեղծել բազմաթիվ ստուգելի գաղտնաբառեր՝ հիմնվելով մեկ այլ ռեժիմից ստացված յուրաքանչյուր հիմնական «բառի» վրա): Նաև մի քանի նոր նախապես սահմանված արտաքին ռեժիմներ:
  • Լրացուցիչ հնարավորություններ՝ միաժամանակ մի քանի ռեժիմների օգտագործման համար (մեկը մյուսի վրա՝ stacking), ինչպես նաև կանոնների հավաքածուներ օգտագործելու համար (wordlist rules stacking):
  • Դիմակի ռեժիմների բարելավում (դիմակի աստիճանական ձգում որոշակի երկարությունների միջակայքում, դիմակի կիրառում OpenCL սարքի կամ FPGA տախտակի կողքին) և մեկ ճեղքվածքի (խելամիտ վարքագիծ սարքերում, որոնք զուգահեռաբար հաշվարկում են մեծ թվով հեշեր): , որի համար նախկինում այս ռեժիմում չկային բավարար ստուգվող գաղտնաբառեր, ինչպես նաև հիշողության սպառման սահմանափակումներ):
  • Շատ բարելավումներ՝ տարբեր ենթահամակարգերում Unicode-ի և այլ կոդավորումների աջակցության համար:
  • *2john ծրագրերի բազմաթիվ բարելավումներ (որոնք փոխակերպում են տարբեր ձևաչափերի ֆայլեր
    օգտագործել john-ի հետ), հատկապես wpapcap2john (կարգավորում է WiFi-ի տրաֆիկը):
  • Կան բազմաթիվ նոր հրամանի տող տարբերակներ, կարգավորումներ john.conf-ում, կարգավորել սցենարի ընտրանքները և համապատասխան նոր հնարավորություններ, որոնցից ոչ բոլորն են նշված այստեղ:
  • Կոդերի որակի բարելավում AddressSanitizer-ի (նախկինում) և UndefinedBehaviorSanitizer-ի (ավելացված) միջոցով վրիպազերծման կառուցումների ներկառուցված աջակցության շնորհիվ, ներկառուցված ձևաչափի fuzzer ավելացնելով (որպես GSoC 2015-ի մաս), օգտագործելով շարունակական ինտեգրում (կառուցումներ տասնյակ օպերացիոն համակարգերի և կոմպիլյատորների համար: համակցություններ և փորձարկել դրանք բոլոր ձևաչափերի համար ճիշտ աջակցության համար):

Source: linux.org.ru

Добавить комментарий