Cosa è randomart prodotto da ssh-keygen?


352

Quando si genera una chiave, si ottiene "randomart" dalle versioni più recenti di OpenSSH. Non riesco a trovare una spiegazione del perché e per cosa dovrei usarlo.

Generating public/private rsa key pair.
The key fingerprint is:
05:1e:1e:c1:ac:b9:d1:1c:6a:60:ce:0f:77:6c:78:47 you@i
The key's randomart image is:
+--[ RSA 2048]----+
|       o=.       |
|    o  o++E      |
|   + . Ooo.      |
|    + O B..      |
|     = *S.       |
|      o          |
|                 |
|                 |
|                 |
+-----------------+

Generating public/private dsa key pair.
The key fingerprint is:
b6:dd:b7:1f:bc:25:31:d3:12:f4:92:1c:0b:93:5f:4b you@i
The key's randomart image is:
+--[ DSA 1024]----+
|            o.o  |
|            .= E.|
|             .B.o|
|              .= |
|        S     = .|
|       . o .  .= |
|        . . . oo.|
|             . o+|
|              .o.|
+-----------------+

5
Un'altra domanda che vorrei porre è; è sicuro condividere la tua immagine randomart con altri? In altre parole, data un'immagine random come quella sopra, è possibile riprogrammare questa chiave alla chiave?
AndyJ0076,

Risposte:


259

La randomart è pensata per essere un modo più semplice per gli umani di convalidare le chiavi.

La convalida viene normalmente effettuata mediante un confronto di stringhe insignificanti (ovvero la rappresentazione esadecimale dell'impronta digitale chiave), che gli umani sono piuttosto lenti e imprecisi nel confronto. Randomart sostituisce questo con immagini strutturate che sono più veloci e più facili da confrontare.

Questo documento "Hash Visualization: una nuova tecnica per migliorare la sicurezza del mondo reale", Perrig A. e Song D., 1999, International Workshop on Cryptographic Techniques and E-Commerce (CrypTEC '99) " spiega alcune tecniche e vantaggi.


66
Se potessi semplicemente spiegare perché gli umani convalidano le chiavi, questo potrebbe aiutare, perché sinceramente tendo a mettere la mia chiave pubblica nel mio file authorized_keys e finirla.
dlamblin,

43
@dlamblin: in genere non verifichi le tue chiavi con questo. Sarebbe comunque utile per verificare la chiave host di una macchina remota. Un'idea è che se si accede a un determinato computer da varie posizioni (o non si salva la sua chiave nel file known_hosts), si sarà in grado di riconoscere "l'arte" della chiave dell'host. Se quell'arte è cambiata improvvisamente, dovresti essere cauto nel digitare la tua password perché potrebbe significare che è in corso un attacco man-in-the-middle sulla tua connessione (o potrebbe significare che l'host ha appena cambiato le sue chiavi per qualche altro Motivo).
Chris Johnsen,

29
Uhm, quando potrei vedere l'arte dei padroni di casa? (Penso di non averlo mai fatto.) Ho visto un'immagine del genere solo dopo aver generato la mia coppia di chiavi. E a cosa dovrei confrontarlo per riconoscere un cambiamento "improvviso".
DerMike,

12
Scommetto che randomart aderisce a un principio simile a quello degli hash per i controlli di integrità, vale a dire: una piccola differenza nell'input genera un output molto diverso. Ciò significherebbe che dovresti solo memorizzare la forma approssimativa della randomart prevista per essere in grado di notare che qualcosa non va. Naturalmente questo non funziona in pratica quando SSH et al non ti mostrano la randomart dell'host a cui ti stai connettendo (dovrebbero farlo anche quando l'host è noto).
Alan Plum,

2
Immagino che questi siano molto utili quando le chiavi pubbliche vengono scambiate di persona per un controllo di integrità al termine della copia.
jordanpg,

198

Inserisci

-o VisualHostKey=yes 

alla tua riga di comando, o put

VisualHostKey=yes 

nel tuo ~/.ssh/config.

Vedrai la randomart della casella su cui stai effettuando l'accesso. Se accedi un giorno e l'arte a caso è diversa (il tuo cervello dovrebbe andare Hey! Non lo riconosco!), Allora forse qualcuno sta hacking o qualcosa del genere.

L'idea è che non è necessario farlo consapevolmente. Una delle chiavi di una delle nostre macchine sembra una farfalla. Un altro tipo sembra un cazzo (sì, il nostro cervello è primitivo). Se accedi ogni giorno, ti abitui alle immagini senza nemmeno provarci.


9
Non buono. Se hai effettuato l'accesso prima, è molto meglio che il computer esegua il riconoscimento utilizzando un'impronta digitale memorizzata. La funzione è pensata solo per essere utilizzata per accedere a nuove macchine.
Nicholas Wilson,

57
Molto tardi a questa risposta, ma vale la pena sottolineare che questo sarebbe immensamente utile se si stesse effettuando il login da una macchina diversa che non aveva tutti i tuoi host noti. In tal caso, il computer non sarebbe in grado di verificare che sia noto, ma l'utente dovrebbe essere in grado di vedere "Sembra molto diverso dal normale!" e interrompere.
Xkeeper,

9
Consentire al computer di eseguire il riconoscimento è vulnerabile alla violazione degli host noti del proprio computer. Proprio come non dovresti lasciare che il tuo computer inserisca le password per te, faresti meglio a convalidare tu stesso la chiave dell'host.
Marko Topolnik,

37

Annuncio ufficiale: rilasciato OpenSSH 5.1

Introdurre la visualizzazione ASCII dell'impronta digitale SSH sperimentale su ssh (1) e ssh-keygen (1). La visualizzazione visiva delle impronte digitali è controllata da una nuova opzione ssh_config (5) "VisualHostKey". L'intento è di rendere le chiavi dell'host SSH in una forma visiva che sia suscettibile di facile richiamo e rifiuto delle chiavi dell'host modificate. Questa tecnica si ispira agli schemi grafici di visualizzazione dell'hash noti come "random art [*]" e alle riflessioni di Dan Kaminsky al 23C3 di Berlino.

La visualizzazione delle impronte digitali in è attualmente disabilitata per impostazione predefinita, poiché l'algoritmo utilizzato per generare l'arte casuale è ancora soggetto a modifiche.


8
Quest'ultima frase vale davvero la pena di sapere. OpenBSD Journal @ Undeadly.org informazioni sugli stati di rilascio di OpenSSH 6.8 , "Notare che anche le chiavi dell'host visivo saranno diverse." Il software più recente mostra immagini diverse rispetto a quelle mostrate dal software precedente.
TOOGAM il


11

La Randomart visualizzata dopo la generazione di ssh-keygen è una rappresentazione grafica della chiave appena generata. Poi:

  • il Randomart non è davvero utile per l' utente che ha generato il tasto ssh

  • Randomart può essere molto utile per un utente che utilizza una connessione tramite SSH per connettersi spesso allo stesso server : se ha aggiunto l'opzione "-o VisualHostKey = yes" al suo comando SSH:

    ssh user@domainname.com -o VisualHostKey = yes

verrà visualizzata la Randomart corrispondente alla chiave pubblica del server.

Per vedere un esempio, puoi provare:

ssh git@github.com -o VisualHostKey = yes

Nel caso in cui l'utente si colleghi spesso allo stesso server, può verificare rapidamente e facilmente se riconosce la Randomart corrispondente alla chiave pubblica di questo server o meno. Che è più facile e veloce che controllare la stringa di caratteri della chiave pubblica stessa!

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.