Kerberos KDC conosce le password in chiaro degli utenti?

9

Nella link sezione 15.7.8.3 "Il KDC è un singolo punto di errore" che puoi leggere :

By design, the KDC must be as secure as the master password database is contained on it. The KDC should have absolutely no other services running on it and should be physically secured. The danger is high because Kerberos stores all passwords encrypted with the same key (the “master” key), which in turn is stored as a file on the KDC.

Questo non significa che si tratti di un tallone di Achille di Kerberos poiché se il KDC viene compromesso, l'hacker conoscerà le password in chiaro di tutti gli utenti (invece di ottenere / etc / shadow di un sistema Linux che solo fornire all'utente malintenzionato le password hash e salate)?

    
posta mgd 08.06.2012 - 23:29
fonte

2 risposte

5

La risposta è sì e no, a seconda di cosa intendi. Nel modello Kerberos di base, in genere ogni entità in un dominio condivide un segreto con i server di autenticazione Kerberos (Key Distribution Centres o KDC). (Dico "ordinariamente" perché i principal che agiranno solo come client possono evitare di condividere un segreto e utilizzare invece altri metodi per autenticare il KDC, ad esempio una coppia di chiavi RSA tramite PKINIT o password monouso, che evita di indovinare la password problema discusso qui completamente.) Per un componente software come un server web, questo è un insieme di chiavi generate casualmente; c'è un insieme piuttosto che uno solo, per accogliere i clienti con supporto per vari cifrari crittografici. Per un utente, è un insieme di chiavi derivate dalla password dell'utente. Quindi il KDC contiene tutti i segreti: se viene compromesso, un utente malintenzionato può impersonare qualsiasi entità nel dominio di KDC.

Tuttavia, il KDC in realtà non ha la password dell'utente, solo un insieme di chiavi derivate da la password. Questa distinzione non è importante per quanto riguarda Kerberos stesso: le chiavi sono il vero segreto di Kerberos. Tuttavia, le persone spesso riutilizzano le password per vari sistemi; quindi, se un KDC viene compromesso, l'utente malintenzionato non avrà immediatamente la password dell'utente con cui tentare di accedere al suo account GMail, ad esempio (anche se ora può montare un attacco di dizionario per provare a scoprire la password).

Doesn't that mean that this is an Achilles' heel of Kerberos since if the KDC is compromised, the attacker will know all users' plaintext passwords (as opposed to getting /etc/shadow of a Linux system which will only provide the attacker with the hashed and salted passwords)?

È una proprietà di Kerberos; Non lo chiamerei "tallone d'Achille". Lo schema Unix password-hash gli consente di fare una cosa: verificare le password in chiaro, che devono essere consegnate al server. Sistemi come Kerberos e PKI possono fare molto di più e hanno più segreti da proteggere, distribuiti in vari modi determinati dalle rispettive tecnologie. PKI non ha un singolo negozio con tutte le chiavi utente - ma ha le chiavi altamente sensibili delle autorità di certificazione (CA), che devono essere protette con la stessa attenzione del database principale Kerberos, dal momento che rubare una chiave privata CA allo stesso modo consente a un utente malintenzionato di impersonare molti principal nel sistema. Potrebbe essere più semplice proteggere una chiave privata della CA rispetto al database KDC poiché quest'ultimo deve essere online per l'operazione KDC, mentre il primo deve essere disponibile solo per operazioni di firma relativamente infrequenti (sebbene ciò dipenda dalla natura e dall'utilizzo della CA in questione ). D'altra parte, l'autenticazione basata su password Kerberos non richiede un archivio secondario o un'apparecchiatura aggiuntiva (come una smartcard) per contenere la chiave privata dell'utente e certificati CA affidabili, e la sua crittografia simmetrica è molto più veloce delle operazioni a chiave pubblica di PKI. E così via ... ci sono molti confronti e compromessi.

    
risposta data 08.11.2014 - 22:27
fonte
9

La risposta breve è: no.

Conosce una chiave segreta che può essere derivata dalla password dell'utente. La specifica RFC 1510 dice nell'introduzione della sezione 6:

It is desirable for the string to key function to be one-way, and for the mapping to be different in different realms. This is important because users who are registered in more than one realm will often use the same password in each, and it is desirable that an attacker compromising the Kerberos server in one realm not obtain or derive the user's key in another.

Nota che non esiste un sale casuale unico per ogni account, solo il nome del dominio che è condiviso tra tutti gli utenti dello stesso reame.

La versione aggiornata RFC 4120 consente un altro modo per ottenere la chiave:

The user key might be stored on a smart-card, or otherwise obtained independently of a password.

    
risposta data 09.06.2012 - 00:29
fonte

Leggi altre domande sui tag