È sicuro fornire la mia chiave pubblica SSH per lavoro?


60

Attualmente lavoro in remoto per un certo numero di organizzazioni che hanno bisogno che io acceda regolarmente ai loro server per manutenzione e aggiornamenti. È sicuro aggiungere la mia chiave SSH pubblica RSA al .ssh/authorized_keysfile per consentirmi di accedere molto più velocemente / senza dover cercare le password? Opero presumendo che sarebbe impossibile generare la chiave privata da quella pubblica, ma ho ragione?

Facendo un ulteriore passo avanti, ci sarebbe qualche rischio per la sicurezza nel pubblicare i contenuti della mia chiave pubblica RSA su Internet? So che se la mia chiave privata viene ottenuta, ho molti problemi, ma a parte questo, ci sono davvero possibili minacce alla sicurezza?


Risposte:


77

Sì, è impossibile recuperare la chiave privata dalla chiave pubblica. Se fosse possibile, RSA sarebbe sostanzialmente rotto, e questa sarebbe una grande novità (rompere RSA non solo romperebbe molta sicurezza della comunicazione su Internet, ma consentirebbe anche tutti i tipi di frode bancaria, tra gli altri).

Effettuare l'accesso con una chiave pubblica anziché una password tende infatti ad aumentare la sicurezza. Se la tua password non è abbastanza forte, può essere forzata da un aggressore con una larghezza di banda sufficiente. Se l'attaccante non ha una copia del file della chiave privata, la chiave RSA non può essere forzata in modo bruto (una chiave a 1024 bit equivale a qualcosa come una password di 160 caratteri fatta di lettere e cifre casuali sensibili) . Qualcuno che ti guarda alle spalle potrebbe essere in grado di vedere la tua password e la tua passphrase della chiave, ma con una chiave dovrebbero anche ottenere la chiave.

Le chiavi private non sono sempre più sicure delle password. Se l'autore dell'attacco ottiene una copia dei file della chiave privata (ad esempio rubando il laptop o il supporto di backup), può provare a forzare la passphrase e può farlo ad alta velocità poiché non è possibile limitare il tasso (a differenza di ipotesi di password che devono essere fatte online). Se la tua passphrase è abbastanza buona e noti immediatamente il furto, avrai comunque il tempo di revocare la chiave.

Una chiave pubblica introduce un elemento di esposizione alla privacy: se qualcuno sa che hai usato la stessa chiave pubblica per accedere a A e per accedere a B, sa che la stessa persona che ha effettuato l'accesso in A e B. Il possesso esclusivo della chiave pubblica ti rende sospetto che tu abbia anche la chiave privata, quindi perdi un po 'di anonimato. Ma di solito è minore, soprattutto se stai memorizzando la chiave in ~/.sshcui solo gli amministratori di sistema (che sanno anche da quale indirizzo IP hai effettuato l'accesso) possono vederlo.

A parte queste considerazioni sulla sicurezza, una chiave privata presenta molti vantaggi pratici. Non è necessario digitare la password così spesso, e in particolare è possibile eseguire script automatici che non richiedono una volta immessa la chiave in ssh-agent o simili. Non è necessario digitare la password così spesso, quindi puoi permetterti di renderlo più entropico (più lungo, più difficile da digitare). Non è necessario digitare la password così spesso, quindi c'è meno rischio che venga curiosata da un osservatore umano o da una telecamera.


@NaftuliTzviKay In realtà c'è qualcosa che dovrebbe essere considerato qui che è trascurato. Per usare la tua chiave pubblica, il sistema dal quale stai sborsando deve avere accesso alla tua chiave privata. Va bene. Se quella chiave privata è memorizzata su quel sistema, è vulnerabile e il sistema remoto diventa vulnerabile. Due cose aiutano in questo, cartelle home crittografate e una password sulla chiave. Pertanto, per ottenere il pieno aumento della sicurezza offerto dalla PKI, si perderà una certa efficienza. Tu o la tua organizzazione, dovete fare un'analisi dei rischi per determinare dove tracciare la linea.
Xalorous,

16

La risposta di Gilles è generalmente buona, tranne

... specialmente se stai memorizzando la chiave in ~ / .ssh dove solo gli amministratori di sistema (che sanno anche da quale indirizzo IP hai effettuato l'accesso) possono vederlo.

Le tue chiavi ssh ~/.sshpossono anche essere lette da qualsiasi software in esecuzione con il tuo account. Quale è probabilmente la maggior parte del software che esegui. Quindi devi fidarti di quel software e di quelli che lo hanno scritto.


2
Dovresti sempre usare chiavi SSH crittografate per questo motivo
ItalyPaleAle
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.