¿Cómo protegen las huellas dactilares RSA de los ataques MITM? [duplicar]

9

Comprendo que las huellas dactilares de RSA se utilizan para verificar que realmente te estás conectando directamente con la persona a la que deseas conectarte y no con alguien más que se hace pasar por ese sitio.

Como cuando haces un git push , te muestra una clave RSA, luego puedes ir a una página web y ver si la clave que recibiste coincide con la clave en su página web.

¿Pero qué impide que alguien más descubra la clave RSA pública que usa el sitio y luego responde con esa misma clave para pretender ser ese sitio?

    
pregunta node ninja 20.08.2012 - 12:24
fuente

8 respuestas

11

También hay buena información en las otras respuestas, pero para responder su pregunta directamente:

  

¿Pero qué impide que alguien más descubra la clave RSA pública que usa el sitio y luego responde con esa misma clave para pretender ser ese sitio?

Un atacante podría hacer esto, y podrían engañarlo para que encripte sus datos usando la clave pública y enviándolos. Sin embargo, sin la clave privada correspondiente, esta información sería inútil para ellos porque no podrían descifrarla.

    
respondido por el lk- 20.08.2012 - 15:57
fuente
9

Las claves públicas son exactamente eso: públicas, destinadas a la distribución. Tener una copia de una clave pública no le permite, por sí solo, hacerse pasar por el propietario de la clave. Le brinda la capacidad de cifrar los datos que envía al propietario de una manera que solo el propietario puede descifrarlos, utilizando la clave privada que corresponde con la clave pública. También le permite descifrar los datos que se cifraron con la clave privada, lo que demuestra que los datos provinieron del propietario de la clave privada, que es el uso aquí. Su copia de la clave pública le permite estar razonablemente seguro de que el servidor que usó se está comunicando con es confiable (en la medida en que puede confiar en el propietario de la clave privada para mantener el secreto de esa clave privada).

Siempre que el propietario mantenga la clave privada, privada, el sistema funciona según lo previsto.

El artículo de Wikipedia sobre criptografía de clave pública ofrece una buena introducción a cómo funcionan las cosas como RSA, DSA, etc. .

    
respondido por el D_Bye 20.08.2012 - 12:41
fuente
2

La huella digital se calcula a partir de la clave pública asociada y puede ser calculada por su computadora. Si la huella dactilar coincide con lo que usted espera, entonces la clave que está cifrando es la adecuada para su objetivo.

Si bien se puede reportar una huella dactilar falsa, el hecho de que puedan calcularse de forma independiente a partir de la clave real poseída hace que sea bastante inútil a menos que el hash utilizado para la toma de huellas dactilares sea lo suficientemente pequeño como para que una colisión sea realmente posible. Sin una colisión, cualquier intercambio de datos aún se cifraría a la clave pública apropiada (ya que verificaste que la que estás utilizando coincide con el hash esperado) y no se podría descifrar sin la clave privada correspondiente.

    
respondido por el Jeff Ferland 21.08.2012 - 02:56
fuente
2

El corto

El MITM necesita la clave privada del servidor para hacerse pasar por el servidor y descifrar Mensajes privados que envías al servidor. La clave pública del servidor es para autenticando mensajes firmados por el servidor y enviando mensajes privados a El servidor, por lo que todavía necesita verificar su huella digital. Está bien si el MITM tiene la clave pública también. Todo lo que significa es que el MITM también puede autenticar los mensajes del servidor y enviar mensajes privados al servidor.

En general, si todas las claves públicas son conocidas por todos, cualquiera puede autenticar Las firmas de cualquiera y cualquiera puede enviar un mensaje privado a cualquiera. Lo privado los controles clave firman y descifran, de modo que idealmente nadie puede hacerse pasar por otro, y nadie puede leer un mensaje privado enviado a otro.

El largo

NB: El siguiente es un modelo simplificado solo para fines educativos, destinado a Ilustra el punto de la huella digital de la clave pública. Consulte esta otra pregunta para obtener más detalles sobre SSH .

Revisión. Por simplicidad, en lugar de SSH en una red de computadoras, considere una Tablero de corcho público donde los agentes pueden publicar notas de texto. Al principio, el tablero es blanco. Los agentes A y S desean comunicarse y desean proteger la privacidad y la integridad de sus mensajes del agente malicioso M . Asumir claves privadas son conocidos solo por sus respectivos dueños.

  1. A publica A_pub , y S publica S_pub .
  2. A cifra un mensaje con S_pub , firma con A_priv y publica.
  3. S descifra el mensaje con S_priv , verifica la firma usando A_pub .
  4. S cifra una respuesta con A_pub , firma con S_priv y publica.
  5. Creo que sabes lo que A hace aquí.

El agente M no puede descifrar estos mensajes. M puede publicar mensajes cifrados a S o A . Sin embargo, un intento de falsificación fallaría. Un mensaje firmado con M_priv no pasaría la verificación utilizando A_pub o S_pub .

Ahora para la función de la huella digital de la clave pública. Supongamos que M crea M_pub y M_priv , e intenta engañar a A publicando M_pub como S_pub :

Dear A,

My public key is

   [contents of M_pub]

Love,
S

si A cree que esta mentira, A cifrará los mensajes a S con M_pub para que M puede descifrarlos y M puede falsificar mensajes como S usando M_priv . Sin embargo, si A tiene la huella digital de S_pub , A puede compararla con la huella digital de M_pub y descubre la mentira. Por lo tanto, A rechazará usar M_pub para cifrado de mensajes a S y autenticación de mensajes de S .

Por lo tanto, cuando SSH da una advertencia acerca de que la huella dactilar de la clave púbica es desconocida o cambiado, significa que podría ser víctima de un ataque MITM. Si continúas, el MITM podrá descifrar sus mensajes y forjar respuestas como el servidor. Si la comprobación de huellas dactilares es satisfactoria, tiene una confianza muy alta. no son víctimas de MITM, asumiendo que la huella digital que tiene es la verdadera huella digital del servidor, las claves privadas (tanto la suya como la del servidor) son de hecho privadas, las implementaciones de SSH son correctas, y la clave pública de criptografía matemática no es comprometido.

    
respondido por el Andy Lee 27.08.2015 - 02:37
fuente
2

La autenticación del host SSH se produce durante el intercambio de claves . El intercambio de claves se realiza generalmente utilizando Diffie-Hellman , que permite generar un secreto compartido que puede ser se utiliza como clave de sesión simétrica.

Asegurarse de que el host tenga la clave privada

Al inicio del intercambio de claves, se negocia un algoritmo de firma (puede ser RSA, DSA, etc.). Al final de la intercambio de claves , el host utiliza este algoritmo de firma con su clave privada para firma los datos intercambiados previamente. El host envía su clave pública y la firma al cliente (junto con el material de Diffie-Hellman), y el cliente utiliza la clave pública del host para verificar la firma. Dado que solo se puede crear una firma con la clave privada, el cliente sabe que el host tiene acceso a la clave privada correspondiente a la clave pública que presentó el host.

Asegurarse de que sea el host correcto

El cliente tiene algunas formas de verificar que está hablando con el host correcto. Si se conectó previamente al host, puede hacer coincidir la clave pública del host con una base de datos local para asegurarse de que el host haya presentado la misma clave pública que lo hizo anteriormente.

Durante el intercambio de claves, el host también puede optar por enviar un certificado firmado por un CA en el que el cliente confía en su lugar de enviar sólo la clave pública; el cliente puede verificar que la clave pública del host fue firmada por la CA (aunque en la práctica los certificados no se usan con ssh muy a menudo).

Si la clave del host no se puede verificar automáticamente, a menudo se presenta al usuario una huella digital (hash de la clave pública del host) para permitirle verificarla manualmente fuera de banda . Si es aceptado por el usuario, la clave pública generalmente se almacenará para permitir la verificación automática de futuras conexiones.

Entonces, para responder a su pregunta: cualquier host podría copiar la clave pública de cualquier otro host, pero no podría producir una firma válida para el intercambio de claves, y el cliente abortaría con un error. Siempre que verifique la huella digital de la clave del host fuera de banda (como lo está haciendo al consultar el sitio web, a través de HTTPS, espero), MitM se evita.

    
respondido por el AndrolGenhald 12.09.2018 - 22:28
fuente
0

No solo te muestra la clave RSA. También cifra la comunicación utilizando un par de claves pública / privada (incluida esa clave RSA). De esta manera, está seguro de que solo el servidor X puede ser el servidor (ya que normalmente solo el servidor X tiene la clave privada).

Puede leer más sobre las claves públicas / privadas aquí . Hay bastante matemáticas involucradas.

    
respondido por el Goez 20.08.2012 - 12:40
fuente
-2

Si no me equivoco, la función que se usa para generar la huella digital usa la clave privada para hacerlo. Por lo tanto, la huella digital no se puede volver a crear sin la clave privada.

* Existe la posibilidad de colisiones ya que el rango de valores que tienen las huellas dactilares válidas es menor que el rango de valores de las claves válidas. Es lo suficientemente raro como para permitir que las huellas digitales sean útiles.

    
respondido por el LawrenceC 20.08.2012 - 15:14
fuente
-2

No garantizan la seguridad contra el hombre en los ataques medios. SSH utiliza SSL / TSL como protocolo de enlace para cifrar el tráfico real. Las claves SSH solo se utilizan para identificar que el cliente puede iniciar la conexión. El resto del tráfico no utiliza la clave privada SSH para cifrar el tráfico. Por lo tanto, la única manera de garantizar que el tráfico SSH no sea eliminado por un ataque de intermediario es mediante el uso de una VPN en la que el servidor y el cliente tengan una clave pública / privada secreta previamente compartida que no Ir a través del internet público / router / ISP en tiempo de ejecución de la misma manera que lo hacen las claves de cifrado SSL / TLS. Los par de llaves SSL / TLS son más susceptibles al hombre en el medio, especialmente con un cifrado de baja entropía.

enlace

enlace

    
respondido por el rippledj 11.09.2018 - 22:16
fuente

Lea otras preguntas en las etiquetas