Esiste un rischio per la sicurezza nella divulgazione del file SSH known_hosts?


32

La prossima settimana parlerò a una conferenza di alcuni strumenti software che ho creato. Il mio laptop verrà mostrato sullo schermo di un proiettore durante questa presentazione. La presentazione sarà filmata e pubblicata su YouTube. Se, per qualche motivo, ho occasione di aprire e modificare il mio ~/.ssh/known_hostsfile durante questa presentazione, dovrei disconnettere il proiettore mentre lo faccio? Esistono rischi per la sicurezza nella divulgazione del mio file known_hosts?


7
Perché non sostituire semplicemente il tuo attuale known_hostscon uno falso durante la presentazione?
Sven

1
... o se non si controlla in primo luogo l'impronta digitale dell'host, utilizzare qualcosa come ssh -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no user@hostaggirare la domanda dell'impronta digitale ed evitare i controlli contro gli host conosciuti esistenti.
Lekensteyn,

@ Anche il file known_hosts non fa parte della presentazione di per sé, solo che il software che sto dimostrando di tanto in tanto mi richiede di modificare i miei known_hosts. Il pubblico non ha bisogno di vedere questo (quindi userò l'editing cieco come hanno suggerito diversi commentatori qui) ma la modifica di un falso file known_hosts semplicemente non raggiungerebbe il mio obiettivo.
Matt Korostoff,

Risposte:


43

Il file known_hosts contiene le chiavi pubbliche attendibili per gli host a cui ti sei connesso in passato. Queste chiavi pubbliche possono essere ottenute semplicemente provando a connettersi a questi host. Pertanto non è un rischio per la sicurezza in sé.

Ma: contiene una cronologia degli host a cui sei connesso. Le informazioni possono essere utilizzate, ad esempio, da un potenziale aggressore nell'infrastruttura dell'organizzazione dell'impronta. Inoltre informa i potenziali aggressori che probabilmente hai accesso a determinati host e che rubare il tuo laptop darà loro accesso.

Modifica: per evitare di mostrare il file known_hosts, ti consiglio di utilizzare l' ssh-keygenutilità. ssh-keygen -R ssh1.example.orgad esempio rimuove le chiavi attendibili per ssh1.example.orgda known_hosts.


15

Non c'è nulla di particolarmente pericoloso in questo. Tuttavia, potresti non voler divulgare queste informazioni identificative. A volte l'esistenza di ospiti rivela buone linee di attacco per coloro che sono inclini. È possibile utilizzare HashKnownHostso modificare il file senza guardarlo.


Modifica cieca:
sed -i 25d .ssh/known_hostseliminerà la riga 25 senza mettere alcun contenuto sullo schermo.

HashKnownHosts
Indica che ssh (1) deve includere nomi e indirizzi host hash quando vengono aggiunti a ~ / .ssh / known_hosts. Questi nomi con hash possono essere usati normalmente da ssh (1) e sshd (8), ma non rivelano informazioni identificative se il contenuto del file viene divulgato. L'impostazione predefinita è "no". Si noti che i nomi e gli indirizzi esistenti nei file host noti non verranno convertiti automaticamente, ma potrebbero essere sottoposti a hash manuale usando ssh-keygen (1).


4
Invece di calcolare manualmente il numero di riga e rimuoverlo con sed, puoi anche usare ssh-keygen -R example.com.
Lekensteyn,

4
Puoi anche usare ssh-keygen -H -f ~/.ssh/known_hostsl'hash per tutti i nomi / indirizzi nel file.
Barmar,
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.