Identifikuoti hash algoritmą
- Skydelis
- Dokumentacija
- API
Kas yra kriptografinė maiša?
Miša (arba kriptografinis kontrolinis atspaudas) yra transformuojančios funkcijos rezultatas savavališko dydžio įvesties duomenys (slaptažodis, failas, eilutė) į eilutę fiksuoto dydžio. Ši funkcija yra vienakryptė: iš maišos, tai yra matematiškai neįmanoma rasti pradinio įrašo. Gaminamos dvi identiškos įvesties visada ta pati maiša, bet menkiausias įvesties pakeitimas visiškai pakeičia rezultatą.
Mūsų įrankis identifikuoja galimą maišos algoritmą pagal jo formatą ir bando ieškoti pagal itin įprastų slaptažodžių žodyną iš anksto apskaičiuotas pagal pagrindinius algoritmus.
Kaip atpažinti maišą?
Identifikavimas grindžiamas trimis įkalčiais:
- Ilgis: kiekvienas algoritmas sukuria fiksuoto dydžio pėdsaką.
- Formatas: grynas šešioliktainis, Base64 arba modulinis šifravimo formatas su priešdėliais konkretus.
- Priešdėlis: šiuolaikinės slaptažodžių maišos atitinka formatą
$id$params$salt$hash, kuridvienareikšmiškai identifikuoja funkciją naudojamas.
Įprasti šešioliktainiai ilgiai
- 8 simboliai: CRC32 (kontrolinė suma, o ne kriptografinė maiša)
- 32 simboliai: MD5, MD4, NTLM, RIPEMD-128
- 40 simbolių: SHA-1, RIPEMD-160
- 64 simboliai: SHA-256, SHA3-256
- 96 simboliai: SHA-384, SHA3-384
- 128 simboliai: SHA-512, SHA3-512, Whirlpool
Vien ilgio nepakanka, kad būtų galima padaryti išvadą: MD5 ir NTLM turi tą patį dydį – 32 simbolius šešiakampis, pavyzdžiui. Tada mūsų įrankis pateikia galimų algoritmų sąrašą.
Moduliniai kriptovaliutų formato priešdėliai
Slaptažodžių maišos iš crypt() arba šiuolaikinės bibliotekos naudoja a
aiškus priešdėlis:
$1$: MD5 kripta5 $: SHA-256 kripta6 $: SHA-512 kripta$2y$,$2a$,$2b$: Bcrypt (variantai priklausomai nuo platformos)$argon2i$,$argon2id$,$argon2d$: Argon2 (variantai naudojimo, Argon2id rekomenduojamas šiandien)
Bcrypt maišos pavyzdys
$2y$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
Naudojimo atvejai
- Duomenų nutekėjimo analizė: nustatykite duomenų bazės naudojamą algoritmą sukompromituotas siekiant įvertinti atakos sunkumą.
- Debug: greitai patvirtinkite, kuris algoritmas sugeneravo rastą kontrolinį kodą API atsakyme arba žurnale.
- Saugos auditas: pastebėkite sistemą, kurioje vis dar saugomi slaptažodžiai MD5 arba SHA-1 (reikia vengti).
- Teismo ekspertizė: apibūdinkite artefaktą atliekant tyrimą.
Kodėl maiša nėra grįžtama
Maišos funkcija sukurta taip, kad ji būtų vienpusė. Algoritmo nėra maišos iššifravimas, nes maiša nėra šifravimas: tai projekcija. Keletas skirtingos įvesties teoriškai gali sukurti tą pačią maišą (susidūrimą), todėl net ir žinant įrašas, kuris sukuria teisingą maišą, jūs negarantuojate, kad tai yra originalus įrašas.
Praktiškai maišos „sulaužymas“ reiškia masinį kandidatų įrašų testavimą kol surasite tą, kurio piršto atspaudas sutampa. Štai ką daro žodyno atakos ir žiauria jėga.
Integruota žodyno paieška
Mūsų įrankyje yra mažas 39 ypač paplitusių slaptažodžių žodynas:
tuščia eilutė, slaptažodis, administratorius, 123456, qwerty,
letmein ir kt. Šios 39 įvestys yra iš anksto apskaičiuotos pagal 10 algoritmų
(MD5, SHA-1, SHA-256, SHA-512, MD4, NTLM ir kt.). Jei maiša atitinka vieną iš šių pirštų atspaudų,
įrankis grąžina jums slaptažodį aiškiu tekstu.
Ši funkcija parodo,kodėl paprastos maišos netinka žodžiams perdavimas: užpuolikui net nereikia skaičiuoti, jis konsultuojasi su lentele.
Paprasta maiša prieš slaptažodžių maišą
Ne visos maišos yra vienodos slaptažodžių saugojimui:
- Paprasta maiša (MD5, SHA-256, SHA-512): sukurta taip, kad būtų greita, yra numatytasis, kai norite atsispirti brutalios jėgos atakai. Jie neapima Pagal numatytuosius nustatymus selk, todėl du naudotojai, turintys tą patį slaptažodį, turės ta pati maiša, veikianti iš anksto apskaičiuotų lentelių (vaivorykštinių lentelių) atakoms.
- Slaptažodžio maiša (bcrypt, scrypt, Argon2): sukurta taip lėta konstrukcija, įtraukite atsitiktinę druską ir faktorių konfigūruojama kaina. Argon2id šiandien yra moderniausias OWASP rekomenduojamas būdas.
Kaip naudotis įrankiu
- Įklijuokite maišą į įvesties lauką.
- Įrankis aptinka formatą (ilgį, priešdėlį) ir siūlo galimus algoritmus.
- Jei maiša atitinka itin įprastą slaptažodį, rodomas paprasto teksto žodis.
- Priešingu atveju gausite galimų algoritmų sąrašą, kad galėtumėte toliau tyrinėti naudodami įrankį skirta.
Dažnai užduodami klausimai
Kodėl mano bcrypt maiša neatitinka žodyno?
„Bcrypt“ naudoja unikalią atsitiktinę druską vienai maišai: net ir naudojant slaptažodį slaptažodis,
kiekvienas vartotojas sukuria skirtingą maišą. Todėl išankstinis žodyno skaičiavimas neveikia.
Būtent dėl šios savybės bcrypt yra atsparus stalo atakoms.
Ką daryti, jei galimi keli vienodo ilgio algoritmai?
Susiekite su kitais įkalčiais: maišos šaltinis (Active Directory nurodo NTLM, Linux
/etc/shadow į SHA-512 kriptą, seną MySQL duomenų bazę į MD5 ir kt.), ir
taikymo kontekste. Esant vienodam ilgiui, MD5 išlieka statistiškai labiausiai tikėtina
senos sistemos.
Kaip praktiškai „sulaužyti“ maišą?
Teisėtiems saugumo testams (auditas, pentestas) naudojami standartiniai įrankiai Jonas Skerdikas ir Hashcat. Jie priima žodžių sąrašus didžiulis (rockyou ir kt.) ir išnaudoti GPU, kad išbandytų milijardus kandidatų per antra. Įgyvendinamumas priklauso nuo algoritmo: MD5 ir SHA-1 veikia greitai, bcrypt ir Argon2 sulėtinti puolimą keliais dydžiais.
Ar galima ieškoti integruotame žodyne?
Žodynas yra sąmoningai minimalistinis (39 įrašai) ir skirtas iliustruoti silpnumą paprastos maišos ant nereikšmingų slaptažodžių. Jei norite rimtai aprėpti, naudokite žodžių sąrašą išorinis (rockyou, SecLists) su John the Ripper arba hashcat.
Ar galime „iškoduoti“ maišą?
Ne. Maiša nėra šifravimas: nėra atvirkštinės funkcijos. Bet kuri svetainė, kuri žada "iššifruoti maišą" iš tikrųjų taiko peržvalgą iš anksto apskaičiuotoje bazėje. Jei jūsų slaptažodis yra unikalus ir ilgas, jo nėra.
Užklausos pavyzdys
curl -X POST https://cdrn.fr/api/v1/tools/hash-identifier/execute \
-H "Content-Type: application/json" \
-d '{"hash":"..."}'
Įvesties schema
| Laukas | Tipas | Privalomas | Numatytasis |
|---|---|---|---|
hash |
text | ✓ | – |
Galiniai taškai
GET https://cdrn.fr/api/v1/tools- išvardija visus galimus įrankiusGET https://cdrn.fr/api/v1/tools/hash-identifier- gauna šio įrankio schemąPOST https://cdrn.fr/api/v1/tools/hash-identifier/execute- vykdo šį įrankį su JSON payload