¿Cómo detienen los certificados a este hombre en el ataque central?

1

Alicia y Bob están tratando de establecer una conversación segura, pero desconocida para ellos es Eva, que puede interceptar y modificar todos los paquetes enviados entre ellos.

La comunicación es la siguiente:

  1. Alice envía un saludo a Bob e incluye algunos parámetros (por ejemplo, una clave pública efímera Diffie-Hellman) A. Eve intercepta el mensaje y reemplaza A por E.

  2. Bob responde con los parámetros B y también envía su certificado que contiene su clave pública y su dominio. Eve intercepta esto. En este punto, Eve y Bob obtienen un EB compartido secreto de E, B y sus datos privados asociados (por ejemplo, claves privadas DH efímeras asociadas), que Alicia no sabe.

  3. Eve reenvía el mensaje de (2) a Alice, dejando el certificado igual (no siendo CA, no puede crear el suyo) pero cambiando B por E. En este punto, Alice y Eve obtienen un EA secreto compartido de E, A y datos privados asociados, que Bob no sabe.

  4. Alice verifica el certificado. No se manipuló, por lo que no se levantan banderas.

  5. Alice cifra un mensaje usando la clave pública de Bob (del certificado) y lo envía a Bob. Contiene el secreto secreto de EA.

  6. Eve intercepta este mensaje (que es cierto que no puede descifrar) y lo descarta. En su lugar, envía a Bob uno nuevo, encriptado con su clave pública, que contiene el secreto EB compartido. Bob mira esto y coincide con el secreto compartido que esperaba, y por eso considera que el apretón de manos es un éxito.

De ahora en adelante, Bob y Eve tienen una conversación usando el secreto compartido EB, y Eve y Alice tienen una conversación usando el secreto EA compartido. Ni Bob ni Alice son conscientes de que Eve está espiando.

Supuestamente, esto debe evitarse mediante el certificado, pero no entiendo cómo.

    
pregunta Dallas 17.02.2015 - 13:30
fuente

2 respuestas

8

Ningún sistema de seguridad real funciona como lo describe usted, exactamente por este motivo. El certificado no se utiliza para cifrar el secreto compartido para verificar que tienen el mismo secreto; eso no tendría sentido (también podría tener un lado para generar el secreto y enviarlo cifrado con la clave pública del otro lado). Cuando el secreto compartido se genera utilizando datos que no están en el certificado, la función del certificado es firmar esos datos; una regla general es que nunca debe aceptar ninguna entrada al proceso de generación de claves que no provino de usted y que no esté firmada por una clave pública de confianza (con TLS las claves de CA vienen precargadas en un navegador, por lo que son confiado; el certificado firmado por la CA establece confianza en la clave pública de Bob).

En este caso, la forma real en que funcionaría la comunicación es:

  1. Alice envía que Bob A. Eve lo intercepta y lo reemplaza por E.
  2. Bob devuelve un certificado, B, y una firma para B que puede verificarse con el certificado. El certificado es para una clave de firma, no una clave de encriptación (con RSA, la diferencia es precisamente para lo que designó la clave, pero hay algoritmos que son solo de encriptación o de firma).
  3. Eve lo intercepta y reemplaza B por E. Sin embargo, no puede firmar E con la clave privada de Bob, así que cambia el certificado y firma E con el nuevo, o deja el certificado como está (pero no lo hace) t crear una nueva firma con ella, porque ella no puede).
  4. Alice ve que el certificado no está firmado por una CA o que la verificación de la firma falla (la firma no es una firma válida de E).
  5. Alice termina la comunicación, porque sabe que está siendo manipulada.
respondido por el cpast 17.02.2015 - 19:56
fuente
4
  

Alice envía un saludo a Bob que contiene un código A. Eve intercepta el   mensaje y en su lugar pone un código E.

Lo anterior simplemente no sucederá. Antes de que Alice envíe algo, Alice usa la clave pública de la CA (presente en su propio almacén de certificados) para verificar bob.com (Eve), la verificación falla y Alice recibirá una advertencia diciendo que el certificado de Bob no es válido.

Si, de alguna manera, Alice tiene el certificado de Eve agregado en el confiable almacén de certificados de Alice, entonces Alice está en un gran problema porque, entonces Alice no verificará bob.com contra la clave pública de una CA.

    
respondido por el JOW 17.02.2015 - 18:39
fuente

Lea otras preguntas en las etiquetas