I UNIX (och Linux) är lösenordsåldring en säkerhetsmekanism som tvingar användare att ändra sina lösenord med jämna mellanrum. Målet är att minska risken för komprometterade konton genom att begränsa livslängden för ett enda lösenord. Här är en uppdelning av nyckelbegreppen:
kärnidé:
* Tidsbaserad utgång: Efter ett visst antal dagar (definierat av systemadministratören) blir ett användares lösenord "gammalt" och kräver att de ändrar det vid sin nästa inloggning.
Hur det fungerar (nyckelattribut):
* `ålder" i `/etc/skuggan`: Den vanligaste implementeringen hanteras via filen "/etc/skugg" (som lagrar lösenordsinformation säkert). Den här filen innehåller attribut relaterade till åldrande lösenord för varje användare. Viktiga attribut du kan se är:
* `last_changed` (sista ändringsdatum): Antalet dagar sedan epoken (1 januari 1970) när lösenordet senast ändrades. Detta är utgångspunkten för beräkning av åldrande.
* `min_days` (lägsta lösenordsålder): Det minsta antalet dagar som måste passera * innan * en användare får ändra lösenordet igen. Detta förhindrar användare från att omedelbart återgå till ett gammalt, potentiellt komprometterat lösenord.
* `max_days` (maximal lösenordsålder): Det maximala antalet dagar som ett lösenord kan vara giltigt. Efter detta många dagar tvingas användaren ändra den vid nästa inloggning.
* `warn_days` (varningsperiod): Antalet dagar * före * den "max_days" utgången som användaren kommer att börja få varningar om sitt lösenord som löper ut. Detta ger dem tid att ändra det bekvämt.
* `inactive_days` (inaktivitetsperiod): Antalet dagar efter att ett lösenord löper ut att kontot är inaktiverat. Låser effektivt användaren.
* `Expire_date` (Kontoutgångsdatum): Ett fast datum (dagar sedan epoken) när hela kontot blir oanvändbart. Detta är ett separat koncept men som ofta används i samband med lösenordsåldrande för att hantera tillfälliga konton.
* `flagga`: En flagga som kan användas för att inaktivera funktionen för åldrande av lösenord eller för att tvinga en lösenordsändring vid nästa inloggning.
* `passwd` kommando: Användare och administratörer använder vanligtvis kommandot "Passwd" för att ändra lösenord. När en användare ändrar sitt lösenord uppdateras datumet `LAST_CHANGED 'i'/etc/skuggan.
* inloggningsprocess: När en användare försöker logga in, kontrollerar systemet `sist_changed` -datumet mot` max_days 'och `warn_days` värden i'/etc/skuggan '. Om lösenordet har löpt ut uppmanas användaren att ändra det * innan * de kan komma åt sitt konto. Om lösenordet närmar sig utgången visas ett varningsmeddelande.
Exempel:
Låt oss säga `/etc/Shadow` har följande (förenklade) post för en användare som heter" John ":
`` `
John:$ 6 $ Somesalt $ HashString:19400:7:90:7:-1 :::
`` `
Så här tolkar du detta (förutsatt att fältens standard betydelse):
* 'John':Användarnamn.
* `$ 6 $ Somesalt $ hashString`:Password Hash.
* `19400`:` Last_changed` (dagar sedan epoken).
* `7`:` min_days` (måste vänta minst 7 dagar innan du byter igen).
* `90`:` max_days` (lösenordet löper ut efter 90 dagar).
* `7`:` warn_days` (varnar användaren 7 dagar före utgången).
* `-1`:` inactive_days` (inaktiverad). Används inte i detta exempel.
* `:::` - Kontoutgångsdatum (tomt, vilket betyder inget kontoutgång)
Det här betyder:
1. John ändrade senast sitt lösenord på dagen 19400 (sedan epoken).
2. Han måste vänta minst sju dagar innan han ändrar den igen.
3. Hans lösenord kommer att löpa ut 90 dagar efter 19400.
4. Han kommer att varnas för utgången 7 dagar före det utgångsdatumet.
Verktyg för ledningen:
* `passwd` kommando: Som nämnts använder användare och administratörer `passwd` för att ändra lösenord.
* `Chage" -kommandot: Kommandot "Chage" (ändringsålder) är specifikt utformad för att hantera lösningsparametrar i "/etc/skugga". Administratörer använder den för att ställa in `min_days`,` max_days`, `warn_days`, etc. för enskilda användare.
* PAM (pluggbara autentiseringsmoduler): PAM är en ram som gör att du kan anpassa autentiseringsmekanismer. Lösenordsåldring hanteras vanligtvis via PAM -moduler, som ger flexibilitet i hur det implementeras. Du konfigurerar PAM i filer under `/etc/pam.d/`.
* `/etc/inloggning.defs`: Den här filen ställer in systemomfattande standardvärden för åldrande av lösenord och andra inloggningsrelaterade parametrar. Värden som ställts in används ofta som utgångspunkt såvida inte åsidosätts av specifika användarinställningar i `/etc/skuggan.
Varför använda lösenordsåldring?
* Mitigera lösenordsprickor: Även om ett lösenord är svagt eller komprometterat genom brute-force-attacker eller ordbokattacker, kommer det så småningom att ändras, vilket begränsar angriparens möjlighetsfönster.
* Minska påverkan av återanvända lösenord: Många användare återanvänder lösenord över flera konton. Om en tjänst komprometteras är användarens lösenord på andra tjänster i riskzonen. Regelbundna lösenordsändringar kan hjälpa till att mildra detta.
* Efterlevnad: Många säkerhetspolicyer och förordningar kräver lösenordsåldrande som en säkerhet för säkerhet.
* insiderhot: Lösenordsåldring kan hjälpa till att mildra risker från missnöjda eller tidigare anställda som kanske känner till ett lösenord.
Nackdelar:
* Användar irritation: Användare tycker ofta att ofta lösenordsförändringar är irriterande, vilket leder till:
* Förutsägbara lösenord: Användare kan helt enkelt öka ett nummer i slutet av sitt lösenord, vilket gör dem lätt förutsägbara.
* post-it-anteckningar: Att skriva ner lösenord besegrar syftet.
* Lösenordströtthet: Användare kan glömma sina lösenord oftare och öka helpdesksamtal.
* adresserar inte phishing eller social teknik: Enbart lösenordsåldring kommer inte att skydda mot användare som ger bort sina lösenord frivilligt.
Moderna överväganden (utöver traditionellt åldrande av lösenord):
Medan lösenordsåldring har varit en långvarig säkerhetspraxis, föreslår moderna rekommendationer ofta en förskjutning mot:
* Starka lösenord: Tvinga efter lösenordskomplexitetskrav (längd, teckentyper) och förhindra användare från att använda svaga eller lätt gissningsbara lösenord. Verktyg som `pwquality 'och PAM -moduler hjälper till med detta.
* Multi-Factor Authentication (MFA): Lägg till ett extra lager av säkerhet utöver bara ett lösenord (t.ex. en kod från en mobilapp).
* Lösenordschefer: Uppmuntra användare att använda lösenordshanterare för att generera och lagra starka, unika lösenord för varje konto.
* Övervakning och varning: Upptäck misstänksam inloggningsaktivitet (t.ex. ovanliga inloggningsplatser, flera misslyckade inloggningsförsök).
* Komprometterad lösenordsdetektering: Använd tjänster som upptäcker om lösenord har läckt ut i dataöverträdelser och meddelar användare att ändra dem.
Lösenordsåldrande betraktas i sig inte längre som en komplett säkerhetslösning, men det kan fortfarande vara en användbar komponent i en bredare säkerhetsstrategi, särskilt i kombination med andra bästa metoder. Det bästa tillvägagångssättet beror på organisationens specifika säkerhetsbehov och risktolerans.