È ragionevole avere più chiavi SSH?


44

Finora ho creato una chiave SSH separata per ciascun server a cui devo accedere (per ogni scopo, per essere più accurati). L'ho fatto per sicurezza, proprio come password diverse per siti diversi.

Avere più chiavi SSH migliora effettivamente la sicurezza? Tutti sono usati dalla stessa macchina, si trovano nella stessa ~ / .ssh, molti hanno anche la stessa passphrase.

Quindi ... dovrei rinunciare all'intero sistema e usare solo una chiave SSH per tutto?

[AGGIORNAMENTO 2015-08-05] Github pubblica la tua chiave pubblica e il tuo client SSH può inviare tutte le tue chiavi pubbliche a tutti i server, a seconda della configurazione , quindi, se ti preoccupi di un server SSH di terze parti che conosce la tua identità durante la connessione , dovresti usare più chiavi SSH, anche se secondo me è paranoico.


Questa domanda potrebbe adattarsi meglio alla sicurezza delle informazioni .
Gerrit,

Risposte:


25

Le chiavi SSH usano la crittografia a chiave pubblica. Ciò significa che ciò che stai installando su tutti quei server è solo la tua chiave pubblica , che vuoi che tutto il mondo sappia. L'unico vero segreto è la tua chiave privata che tieni bloccato sul tuo computer. Quindi sì, direi che stai sprecando il tuo tempo.


20
Penso che ci siano validi motivi per avere chiavi separate, e questo non sarebbe una perdita di tempo. Nel caso di una chiave compromessa, il rischio con questo è ridotto. La password dovrebbe essere diversa per ogni chiave, sono d'accordo.
jfmessier,

È ragionevole avere coppie di chiavi diverse su macchine diverse? Come diverse istanze di sistemi operativi VirtualBox?
Santosh Kumar,

1
Questa risposta ignora il concetto di difesa in profondità, perché fa affidamento su "la tua chiave privata che tieni bloccato sul tuo computer". Considera ad esempio cosa succede se il tuo laptop viene rubato mentre (una delle) tue chiavi private viene utilizzato da ssh-agent. Se si dispone di più chiavi, tutte quelle ancora crittografate sono sicure. Non lo definirei una perdita di tempo.
Jon Bentley,

34

In definitiva dipende da te. Devi valutare il tuo modello di minaccia. Quanto è probabile che una delle tue chiavi sia compromessa? Se una chiave viene compromessa, quanto è probabile che le altre chiavi vengano compromesse? Quali sono le conseguenze della compromissione delle tue chiavi? Qual è il costo (incluso il tempo) di gestione di più chiavi?

Considerare fattori come questi dovrebbe aiutarti a decidere se hai davvero bisogno di chiavi separate. Sulle mie macchine personali sulla mia rete locale di solito non mi preoccupo di sovraccarico aggiuntivo nel tentativo di gestire più chiavi. Tuttavia, al di fuori della mia rete, utilizzerei chiavi diverse ognuna con una passphrase unica. Ma questa è solo la mia opinione personale.


7
+1 per "valutazione del modello di minaccia". Questo è solo il punto.
sleske,

21

No, non è una perdita di tempo usare più di una chiave.

Più diversità == meno rischio.

Questa affermazione di Spiff non è corretta.

Il punto è che la chiave pubblica consente l'accesso al detentore della chiave privata e nessun altro.

Il rischio di cui preoccuparsi qui è l'autenticazione. Un sito non autorizzato inoltra le richieste di autenticazione all'attività dell'agente. Se si utilizza una sola chiave, anche quando nel proprio agente è caricata una sola chiave , tutti i siti sono aperti alla canaglia.

Questo non ha nulla a che fare con le passphrase , potresti avere diverse chiavi con la stessa passphrase che qui non farebbe differenza. Perché non è la passphrase a essere compromessa.

La canaglia inoltra sfide al tuo agente e può connettersi a tutti i siti per i quali hai le chiavi caricate . Con chiavi diverse, una chiave caricata -> un sito a rischio .

Ti dico bene, hai scelto la privacy degli altri sulla tua pigrizia.

PS la morale della storia è diffidare dell'inoltro dell'agente


Supponiamo di generare tre chiavi SSH, una per ognuno dei tre server a cui accedo regolarmente. Un giorno, dopo che ho già effettuato l'accesso a tutti e tre (il che significa che ssh-agent ha memorizzato nella cache le passphrase per tutte e tre le chiavi), quindi con il tuo argomento, se il mio ssh-agent viene compromesso, tutti e tre gli accessi vengono compromessi. In tal caso, avere più chiavi SSH non mi ha protetto. Ti ho capito bene?
sampablokuper,

9

Penso che ci sia un buon caso d'uso per più chiavi pubbliche, ed è se hai chiavi private memorizzate su computer in diverse aree di fiducia. Quindi generalmente tengo una chiave che è la mia chiave "di lavoro", e un'altra che è la mia chiave di "casa", semplicemente perché la chiave privata per le mie cose "di casa" non è memorizzata sul mio computer di lavoro e viceversa.


Ottima risposta, se hai macchine diverse con chiavi diverse, perfetto. Se una (o più) macchine hanno tutte le stesse chiavi, beh, non ti stai proteggendo da qualcosa in più rispetto al semplice possesso di una sola chiave. Se uno è compromesso, anche tutto il resto su quella macchina.
xrif

3

Penso che ragionevole possa essere considerato da due diverse angolazioni: sicurezza e convenienza .

Quando creiamo una coppia di chiavi SSH, ci viene chiesto di fornire una passphrase per aggiungere un ulteriore livello per proteggere la chiave privata, come segue:

$ ssh-keygen -t rsa -b 4096 -C 'With_OR_Without_Passwd'
Generating public/private rsa key pair.
Enter file in which to save the key (/Your/HomeDir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

Sebbene vi sia un prompt esplicito che richiede la passphrase, ma alcune (o molte) persone si concentrano ancora di più sulle informazioni tra parentesi: (vuota per nessuna passphrase) e seguendo tale suggerimento.

Combinando l'uso o meno di più coppie di chiavi SSH e l' inserimento o meno di un passwd aggiuntivo , abbiamo almeno quattro modi per procedere. E supponiamo che tutte le coppie di chiavi e il configfile siano memorizzati ~/.ssh/.

Ora non considerare prima la sicurezza .

La tabella seguente fornisce un semplice rango di sicurezza (un numero maggiore significa più sicuro):

Security     Ways to go
   1         One   SSH key-pair  (NO passwd)
   1         Multi SSH key-pairs (NO passwd)
   2         One   SSH key-pair  (WITH passwd)
   2         Multi SSH key-pairs (WITH passwd) (SAME passwd)
   3         Multi SSH key-pairs (WITH passwd) (DIFF passwds)

Senza passwd , se il nostro sistema è intruso da qualcuno, allora l'interruttore può ottenere tutte le nostre chiavi private e la nostra configurazione, anche l'autenticazione dei server remoti. Quindi, in questa situazione, una coppia di chiavi e più coppie di chiavi sono uguali. Il modo più sicuro è utilizzare passwd diversi per coppie di chiavi ssh diverse.

Quindi non pensare alla convenienza .

Ma più coppie di chiavi e più passwd rendono anche la nostra vita meno comoda, la tabella seguente offre un semplice rango di sicurezza (un numero maggiore significa più sicuro):

Convenient  Security  Ways to go
   5           1      One   SSH key-pair  (NO passwd)
   4           2      One   SSH key-pair  (WITH passwd)
   3           1      Multi SSH key-pairs (NO passwd)
   2           2      Multi SSH key-pairs (WITH passwd) (SAME passwd)
   1           3      Multi SSH key-pairs (WITH passwd) (DIFF passwds)

Quindi, in generale, se dobbiamo scambiare con sicurezza e convenienza allo stesso tempo, possiamo moltiplicare i due punteggi e forse una coppia di chiavi SSH (WITH passwd) è quella giusta da scegliere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.