¿Qué es randomart producido por ssh-keygen?


352

Cuando genera una clave, obtiene "randomart" de las versiones más recientes de OpenSSH. No puedo encontrar una explicación de por qué y para qué debo 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.|
+-----------------+

55
Otra pregunta que me gustaría hacer es; ¿Es seguro compartir su imagen de Randomart con otros? En otras palabras, dada una imagen de randomart como la anterior, ¿es posible realizar ingeniería inversa en la clave?
AndyJ0076

Respuestas:


259

El randomart está destinado a ser una forma más fácil para que los humanos validen las claves.

La validación normalmente se realiza mediante una comparación de cadenas sin sentido (es decir, la representación hexadecimal de la huella digital clave), que los humanos son bastante lentos e inexactos en la comparación. Randomart reemplaza esto con imágenes estructuradas que son más rápidas y fáciles de comparar.

Este documento "Visualización de hash: una nueva técnica para mejorar la seguridad en el mundo real", Perrig A. y Song D., 1999, Taller internacional sobre técnicas criptográficas y comercio electrónico (CrypTEC '99) " explica algunas técnicas y ventajas.


66
Si pudiera explicar por qué los humanos validan las claves, eso podría ayudar, porque, francamente, tiendo a poner mi clave pública en mi archivo Author_keys y terminar con ella.
dlamblin

43
@dlamblin: Generalmente no verificaría sus propias claves con esto. Sin embargo, sería útil para verificar la clave de host de una máquina remota. Una idea es que si inicia sesión en una máquina en particular desde varias ubicaciones (o no guarda su clave en su archivo conocido_hosts), podrá reconocer el "arte" de la clave del host. Si ese arte cambia repentinamente, debe tener cuidado de escribir su contraseña porque podría significar que se está produciendo un ataque de hombre en el medio en su conexión (o podría significar que el host acaba de cambiar sus claves para alguna otra razón).
Chris Johnsen

29
Uhm, ¿cuándo podría ver el arte de los anfitriones? (Creo que nunca lo hice). Solo vi esa imagen después de generar mi par de claves. Y con qué tendría que compararlo para reconocer el cambio 'repentino'.
DerMike

12
Apuesto a que el randomart se adhiere a un principio similar al de los hash para las verificaciones de integridad, a saber: una pequeña diferencia en la entrada genera una salida muy diferente. Eso significaría que solo tendrías que memorizar la forma aproximada del randomart esperado para poder notar que algo anda mal. Por supuesto, esto no funciona en la práctica cuando SSH et al no le muestran el randomart del host al que se está conectando (deberían hacerlo incluso cuando se conoce el host).
Alan Plum

2
Me imagino que estos son más útiles cuando las claves públicas se intercambian en persona para una verificación de integridad después de completar la copia.
jordanpg

198

Añadir

-o VisualHostKey=yes 

a su línea de comando, o poner

VisualHostKey=yes 

en su ~/.ssh/config.

Verá el randomart de la caja en la que está iniciando sesión. Si inicias sesión un día y el arte aleatorio es diferente (tu cerebro debería ir ¡Hey! ¡No lo reconozco!), Entonces tal vez alguien está pirateando, o algo así.

La idea es que no es necesario que lo hagas conscientemente. Una de las claves de una de nuestras máquinas parece una mariposa. Otro se parece a una polla (sí, nuestros cerebros son primitivos). Si inicia sesión todos los días, se acostumbra a las imágenes sin siquiera intentarlo.


99
No es bueno. Si ha iniciado sesión antes, es mucho mejor que la computadora lo reconozca utilizando una huella digital almacenada. La función solo debe usarse para iniciar sesión en nuevas máquinas.
Nicholas Wilson

57
Muy tarde a esta respuesta, pero vale la pena señalar que esto sería inmensamente útil si estuvieras iniciando sesión desde una máquina diferente que no tenía todos tus conocidos_hosts. En ese caso, la computadora no podría verificar si se conoce, pero el usuario debería poder ver "¡Eso se ve muy diferente de lo normal!" y abortar.
Xkeeper

99
Dejar que su computadora haga el reconocimiento es vulnerable a los hackers conocidos de su propia computadora que son pirateados. Al igual que no debería permitir que su computadora ingrese contraseñas por usted, sería mejor validar la clave del host usted mismo.
Marko Topolnik

37

Anuncio oficial: lanzamiento de OpenSSH 5.1

Introduzca la visualización ASCII de huellas dactilares SSH experimental en ssh (1) y ssh-keygen (1). La visualización de huellas digitales se controla mediante una nueva opción ssh_config (5) "VisualHostKey". La intención es representar las claves de host SSH en una forma visual que sea fácil de recuperar y rechazar las claves de host modificadas. Esta técnica está inspirada en los esquemas gráficos de visualización hash conocidos como "arte aleatorio [*]", y en las reflexiones de Dan Kaminsky en 23C3 en Berlín.

La visualización de huellas digitales actualmente está deshabilitada de forma predeterminada, ya que el algoritmo utilizado para generar el arte aleatorio aún está sujeto a cambios.


8
Vale la pena saber esa última oración. La información de OpenBSD Journal @ Undeadly.org sobre la versión de OpenSSH 6.8 dice: "Tenga en cuenta que las claves de host visual también serán diferentes". El software más nuevo muestra imágenes diferentes a las imágenes mostradas por el software anterior.
TOOGAM


11

El Randomart que se muestra después de la generación ssh-keygen es una representación gráfica de la clave que acaba de generar. Entonces:

  • Randomart no es realmente útil para el usuario que generó la clave ssh

  • el Randomart puede ser muy útil para un usuario que utiliza una conexión a través de SSH para conectarse a menudo al mismo servidor : si agregó la opción "-o VisualHostKey = yes" a su comando SSH:

    ssh user@domainname.com -o VisualHostKey = yes

Se mostrará el Randomart correspondiente a la clave pública del servidor.

Para ver un ejemplo, puedes probar:

ssh git@github.com -o VisualHostKey = yes

En el caso de que el usuario a menudo se conecte al mismo servidor, puede verificar rápida y fácilmente si reconoce o no el Randomart correspondiente a la clave pública de este servidor . ¡Lo que es más fácil y rápido que verificar la cadena de caracteres de la clave pública!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.