SSH claves públicas de autenticación pre-distribuidas

-1

Cliente y servidor SSH mediante autenticación de clave pública / privada, mediante el intercambio de claves Diffie-Hellman.

En lugar de que SSH envíe las claves públicas de autenticación a través del cable, quisiera distribuir las claves públicas y omitir el envío a través de la línea; luego, el resto del protocolo es el mismo.

¿Hay una configuración predefinida en SSH para esto o requiere un cambio más detallado?

    
pregunta P.S. 03.08.2016 - 02:07
fuente

1 respuesta

4

En SSH:

  • Las claves DH se usan para lograr el secreto hacia adelante, son únicas para cada sesión y son efímeras: no hay necesidad ni manera de distribuirlas previamente
  • las claves de autenticación del cliente (RSA) ya tienen el requisito de estar predistribuidas: al colocar la clave pública del cliente en el archivo authorized_keys del servidor
  • las claves de autenticación del servidor se pueden distribuir previamente colocando la clave pública del servidor en el archivo known_hosts del usuario o aceptadas manualmente por el usuario en la primera conexión

Aclaraciones de los comentarios:

  

Buscando una forma en que un MITM no pueda obtener una retención de las claves públicas del cliente y falsificar el servidor como un cliente legítimo. [] el MITM todavía podría intentar enviar datos al servidor, ya que el servidor cree que es el cliente real.

Podría "intentar", pero no tendría éxito. La clave pública no es un token que usted presenta a la parte autenticadora que debe coincidir. La clave pública es utilizada por el lado de autenticación para descifrar el mensaje enviado y cifrado (firmado) por la parte que se autentica, asegurando así que se cifró con la clave privada correspondiente.

El conocimiento de una clave pública no permite suplantar al titular de la clave privada correspondiente.

  

Si alguien "escuchando" adquiere la clave RSA pública de los clientes, ¿no podrán usarla para conectarse al servidor? ¿Cómo sabría el servidor si se trata de la clave pública RSA de los clientes reales frente a otra persona que usa su clave pública?

Ejemplo: el servidor tiene tres claves públicas configuradas para el acceso pubA , pubB , pubC .

  • B envía un mensaje cifrado con privB . El servidor recibe un mensaje cifrado e intenta descifrarlo utilizando la clave pública pubA - se vuelve incomprensible. Luego intenta descifrar el mensaje usando pubB y esta vez recibe un mensaje válido. Significa que el mensaje fue cifrado usando privB . La única entidad que posee el privB es B, por lo que el servidor confirmado B es el remitente y otorga el permiso de acceso.

  • Alguien cifra el mensaje inicial con pubB y lo envía al servidor. El servidor no puede descifrarlo usando pubB (porque necesita privB , pero solo B posee el privB , no el servidor).

  • Alguien envía pubB al servidor, el servidor no tiene idea de qué es. No espera que se envíe ninguna clave.

La explicación anterior es conceptual, el algoritmo de intercambio de clave real es más complejo, ya que también debe establecerse el contenido del mensaje inicial

    
respondido por el techraf 03.08.2016 - 04:09
fuente

Lea otras preguntas en las etiquetas