2010-08-27 14 views
8

Necesito crear huellas dactilares para claves RSA que los usuarios puedan memorizar o reconocer al menos con facilidad. Se me han ocurrido las siguientes ideas:¿Huellas dactilares fáciles de recordar para los datos?

  • Divida el hash SHA1 en porciones de, digamos 4 bits, y úselos como coordenadas para las curvas de Bézier. Dibuja las splines y usa esa imagen como huella digital.
  • Usa el hash SHA1 como entrada para algún algoritmo fractal. El resultado debería ser exclusivo para una entrada dada, es decir, la salida no puede ser un cuadrado sólido la mitad del tiempo.
  • Localice el hash SHA1 en las entradas de una lista de palabras (como se usa en los correctores ortográficos o las listas de contraseñas). Esto crearía una frase de contraseña que consistiría en palabras reales.
  • En lugar de una lista de palabras, utilizar algún otro gran conjunto de datos como los mapas de Google (mapa del hash SHA1 para trazar las coordenadas y el uso de la región (s) mapa como una huella digital)

¿Alguna otra idea? Estoy seguro de que esto se ha implementado de una forma u otra.

Respuesta

5

OpenSSH contiene algo así, bajo el nombre "clave de host visual". Prueba esto:

ssh -o VisualHostKey=yes somesshhost 

donde somesshhost es una máquina con un servidor SSH en funcionamiento. Se imprimirá una "huella digital" de la clave del servidor, tanto en hexadecimal, y como una imagen ASCII-art que puede tener este aspecto:

+--[ RSA 2048]----+ 
| .+   | 
| + o   | 
| o o +   | 
| + o +   | 
| . o E S  | 
| + * .   | 
| X o .  | 
| . * o   | 
| .o .   | 
+-----------------+ 

O así:

+--[ RSA 1024]----+ 
|  .*BB+ | 
|  . .++o | 
|  = oo. | 
|  . =o+.. | 
|  So+.. | 
|  ..E.  | 
|     | 
|     | 
|     | 
+-----------------+ 

Al parecer, esto está inspirado en las técnicas descritas en this article. OpenSSH es de código abierto, con una licencia tipo BSD, por lo que es posible que simplemente reutilice su código (parece estar en el archivo key.c, función key_fingerprint_randomart()).

+0

Vale la pena investigar si está limitado a la salida ASCII. – ApplesOranges

0

Su primera sugerencia (dibuje la ruta de las splines por cada cuatro bytes, luego complete usando nonzero fill rule) es exactamente lo que uso para la visualización en hashblot.

2

Para el artículo 3 (entradas en una lista de palabras), ver RFC-1751 - Convención A para legible 128 bits Claves, que señala que

Los autores de S/Key ideó un sistema para que la contraseña de 64 bits de una sola vez sea fácil de ingresar.

Su idea era transformar la contraseña en una cadena de pequeñas palabras en inglés . Las palabras en inglés son significativamente más fáciles para las personas a recordar y escribir. Los autores de S/Key comenzaron con un diccionario de 2048 palabras en inglés, que varían en longitud de uno a cuatro caracteres . El espacio cubierto por una clave de 64 bits (2^64) podría estar cubierto por por seis palabras de este diccionario (2^66) con espacio restante para la paridad . Por ejemplo, un S/Key contraseña de una sola vez de valor hexadecimal:

EB33 F77E E73D 4053 

se convertiría en los siguientes seis palabras en inglés:

TIDE ITCH SLOW REIN RULE MOT 

También es posible usar una huella digital compuesto para mejorar la recordación, como palabras en inglés seguidas (o precedidas) por una o más imágenes dependientes de la tecla.

Para la generación de la imagen, se puede usar cosas como Identicon, Wavatar, MonsterID, o RoboHash.

Ejemplo:

enter image description here enter image description here

enter image description here enter image description here

TIDE PICOR LENTO

REIN REGLA MOT

Cuestiones relacionadas