Le chiavi host del server SSH duplicate sono un problema?

19

Sto facendo una valutazione di una piccola rete che sta usando un bel po 'di virtualizzazione. Hanno clonato alcune delle loro macchine Linux dopo aver generato le loro chiavi host del server SSH. Quindi i server hanno tutti la stessa chiave host. Sono certo che questo è male, ma non so spiegare perché. Puoi spiegare perché questo sarebbe o fornire un esempio di uno scenario in cui questo potrebbe essere sfruttato. O è solo un caso di cattiva pratica?

    
posta user896117 28.08.2013 - 02:29
fonte

3 risposte

19

Più una chiave privata è condivisa, meno privata diventa. Questa è solo una valutazione generica: in alcune situazioni, questo può essere innocuo. Ciò che significa nel caso specifico dei server SSH è che la sicurezza di questi tre server diventa un sistema tutto-o-niente:

  • Ogni server conosce abbastanza per impersonare qualcuno degli altri.
  • Se un uno del server viene violato, l'utente malintenzionato scopre la chiave privata condivisa e può impersonare qualsiasi altro server.

La condivisione della chiave privata, d'altra parte, può avere vantaggi reali:

  • Come si osserva, accade "naturalmente" in alcuni casi di clonazione VM.
  • Se il routing è dinamico in qualche modo (ad esempio c'è il bilanciamento del carico), un determinato sistema client potrebbe non ricadere sempre sulla stessa macchina con lo stesso nome; in tal caso, se i nodi rilevanti fanno non condividono la stessa chiave privata, il cliente urlerà, urlerà e si lamenterà.
  • Quando un client si connette a un determinato server per la prima volta , quel client non ha ancora una chiave pubblica salvata per quel server, quindi l'utente umano dovrebbe controllare l'impronta digitale della chiave del server contro un autorevole fonte (ad es. una telefonata al sysadmin). Se tutti i server condividono la stessa chiave privata, la singola impronta digitale può essere stampata a caratteri cubitali e incollata ai muri dell'ufficio; questo è molto meno pratico quando ci sono molti server e ognuno di essi ha la sua chiave.

La condivisione della chiave privata è quindi una cosa definita "niente affatto" quando le macchine non intendono essere equivalenti l'una all'altra per quanto riguarda la sicurezza. Tuttavia, quando sono equivalenti, la condivisione della chiave privata può semplificare alcune operazioni. La condivisione della chiave privata DEVE essere eseguita quando si utilizzano alcune forme di bilanciamento del carico (sebbene il bilanciamento del carico e SSH si adattino raramente). La condivisione della chiave privata può essere considerata una "pratica accettabile" quando tutti i sistemi sono elementi di un grande cluster di elaborazione.

    
risposta data 28.08.2013 - 15:50
fonte
7

Questo potrebbe essere negativo se una macchina è stata compromessa e l'utente malintenzionato è stato in grado di rubare la chiave. Sarebbero quindi in grado di impersonare una qualsiasi delle altre macchine senza lasciare agli utenti un avvertimento di modifica della chiave dell'host quando hanno tentato successivamente di accedere all'host malintenzionato. Se sono presenti altri meccanismi di sicurezza sulla rete, questa minaccia potrebbe essere in gran parte attenuata.

    
risposta data 28.08.2013 - 06:53
fonte
2

Sì, questo è male. Come è stato detto in precedenza, se un host viene compromesso, è necessario ruotare tutti gli altri host con la stessa chiave privata per impedire gli attacchi MITM.

Una strategia migliore sarebbe quella di creare la chiave dopo che l'host si è alzato in piedi o generare una nuova chiave dopo l'imaging. Dai un'occhiata a cosa fanno alcuni dei grandi (AWS, linode, ecc.) Per idee su come eseguire il provisioning di molte VM diverse in modo sicuro.

    
risposta data 28.08.2013 - 17:15
fonte

Leggi altre domande sui tag