Was ist zufällige Kunst, die von ssh-keygen erzeugt wird?

352

Wenn Sie einen Schlüssel generieren, erhalten Sie "randomart" von neueren Versionen von OpenSSH. Ich kann keine Erklärung dafür finden, warum und wofür ich es verwenden soll.

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
quelle
5
Eine andere Frage, die ich stellen möchte, ist: Ist es sicher, dein zufälliges Bild mit anderen zu teilen? Mit anderen Worten, ist es bei einem zufälligen Bild wie dem oben genannten möglich, dies auf den Schlüssel zurückzugreifen?
AndyJ0076

Antworten:

259

Der Zufallsmodus soll den Menschen die Validierung von Schlüsseln erleichtern.

Die Validierung erfolgt normalerweise durch einen Vergleich bedeutungsloser Zeichenfolgen (dh der hexadezimalen Darstellung des Schlüsselfingerabdrucks), die von Menschen nur sehr langsam und ungenau verglichen werden. Randomart ersetzt dies durch strukturierte Bilder, die schneller und einfacher zu vergleichen sind.

In diesem Artikel "Hash-Visualisierung: Eine neue Technik zur Verbesserung der Sicherheit in der realen Welt", Perrig A. und Song D., 1999, Internationaler Workshop für kryptografische Techniken und E-Commerce (CrypTEC '99) , werden einige Techniken und Vorteile erläutert.

Kennzeichen
quelle
66
Wenn Sie nur erklären könnten, warum Menschen Schlüssel validieren, könnte das helfen, denn ehrlich gesagt neige ich dazu, meinen öffentlichen Schlüssel einfach in meine authorized_keys-Datei zu schreiben und damit fertig zu sein.
Dlamblin
43
@dlamblin: Generell würden Sie Ihre eigenen Schlüssel damit nicht verifizieren. Dies ist jedoch hilfreich, um den Hostschlüssel eines Remotecomputers zu überprüfen. Wenn Sie sich von verschiedenen Orten aus bei einem bestimmten Computer anmelden (oder den Schlüssel nicht in Ihrer Datei known_hosts speichern), können Sie die "Kunst" des Hostschlüssels erkennen. Wenn sich diese Art plötzlich ändert, sollten Sie vorsichtig sein, Ihr Passwort einzugeben, da dies bedeuten könnte, dass ein Man-in-the-Middle-Angriff auf Ihre Verbindung ausgeführt wird (oder der Host hat gerade seine Schlüssel für einen anderen geändert) Grund).
Chris Johnsen
29
Ähm, wann könnte ich die Kunst des Gastgebers sehen? (Ich glaube, ich habe es nie getan.) Ich habe ein solches Bild erst gesehen, nachdem ich mein Schlüsselpaar erstellt hatte. Und womit müsste ich es vergleichen, um "plötzliche" Veränderungen zu erkennen.
DerMike
12
Ich würde wetten, dass der Zufallsgenerator einem ähnlichen Prinzip wie Hashes für Integritätsprüfungen folgt, nämlich: Ein kleiner Unterschied in der Eingabe erzeugt eine völlig andere Ausgabe. Das würde bedeuten, dass Sie sich nur die grobe Form des erwarteten Zufalls merken müssten, um feststellen zu können, dass etwas nicht stimmt. In der Praxis funktioniert dies natürlich nicht, wenn SSH et al. Den Zufallsgenerator des Hosts, zu dem Sie eine Verbindung herstellen, nicht anzeigt (dies sollte auch dann geschehen, wenn der Host bekannt ist).
Alan Plum
2
Ich stelle mir vor, dass dies am nützlichsten ist, wenn öffentliche Schlüssel persönlich gegen eine Integritätsprüfung ausgetauscht werden, nachdem die Kopie vollständig ist.
jordanpg
198

Hinzufügen

-o VisualHostKey=yes 

zu Ihrer Kommandozeile, oder setzen

VisualHostKey=yes 

in deinem ~/.ssh/config.

Sie sehen die zufällige Auswahl der Box, auf der Sie sich anmelden. Wenn du dich eines Tages anmeldest und die zufällige Kunst anders ist (dein Gehirn sollte gehen Hey! Ich erkenne das nicht!), Dann hackt vielleicht jemand oder so.

Die Idee ist, dass Sie es nicht bewusst tun müssen. Einer der Schlüssel für eine unserer Maschinen sieht aus wie ein Schmetterling. Ein anderes sieht irgendwie aus wie ein Schwanz (ja, unser Gehirn ist primitiv). Wenn Sie sich jeden Tag anmelden, gewöhnen Sie sich an die Bilder, ohne es zu versuchen.

Paul Murray
quelle
9
Nicht gut. Wenn Sie sich bereits angemeldet haben, ist es für den Computer wesentlich besser, die Erkennung mithilfe eines gespeicherten Fingerabdrucks für Sie durchzuführen. Die Funktion ist nur dazu gedacht, sich bei neuen Maschinen anzumelden.
Nicholas Wilson
57
Es ist viel zu spät zu dieser Antwort, aber es lohnt sich darauf hinzuweisen, dass dies äußerst nützlich wäre, wenn Sie sich von einem anderen Computer aus anmelden würden, auf dem nicht alle bekannten_Hosts vorhanden waren. In diesem Fall kann der Computer nicht überprüfen, ob er bekannt ist, der Benutzer sollte jedoch die Meldung "Das sieht anders aus als normal!" und abbrechen.
Xkeeper
9
Wenn Sie Ihren Computer die Erkennung durchführen lassen, ist dies für die bekannten Hosts Ihres eigenen Computers anfällig, die gehackt werden. Ganz so, als ob Sie nicht zulassen sollten, dass Ihr Computer Passwörter für Sie eingibt, sollten Sie den Schlüssel des Hosts selbst überprüfen.
Marko Topolnik
37

Offizielle Ankündigung: OpenSSH 5.1 veröffentlicht

Führen Sie die experimentelle SSH-Fingerabdruck-ASCII-Visualisierung in ssh (1) und ssh-keygen (1) ein. Die visuelle Anzeige des Fingerabdrucks wird durch die neue Option "VisualHostKey" von ssh_config (5) gesteuert. Ziel ist es, SSH-Hostschlüssel in einer visuellen Form wiederzugeben, die das Abrufen und Zurückweisen geänderter Hostschlüssel erleichtert. Diese Technik ist inspiriert von den grafischen Hash-Visualisierungsschemata, die als "random art [*]" bekannt sind, und von Dan Kaminskys Überlegungen bei 23C3 in Berlin.

Die Fingerabdruckvisualisierung in ist derzeit standardmäßig deaktiviert, da sich der Algorithmus zur Erzeugung der zufälligen Grafik noch ändern kann.

Nick
quelle
8
Dieser letzte Satz ist in der Tat wissenswert. OpenBSD Journal @ Undeadly.org informiert Sie über den Release-Status von OpenSSH 6.8 . Neuere Software zeigt andere Bilder als die Bilder der älteren Software.
TOOGAM
27

Eine detaillierte Analyse des VisualHostKey-Zufalls finden Sie in der Kurzarbeit The Drunken Bishop .

loomi
quelle
11

Das nach der ssh-keygen-Generierung angezeigte Zufallsdiagramm ist eine grafische Darstellung des soeben generierten Schlüssels. Dann:

  • Der Randomart ist für den Benutzer, der den SSH-Schlüssel generiert hat, nicht wirklich nützlich

  • Der Randomart kann für einen Benutzer, der eine Verbindung über SSH verwendet, sehr nützlich sein , um häufig eine Verbindung zu demselben Server herzustellen: Wenn er die Option "-o VisualHostKey = yes" zu seinem SSH-Befehl hinzugefügt hat:

    ssh [email protected] -o VisualHostKey = yes

Der dem öffentlichen Schlüssel des Servers entsprechende Zufallsart wird angezeigt.

Um ein Beispiel zu sehen, können Sie versuchen:

ssh [email protected] -o VisualHostKey = yes

In dem Fall, dass der Benutzer häufig eine Verbindung zu demselben Server herstellt, kann er schnell und einfach überprüfen, ob er den dem öffentlichen Schlüssel dieses Servers entsprechenden Randomart erkennt oder nicht. Was einfacher und schneller ist, als die Zeichenfolge des öffentlichen Schlüssels selbst zu überprüfen!

tmangin
quelle