it-swarm-eu.dev

Autenticazione Kerberos su Internet pubblica

Quali sono le minacce ad avere il KDC accessibile via Internet per i client remoti?

Comprendo che l'autenticazione è un protocollo challenge/response e che la password non viene mai trasmessa. Gli attacchi di forza bruta sono la ragione per cui questo non è comune?

Questo perché l'autenticazione Kerberos è più preziosa della forzatura bruta di un singolo account ssh o di posta elettronica poiché più servizi su più host potrebbero essere compromessi contemporaneamente? È a causa della superficie di attacco del KDC stesso e che un firewall stenopeico non è visto come una barriera sufficiente per impedire l'accesso a questo prezioso perno di autenticazione e autorizzazione?

16
Richard Salts

Probabilmente il motivo per cui Kerberos non viene utilizzato su Internet pubblico non ha a che fare con la sicurezza del protocollo o l'esposizione del KDC, ma piuttosto che si tratta di un modello di autenticazione che non soddisfa le esigenze della maggior parte dei "pubblici" Applicazioni Internet.

Per citare Wikipedia, Kerberos " fornisce l'autenticazione reciproca - sia l'utente che il server verificano reciprocamente l'identità. " Ciò significa che il computer client deve disporre delle chiavi necessarie per garantire la propria identità prima che l'autenticazione dell'utente richieda posto. La distribuzione di tali chiavi per applicazioni di "Internet pubblico" non è pratica per diversi motivi: considera quanti PC accedono al tuo sito web bancario, di proprietà di un'ampia varietà di persone la cui capacità di installare regolarmente le patch di Windows è limitata. Non è come se l'IT aziendale venisse in giro e configurasse Kerberos per loro.

Kerberos richiede orologi strettamente sincronizzati - non che difficile da fare in un ambiente aziendale o educativo gestito centralmente, molto più difficile quando le macchine sono tutte di proprietà e gestite da persone completamente diverse.

Uno dei vantaggi di Kerberos è la capacità di sfruttare senza problemi un'autenticazione iniziale in più accessi alle applicazioni. Sull'Internet pubblico, le molteplici applicazioni raramente hanno qualcosa a che fare l'una con l'altra: la mia banca, la mia posta e il mio /. l'account non ha alcuna chiamata a fidarsi l'uno dell'altro o dello stesso gruppo di persone. (Questo rientra nell'area dell'identità federata, e c'è del lavoro in quest'area, ma non ha bisogno dello stesso mix di cose che Kerberos porta sul tavolo).

In breve, Kerberos è una soluzione pesante e il controllo dell'accesso alle applicazioni Internet pubbliche è un problema leggero.

Per rispondere direttamente alla tua vera domanda, no, non credo che le preoccupazioni relative agli attacchi di forza bruta o alla vulnerabilità del KDC mantengano Kerberos fuori da Internet. Il protocollo è stato ragionevolmente ben controllato, attaccato, risolto e aggiornato da oltre 20 anni. Il solo pezzo di autenticazione client (macchina) fornisce un'enorme protezione contro una serie di attacchi previsti su una grande rete aperta come Internet.

23
gowenfawr

Kerberos stesso è generalmente sicuro da usare su Internet. Dopotutto, è stato progettato per essere sicuro su una delle reti pubbliche più ostili del mondo: la rete del campus MIT campus.

Un white paper Kerberos, "Perché Kerberos è una soluzione di sicurezza credibile?" affronta tutti i punti sollevati. Per citare in parte:

Una password che non viene mai divulgata o inviata su una rete è molto più difficile per un utente malintenzionato da rubare. Di conseguenza, l'autenticazione Kerberos degli utenti non richiede che le password vengano presentate al servizio di autenticazione. Al contrario, il servizio di autenticazione Kerberos utilizza protocolli crittografici in base ai quali l'utente può provare il possesso di una password senza rivelarla effettivamente.

In un ambiente distribuito, sarebbe estremamente scomodo mantenere segreti condivisi come le password su ogni client e server che deve autenticare le richieste. Inoltre, la distribuzione di segreti condivisi su molti sistemi aumenta le potenziali vulnerabilità in proporzione diretta al numero di sistemi, un problema aggravato dal fenomeno del "collegamento più debole". Kerberos risponde a questo requisito mantenendo un database centralizzato distribuito su pochi server di autenticazione. Sebbene la sicurezza generale dipenda in modo critico dalla protezione di questo database centrale, è molto più semplice proteggere alcuni server per scopi speciali dagli attacchi piuttosto che proteggere molti sistemi per scopi generici. Il controllo centrale sui segreti di autenticazione semplifica inoltre l'emissione di nuove credenziali, la revoca di quelle esistenti e il ripristino da credenziali compromesse.

Gli sviluppatori di Kerberos presumevano che chiunque potesse intercettare sul traffico di rete, affermare di essere qualsiasi utente e creare server canaglia in grado di rappresentare qualsiasi servizio legittimo, compresi i servizi Kerberos stessi. La crittografia è stata utilizzata per prevenire attacchi di intercettazione e sono state introdotte chiavi di sessione insieme a timestamp per impedire attacchi di riproduzione. Quando gli utenti (o host/servizi) eseguono l'autenticazione con il servizio di autenticazione Kerberos, il servizio di autenticazione a sua volta si autentica all'utente (o Host/servizio) dimostrando che conosce il segreto condiviso precedentemente stabilito. Un sottoprodotto di queste contromisure è che Kerberos fornisce protezione contro gli attacchi man-in-the-middle, che all'epoca erano generalmente considerati non realizzabili e per più di un decennio dopo che Kerberos era inizialmente schierato. Purtroppo, gli attacchi man-in-the-middle non sono più solo congetture, e sono fin troppo comuni nella rete Internet di oggi, che non è stata progettata pensando a un ambiente ostile.

Se puoi ragionevolmente unire tutti i sistemi al regno Kerberos, ad esempio sono tutti siti all'interno della tua azienda, allora dovrebbe andare bene da usare. Tuttavia, non crittografa necessariamente tutto ; ad esempio, HTTP sarebbe ancora non crittografato. Alcuni servizi come NFS, tuttavia, possono crittografare i loro flussi di dati utilizzando Kerberos. A seconda delle tue applicazioni e dei dati che trasmetterai, potresti comunque voler usare una VPN tra i siti.

Ma se le tue applicazioni saranno aperte al pubblico, probabilmente Kerberos non è quello che desideri.

7
Michael Hampton