Tip | Lista de comenzi Unix |
---|
passwd este o comandă disponibilă pe majoritatea sistemelor de operare Unix și Unix-like, permițând utilizatorului să-și schimbe parola . passwd este, de asemenea, numele fișierului care conținea parolele de pe aceleași sisteme.
Noua parolă introdusă de utilizator este procesată de o funcție de derivare a cheii pentru a crea o versiune hash a noii parole. Această versiune hash este salvată de server. Se păstrează doar versiunea mărunțită; parola introdusă de utilizator nu este salvată din motive de securitate.
Când utilizatorul se conectează la server, parola introdusă de utilizator în timpul procesului de autentificare este procesată de aceeași funcție de derivare a cheii, iar versiunea hash rezultată este comparată cu versiunea salvată. Dacă hashurile sunt aceleași, parola introdusă este considerată corectă și utilizatorul este autentificat. În teorie, este posibil ca două parole diferite să producă același hash . Cu toate acestea, funcțiile hash criptografice utilizate ca funcție de derivare a cheilor sunt concepute în așa fel încât găsirea unei parole care produce același hash este foarte dificilă și practic imposibilă, astfel încât dacă hash-ul produs se potrivește cu cel memorat, utilizatorul poate fi autentificat.
Comanda passwd poate fi utilizată pentru a schimba parolele pentru conturile locale și, pe majoritatea sistemelor, poate fi folosită și pentru a schimba parolele gestionate într-un mecanism de autentificare distribuit, cum ar fi NIS , Kerberos sau LDAP .
Fișierul /etc/passwd este un text bază de date de informații despre utilizatorii care se pot conecta la sistem.
Numele fișierului provine de la una dintre funcțiile sale originale, care a fost de a păstra datele utilizate pentru a verifica parolele contului de utilizator. Cu toate acestea, pe sistemele Unix moderne, parolele sunt salvate într-un alt fișier și sunt salvate acolo într-o formă hash .
Fișierul /etc/passwdare de obicei permisiuni care permit citirea acestuia de către toți utilizatorii sistemului (lizibilă la nivel global), deși poate fi editat doar de utilizatorul root sau de unele comenzi speciale.
Fișierul /etc/passwdeste un fișier text , fiecare înregistrare descriind un cont de utilizator. Fiecare înregistrare este formată din șapte câmpuri separate prin două puncte . Ordinea înregistrărilor din fișier nu este de obicei importantă.
Iată un exemplu de înregistrare:
jsmith:x:1001:1000:Joe Smith,Room 1007,(234)555-8910,(234)5550044,email:/home/jsmith:/bin/shCâmpurile, de la stânga la dreapta, sunt:
Fișierul /etc/shadoweste utilizat pentru a crește nivelul de securitate a parolei. Fișierul conține o versiune hash a parolelor și numai utilizatorii foarte privilegiați îl pot accesa. De obicei, aceste date sunt păstrate în fișiere deținute de utilizatorul root și accesibile doar de acesta.
Administratorii de sistem pot reduce probabilitatea atacurilor cu forță brută, făcând parolele hash inaccesibile utilizatorilor neprivilegiați. O modalitate ușoară de a face acest lucru este de a face fișierul /etc/passwdaccesibil numai de către utilizatorul root. Cu toate acestea, acest lucru ar restricționa accesul la alte date din fișier, cum ar fi numele de utilizator la mapările ID-ului utilizatorului, ceea ce ar obliga să fie reprogramate multe programe și utilități .
O soluție mai bună este crearea unui fișier shadow pentru a păstra hashurile parolelor separat de celelalte date din fișierul passwd, care este accesibil unui număr mare de utilizatori. Acest fișier este fișierul de /etc/shadowpe sistemele Linux și Unix sau fișierul de /etc/master.passwdpe sistemele BSD . Aceste fișiere pot fi citite doar de utilizatorul root. (Accesul la parolele hash de către utilizatorul root este considerat acceptabil, deoarece pe sistemele cu modelul tradițional de securitate „utilizator atotputernic”, utilizatorul root ar putea totuși obține parola oricum. Informații într-un alt mod). Aproape toate sistemele de operare din Unix recent folosesc parole hash și ascunse într-o umbră de fișier .
Utilizarea unui fișier de parole ascunse și ascunse nu blochează complet accesul unui atacator la parolele hash, deoarece unele sisteme de autentificare în rețea funcționează prin transmiterea parolei hash prin rețea (uneori în text clar , de ex. Telnet ), făcându-l vulnerabil la interceptare. Copiile datelor de sistem, cum ar fi copiile de rezervă ale sistemului scrise pe bandă magnetică sau disc optic , pot deveni, de asemenea, un mijloc de obținere ilegală de parole hash. În plus, funcțiile utilizate de programele legitime de verificare a parolei trebuie scrise în așa fel încât programele rău intenționate să nu poată efectua un număr mare de verificări de autentificare într-o perioadă scurtă de timp.
Nu contează dacă mascarea parolei este implementată pe un sistem dat, fișierul passwd trebuie să fie lizibil de toți utilizatorii pentru ca anumite utilitare să funcționeze (de exemplu, pentru ca utilitarul Ls să afișeze numele proprietarilor de fișiere. „Un fișier). Aceasta înseamnă că, dacă mascare nu este implementată, un atacator cu acces neprivilegiat la sistem poate obține forma hash a parolei tuturor utilizatorilor.
Formele trunchiată de parole pot fi folosite pentru a monta un off - atac brute force , testarea parole posibile împotriva parole trunchiate relativ repede fără a alerta dispozitive de securitate sistem concepute pentru a detecta un număr anormal de încercări. De conectare nereușite. Mai ales atunci când hash-ul nu este sărat, este de asemenea posibil să căutați aceste parole hash în tabelele curcubeu , baze de date special concepute pentru a găsi o parolă din forma sa hash.
Când se folosește mascarea parolei, fișierul /etc/passwdafișează de obicei un caracter precum „*” sau „x” în câmpul de parolă al fiecărui utilizator în loc de parola hash, iar fișierul /etc/shadowconține de obicei următoarele pentru fiecare utilizator: