Qu'est-ce que randomart produit par ssh-keygen?

352

Lorsque vous générez une clé, vous obtenez "randomart" à partir de versions plus récentes d'OpenSSH. Je suis incapable de trouver une explication de pourquoi, et pourquoi je suis censé l'utiliser.

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.|
+-----------------+
Dlamblin
la source
5
Une autre question que j'aimerais poser est: Est-il prudent de partager votre image randomart avec d'autres? En d'autres termes, étant donné une image aléatoire telle que celle ci-dessus, est-il possible de procéder à une ingénierie inverse pour revenir à la clé?
AndyJ0076

Réponses:

259

Le randomart est censé être un moyen plus facile pour les humains de valider les clés.

La validation se fait normalement en comparant des chaînes sans signification (c'est-à-dire la représentation hexadécimale de l'empreinte digitale de la clé), que les humains sont plutôt lents et inexactes à comparer. Randomart remplace ceci par des images structurées plus rapides et plus faciles à comparer.

Ce document "Visualisation de hachage: une nouvelle technique pour améliorer la sécurité dans le monde réel", Perrig A. et Song D., 1999, Atelier international sur les techniques cryptographiques et le commerce électronique (CrypTEC '99) " explique certaines techniques et avantages.

marque
la source
66
Si vous pouviez juste expliquer pourquoi les humains valident les clés, cela pourrait aider, parce que franchement, j'ai tendance à simplement mettre ma clé publique dans mon fichier authorised_keys et à en finir.
dlamblin
43
@ dlamblin: En général, vous ne vérifieriez pas vos propres clés avec ceci. Cela serait toutefois utile pour vérifier la clé d’hôte d’une machine distante. Une idée est que si vous vous connectez à une machine particulière à partir de différents emplacements (ou que vous n'enregistrez pas sa clé dans votre fichier known_hosts), vous serez en mesure de reconnaître «l'art» de la clé de l'hôte. Si cet art change soudainement, vous devez vous méfier de la saisie de votre mot de passe car cela pourrait signifier qu'une attaque de type "homme du milieu" est en cours sur votre connexion (ou cela pourrait signifier que l'hôte vient de changer ses clés pour un autre raison).
Chris Johnsen
29
Uhm, quand pourrais-je voir l'art des hôtes? (Je pense ne l'avoir jamais fait.) Je n'ai vu cette image qu'après avoir généré ma paire de clés. Et à quoi devrais-je comparer pour reconnaître un changement «soudain».
DerMike
12
Je parie que randomart adhère à un principe similaire à celui des hachages pour les contrôles d'intégrité, à savoir: une petite différence dans l'entrée génère une sortie très différente. Cela signifierait que vous devez simplement mémoriser la forme approximative de l’aléatoire attendu pour pouvoir remarquer que quelque chose ne va pas. Bien sûr, cela ne fonctionne pas dans la pratique lorsque SSH et al ne vous montrent pas le nom aléatoire de l'hôte auquel vous vous connectez (ils devraient le faire même lorsque l'hôte est connu).
Alan Plum
2
J'imagine que ce sont plus utiles lorsque les clés publiques sont échangées en personne pour un contrôle d'intégrité une fois la copie terminée.
jordanpg
198

Ajouter

-o VisualHostKey=yes 

à votre ligne de commande, ou mettez

VisualHostKey=yes 

dans votre ~/.ssh/config.

Vous verrez le randomart de la boîte que vous vous connectez. Si vous vous connectez un jour et que l'art aléatoire est différent (votre cerveau devrait aller Hé! Je ne le reconnais pas!), Alors peut-être que quelqu'un pirate, ou quelque chose du genre.

L'idée est que vous n'avez pas consciemment besoin de le faire. L'une des clés de l'une de nos machines ressemble un peu à un papillon. Un autre ressemble un peu à une bite (oui, notre cerveau est primitif). Si vous vous connectez tous les jours, vous vous habituerez aux images sans même essayer.

Paul Murray
la source
9
Pas génial. Si vous vous êtes déjà connecté auparavant, il est bien préférable que l'ordinateur vous reconnaisse à l'aide d'une empreinte digitale stockée. Cette fonctionnalité est uniquement destinée à être utilisée pour se connecter à de nouvelles machines.
Nicholas Wilson
57
Nous sommes arrivés trop tard à cette réponse, mais il serait utile de préciser que cela serait extrêmement utile si vous vous connectiez à partir d'une machine différente ne possédant pas tous vos hôtes connus. Dans ce cas, l'ordinateur ne pourrait pas vérifier qu'il est connu, mais l'utilisateur devrait pouvoir voir "Cela a l'air très différent de la normale!" et avorter.
Xkeeper
9
Laisser votre ordinateur faire la reconnaissance est vulnérable au piratage des hôtes connus de votre propre ordinateur. Tout comme vous ne devriez pas laisser votre ordinateur entrer les mots de passe pour vous, vous feriez mieux de valider vous-même la clé de l'hôte.
Marko Topolnik
37

Annonce officielle: OpenSSH 5.1 disponible

Introduisez la visualisation expérimentale ASCII d'empreinte digitale SSH dans ssh (1) et ssh-keygen (1). L’affichage des empreintes visuelles est contrôlé par une nouvelle option "VisualHostKey" de ssh_config (5). Le but est de rendre les clés d’hôte SSH sous une forme visuelle permettant un rappel et un rejet faciles des clés d’hôte modifiées. Cette technique est inspirée des schémas de visualisation graphique du hachage connus sous le nom d '"art aléatoire" [*] "et des réflexions de Dan Kaminsky au 23C3 à Berlin.

La visualisation d'empreintes digitales est actuellement désactivée par défaut, car l'algorithme utilisé pour générer l'art aléatoire est toujours sujet à modification.

pseudo
la source
8
Cette dernière phrase vaut la peine d’être connue. OpenBSD Journal @ Undeadly.org informations sur OpenSSH 6.8 , "Veuillez noter que les clés d’hôte visuelles seront également différentes." Un logiciel plus récent affiche des images différentes de celles présentées par l'ancien logiciel.
TOOGAM
27

Vous pouvez trouver une analyse approfondie de la structure aléatoire de VisualHostKey dans le court article intitulé The Drunken Bishop .

loomi
la source
11

Le Randomart affiché après la génération ssh-keygen est une représentation graphique de la clé que vous venez de générer. Ensuite:

  • le Randomart n'est pas vraiment utile pour l' utilisateur qui a généré la clé ssh

  • Randomart peut être très utile pour un utilisateur utilisant une connexion via SSH pour se connecter souvent au même serveur : s’il a ajouté l’option "-o VisualHostKey = yes" à sa commande SSH:

    ssh [email protected] -o VisualHostKey = yes

le Randomart correspondant à la clé publique du serveur sera affiché.

Pour voir un exemple, vous pouvez essayer:

ssh [email protected] -o VisualHostKey = yes

Dans le cas où l'utilisateur se connecte souvent au même serveur, il peut alors vérifier rapidement et facilement s'il reconnaît ou non le Randomart correspondant à la clé publique de ce serveur . Ce qui est plus facile et plus rapide que de vérifier la chaîne de caractères de la clé publique elle-même!

tmangin
la source