Co to jest randomart produkowany przez ssh-keygen?

352

Po wygenerowaniu klucza otrzymujesz „randomart” z nowszych wersji OpenSSH. Nie jestem w stanie znaleźć wyjaśnienia, dlaczego i do czego mam go używać.

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
źródło
5
Kolejne pytanie, które chciałbym zadać, to; czy można bezpiecznie udostępniać innym swoje zdjęcie losowe? Innymi słowy, biorąc pod uwagę losowy obraz, taki jak powyższy, czy jest możliwe ponowne zaprojektowanie tego z powrotem do klucza?
AndyJ0076

Odpowiedzi:

259

Randartart ma ułatwić ludziom sprawdzanie poprawności kluczy.

Sprawdzanie poprawności zwykle odbywa się przez porównanie ciągów bez znaczenia (tj. Szesnastkową reprezentację kluczowego odcisku palca), które ludzie są dość powolni i niedokładni przy porównywaniu. Randomart zastępuje to strukturalnymi obrazami, które są szybsze i łatwiejsze do porównania.

W artykule „Wizualizacja skrótu: nowa technika poprawiająca rzeczywiste bezpieczeństwo”, Perrig A. i Song D., 1999, Międzynarodowe warsztaty nt. Technik kryptograficznych i handlu elektronicznego (CrypTEC '99) ” wyjaśnia niektóre techniki i zalety.

znak
źródło
66
Jeśli mógłbyś tylko wyjaśnić, dlaczego ludzie sprawdzają poprawność kluczy, to mogłoby pomóc, ponieważ szczerze mówiąc, po prostu umieszczam mój klucz publiczny w pliku autoryzowanych kluczy i gotowe.
dlamblin
43
@dlamblin: Zasadniczo nie weryfikowałbyś własnych kluczy. Byłoby to jednak przydatne do weryfikacji klucza hosta zdalnego komputera. Jednym z pomysłów jest to, że jeśli zalogujesz się na konkretnej maszynie z różnych lokalizacji (lub nie zapiszesz jej klucza w pliku znanego_hosta), będziesz w stanie rozpoznać „sztukę” klucza hosta. Jeśli ta grafika nagle się zmieniła, powinieneś uważać na wpisanie hasła, ponieważ może to oznaczać, że w twoim połączeniu trwa atak typu man-in-the-middle (lub może to oznaczać, że host właśnie zmienił klucze dla innych powód).
Chris Johnsen
29
Uhm, kiedy mogłem zobaczyć dzieła gospodarzy? (Chyba nigdy tego nie widziałem). Widziałem taki obraz dopiero po wygenerowaniu mojej pary kluczy. I do czego musiałbym to porównać, aby rozpoznać „nagłą” zmianę.
DerMike
12
Postawiłbym, że randomart przestrzega podobnej zasady jak skróty do sprawdzania integralności, a mianowicie: niewielka różnica w danych wejściowych generuje zupełnie inny wynik. Oznaczałoby to, że musiałbyś zapamiętać szorstki kształt oczekiwanej losowej sztuki, aby móc zauważyć, że coś jest nie tak. Oczywiście nie działa to w praktyce, gdy SSH i in. Nie pokazują losowej liczby hosta, z którym się łączysz (powinni to zrobić, nawet gdy host jest znany).
Alan Plum
2
Myślę, że są one najbardziej przydatne, gdy klucze publiczne są wymieniane osobiście w celu sprawdzenia integralności po zakończeniu kopiowania.
jordanpg
198

Dodaj

-o VisualHostKey=yes 

do linii poleceń lub wpisz

VisualHostKey=yes 

w twoim ~/.ssh/config.

Zobaczysz losową część pola, na które się logujesz. Jeśli któregoś dnia się zalogujesz, a przypadkowa grafika jest inna (twój mózg powinien iść Hej! Nie rozumiem tego!), To może ktoś hakuje lub coś takiego.

Chodzi o to, że nie musisz tego świadomie robić. Jeden z kluczy do jednej z naszych maszyn wygląda trochę jak motyl. Inny wygląda jak kutas (tak, nasze mózgi są prymitywne). Jeśli logujesz się codziennie, przyzwyczajasz się do obrazów, nawet nie próbując.

Paul Murray
źródło
9
Nie najlepiej. Jeśli zalogowałeś się wcześniej, komputer lepiej rozpoznaje za pomocą zapisanego odcisku palca. Ta funkcja jest przeznaczona wyłącznie do logowania na nowych komputerach.
Nicholas Wilson
57
O wiele za późno na tę odpowiedź, ale warto zauważyć, że byłoby to niezwykle przydatne, gdybyś logował się z innego komputera, który nie miał wszystkich znanych hostów. W takim przypadku komputer nie byłby w stanie sprawdzić, czy jest znany, ale użytkownik powinien zobaczyć „To wygląda inaczej niż zwykle!” i przerwać.
Xkeeper
9
Pozwolenie komputerowi na rozpoznanie jest podatne na włamanie do znanych hostów twojego komputera. Podobnie jak nie powinieneś pozwalać komputerowi na wpisywanie haseł, lepiej sam zweryfikuj klucz hosta.
Marko Topolnik,
37

Oficjalne ogłoszenie: Wydano OpenSSH 5.1

Przedstaw eksperymentalną wizualizację odcisku palca ASCII SSH w ssh (1) i ssh-keygen (1). Wizualne wyświetlanie odcisków palców jest kontrolowane przez nową opcję ssh_config (5) „VisualHostKey”. Chodzi o to, aby renderować klucze hosta SSH w formie wizualnej, którą można łatwo przywołać i odrzucić zmienione klucze hosta. Technika ta zainspirowana graficznymi schematami wizualizacji skrótów zwanymi „sztuką losową [*]” oraz przemyśleniami Dana Kamińskiego w 23C3 w Berlinie.

Wizualizacja odcisków palców jest obecnie domyślnie wyłączona, ponieważ algorytm używany do generowania losowej grafiki nadal może ulec zmianie.

Nacięcie
źródło
8
To ostatnie zdanie jest rzeczywiście warte poznania. Informacje o wydaniu OpenSSH 6.8 w OpenBSD Journal @ Undeadly.org: „Należy pamiętać, że wizualne klucze hosta również będą inne”. Nowsze oprogramowanie pokazuje inne obrazy niż obrazy pokazane przez starsze oprogramowanie.
TOOGAM,
27

Szczegółową analizę randomartu VisualHostKey można znaleźć w krótkim artykule The Drunken Bishop .

Loomi
źródło
11

Randomart wyświetlany po wygenerowaniu klucza ssh jest graficzną reprezentacją właśnie wygenerowanego klucza. Następnie:

  • Randomart nie jest tak naprawdę przydatny dla użytkownika, który wygenerował klucz ssh

  • Randomart może być bardzo przydatny dla użytkownika korzystającego z połączenia przez SSH do częstego łączenia się z tym samym serwerem : jeśli dodał opcję „-o VisualHostKey = yes” do swojej komendy SSH:

    ssh uż[email protected] -o VisualHostKey = tak

wyświetlony zostanie Randomart odpowiadający kluczowi publicznemu serwera.

Aby zobaczyć przykład, możesz spróbować:

ssh [email protected] -o VisualHostKey = tak

W przypadku, gdy użytkownik często łączy się z tym samym serwerem, może szybko i łatwo sprawdzić, czy rozpoznaje Randomart odpowiadający kluczowi publicznemu tego serwera, czy nie. Co jest łatwiejsze i szybsze niż sprawdzanie ciągu znaków samego klucza publicznego!

tmangin
źródło