¿Cuál es la diferencia entre las claves RSA, DSA y ECDSA que usa ssh?

13

En mi /etc/ssh/directorio, puedo ver tres que tengo tres tipos diferentes de claves ssh:

-rw------- 1 root root    607 Oct  4 22:43 ssh_host_dsa_key
-rw-r--r-- 1 root root    623 Oct  4 22:43 ssh_host_dsa_key.pub
-rw------- 1 root root    241 Oct  4 22:43 ssh_host_ecdsa_key
-rw-r--r-- 1 root root    194 Oct  4 22:43 ssh_host_ecdsa_key.pub
-rw------- 1 root root   1602 Oct  4 22:43 ssh_host_rsa_key
-rw-r--r-- 1 root root    378 Oct  4 22:43 ssh_host_rsa_key.pub

¿Cuáles son las diferencias entre las claves RSA, DSA y ECDSA de ssh? ¿Necesito las tres?

fouric
fuente

Respuestas:

9

Son claves generadas usando diferentes algoritmos de encriptación. Puede optar por utilizar diferentes formas de cifrado al usar SSH, algo similar a la capacidad de elegir diferentes métodos de cifrado para WiFi (WPA2, WPA, WEP, etc.).

SSH utiliza cifrado de clave pública, lo que significa que cuando se conecta a un servidor SSH, emite una clave pública que puede utilizar para cifrar más tráfico que se enviará a ese servidor. Si el servidor está configurado para usar RSA, será una clave generada por el algoritmo RSA.

Su computadora devuelve su propia clave RSA pública del archivo de claves que enumeró en su pregunta. El servidor necesita esta clave para volver a conectarse con usted y responder.

Las tres claves existen en su computadora porque cualquier servidor SSH con el que se esté conectando podría estar configurado para usar cualquiera de estos algoritmos. Su computadora enviará una clave única que coincida con el tipo que utiliza el servidor, su clave se ha generado en su computadora por el mismo algoritmo.

Aquí hay algunos recursos adicionales:

/security/5096/rsa-vs-dsa-for-ssh-authentication-keys

http://en.wikipedia.org/wiki/Public-key_cryptography

http://en.wikipedia.org/wiki/RSA_(algorithm)

http://en.wikipedia.org/wiki/Digital_Signature_Algorithm

http://en.wikipedia.org/wiki/Elliptic_Curve_DSA

Zoasterboy
fuente
2
Usted habló brevemente sobre por qué los tres están allí, el propósito de una clave ssh y qué tienen en común las claves: las claves utilizan algoritmos de cifrado. Lo que no habló sobre cuál es la diferencia entre las claves RSA, DSA y ECDSA.
Enkouyami
6

¿Los necesitas a todos?
No, su servidor ssh solo necesita uno y el cliente solo necesita admitir ese tipo de clave para las conexiones ssh.


RSA, DSA, ECDSA, EdDSA y Ed25519 se utilizan para la firma digital, pero solo RSA también se puede utilizar para el cifrado.

RSA ( Rivest – Shamir – Adleman ) es uno de los primeros criptosistemas de clave pública y se utiliza ampliamente para la transmisión segura de datos. Su seguridad se basa en la factorización de enteros , por lo que nunca se necesita un RNG (generador de números aleatorios) seguro. En comparación con DSA, RSA es más rápido para la validación de firma pero más lento para la generación.

DSA ( Algoritmo de firma digital ) es un estándar federal de procesamiento de información para firmas digitales. Su seguridad se basa en un problema logarítmico discreto . En comparación con RSA, DSA es más rápido para la generación de firmas pero más lento para la validación. La seguridad puede romperse si se utilizan generadores de números incorrectos .

ECDSA ( Algoritmo de firma digital de curva elíptica ) es una implementación de curva elíptica de DSA (Algoritmo de firma digital). La criptografía de curva elíptica puede proporcionar relativamente el mismo nivel de seguridad que RSA con una clave más pequeña. También comparte la desventaja de DSA de ser sensible a los RNG malos.

EdDSA ( Algoritmo de firma digital de curva de Edwards ) es un esquema de firma digital que utiliza una variante de la firma Schnorr basada en curvas Twisted Edwards . La creación de firmas es determinista en EdDSA y su seguridad se basa en la intratabilidad de ciertos problemas de logaritmo discreto, por lo que es más seguro que DSA y ECDSA, que requiere una aleatoriedad de alta calidad para cada firma.

Ed25519 , es el esquema de firma EdDSA, pero utiliza SHA-512/256 y Curve25519 ; Es una curva elíptica segura que ofrece una mayor seguridad que DSA, ECDSA y EdDSA, y además tiene un mejor rendimiento (no se nota humanamente).


Otras notas Las
claves RSA son las más utilizadas y, por lo tanto, parecen ser las más compatibles.

ECDSA, (introducido en OpenSSH v5.7 ), es computacionalmente más ligero que DSA, pero la diferencia no es notable a menos que tenga una máquina con muy baja potencia de procesamiento.

A partir de OpenSSH 7.0 , SSH ya no admite claves DSA (ssh-dss) de forma predeterminada. Una clave DSA solía funcionar en todas partes, según el estándar SSH (RFC 4251 y posteriores).

Ed25519 se introdujo en openSSH 6.5 .

Enkouyami
fuente
1
¿Es eso EdDSA o ECDSA ?
muru
@muru Es ECDSA. Sin embargo, actualizaré la respuesta con información sobre ambos y corregiré el enlace.
Enkouyami
Lo que no pude encontrar fue cuando se introdujo EdDSA en OpenSSH.
Enkouyami
¿Puede una computadora cuántica romperlos a todos?
Kjeld Flarup
@KjeldFlarup, sí; basado en las respuestas y comentarios en security.stackexchange.com/questions/211587/… , una computadora cuántica podría romperlos a todos.
Enkouyami