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.