¿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.|
+-----------------+
dlamblin
fuente
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.

marca
fuente
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.

Paul Murray
fuente
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.

Mella
fuente
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
27

Puede encontrar un análisis en profundidad del randomart VisualHostKey en el breve artículo The Drunken Bishop .

loomi
fuente
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 [email protected] -o VisualHostKey = yes

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

Para ver un ejemplo, puedes probar:

ssh [email protected] -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!

tmangin
fuente