it-swarm-eu.dev

Perché ho bisogno di Kerberos quando potrei semplicemente usare un nome utente e una password per accedere ai servizi?

Ho letto che Kerberos viene utilizzato per autenticare gli utenti che desiderano accedere ai servizi su vari server in una rete aziendale, ma non capisco ancora lo scopo di Kerberos. Perché l'amministratore di sistema non crea semplicemente un account utente per ciascun utente su ciascun server, in modo che gli utenti possano utilizzare il loro nome utente e password per accedere a qualsiasi risorsa a cui desiderano accedere? Perché è necessario un protocollo di autenticazione così elaborato?

37
Minaj

Perché l'amministratore di sistema non crea semplicemente un account utente per ciascun utente su ciascun server, in modo che gli utenti possano utilizzare il loro nome utente e password per accedere a qualsiasi risorsa a cui desiderano accedere?

Immagina di avere 50 utenti e 50 server. Per semplicità, supponiamo che tutti e 50 gli utenti dovrebbero avere accesso a tutti i 50 server, hanno tutti gli stessi privilegi su tutti i server e non dobbiamo mai cambiare questi privilegi. Si tratta in totale di 2.500 voci di password che devono essere create.

Aggiunta di un nuovo utente

Quando aggiungi un nuovo utente, l'amministratore deve andare su tutti i 50 server e aggiungere quell'utente a tutti. Ciò richiederebbe all'amministratore di eseguire il comando create user in tutti e 50 i server. Quel bit può essere automatizzato, ma la parte che impossibile deve essere automatizzata in modo sicuro è che l'utente dovrebbe inserire la propria password 50 volte, una volta per server.

Perché quest'ultimo problema? Poiché i sistemi di autenticazione con password sono progettati in modo tale da non conservare una copia della password , nemmeno una copia crittografata. Quindi, quando l'utente immette la nuova password sul server n. 1, quel server dimentica subito la password, quindi dovrebbe inserirla nuovamente per il server n. 2, n. 3, ecc.

Aggiunta di un nuovo server

Forse ora stai pensando che potresti scrivere una sceneggiatura che:

  1. Funziona sul server X;
  2. Chiede al nuovo utente di inserire la nuova password;
  3. Chiede all'amministratore la propria password;
  4. Accede ai server da # 1 a # 50 e crea l'account utente su ciascuno di essi con la stessa password.

È un po 'complicato, ma anche se ci provi, ti rimane ancora un altro problema più grande. Supponiamo che la tua azienda acquisti un nuovo server e che ora abbiamo bisogno che i nostri 50 utenti abbiano accesso a questo server. Bene, poiché nessuno dei server contiene una copia delle password degli utenti, l'amministratore dovrebbe andare da ciascun utente e fargli inserire una password per il loro account nel nuovo server. E non si può aggirare questo a meno che non si conservassero copie delle password degli utenti - che di nuovo, è una pratica insicura .

Database centralizzato delle password

Per risolvere questi problemi hai davvero bisogno che il tuo database utente/password sia centralizzato in un unico posto e che tutti i server lo consultino per autenticare nomi utente e password. Questo è davvero il minimo indispensabile per un ambiente multiutente/multiserver gestibile. Adesso:

  1. Quando aggiungi un nuovo utente, tutti i server lo raccolgono automaticamente dal database centrale.
  2. Quando aggiungi un nuovo server, preleva automaticamente tutti gli utenti dal database centrale.

Esistono diversi meccanismi per farlo, sebbene siano ancora a corto di ciò che Kerberos offre.

Kerberos

Una volta che hai un database così centralizzato ha senso potenziarlo con più funzionalità, 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 "provare" ad altri servizi che l'utente ha effettuato l'accesso. Quindi quegli altri servizi, presentati con tale prova, consentiranno all'utente di entrare senza chiedere loro una password.

Questo offre un mix di praticità e sicurezza:

  1. Agli utenti non viene chiesto più volte la password quando l'hanno già inserita correttamente una volta quel giorno.
  2. Quando si hanno programmatori che scrivono programmi che accedono a più server e tali server richiedono l'autenticazione, i programmi possono ora autenticarsi su quei server senza dover presentare una password, riutilizzando le credenziali dell'account del server in cui sono in esecuzione.

Quest'ultimo è importante perché minimizza o uccide una pratica insicura ma fin troppo comune: programmi automatizzati 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 archiviare copie di password, nemmeno copie crittografate.

42
Luis Casillas

In poche parole, sarebbe un incubo amministrativo.

Kerberos consente agli amministratori di avere un numero qualsiasi di dipendenti che utilizzano le stesse credenziali per accedere alle risorse in tutto il loro dominio.

Diciamo che questo non esisteva in una rete semplice.

  1. L'utente inserisce la password per sbloccare il proprio computer.
  2. L'utente desidera mappare un'unità di rete. Ora devono reinserire la password
  3. L'utente desidera quindi ricevere l'email. Aprono Outlook e quindi devono inserire un'altra password.
  4. L'utente deve quindi accedere all'Intranet aziendale. Questa è un'altra password.

Ti viene l'idea. Non utilizzare Kerberos significa che l'utente deve conservare le password per tutti i server a cui devono accedere i servizi Host a cui devono accedere. Questo sarebbe un mal di testa sia per gli utenti che per gli amministratori. La maggior parte delle politiche aziendali afferma che gli utenti devono cambiare la password ogni X giorni. Riesci a immaginare di essere un utente finale e di dover cambiare la password su 5 server ogni volta che devi farlo?

Dal punto di vista della sicurezza, l'amministratore ottiene tutti i tentativi di accesso (sia riusciti che non riusciti) in un unico punto anziché essere connessi su 5 server diversi. Ciò aiuta sia a risolvere i problemi di accesso (ad es. Blocchi) sia a semplificare molto i registri di controllo.

27
DKNUCKLES

Kerberos non è lì per comodità, è una misura di sicurezza avanzata. La convenienza è un vantaggio secondario.

Una grande spiegazione è Progettazione di un sistema di autenticazione: una finestra di dialogo in quattro scene

Fondamentalmente, invece di passare semplicemente un token magico (ad es. La tua password), ottieni un "ticket", che è firmato da una fonte attendibile di verità (ad es. Kerberos KDC, Microsoft AD, ecc.). Il tuo biglietto indica ai servizi chi sono e a quali gruppi di diritti appartieni. Pensalo come comprare un biglietto di ingresso a un parco divertimenti piuttosto che dare un soldato ad ogni giro in un parco.

12
duffbeer703

Per prevenire escalation laterale .

La complessità amministrativa della gestione delle password può essere ridotta utilizzando un database di password centralizzato, come LDAP. Tuttavia, ciò crea il rischio di escalation laterale. Se un utente malintenzionato prende il controllo di un server, può rimanere silenziosamente presente, annusando le password. Queste password possono quindi essere utilizzate per compromettere altri server - escalation laterale.

Kerberos tenta di risolverlo: gli utenti non inviano la propria password a ciascun server; lo inviano solo al server di autenticazione e presentano un ticket ad altri server. In tempi recenti, sono stati identificati alcuni difetti che sono sfruttati da strumenti come mimikatz. Tuttavia, almeno Kerberos è progettato per prevenire l'escalation laterale; LDAP non fa nulla per fermarlo.

8
paj28

Il vantaggio principale di Kerberos è consentire la modifica immediata dell'account e della password.

Ho a portata di mano soluzioni per l'amministrazione centralizzata di account distribuiti e agenti password lato client che rispondono al 99% delle richieste di password dopo l'accesso, ma tutti presumono che l'utente cambi password sia raro e che possiamo attendere fino al lavoro batch notturno affinché la modifica della password abbia effettivamente effetto. Lo stesso vale con le modifiche alle autorizzazioni nella maggior parte dei casi; se abbiamo bisogno di modificare le autorizzazioni per rendere effettive ora, gli strumenti minori non possono farlo.

Kerberos elenca nelle sue capacità la possibilità di autenticare in modo sicuro le connessioni senza crittografarle. Ciò si rivela poco desiderabile nella pratica e tale abilità non dovrebbe essere invocata. Il furto dei biglietti Kerberos è stato l'essenza di un attacco a SMB un anno fa che avrebbe fornito tutto l'accesso come utente a condizione che l'utente stesse usando qualsiasi condivisione di rete ovunque.

0
Joshua