Why doesn't the system admin just create a user account for each user on each server, so that the users can use their username and password to access whatever resources they wish to access?
Immagina di avere 50 utenti e 50 server. Per semplicità, supponiamo che tutti e 50 gli utenti debbano avere accesso a tutti e 50 i server, tutti hanno gli stessi privilegi su tutti i server e non dobbiamo mai cambiare questi privilegi. Questo è 2.500 voci di password in totale che devono essere create.
Aggiunta di un nuovo utente
Quando aggiungi un nuovo utente, l'amministratore deve passare a tutti e 50 i server e aggiungere quell'unico utente a tutti loro. Ciò richiederebbe all'amministratore di eseguire il comando create user in tutti i 50 server. Quel bit può essere automatizzato, ma la parte che non può essere automatizzata in modo sicuro è che l'utente dovrebbe inserire la propria password 50 volte, una volta per server.
Perché quest'ultimo problema? Perché i sistemi di autenticazione delle password sono progettati in modo che non conservino una copia della password , nemmeno una copia crittografata. Quindi, quando l'utente immette la nuova password sul server n. 1, quel server dimentica la password immediatamente, quindi dovranno inserirla nuovamente per il server n. 2 e n. 3, ecc.
Aggiunta di un nuovo server
Forse ora stai pensando che potresti scrivere uno script che:
- Viene eseguito sul server X;
- Chiede al nuovo utente di inserire la nuova password;
- Chiede all'amministratore la propria password;
- Accedi ai server dal n. 1 al n. 50 e crea l'account utente su ognuno di essi con la stessa password.
È un po 'rischioso, ma anche se lo fai, ti rimane ancora un altro problema più grande. Supponiamo che la tua azienda acquisti un nuovo server e ora abbiamo bisogno che i nostri 50 utenti abbiano accesso su questo server. Bene, dal momento che nessuno dei server contiene una copia delle password degli utenti, l'amministratore dovrebbe andare da ciascun utente e chiedere loro di inserire una password per il proprio account nel nuovo server. E non c'è modo di aggirare questo a meno che tu non abbia conservato copie delle password degli utenti - che di nuovo, è una pratica insicura .
Database delle password centralizzato
Per risolvere questi problemi, è necessario che il proprio database utente / password sia centralizzato in un unico posto e che tutti i server consultino quel database per autenticare nomi utente e password. Questo è davvero il minimo indispensabile per un ambiente multiutente / multiserver gestibile. Ora:
- Quando aggiungi un nuovo utente, tutti i server lo prelevano automaticamente dal database centrale.
- Quando aggiungi un nuovo server, preleva automaticamente tutti gli utenti dal database centrale.
C'è una varietà di meccanismi per farlo, anche se sono ancora a corto di ciò che offre Kerberos.
Kerberos
Una volta che hai un database così centralizzato, ha senso potenziarlo con più funzioni, sia per facilità di gestione che per comodità. Kerberos aggiunge la possibilità che, quando un utente ha effettuato correttamente l'accesso a un servizio, quel servizio "ricorda" il fatto ed è in grado di "dimostrare" ad altri servizi che questo utente ha effettuato correttamente l'accesso. Quindi, quegli altri servizi, presentati con tale dimostrazione, lasceranno entrare l'utente senza chiedere una password.
Questo offre un mix di comodità e sicurezza:
- Gli utenti non ricevono la richiesta della loro password più e più volte quando l'hanno già inserita con successo una volta quel giorno.
- Quando si dispone di programmatori che scrivono programmi che accedono a più server e tali server richiedono l'autenticazione, i programmi ora possono autenticarsi su tali server senza dover presentare una password, riutilizzando le credenziali dell'account del server su cui vengono eseguiti.
Quest'ultimo è importante perché minimizza o uccide una pratica insicura ma troppo comune: programmi automatici che richiedono di inserire copie di nomi utente e password nei file di configurazione. Ancora una volta, un'idea chiave della gestione sicura delle password è non memorizzare copie di password, nemmeno copie crittografate .