Saltar al contenido

Explicación de la técnica de cifrado cliente-servidor (TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 128 bit keys)

Sé libre de divulgar nuestra web y códigos en tus redes sociales, necesitamos tu ayuda para hacer crecer esta comunidad.

Solución:

Criptografía asimétrica

Hay dos partes diferentes para crear una sesión TLS. Existe la criptografía asimétrica, parte que es un intercambio de información pública. keys entre dos puntos. Que es lo que vio en su ejemplo de Alice y Bob. Esto solo permite el intercambio de asimétricos keys para cifrado / descifrado asimétrico. Este es el ECDHE parte. El RSA parte describe el algoritmo de firma utilizado para autenticar el key intercambio. Esto también se realiza con criptografía asimétrica. La idea es que firmes los datos con tu privado key, y luego la otra parte puede verificar con su público key.

Criptografía simétrica

Cifras cifrado / descifrado simétrico keys con tu asimétrica key. El cifrado asimétrico es muy lento (relativamente hablando). No querrás tener que encriptar con él constantemente. Para eso sirve la criptografía simétrica. Entonces ahora estamos en AES_128_GCM.

  • AES es el algoritmo simétrico
  • 128 se refiere a key tamaño en bits
  • GCM es el modo de funcionamiento

Entonces, ¿qué significa exactamente nuestro asimétrico key cifrar? Bueno, esencialmente queremos cifrar el simétrico key (en este caso 128 bits, 16 bytes). Si alguien supiera lo simétrico key luego podrían descifrar todos nuestros datos. Para TLS el simétrico key no se envía directamente. Algo llamado secreto anterior al maestro se cifra y se envía. A partir de este valor, el cliente y el servidor pueden generar todos los keys e IV necesarios para el cifrado y la integridad de los datos. Vista detallada del intercambio de claves TLS

Integridad de los datos

La integridad de los datos es necesaria a lo largo de este proceso, así como con el canal cifrado. Como vio al buscar GCM, el modo de operación de cifrado en sí mismo proporciona la integridad de los datos que se cifran. Sin embargo, el pblico key el apretón de manos en sí también debe confirmarse. Si alguien en el medio cambió los datos mientras se transmitían, ¿cómo podríamos saber que no se manipuló nada? Esta es la instancia donde se usa la función hash negociada, SHA256. Cada parte del apretón de manos se combina con un hash y el hash final se transmite junto con el secreto anterior al maestro cifrado. El otro lado verifica este hash para asegurarse de que se hayan recibido todos los datos que estaban destinados a enviarse.

SHA256, como se menciona en otro cartel, también se utiliza para la función pseudoaleatoria (PRF). Esto es lo que expande el secreto previo al maestro enviado entre las dos partes en la sesión. keys necesitamos el cifrado.

Para otros modos de funcionamiento, cada mensaje también se codificará con este algoritmo de integridad. Cuando se descifran los datos, se verifica el hash antes de usar el texto sin formato.

Aquí hay una gran explicación de cómo ocurren estas derivaciones para diferentes versiones de TLS.

¡Junte todas estas piezas y tendrá un modo de comunicación seguro!


Puede enumerar todos los cifrados posibles que admite OpenSSL con openssl ciphers. Puede ir más allá e imprimir los detalles de cualquiera de estos conjuntos de cifrado con la -V

Por ejemplo:

$ openssl ciphers -V ECDHE-RSA-AES256-GCM-SHA384
          0xC0,0x30 - ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
  • 0xC0,0x30 representa el identificador de dos bytes para el conjunto de cifrado
  • Kx=ECDH representa el key algoritmo de intercambio
  • Au=RSA representa el algoritmo de autenticación
  • Enc=AESGCM(256) representa el algoritmo de cifrado simétrico
  • Mac=AEAD representa el algoritmo de verificación de autenticación de mensajes utilizado

Tiene razón en que ECDHE se está utilizando para key Exchange y RSA se utilizan para verificar la identidad del servidor. Sin embargo, ¿qué vas a hacer con el intercambio key? Deberá utilizar un determinado algoritmo para cifrar / descifrar la comunicación con el uso de ese intercambiado key.

En este caso, se utiliza AES de 128 bits, en modo GCM.

Normalmente, el algoritmo hash, SHA256 en este caso, se utiliza para el código de autenticación de mensajes basado en hash (HMAC). Esto es para proporcionar cifrado autenticado. Sin embargo, como mencionó, AES-GCM ya proporciona cifrado autenticado, por lo que no se usa aquí.

Desde TLS1.2, el algoritmo hash mencionado al final de un conjunto de cifrado también se usa para la función pseudoaleatoria (PRF) en TLS.

Si conservas alguna perplejidad y capacidad de acrecentar nuestro división puedes añadir un exégesis y con mucho gusto lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *