¿Por qué son seguros los protocolos de SSL y por qué un pirata informático no puede ver eso y descifrar los datos? [duplicar]

5

Si entiendo bien, hay un "apretón de manos" en el que tanto el servidor como el navegador verifican quiénes son y acuerdan una clave de cifrado. ¿Por qué un pirata informático no puede simplemente mirar la red en busca de las claves que pasan?

¿Por qué un pirata informático no puede simplemente observar el apretón de manos, recopilar los datos y ejecutarlos a través de un software fácil de escribir?

    
pregunta Anonymous Penguin 25.02.2014 - 01:49
fuente

2 respuestas

3

Consulte la sección de Apretones de manos de La respuesta de Thomas Porrin a ¿Cómo funciona SSL? para obtener todos los detalles, pero para la respuesta muy corta:

Debido a que el primer apretón de manos de una sesión termina usando criptografía asimétrica para cifrar una clave simétrica a la clave pública del otro lado (que de hecho está disponible a través del rastreo de paquetes), y luego el otro lado usa su clave privada para descifrarla. Esta clave privada no se transmite entre las dos, y sin ella, es prohibitivamente descifrar el mensaje que contiene la clave simétrica (salvo la implementación o fallas de diseño).

Después de transferir la clave simétrica, se puede usar un cifrado simétrico ya que hay una clave "secreto compartido".

    
respondido por el Anti-weakpasswords 25.02.2014 - 04:15
fuente
2

Hay dos tipos de criptografía. Simétrico y asimétrico.

En Simétrico , la misma clave se usa en ambas partes para cifrar / descifrar los datos. Los ejemplos incluyen el algoritmo AES. Si el MITM conoce la clave simétrica utilizada por el cliente y el servidor, puede descifrar fácilmente los mensajes.

En Assymetric , se utiliza un par de claves públicas y privadas. Una forma de llegar a un secreto común utilizando la criptografía asimétrica es la siguiente:

El servidor genera un par de claves pub / pri, por ejemplo, utilizando el algoritmo RSA. Pone la clave pública en un certificado y la envía al cliente.

El cliente generará un secreto maestro previo aleatorio y lo cifrará usando la clave pública obtenida del certificado del servidor y enviará el secreto maestro maestro cifrado en el mensaje "intercambio de clave de cliente".

El servidor descifra el mensaje cifrado usando su clave privada asociada con la clave pública.

Ahora tanto el servidor como el cliente tienen el mismo secreto pre-maestro. Utilizarán ese y algunos otros valores aleatorios (como clientHelloRandom, serverHelloRandom que se envían en texto sin formato durante el protocolo ClientHello y serverHello) para obtener la misma clave maestra.

Esta clave maestra se utiliza para derivar claves de sesión mediante las cuales los datos de las Aplicaciones se cifran / descifran.

Tenga en cuenta que un MITM no puede hacerse pasar por un cliente porque la clave maestra generada por el cliente legítimo se envía mediante el cifrado con la clave pública. El MITM no puede descifrarlo mientras no conozca la clave privada y solo el servidor la conozca (la clave privada no se comparte). Y como MITM no conoce la clave privada, tampoco puede hacerse pasar por el servidor. .

Por lo tanto, cuando se usa una suite de cifrado como TLS_WITH_RSA_AES128_CBC_SHA, se usa RSA para generar el par de claves pub / pri, se usa DSA para firmar el certificado enviado por el servidor, y una vez que las claves simétricas (mismas) son las claves maestra-secreta y de sesión derivado tanto del cliente como del servidor, se utiliza AES128 (algoritmo de cifrado / descifrado de clave simétrica) para cifrar / descifrar los datos de la aplicación.

Espero que esto aclare.

    
respondido por el commanderdileep 09.02.2015 - 19:13
fuente

Lea otras preguntas en las etiquetas