Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Cieľ:zabezpečené úložisko hesla
Základným princípom je, že skutočné heslo PlointExt je * nikdy * nikde uložené. Keby bola databáza obsahujúca heslá niekedy ohrozená, útočníci by okamžite mali prístup ku všetkým používateľským účtom. Hashing a solenie tomu zabránia.
2. Hashing:
* jednosmerná funkcia: Hashing je matematická operácia, ktorá transformuje heslo na reťazec znakov s pevnou veľkosťou s názvom „hash“. Je to * jednosmerná * funkcia, čo znamená, že je výpočtovo nerealizovateľná (mimoriadne náročná a časovo náročná) na zvrátenie procesu a odvodenie pôvodného hesla z hashu.
* Odolnosť proti kolízii: V ideálnom prípade by rôzne heslá mali vytvárať rôzne hashy. Dobrý algoritmus hashovania minimalizuje pravdepodobnosť „zrážky“, kde dve rôzne heslá generujú rovnaký hash.
* bežné hashovacie algoritmy v Linuxe:
* bcrypt: Často sa považuje za najsilnejšiu a preferovanú voľbu. Zahŕňa vstavanú soľ a je navrhnutá tak, aby bola výpočtovo drahá, takže je odolná voči útokom brutálnej sily.
* argon2: Algoritmus moderného hesla, ktorý je tiež navrhnutý tak, aby bol výpočtovo drahý a tvrdý pamäť a ďalej zvyšuje odpor voči útokom. Je to populárnejšie.
* scrypt: Ďalšia kľúčová funkcia derivácie navrhnutá tak, aby bola odolná proti útokom brutálnej sily.
* SHA-512: (Menej bežné * teraz * pre priame hashovanie hesla, ale často sa používa ako súčasť väčšej funkcie derivácie kľúča). Historicky sa použili. Sa niekedy používa ako súčasť konfigurácií PAM.
* md5, sha-1, sha-256: Nepoužívajte ich! Tieto sa považujú za zastarané a zraniteľné pre priame hashovanie hesla. Sú príliš rýchle a ľahko prasknuté moderným hardvérom a vopred vysielanými dúhovými stolmi. Môžu sa nachádzať v starších systémoch, ale mali by byť vylepšené.
3. Solenie:
* Pridanie náhodnosti: „Soľ“ je náhodný reťazec znakov, ktorý je pre každého používateľa jedinečný. Soľ je zreťazená (pridaná do) hesla * Pred * je hashed.
* Prevencia útokov na tabuľku dúhových: Dúhové tabuľky sú vopred vysielané tabuľky hash pre bežné heslá. Bez sola by útočník mohol jednoducho vyhľadať hash v dúhovej tabuľke, aby našiel zodpovedajúce heslo. Solovanie robí z dúhových tabuliek zbytočné, pretože každé heslo má jedinečnú soľ, výsledkom čoho je jedinečný hash dokonca aj pre bežné heslá.
* Soľ je uložená s hashom: Je dôležité, že samotná soľ je uložená spolu s hashed heslom v súbore `/etc/Shadow` (alebo v niektorých databázach v moderných systémoch). Toto nie je * bezpečnostná zraniteľnosť; Na overenie hesla sa vyžaduje soľ * *
* Prečo uložiť soľ? Na overenie hesla používateľa musí systém:
1. Získajte uloženú soľ pre tohto používateľa.
2. Zhretnite zadané heslo so soľou.
3. Hash Výsledok pomocou pôvodného algoritmu hashovania * rovnakého *.
4. Porovnajte novo generovaný hash s uloženým hashom. Ak sa zhodujú, heslo je správne.
4. Súbor `/etc/Shadow` (tradičný prístup)
Heslá používateľov a ich súvisiace informácie sa tradične ukladajú v súbore `/etc/Shadow`. (Poznámka:Priame prezeranie alebo úpravy tohto súboru zvyčajne vyžadujú oprávnenia root).
* Povolenia: Súbor `/etc/Shadow` je zvyčajne čitateľný iba používateľom„ root “, ktorý zaisťuje, že bežní používatelia nemôžu vidieť hashované heslá iných používateľov.
* Štruktúra: Každý riadok v súbore `/etc/Shadow` predstavuje používateľský účet a má nasledujúci formát (zjednodušený):
`` `
Užívateľské meno:hashed_password:last_change:min_days:max_days:warn_days:inaktive_days:expire_date:príznaky
`` `
* pole `hashed_password`: To je miesto, kde sa ukladá heslo soľného a hashedu. Formát tohto poľa zvyčajne obsahuje identifikátor použitého algoritmu hashovania, soľ a skutočný hash. Napríklad:
* `$ 6 $ Niekto_random_salt $ AveryLonghashedpasswordString` (používa sa SHA-512)
* `$ 2B $ 10 $ $ ďalší_random_salt $ EvenLongerhashedpasswordString` (používa sa Bcrypt)
* `$ 6` Označuje SHA-512
* `$ 2b` Označuje bcrypt
*Číslo (napr. `10` v Bcrypt) označuje *nákladový faktor *alebo *pracovný faktor *. Vďaka vyšším nákladovým faktorom je proces hashovania výpočtovejšie drahší a zvyšuje čas potrebný na prelomenie hesla.
5. Moderné systémy a PAM (moduly pluggable Authentication)
* Databázy: Moderné systémy často používajú databázy (napr. LDAP, Active Directory) na ukladanie informácií o používateľskom účte vrátane hesiel hashed.
* pam: PAM je flexibilný rámec, ktorý umožňuje správcom systému nakonfigurovať rôzne mechanizmy autentifikácie. Používa sa na zvládnutie procesu autentifikácie vrátane hashovania hesiel, overenia hesiel a vykonávania ďalších úloh súvisiacich s bezpečnosťou. Konfiguračné súbory PAM (napr. V `/etc/pam.d/`) Stanovte, ktoré autentifikačné moduly sa používajú a ako sú nakonfigurované.
Príklad Scenár:Overenie hesla používateľa
1. používateľ zadáva heslo: Užívateľ zadá svoje heslo do prihlásenia alebo aplikácie.
2. systém načíta soľ: Systém vyhľadáva účet používateľa a načíta uloženú soľ z `/etc/Shadow` (alebo príslušnú databázu).
3. Zhromaždenie a hashing: Systém zrealizuje zadané heslo so získanou soľou. Potom používa hashovací algoritmus uvedený v zázname `/etc/Shadow` (napr. SHA-512 alebo BCrypt) na hash kombinované heslo a soľ.
4. Porovnanie: Novo vygenerovaný hash sa porovnáva s uloženým hashom v `/etc/Shadow`.
5. Autentifikácia Úspech/zlyhanie: Ak sa tieto dva hashové zhodujú, autentifikácia je úspešná. Inak autentifikácia zlyhá.
Dôležité úvahy:
* Zložitosť hesla: Povzbudzujte používateľov, aby si vybrali silné heslá, ktoré sú dlhé, zložité a ťažko uhádnuteľné.
* Pravidelné zmeny hesla: Pravidelne vyžaduje, aby používatelia zmenili svoje heslá, môže pomôcť zmierniť riziko kompromisu hesla.
* Multifaktorové overenie (MFA): Použitie MFA pridáva ďalšiu vrstvu zabezpečenia tým, že používatelia vyžadujú, aby poskytovali viac foriem identifikácie, napríklad heslo a kód z telefónu.
* bezpečnostné audity: Pravidelné audity konfigurácie zabezpečenia vášho systému môže pomôcť identifikovať a riešiť potenciálne zraniteľné miesta.
* Zostanú aktualizované: Udržujte svoj operačný systém a softvér aktuálne pomocou najnovších bezpečnostných záplat.
v súhrne: Linux „dekóduje“ heslá. Používa silnú kombináciu slaného a hashovania na bezpečné ukladanie reprezentácií hesiel. Algoritmy `bcrypt` a` argon2` sú vo všeobecnosti uprednostňované pre ich odpor voči útokom brutálnej sily. Správna konfigurácia PAM a udržiavanie bezpečnosti systému sú rozhodujúce pre ochranu používateľských účtov.