Kas yra druska „Linux“ slaptažodžio maišos kodavime ir kodėl ji svarbi?

Paskutiniai pakeitimai: 04/12/2025
Autorius: Izaokas
  • „Druska“ yra atsitiktinė eilutė, kuri pridedama prie slaptažodžio prieš maišos kodą, kad kiekvienam vartotojui būtų sukurtos unikalios maišos kodai.
  • Linux Jis saugo maišos kodą, druską ir algoritmą /etc/shadow faile, taip sustiprindamas apsaugą nuo žodynų atakų ir vaivorykštinių lentelių.
  • Gera praktika reikalauja ilgų, atsitiktinių ir unikalių druskos reikšmių, taip pat patikimų maišos algoritmų ir duomenų bazės gerai apsaugotas.
  • Slaptažodžių keitimas turėtų būti integruotas į platesnes saugumo politikas, apimančias stiprius slaptažodžius, daugiafaktorinį autentifikavimą ir slaptažodžių tvarkykles.

druska slaptažodžio maišos elemente „Linux“ sistemoje

Jei dirbate su GNU/Linux sistemomis arba tiesiog nerimaujate dėl savo paskyrų saugumo, tikriausiai esate girdėję apie druska slaptažodžio maišos elementeTai viena iš tų sąvokų, kuri minima daug, bet dažnai suprantama tik pusiau: ji skamba techniškai, bet iš tikrųjų ji skiria sistemą, kurią lengva nulaužti, nuo sistemos, kuri yra daug atsparesnė atakoms.

Trumpai tariant, druska yra pagrindinis elementas, dėl kurio slaptažodžių maišos tampa nenuspėjamosJis veikia pridėdamas atsitiktinius duomenis prieš pritaikydamas maišos algoritmą, todėl net jei du vartotojai turi tą patį slaptažodį, duomenų bazėje saugomas rezultatas bus skirtingas. Nuo to momento konkretus įgyvendinimas „Linux“ sistemoje, jo ryšys su /etc/shadow, tokie įrankiai kaip mkpasswd ir šiuolaikinės geriausios saugumo praktikos yra atskiras pasaulis, kurį mes išsamiai panagrinėsime.

Kas tiksliai yra druska slaptažodžio maišos kodavime?

druskos apibrėžimas slaptažodžio maišos kode

Kriptografijoje druska (druska) yra atsitiktinė simbolių eilutė kuris pridedamas prie vartotojo slaptažodžio prieš pritaikant maišos funkciją. Tikslas – kad gauta maiša būtų unikali, net jei paprasto teksto slaptažodis keliems vartotojams yra tas pats.

Kai vartotojas sukuria arba pakeičia slaptažodį, sistema sugeneruoja atsitiktinė druskaJis sujungia jį su slaptažodžiu (prieš, po arba konkrečiu formatu, priklausomai nuo schemos) ir taiko maišos algoritmą tam deriniui, pvz. SHA-256 o SHA-512Slaptažodis nėra saugomas duomenų bazėje, o maišos kodas (slaptažodis + druska), ir daugumoje schemų pati druska taip pat saugoma kartu su maišos.

Ši technika perteikia daugelį atakos metodai, pagrįsti iš anksto apskaičiuotais maišos kodais, kaip ir vaivorykštės lentelės, ir labai apsunkina žodynų bei „brute-force“ atakas dideliu mastu. Užpuolikas nebegali išnaudoti to, kad keli vartotojai dalijasi slaptažodžiu, nes kiekvienas jų turės skirtingą maišos kodą.

Svarbu suprasti, kad druska pati savaime nėra paslaptis: Tai nėra slaptažodis ar privatus raktasJo funkcija – į maišos procesą įtraukti atsitiktinumo ir unikalumo. Saugumas vis tiek priklauso nuo naudojimo. tvirti slaptažodžiai y tinkami maišos algoritmai, pageidautina specialiai sukurtas slaptažodžiams (pvz., „bcrypt“, „scrypt“, „Argon2“), nors daugelyje klasikinių „Linux“ sistemų naudojami SHA-256 arba SHA-512 variantai.

Kaip slaptažodžių sūdymas veikia žingsnis po žingsnio

Kaip veikia slaptažodžių sūdymas

Sūdymo procesą galima apibendrinti gana paprastais žingsniais, tačiau su didžiulis poveikis saugumui:

  Kaip aptikti kenkėjiškus procesus naudojant „Process Explorer“ ir „VirusTotal“

Pirma, kai vartotojas registruojasi arba pakeičia slaptažodį, sistema sugeneruoja unikali ir atsitiktinė druska tiems kredencialams. Ta druskos reikšmė paprastai yra pakankamo ilgio (pavyzdžiui, 16 baitų ar daugiau) ir gaunama iš kriptografiškai saugaus atsitiktinių skaičių generatoriaus.

Toliau vartotojo pasirinktas slaptažodis sujungiamas su ta druska, kad būtų sudarytas tarpinė grandinėŠis derinys gali būti toks paprastas, kaip „salt“ ir „password“ sujungimas, arba jis gali turėti sudėtingesnį formatą, apibrėžtą maišos schemoje. Svarbu tai, kad kiekvienas vartotojas gautų skirtingą derinį.

Tada, a vienpusis maišos algoritmasRezultatas yra, regis, atsitiktinė eilutė, fiksuoto ilgio maišos kodas, kuris bus saugomas duomenų bazėje kartu su druska. Šiuolaikinėse sistemose ieškoma algoritmų, kurie sugeneruotų ilgi ir sudėtingi išėjimaiTai padidina paieškos erdvę ir padaro „brute-force“ atakas brangesnes.

Galiausiai, vartotojui prisijungus, sistema vėl nuskaito įvestą slaptažodį. susijusi druska Iš duomenų bazės jis pakartoja tą patį sujungimo ir maišos procesą ir palygina rezultatą su saugoma maiša. Jei rezultatai sutampa, jis žino, kad slaptažodis yra teisingas, net nežinant paprastojo teksto.

Šis mechanizmas užtikrina, kad net jei duomenų bazė nutekėtų, užpuolikas matys tik atskiri maišos su savo druskomisVietoj palyginamų maišos verčių rinkinio, atakos sustabdymas nėra magija, tačiau tai tampa žymiai brangiau skaičiavimo požiūriu.

Druskos naudojimo slaptažodžių maišose privalumai

Druskos naudojimo slaptažodžiuose privalumai

Pagrindinė druskos naudojimo priežastis yra ta, kad sustiprina saugomų slaptažodžių saugumą nuo įvairių atakų. Tačiau verta išsamiau aptarti konkrečius privalumus.

Pirma, sūdymas suteikia atsparumas žodynų atakomsBe „salt“ užpuolikas gali paruošti didžiulį dažniausiai naudojamų slaptažodžių ir jų maišos kodą (hash) sąrašą ir tiesiog palyginti jį su pavogta duomenų baze. Turint unikalų „salt“ kodą kiekvienam vartotojui, šie iš anksto apskaičiuoti maišos kodai tampa nenaudingi, nes kiekvienas slaptažodžio ir „salt“ derinys generuoja skirtingą reikšmę.

Antra, druskos naudojimas sumažina vaisto veiksmingumą. vaivorykštės stalaiTai tiesiog iš anksto apskaičiuotos populiarių slaptažodžių maišos duomenų bazės, skirtos pagreitinti atkūrimą. Vėlgi, kadangi rezultatas priklauso nuo konkrečios druskos, šios lentelės, skirtos nesūdytoms maišoms, tampa nenaudingos arba, bent jau, labai neefektyvios.

Dar vienas akivaizdus privalumas yra tas, kad jis pagerina privatumas nuotėkio atvejuNet jei įsilaužėlis gaus prieigą prie vartotojų lentelės su jos maišos ir druskos kodais, jis negalės greitai nustatyti, kas turi tą patį slaptažodį kaip ir kiti, arba lengvai pradėti masinių atakų. Kiekvienai paskyrai reikalingas individualus dėmesys, kuris paprastai yra nepraktiškas dideliu mastu.

  Įspėjimas apie naują „WhatsApp“ sukčiavimą: „Bizum“ ir vaizdo skambučiai, skirti pavogti paskyras ir pinigus

Be to, sūdymas dar labiau apsunkina procesą žiaurios jėgos atakosUžuot galėjęs vienu metu patikrinti kandidato slaptažodį su visomis maišos reikšmėmis, užpuolikas yra priverstas atsižvelgti į kiekvieno vartotojo „salt“ (sąlyginę alternatyvą), taip padidindamas bendrą darbo krūvį. Jei tai derinama su lėtu ir parametruojamu maišos algoritmu (pvz., „bcrypt“ ar „Argon2“), atakos kaina dar labiau padidėja.

Galiausiai, druskos naudojimas yra technika, kuri gerai prisitaiko prie technologinės evoliucijos. Net ir tobulėjant kompiuterinei įrangai bei atsirandant naujoms atakoms, tvirto hašišo ir unikalios druskos derinys Jis išlaiko aukštą ir keičiamo dydžio sudėtingumo lygį: galite padidinti druskos ilgį, sustiprinti algoritmą, padidinti skaičiavimo sąnaudas ir kt.

Kaip „Linux“ įgyvendina slaptažodžių sūdymą (/etc/shadow)

„Linux“ sistemose ir kituose *NIX variantuose vartotojų slaptažodžiai saugomi ne faile /etc/passwd, o faile / etc / shadowŠiame faile, prieinamame tik supervartotojui, saugomos slaptažodžių maišos kartu su papildoma informacija, ir jame aiškiai matomas druskos ir maišos algoritmo naudojimas.

Eilutės faile /etc/shadow turi panašią struktūrą:

naudotojas:$id$sal$hash:papildomi_laukai…

Simbolis $ Atskirkite skirtingas dalis. Pirmoji dalis po vartotojo vardo nurodo algoritmo tipas naudojamas. Pavyzdžiui, 1 USD paprastai reiškia MD5, 5 USD SHA-256 ir 6 USD SHA-512, kuris yra labiausiai paplitęs algoritmas šiuolaikiniuose platinimuose, nes jis siūlo didesnį saugumą nei senesnės schemos, pagrįstos DES arba MD5.

Po to, kai pasirodo algoritmo identifikatorius, SALir tada gautas maišosVisa tai yra tame pačiame lauke. Kai slaptažodis patvirtinamas, sistema nuskaito tą identifikatorių, salt, pritaiko įvestam slaptažodžiui atitinkamą algoritmą ir palygina apskaičiuotą maišos kodą su išsaugotu.

Jei norite greitai patikrinti, kurie vartotojai turi užšifruotus slaptažodžius ir koks algoritmas naudojamas, galite naudoti tokią komandą kaip grep '\$' /etc/shadowŠiame kontekste dolerio ženklas ($) naudojamas eilutėms su maišos simboliais (hash) šiuolaikiniu formatu rasti. Simbolis turi būti atskirtas atgaliniu brūkšniu, nes reguliariosiose išraiškose jis reiškia „eilutės pabaigą“.

Paskyros be slaptažodžio arba užrakintos paskyros paprastai rodo tokią reikšmę tame lauke. ! o * vietoj maišos simbolio su doleriais, nurodančio, kad negalima autentifikuoti naudojant standartinį slaptažodį. Ši struktūra aiškiai parodo vieną dalyką: „Linux“ integruoja sūdymą į savo formatą sandėliavimas slaptažodžiai gimtoji.

Skirtumas tarp slaptažodžių maišymo ir druskos

Svarbu aiškiai atskirti dvi sąvokas, kurios kartais painiojamos: maišos y sūdymasSlaptažodžių maiša – tai procesas, kurio metu slaptažodis, naudojant vienpusį algoritmą, paverčiamas neatpažįstama verte. Serveriui niekada nereikia žinoti originalaus slaptažodžio, jis tik patikrina, ar vartotojas žino teisingą slaptažodį, nes sukuriama ta pati maiša.

  Kas yra WINUX: „Linux“ su laisva siela ir „Windows“ išvaizda bei pojūčiu

Problema ta, kad jei du slaptažodžiai yra vienodi, Nesūdytas maišos produktas taip pat bus identiškasTai leidžia užpuolikui palyginti ir grupuoti vartotojus pagal slaptažodį arba naudoti iš anksto apskaičiuotas lenteles. Be to, jei maišos algoritmas yra greitas ir sukurtas duomenų vientisumui užtikrinti (pvz., paprastas SHA-256), jis tampa labiau pažeidžiamas masinių „brute-force“ atakų.

Sūdymas padeda išspręsti būtent šią silpnybę: tai susiję su pridėti atsitiktinius duomenis prie slaptažodžio prieš maišos funkciją. Rezultatas yra toks, kad net jei du vartotojai pasirenka slaptažodį „casa“, duomenų bazėje esančios maišos funkcijos bus visiškai skirtingos, nes vieno vartotojo prieš maišos funkciją esanti eilutė bus, pavyzdžiui, „casa+7Ko#“, o kito – „casa8p?M“.

Taigi, maišymas ir sūdymas nekonkuruoja, o vienas kitą papildo. Maišymas suteikia vienkryptiškumo savybė ir lengvas patikrinimas; druska suteikia unikalumas ir atsparumas masiniams išpuoliamsSaugus slaptažodžių saugojimo įgyvendinimas apjungia abu metodus, idealiu atveju naudojant šiam tikslui sukurtą algoritmą su konfigūruojama kaina.

Druskos naudojimas Linux sistemoje su mkpasswd

GNU/Linux aplinkose ir kitose sistemose unixLabai praktiškas būdas eksperimentuoti su sūdymu yra įrankis mkpasswdŠi komanda naudojama generuoti užšifruoti slaptažodžiai saugiai ir dažniausiai integruojamas į vartotojų kūrimo procesus, administravimo scenarijus ir kt.

Pagrindinė „mkpasswd“ sintaksė leidžia nurodyti šifruojamą slaptažodį ir keletą parinkčių, tokių kaip algoritmo tipas (pavyzdžiui, des, md5, sha-256, sha-512), naudojant parinktį -mŠiuolaikinėse sistemose protingiausia rinktis SHA-512 bent jau arba dar patikimesnėmis schemomis, jei platinimas jas palaiko.

Ypač įdomus variantas sūdymo kontekste yra -S, kuri leidžia įberti druskos prieš šifruojant slaptažodį. Jei nenurodyta rankiniu būdu, „mkpasswd“ gali sugeneruoti atsitiktinė druska kiekviename vykdymekad net naudojant tą patį prisijungimo slaptažodį, gautas maišos dydis kiekvieną kartą būtų skirtingas.

Tai galima lengvai patikrinti: jei „password123“ kelis kartus užšifruosite su „mkpasswd“, naudodami SHA-512 ir atsitiktinę „salt“ reikšmę, gausite visiškai skirtingas maišas. Tačiau jei perduosite tą pačią „salt“ reikšmę naudodami -S, maiša visada bus identiška, nes „password“ ir „salt“ derinys nesikeičia.

Dėl šio įrankio tai labai paprasta Paruoškite slaptažodžius, užšifruotus naudojant druską pridėti prie konfigūracijos failų, rankiniu būdu valdyti vartotojus arba išbandyti druskos naudojimą nieko neprogramuojant.

Kas yra skaitmeninė higiena?
Susijęs straipsnis:
Skaitmeninė higiena: saugumas, gerovė ir tvarka jūsų gyvenime internete