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.|
+-----------------+

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.


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.


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.


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,


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żytkownik@domenaname.com -o VisualHostKey = tak

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

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

ssh git@github.com -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!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.