tls que cipher encryption ssl-certificate

encryption - que - ¿Cómo SSL encripta los datos del servidor al cliente?



cipher suite que es (2)

La mayoría de los artículos de la wiki describen cómo el navegador del cliente utiliza la clave pública (certificado) para cifrar los datos confidenciales (como el nombre de usuario / contraseña) y enviar estos datos cifrados al servidor. El servidor utilizará la clave privada para descifrarlo. Me sale esta parte. Pero no hay información clara que indique cómo el servidor encripta los datos y los envía al navegador.

Usa mi banca en línea como ejemplo:

(0) Ya acepté el certificado de confianza (clave pública) de mi banca en línea.

(1) A través de la URL de SSL, mi navegador visita https://myonlinebanking.com

(2) Escribí nombre de usuario / contraseña para iniciar sesión. Estos datos están encriptados, por lo que el hombre en el medio solo puede ver datos sin sentido.

(3) El servidor web del banco recibió mis datos encriptados y usa su clave privada para desencriptarlos y autenticar mi cuenta con éxito.

Ahora aquí están mis preguntas:

¿Cómo devuelve el banco mis datos? Banco cifrar los datos de respuesta por qué clave? Si el banco está encriptado con "clave pública", el intermediario puede verlo tal como yo lo veo. ¿Entonces el hombre en el medio no sabe mi nombre de usuario / contraseña, pero aún puede ver el saldo de mi cuenta?

Gracias por tu ayuda.


El proceso de reconocimiento de TLS establece una clave simétrica entre ambas partes, posiblemente utilizando criptografía asimétrica en el proceso (los detalles dependen de los algoritmos exactos que se negociaron entre el cliente y el servidor). De esta manera, la comunicación se encripta en ambas direcciones, no solo en una dirección.

Sin embargo, lo que finalmente lo protege de un MITM es el hecho de que su navegador realiza algún tipo de validación de nombre de host. El certificado presentado por el servidor en el handshake primero se comprueba para su validez. Si eso tiene éxito, su navegador comprueba si el certificado está vinculado al host exacto con el que está hablando. Si se omitiera esta verificación, un ataque MITM aún tendría éxito, incluso si el resto de la comunicación siguiera estrictamente el protocolo, incluidos todos los elementos criptográficos. El atacante podría simplemente pretender ser cualquier host y ejecutar el resto del protocolo debidamente, usted no sabría la diferencia.


Tienes algunas suposiciones erróneas:

  • Los datos HTTP no siempre están cifrados con la clave pública del Servidor, para enviarlos al Servidor
  • La clave pública del Servidor solo se usa al principio (protocolo de intercambio) para establecer una clave segura, para el cifrado de clave segura (cifrado simétrico)
  • Toda la comunicación se realiza a través del cifrado de clave secreta o clave simétrica, donde el cliente (navegador) y el servidor utilizan la misma clave secreta para cifrar y descifrar datos.

El protocolo TLS (Transport Layer Secuirty) utiliza una combinación de cifrado asimétrico (clave pública) y cifrado simétrico (clave segura). La comunicación principal con su banco es mediante cifrado simétrico, para lo cual las claves de sesión (clave segura) se establecen de manera segura durante el protocolo de enlace TLS, utilizando un cifrado asimétrico.

Todo está en el protocolo de enlace TLS (Seguridad de la capa de transporte), que se explica muy bien en este enlace here .