Shadow (Unix)

(Reindirizzamento da Shadow (UNIX))

Quello delle shadow password è un meccanismo presente su vari sistemi operativi Unix e Unix-like[1][2][3] (come ad esempio GNU/Linux) per memorizzare in forma crittografata le password di autenticazione al sistema in file accessibili solo ad utenti privilegiati (ad esempio l'utente root), in modo da rendere più difficoltoso ottenere i dati necessari per effettuare un attacco a forza bruta per scoprire le password.[4]

Con tale meccanismo, la password cifrata viene memorizzata nel file /etc/shadow, che tramite il meccanismo dei permessi è accessibile in lettura e scrittura solo ad utenti privilegiati (root); le password cifrate non sono quindi più memorizzate nel file /etc/passwd, che è invece accessibile in lettura a tutti gli utenti del sistema, ed al loro posto vi si trova una semplice x, ad indicare che il valore è memorizzato altrove.

I programmi che necessitano di effettuare autenticazione possono operare in due modi:

  • essi sono eseguiti direttamente con i privilegi necessari per leggere il file /etc/shadow;
  • essi ricorrono ad un programma esterno che, tramite i permessi setuid e setgid, acquisisce i privilegi necessari per effettuare la sola operazione di verifica di una password.

Il file /etc/shadow, come il file /etc/passwd, sono file di testo, e quindi possono essere aperti con un editor di testo, come ad esempio Vi, Emacs, Gedit, Kate o Notepad.

Per modificare una password è necessario utilizzare il comando passwd.

Il comando pwconv permette di armonizzare i file /etc/shadow e /etc/passwd aggiungendo gli utenti mancanti ed eliminando gli utenti non utilizzati. pwconv acquisisce i dati dai file /etc/shadow e /etc/login.defs.

Nei sistemi FreeBSD[5] e macOS[6] esiste un meccanismo del tutto analogo, in cui le password cifrate sono memorizzate nei file /etc/master.password e /etc/spwd.db. Anche con AIX vi è un meccanismo simile,[7] che memorizza le password cifrate nel file /etc/security/passwd.

Formato del file /etc/shadow

modifica

Ogni riga descrive un utente del sistema, ed è composta da 9 campi separati dal delimitatore ":" (due punti).

Un esempio di file /etc/shadow:

 root:$1$Pm11DX86$t58Ta1.ErOm9TyJbQk//l.:14608:0:99999:6:::
 daemon:*:14545:0:99999:7:::
 bin:*:14545:0:99999:7:::
 sys:*:14545:0:99999:7:::
 sync:*:14545:0:99999:7:::
 mariorossi:$6$F5o3Sdoc$y.IdYyCK74kDS6zXxW7iFer8JdaagQAViaZJGO1Om8MPZUxn8XTml9TNLn2deLNRPNKwZAvHKfefAtnDVD5Zo/:14671:0:90:6:7:14800:9

I campi indicano, nell'ordine:

  1. Il nome utente (es. mariorossi).
  2. La password crittografata, oppure un asterisco per indicare che non è possibile effettuare direttamente il login con quell'utente (ma occorre prima autenticarsi con un altro utente, e poi impersonare quell'utente tramite i comandi su o sudo).
  3. La data dell'ultima modifica della password, come numero di giorni trascorsi dal 1º gennaio 1970 (es. 14671).
  4. Il numero minimo di giorni che devono trascorrere prima di poter modificare la password (es. 0).
  5. Il massimo numero di giorni che devono intercorrere tra una modifica e l'altra di una password (es. 90).
  6. Il numero di giorni di preavviso della scadenza della password (es. 6).
  7. Il numero di giorni trascorsi i quali una password scaduta comporta la disattivazione dell'account (7).
  8. La data di scadenza della password, come numero di giorni dal 1º gennaio 1970 (es. 14800).
  9. Un campo riservato per usi futuri (es. 9).

Le date assolute sono scritte in giorni a partire dal 1º gennaio 1970, per modificare la data di scadenza conviene utilizzare il comando usermod

 usermod -e dataDiScadenza utente

Comandi collegati

modifica
  1. ^ (EN) shadow, in Linux man pages. URL consultato il 03-03-2010.
  2. ^ (EN) shadow, in Solaris Express Reference Manual Collection. URL consultato il 03-03-2010.
  3. ^ (EN) shadow, in HP-UX Reference. URL consultato il 03-03-2010.
  4. ^ (EN) David C. Feldmeier, Philip R. Karn, UNIX Password Security - Ten Years Later* (PDF), su citeseerx.ist.psu.edu, 1989, 6. URL consultato il 03-03-2010.
  5. ^ (EN) pwd_mkdb, in FreeBSD Man Pages. URL consultato il 03-03-2010.
  6. ^ (EN) pwd_mkdb, in macOS Man Pages. URL consultato il 03-03-2010.
  7. ^ (EN) /etc/security/passwd File, in Documentazione AIX — Commands Reference. URL consultato il 03-03-2010.

Voci correlate

modifica
  Portale Sicurezza informatica: accedi alle voci di Wikipedia che trattano di Sicurezza informatica