In realtà, / etc / shadow è stato creato per consentire l' allontanamento da un elenco leggibile pubblicamente di nomi utente e password.
Aspetta lì, questa sarà una piccola lezione di storia, prima di arrivare alla risposta effettiva. Se non ti interessa la storia, scorri un po 'verso il basso.
In passato, i sistemi operativi simili a Unix, incluso Linux, generalmente mantenevano le password in / etc / passwd. Quel file era leggibile in tutto il mondo e lo è ancora, perché contiene informazioni che consentono la mappatura, ad esempio tra ID utente numerici e nomi utente. Tali informazioni sono estremamente utili anche per gli utenti ordinari per scopi perfettamente legittimi, quindi avere il file world leggibile è stato di grande beneficio per l'usabilità.
Anche allora, le persone si resero conto che avere le password in chiaro in un file in una posizione ben nota che chiunque potesse accedere poteva leggere liberamente era una cattiva idea. Quindi, in un certo senso, le password sono state sottoposte a hash. Questo è il vecchio meccanismo di hashing della password "cripta", che non viene quasi mai utilizzato sui sistemi moderni, ma spesso supportato per scopi legacy.
Dai un'occhiata a / etc / passwd sul tuo sistema. Vedi quel secondo campo, che dice x
ovunque? Utilizzava la password con hash per l'account in questione.
Il problema era che le persone potevano scaricare / etc / passwd, o addirittura non scaricarlo, e lavorare per decifrare le password. Questo non è stato un grosso problema mentre i computer non erano particolarmente potenti (Clifford Stoll, in The Cuckoo's Egg , dà, come ricordo, il tempo di hash una password su un sistema di classe PC IBM a metà degli anni '80 in circa un secondo ), ma è diventato un problema all'aumentare della potenza di elaborazione. Ad un certo punto, con un elenco di parole decente, decifrare quelle password è diventato troppo facile. Per motivi tecnici, anche questo schema non può supportare password più lunghe di otto byte.
Sono state fatte due cose per risolvere questo:
- Passare a funzioni hash più potenti. La vecchia cripta () era sopravvissuta alla sua vita utile e furono ideati schemi più moderni che erano sia a prova di futuro che computazionalmente più forti.
- Sposta le password con hash in un file non leggibile da chiunque. In questo modo, anche se una funzione di hash della password si è rivelata più debole del previsto, o se qualcuno aveva una password debole per cominciare, c'era un altro ostacolo per un utente malintenzionato di ottenere l'accesso ai valori di hash per cominciare. Non era più gratuito per tutti.
Quel file è / etc / shadow.
Il software che funziona con / etc / shadow è generalmente molto piccolo, altamente focalizzato e tende a ricevere un po 'più di controllo nelle recensioni a causa del potenziale problema. Funziona anche con permessi speciali, che gli permettono di leggere e modificare / etc / shadow, mantenendo gli utenti ordinari incapaci di guardare quel file.
Quindi il gioco è fatto: i permessi su / etc / shadow sono restrittivi (anche se, come già sottolineato, non abbastanza restrittivi come dici) perché lo scopo di quel file è limitare l'accesso ai dati sensibili.
Si suppone che un hash password sia forte, ma se la password si trova tra le prime 500 password negli elenchi Internet , chiunque abbia accesso all'hash sarà comunque in grado di trovare rapidamente la password. La protezione dell'hash impedisce tale attacco semplice e alza la barra per un attacco riuscito dalla semplice sbirciatina alla richiesta di essere già un amministratore di sistema sull'host o passare prima attraverso un attacco di escalation di privilegi. Soprattutto su un sistema multiutente correttamente gestito, entrambi sono significativamente più difficili che guardare solo un file leggibile dal mondo.
/etc/shadow
siano600
?