Slaptažodžių atkūrimo algoritmai paaiškinti: kaip skaičiavimo galia ir statistiniai metodai padeda atkurti pamirštus failų slaptažodžius

Kas vyksta po gaubtu, kai pamirštate failo slaptažodį?

Daugelis vartotojų įsivaizduoja, kad slaptažodžių atkūrimas – tai stebuklingas „lūžimo“ momentas. Iš tikrųjų tai griežtas matematinis procesas, paremtas maišos funkcijomis (hash functions), kombinatorika ir skaičiavimo galia. Panašiai kaip moksliniuose tyrimuose naudojami statistiniai metodai sudėtingiems duomenims analizuoti, slaptažodžių atkūrimas remiasi algoritminiu modeliavimu, kad iš milijonų galimų kombinacijų rastų tą vienintelę teisingą.

Šiame straipsnyje nagrinėsime, kaip veikia skirtingi atkūrimo metodai, kodėl vieni slaptažodžiai atkuriami per sekundes, o kiti reikalauja savaičių, ir kaip pasirinkti efektyviausią strategiją.

Maišos funkcijos: kodėl slaptažodis nėra „ištraukiamas“

Pirmas svarbus dalykas, kurį reikia suprasti – modernūs failų formatai (ZIP, RAR, 7Z, Office dokumentai, PDF) nelaiko slaptažodžio atvira tekstu. Vietoj to jie naudoja maišos funkcijas, kurios slaptažodį paverčia fiksuoto ilgio simbolių seka – hash reikšme.

Maišos funkcijos turi kelias esminias savybes:

  • Vienakryptėškumas – iš hash reikšmės praktiškai neįmanoma atkurti pradinio slaptažodžio matematinio atvirkštinio veiksmo būdu.
  • Atradumas (collision resistance) – dvi skirtingos reikšmės neturėtų duoti tokio paties hash.
  • Determiniškumas – tas pats slaptažodis visada duoda tą patį hash.

Tai reiškia, kad atkūrimo procesas iš tikrųjų vyksta taip: sistema paima bandomąjį slaptažodį, apskaičiuoja jo hash ir palygina su tiksliniu hash, saugomu failo antraštėje. Jei atitinka – slaptažodis rastas. Jei ne – bandomas kitas.

Pagrindiniai atkūrimo metodai

1. Brute-force ataka (išsamus perėjimas)

Pats paprasčiausias metodas – sistemingai išbandyti visas įmanomas kombinacijas, pradedant nuo „aaa...“ ir eidami per kiekvieną simbolių derinį.

Privalumai: garantuotai randa slaptažodį, jei pakanka laiko. Trūkumai: laikas auga eksponentiškai su slaptažodžio ilgiu. 4 simbolių mažųjų raidžių slaptažodis turi 456 976 kombinacijų, o 8 simbolių – jau 208 milijardus.

Brute-force metodas tinka trumpiems (4–6 simboliams) slaptažodžiams, bet ilgesniems reikia kitos strategijos.

2. Žodyno ataka (dictionary attack)

Žodyno ataka išbando slaptažodžius iš iš anksto sudarytų sąrašų – dažniausiai pasitaikančių slaptažodžių, nutekintų duomenų bazių fragmentų, kalbinių modelių.

Tai yra žymiai efektyviau nei brute-force, nes daugelis žmonių naudoja žodžius, frazes ar skaičių sekas, kurios turi prasmę. Sistemos, turinčios didelius slaptažodžių žodynus ir dažnumo lenteles, gali rasti 6–10 simbolių slaptažodžius per kelias minutes, jei slaptažodis sudarytas ižinomo žodžio ir skaitmens.

3. Kaukės ataka (mask attack)

Kai vartotojas iš dalies prisimena slaptažodį – pavyzdžiui, žino, kad jis prasideda didžiąja raide, baigiasi trimis skaitmenimis, o viduryje yra žodis – galima naudoti kaukės ataką. Ji apibrėžia struktūrą, pavyzdžiui: ?l?l?l?d?d?d (trys mažosios raidės + trys skaitmenys), ir išbando tik tos struktūros kombinacijas.

Tai sumažina ieškomų variantų skaičių kartais milijonus kartų, paverčiant savaites valandomis.

4. Kombinuotoji ataka

Pažangesnės sistemos derina kelis metodus – pavyzdžiui, žodyno žodžius su įvairiais priedais („password123!“, „Password2024“), taip pat taiko lingvistinius modelius, kurie atpažįsta slaptažodžių formavimo įpročius pagal regioną, kalbą, metus.

GPU skaičiavimo galia: kodėl ji lemtinga

Centrinis procesorius (CPU) gali išbandyti dešimtis tūkstančių hash per sekundę. Grafikos procesorius (GPU) – šimtus milijonų ar net milijardus, priklausomai nuo algoritmo.

Skirtumas yra reikšmingas. Jei CPU atliktų vieną tikslinę hash palyginimą per sekundę, GPU klasteris su tūkstančiais branduolių gali atlikti šimtus vienu metu. Tai reiškia, kad slaptažodis, kurio atkūrimas įprastu kompiuteriu truktų mėnesius, GPU pagalba gali būti rastas per valandas ar dienas.

Debesų kompiuterija (cloud computing) išsprendžia dar vieną problemą – ne kiekvienas vartotojas turi prieigą prie GPU klasterių. Paslaugos, veikiančios debesų infrastruktūroje, leidžia pasinaudoti šia skaičiavimo galia be jokios įrangos pirkimo ar programinės įrangos diegimo.

Kaip pasirinkti tinkamą atkūrimo strategiją

Praktinis sprendimo kelias priklauso nuo kelių veiksnių:

Veiksnys Rekomendacija
Trumpas slaptažodis (≤6 simboliai) brute-force arba žodyno ataka
Ilgas, bet prasmingas slaptažodis žodyno ataka su variacijomis
Iš dalies žinomas slaptažodis kaukės ataka
Kompleksinis, atsitiktinis slaptažodis brute-force su GPU; gali užtrukti ilgai
Office dokumentai (Word, Excel, PPT) dažniausiai efektyvus žodyno + variacijų metodas
Archyvai (ZIP, RAR, 7Z) priklauso nuo šifravimo algoritmo; GPU rekomenduojamas

Svarbu: lokalus hash išgavimas = privatumas

Vienas dažniausių rūpesčių, kai kalbama apie slaptažodžių atkūrimą internete, yra failo privatumas. Ar reikia įkelti visą failą į svetimą serverį?

Atsakymas – ne. Dauguma šiuolaikinių formatų leidžia iš failo išgauti tik hash duomenis (tai vadinama „hash extraction“). Šis nedidelis fragmentas – kelias šimtas baitų – nepakanka atkurti failo turinį, bet pakanka atlikti atkūrimo procesą. Vartotojas gali išgauti hash lokaliai savo kompiuteryje ir įkelti tik šią reikšmę į atkūrimo paslaugą.

Catpasswd: kaip tai veikia praktiškai

Catpasswd yra platforma, sujungianti anksčiau aprašytus metodus į vieną darbo srautą:

  1. Lokalus hash išgavimas – vartotojas parsisiunčia įrankį, kuris iš failo išskiria tik hash duomenis. Pats failas niekur neįkeliamas.
  2. Strategijos pasirinkimas – sistema automatiškai taiko tinkamiausius metodus: žodyno atakas, brute-force su GPU, kombinuotąsias atakas.
  3. Debesų GPU klasteris – skaičiavimai vyksta nuotoliniame GPU klusteryje, todėl net sudėtingi slaptažodžiai turi realią atkūrimo galimybę.
  4. Mokėjimas tik už rezultatą – jei slaptažodis nerastas, mokėti nereikia. Jei rastas, galima laukti nemokamo rodymo arba sumokėti nedelsiantiniam peržiūrėjimui.

Palaikomi formatai: ZIP, RAR, 7Z, PDF, Word, Excel, PowerPoint, Bitcoin Wallet, 1Password ir kiti.

Realūs scenarijai: kada verta kreiptis

Scenarijus A: Esate buhalteris. Po atostogų atidarote metinę Excel ataskaitą, į kurią prieš kelis mėnesius užšifravote slaptą skiltį. Slaptažodis – neprisimenate. Bandote keletą variantų, bet nesėkmingai. Žodyno ataka su įprastų slaptažodžių variacijomis čia yra pats efektyviausias metodas, nes biuro darbuotojai dažnai naudoja datas, inicialus ar pavardės derinius.

Scenarijus B: Jūsų komandos projektas archyvuotas RAR faile su 10 simbolių slaptažodžiu. Architektas, kuris sukūrė slaptažodį, nebedirba įmonėje. Čia reikia GPU brute-force su optimizuota eiga, nes pats slaptažodis gali būti atsitiktinis.

Scenarijus C: Senas atsarginis diskas su 7Z archyvais, kuriuos kūrėte prieš 5 metus. Slaptažodis buvo paprastas, bet seniai naudotas. Žodyno ataka su retrospektyviniais slaptažodžių sąrašais (tokiais, kurie atspinti to laikotarpio populiariausias kombinacijas) čia veikia geriausiai.

Kaip sumažinti slaptažodžių praradimo riziką ateityje

Nors atkūrimo technologijos tobulėja, prevencija visada yra pigesnė ir greitesnė:

  • Slaptažodžių tvarkyklė – naudokite patikimą slaptažodžių saugyklą (pvz., 1Password, Bitwarden), kuri saugo visus slaptažodžius už vieno pagrindinio.
  • Atsarginė kopija – jei naudojate slaptažodžių tvarkyklę, turėkite atsarginę jos kopiją. Bet nepamirškite – ir pati kopija gali būti užšifruota slaptažodžiu.
  • Dokumentacija – jei šifruojate svarbius failus darbo tikslais, užsirašykite slaptažodį saugioje vietoje ir perduokite kolegoms, jei išeinate iš darbo.
  • Paprastumas > kompleksiškumas – pernelyg sudėtingas slaptažodis, kurį lengva pamiršti, yra blogesnis už vidutiniškai sudėtingą, kurį galima atkurti.

Išvados

Slaptažodžių atkūrimas nėra magija – tai sistemingas skaičiavimo procesas, kurio efektyvumas priklauso nuo trijų veiksnių: teisingai parinkto algoritmo (žodynas, brute-force, kaukė), pakankamos skaičiavimo galios (GPU klasteris) ir turimų duomenų apie slaptažodžio struktūrą.

Modernios platformos, tokios kaip Catpasswd, sujungia šiuos tris veiksnius vienoje vietoje, leisdamos vartotojams atkurti slaptažodžius be programinės įrangos diegimo ir nekeliant failų į internetą. Svarbiausia – rinktis tinkamą strategiją pagal savo situaciją ir nepailsti, nes daugelis slaptažodžių, atrodžių neįveikiamų, iš tikrųjų turi struktūrą, kurią algoritmas gali atpažinti.