¿Cuál es la diferencia entre RSA1 y RSA con respecto a SSH? También, ¿cuándo se usa la huella digital y el arte al azar?

6

He buscado en este sitio RSA1 sin resultados. De múltiples búsquedas en Google he entendido que RSA1 se usó en SSH1 (que no se recomienda). Sin embargo, si es un solo algoritmo, ¿por qué hay dos diferentes?

Un poco de información sobre mi configuración / comprensión:

  • Recientemente implementé OpenSSH en Ubuntu para enviar archivos de script (a través de scp) a un servidor de clientes
  • Cómo entiendo SSH (ya que creo que me estoy perdiendo algo):
    1. el cliente se conecta al servidor
    2. el servidor ofrece una clave de host pública
    3. el cliente acepta
    4. la autenticación cifrada ocurre (a través de una contraseña o clave pública del cliente)
    5. el servidor acepta
    6. shell iniciado (todo el contenido futuro se encripta con la clave pública del cliente, luego se descifra con la clave privada del cliente)
pregunta greggmcfg 27.02.2013 - 17:15
fuente

1 respuesta

9

En la versión 1 del protocolo SSH, el servidor tiene una clave RSA (siempre) y el cliente cifra asimétricamente un blob aleatorio con la clave pública del servidor. El blob aleatorio se utiliza como base para la clave de sesión que se utilizará para cifrar los datos.

En la versión 2 del protocolo SSH, el cliente y el servidor utilizan Diffie-Hellman (o una variante de curva elíptica de la misma) para establecer una clave de sesión compartida. El servidor firma su mitad del protocolo con su clave, que puede ser RSA o DSA.

Si bien RSA encryption y RSA signature pueden usar el mismo tipo de objeto matemático (una "clave RSA"), aún así son algoritmos distintos. La forma SSHv2 además ofrece Perfect Forward Secrecy , lo cual es bueno (si alguien roba la clave del servidor, puede descifrar las conexiones SSHv1) que grabó, pero no así con conexiones SSHv2).

En el modelo SSH, el cliente se asegura de que habla con el servidor correcto al recordar la clave pública de cada servidor (que es el archivo .ssh/known_hosts ). Cuando encuentra una nueva clave (un servidor al que el cliente todavía no se ha conectado), quiere mostrar algo que el usuario humano puede usar para confirmar que la clave pública del servidor es genuina. La huella digital es un valor hash; se supone que el usuario debe llamar al administrador del sistema del servidor deseado, para dictar la huella digital y obtener la confirmación de que es la correcta.

El "arte aleatorio" es una visualización de la huella dactilar de una manera que se supone que es fácilmente recordada por un ojo humano & cerebro. La idea es que el usuario primero memorice el "arte" asociado con el servidor, y más tarde compruebe visualmente que el "arte" recalculado es el mismo. (Escenario previsto: poder usar máquinas cliente aleatorias mientras viaja).

Personalmente prefiero aprender de memoria la huella digital; al menos puedo calcular la probabilidad de éxito del atacante. Mejor aún, viajo con mi propio dispositivo, que al menos debería tener menos virus que una máquina aleatoria de un cibercafé.

    
respondido por el Tom Leek 27.02.2013 - 17:28
fuente

Lea otras preguntas en las etiquetas