Sgaoileadh John the Ripper 1.9.0-jumbo-1 le taic FPGA

Air fhoillseachadh dreach ùr den phrògram tomhas facal-faire as sine le taic Iain an Ripper 1.9.0-jumbo-1 (tha am pròiseact air a bhith a’ leasachadh bho 1996). Tha 1.8.0 bliadhna air a dhol seachad bho chaidh an dreach roimhe 1-jumbo-4.5 a leigeil ma sgaoil, nuair a chaidh còrr air 6000 atharrachadh (git gealltanas) a dhèanamh bho barrachd air luchd-leasachaidh 80. Taing dha amalachadh leantainneach, a tha a’ toirt a-steach sgrùdadh tòiseachaidh air gach atharrachadh (iarrtas tarraing) air iomadh àrd-ùrlar, rè na h-ùine seo mhol an luchd-leasachaidh cleachdadh ath-sgrùdadh gnàthach bho GitHub, agus chaidh an staid sin a chumail seasmhach a dh’ aindeoin na h-atharrachaidhean a chaidh a dhèanamh. Còd prìomh phròiseact air a sgaoileadh le fo chead GPLv2+, agus tha còd cuid de cho-phàirtean fo chead BSD.

Is e feart sònraichte den dreach ùr coltas taic FPGA (a bharrachd air CPU, GPU agus Xeon Phi). Airson bùird Ztex 1.15y, a’ toirt a-steach chips 4 FPGA agus a chaidh a chleachdadh an toiseach airson mèinnearachd Bitcoin, tha 7 seòrsa de hashes facal-faire a-nis air an cur an gnìomh: bcrypt, descrypt clasaigeach (a’ toirt a-steach bigcrypt), sha512crypt, sha256crypt, md5crypt (a ’toirt a-steach Apache apr1 agus AIX smd5), Drupal7 agus phpass (air a chleachdadh , gu sònraichte ann an WordPress). Tha cuid dhiubh gan cur an gnìomh air FPGA airson a’ chiad uair.

Airson bcrypt, tha an coileanadh a chaidh a choileanadh de ~ 119k c / s le 2 ^ 5 iterations (“$ 2b $ 05”) le caitheamh cumhachd de ~ 27 watt gu mòr nas àirde na na toraidhean airson na GPUs as ùire gach bòrd, gach prìs bathar-cruaidh, agus gach watt. . Cuideachd le taic cnuasaichean de bhùird den t-seòrsa seo, a chaidh a dhearbhadh suas gu 16 bùird (64 FPGA chips) air an smachd bho aon Raspberry Pi 2. Thathas a’ toirt taic do ghnìomhachd àbhaisteach John the Ripper, a ’toirt a-steach a h-uile modh tomhais facal-faire agus luchdachadh sìos àireamh mhòr de hashes aig an aon àm .

Gus an obair a luathachadh, chuir sinn an gnìomh masg (am modh “-mask”, a’ toirt a-steach measgachadh le modhan eile) agus coimeas a dhèanamh eadar na hashes àireamhaichte leis an fheadhainn a tha air an luchdachadh air taobh FPGA. Bho shealladh buileachaidh, tha mòran de na dealbhaidhean (m.e. sha512crypt agus Drupal7) blocaichean cleachdte anns a bheil coraichean pròiseasar ioma-snàthainn (coirean bog CPU) ag eadar-obrachadh le coraichean criptografach. Chaidh leasachadh na gnìomhachd seo a stiùireadh le Denis Burykin ann an co-òrdanachadh le luchd-leasachaidh jumbo eile.

Atharrachaidhean cudromach eile:

  • Taic airson àireamh mhòr de sheòrsan a bharrachd de hashes, ciphers, msaa, a’ toirt a-steach an dà chuid hashes facal-faire clasaigeach (mar eisimpleir, bho dhreachan ùra de QNX), a bharrachd air wallets cryptocurrency, tasglannan crioptaichte agus siostaman faidhle crioptaichte (mar eisimpleir, Bitlocker agus FreeBSD geli), a bharrachd air taic airson seòrsachan ùra de chruthan a fhuair taic roimhe (mar eisimpleir, taic a bharrachd airson bcrypt-pbkdf airson OpenBSD softraid) agus mòran a bharrachd. Gu h-iomlan, chaidh cruthan 80 a chuir ris air CPU agus 47 air OpenCL. Tha an àireamh iomlan de chruthan a-nis 407 air an CPU (no 262 gun a bhith a’ toirt a-steach cruthan “fiùghantach” air an rèiteachadh bho fhaidhlichean rèiteachaidh) agus 88 air OpenCL.
  • Thoir air falbh taic cànain CUDA airson fàbhar OpenCL, nach cuir bacadh air cleachdadh iomlan an NVIDIA GPU aig a ’char as lugha (agus eadhon a’ cuideachadh, le fòcas leasachaidh agus optimizations air aon bhuileachadh de gach cruth fon GPU an àite dhà buileachadh roimhe).
  • Taic airson seataichean stiùiridh SIMD ùra - AVX2, AVX-512 (a’ toirt a-steach an dàrna ginealach de Xeon Phi) agus MIC (airson a’ chiad ghinealach) - a bharrachd air cleachdadh nas cruinne agus nas coileanta de SIMD ann an cur an gnìomh iomadh cruth, a’ gabhail a-steach cleachdadh de sheataichean stiùiridh le taic roimhe suas gu AVX agus XOP air x86 (-64) agus
    NEON, ASIMD agus AltiVec air ARM, Aarch64 agus POWER, fa leth.

  • Iomadh optimizations airson CPU agus OpenCL, an dà chuid a bhith ag obair nas èifeachdaiche le àireamh mhòr de hashes aig an aon àm (mar eisimpleir, a 'luchdachadh 320 millean SHA-1 hashes air an GPU) agus gus àrdachadh air an astar àireamhachadh hash. Tha cuid de na optimizations sin uile-choitcheann, tha cuid a’ còmhdach diofar fo-sheata de chruthan, agus tha mòran dhiubh a’ buntainn ri cruth sònraichte.
  • (Auto-) rèiteachadh buffering as fheàrr de fhaclan-faire sgrùdaichte air an CPU (“-tune = auto —verbosity = 5”) agus na meudan obrach as fheàrr air OpenCL (air an comasachadh gu bunaiteach), a’ toirt a-steach a bhith a’ toirt aire don ramp slaodach suas gu làn tricead obrachaidh de GPUs sreath NVIDIA GTX 10xx agus nas ùire. A’ cleachdadh hashes luchdaichte dha-rìribh agus fìor fhaid nam faclan-faire ga sgrùdadh (nuair a tha fios ro-làimh air) airson gleusadh fèin-ghluasadach mar sin.
  • A’ cur ri chèile inneal-cruinneachaidh airson “seantansan fiùghantach” air a shònrachadh gu dìreach air an loidhne-àithne agus a’ cur an gnìomh seòrsaichean hash hybrid ùra, mar eisimpleir “-format=dynamic=’sha1(md5($p).$s)’", air a thomhas air an CPU a’ cleachdadh SIMD . Mar cho-phàirtean de leithid de dh’ abairtean, thathas a’ toirt taic do dhusanan de hashes luath (bho fheadhainn cumanta leithid MD5 gu feadhainn meadhanach coimheach leithid Whirlpool), fo-thalamh concatenation, còdachadh agus dì-chòdachadh, tionndadh cùis caractar, iomraidhean air facal-faire, salann, ainm neach-cleachdaidh agus comharran sreang.
  • Cur às do eadar-dhealachaidhean neo-mhiannach bho hashcat, a’ toirt a-steach taic airson òrdughan riaghailt liosta fhaclan a bha sònraichte do hashcat, ag atharrachadh gu àireamh inneal OpenCL bho 1, a’ cleachdadh na h-aon faid facal-faire bunaiteach (mar as trice fad 7) airson deuchainnean coileanaidh.
  • Modhan ùra airson faclan-faire sgàinte a ghineadh (modhan sgàineadh), a’ gabhail a-steach PRINCE bho hashcat (a’ gineadh “abairtean” le bhith a’ co-chruinneachadh grunn fhaclan ann an òrdugh dìreadh fad iomlan), fo-bhuidhnean (a’ toirt faclan-faire le àireamh gu leòr de charactaran eadar-dhealaichte, eadhon ged a thig na caractaran sin bho seata mòr de fheadhainn a dh’ fhaodadh a bhith ann) agus taobh a-muigh tar-chinealach (a’ ceadachadh modhan taobh a-muigh, air am mìneachadh ann am faidhlichean rèiteachaidh ann an cànan coltach ri C, gus mòran fhaclan-faire dearbhaidh a ghineadh stèidhichte air gach “facal” bunaiteach a gheibhear bho mhodh eile). Cuideachd, grunn mhodhan taobh a-muigh ro-mhìnichte.
  • Feartan a bharrachd airson a bhith a 'cleachdadh grunn mhodhan aig an aon àm (aon air mullach an eile - cruachadh), a bharrachd air a bhith a' cleachdadh seataichean riaghailtean mar sin (cruachadh riaghailtean liosta fhaclan).
  • Leasachaidhean air na modhan masg (mealladh mean air mhean a ’sìneadh anns an raon faid ainmichte, a’ cur a-steach masg air taobh inneal OpenCL no bòrd FPGA) agus sgàineadh singilte (giùlan reusanta air innealan a bhios a ’tomhas àireamh mhòr de hashes aig an aon àm, a bha roimhe seo anns a 'mhodh seo cha robh faclan-faire ann airson sgrùdadh, agus cuideachd crìochan air caitheamh cuimhne).
  • Mòran leasachaidhean ann an taic airson Unicode agus còdachadh eile ann an diofar fo-shiostaman.
  • Mòran leasachaidhean air prògraman *2john (ag atharrachadh fhaidhlichean de dhiofar chruthan gu
    cleachdadh le john), gu sònraichte wpapcap2john (a’ làimhseachadh trafaic WiFi).

  • Mòran roghainnean loidhne-àithne ùr, suidheachaidhean john.conf, rèiteachadh roghainnean sgriobt, agus na feartan ùra co-fhreagarrach aca, agus cha deach iomradh a thoirt air a h-uile gin dhiubh an seo.
  • Ag adhartachadh càileachd còd mar thoradh air taic togte airson togail deasbaid le AddressSanitizer (roimhe seo) agus UndefinedBehaviorSanitizer (air a chur ris), a’ cur fuzzer cruth togte a-steach (taobh a-staigh GSoC 2015), a’ cleachdadh amalachadh leantainneach (togail airson dusanan de shiostaman obrachaidh agus cothlamadh cruinneachaidh agus gan deuchainn airson taic cheart do gach cruth).

Source: fosgailtenet.ru

Cuir beachd ann