TLS funcionando y el intercambio de claves simétricas

3

¿Funciona este TLS correctamente?

Usando facebook como por ejemplo aquí - fb.com

  • La CA tiene su propio pub y clave pvt.
  • CA le da a fb un pub y una clave pvt
  • Todos los navegadores ya tienen la clave de publicación de CA: el certificado raíz.
  • Cuando te conectas a fb.com. Fb me envía su clave de publicación cifrada con la clave pvt de CA
  • Mi navegador descifra esto con la clave de publicación de CA que ya tiene.
  • Ahora tengo la clave de pub de fb y mi navegador genera la clave de sesión que se envía a fb cifrada con la clave de pub de fb
  • Y luego, fb.com y mi navegador tienen sesión para comenzar a usar un cifrado simétrico como AES.

No entiendo la parte acerca de que fb puede cifrar su propia clave de pub con la clave pvt de CA.

¿Cómo puede tener acceso a la clave pvt de CA? ¿O ya está firmado por la AC la primera vez que se entrega a fb?

Ahora obteniendo la clave de sesión

Aquí encontrará una de las 2 respuestas mejor calificadas de ¿Cómo es posible que las personas que observan el establecimiento de una conexión HTTPS no puedan descifrarlo?

  

Es la magia de la criptografía de clave pública. Las matemáticas están involucradas.

     

El esquema de intercambio de claves asimétricas que es más fácil de entender es   Encriptación asimétrica con RSA. Aquí hay una descripción simplificada:

     

Sea n un entero grande (digamos 300 dígitos); n es elegido de tal manera que es una   producto de dos números primos de tamaños similares (llamémoslos p y   q). Luego computaremos las cosas "módulo n": esto significa que siempre que   sumamos o multiplicamos dos enteros, dividimos el resultado por n   y mantenemos el resto (que está entre 0 y n-1, necesariamente).

     

Dado x, computar x3 módulo n es fácil: multiplicas x con x y luego   otra vez con x, y luego divides por n y mantienes el resto.   Todo el mundo puede hacer eso. Por otro lado, dado x3 modulo n,   recuperar x parece demasiado difícil (los métodos más conocidos están lejos   demasiado caro para la tecnología existente) - a menos que sepa p y q, en   en cuyo caso se vuelve fácil de nuevo. Pero computar p y q a partir de n parece   difícil, también (es el problema conocido como factorización de enteros).

     

Entonces, esto es lo que hacen el servidor y el cliente:

     
  • El servidor tiene una n y conoce la p y la q correspondientes (las generó). El servidor envía n al cliente.
  •   
  • El cliente elige una x aleatoria y calcula x3 módulo n.
  •   
  • El cliente envía x3 módulo n al servidor.
  •   
  • El servidor utiliza su conocimiento de pyq para recuperar x.
  •   

En ese punto, tanto el cliente como el servidor saben x. Pero una sierra para espiar   solo n y x3 modulo n; no puede volver a calcular p, q y / o x de eso   información. Entonces x es un secreto compartido entre el cliente y el   servidor. Después de eso, esto es bastante sencillo simétrico   cifrado, utilizando x como clave.

Digamos x^3 mod n = Z

Las dudas aquí son que si el Z puede intercambiarse, ¿cuándo se utiliza el mecanismo en la siguiente cita, de cifrar la clave de sesión con la clave pública del servidor?

También, ¿por qué el atacante no puede descifrar x de la fórmula x^3 mod n = Z , ya que el atacante tiene n cuando el servidor lo envió al cliente y también tiene Z cuando el cliente lo devolvió?

Y la segunda respuesta desde allí:

  

Aquí hay una versión realmente simplificada:

     
  • Cuando un cliente y un servidor negocian HTTPS, el servidor envía su   Clave pública al cliente.
  •   
  • El cliente encripta la clave de encriptación de sesión que quiere usar con la clave pública del servidor y envía los datos encriptados al servidor.
  •   
  • El servidor descifra la clave de cifrado de la sesión con su clave privada y comienza a usarla.
  •   
  • La sesión está protegida ahora, porque solo el cliente y el servidor pueden conocer la clave de cifrado de la sesión. Nunca se transmitió de forma clara, ni de ninguna manera un atacante podría descifrar, por lo que solo ellos lo saben.
  •   

Voilà, cualquiera puede ver la clave pública, pero eso no les permite   descifrar el paquete "hey-vamos-cifrar-usar-esto-desde-ahora-en" que está   Encriptado con esa clave pública. Sólo el servidor puede descifrar eso,   Porque solo el servidor tiene esa clave privada. Los atacantes podrían intentar   falsificar la respuesta que contiene una clave cifrada, pero si el servidor se establece   hasta la sesión con eso, el verdadero cliente no lo hablará porque   no es la clave que establece el verdadero cliente.

    
pregunta allwynmasc 05.06.2017 - 13:03
fuente

1 respuesta

2

En esta respuesta, solo abordo las suposiciones principales que usted tuvo incorrectamente. Para obtener más detalles sobre cómo funciona el protocolo de enlace TLS, incluida la validación de certificados y el intercambio de claves, estudie ¿Cómo funciona SSL / ¿Trabajo con TLS? .

  

CA le da a fb un pub y una clave pvt

No, no lo hace. El propietario del dominio crea un par de claves, coloca la parte pública en una solicitud de firma de certificado y la CA crea un certificado basado en este CSR. La CA generalmente nunca ve la clave privada para el certificado, aunque algunos ofrecen proporcionar el par de claves para los clientes, lo que, por supuesto, no se recomienda ya que la clave privada debe ser privada.

  

Cuando te conectas a fb.com. Fb me envía su clave de publicación cifrada con la clave pvt de CA

Mal. El servidor envía el certificado que contiene la clave pública en plano. El certificado está firmado por la CA. Esta firma se usa luego para construir la cadena de confianza hasta la CA raíz de confianza local en el cliente. Los certificados de cadena adicionales enviados por el servidor podrían estar involucrados en esto.

El servidor se autentica ante el cliente demostrando que posee la clave privada que coincide con la clave pública en el certificado. Esto se hace usando la clave privada para firmar un "desafío" que se creó en base a los datos del cliente.

  

Mi navegador descifra esto con la clave de publicación de CA que ya tiene.

Dado que la clave pública se envía de forma simple dentro del certificado, no es necesario descifrar nada.

  

Ahora tengo la clave de publicación de fb y mi navegador genera la clave de sesión que se envía a fb encriptada con la clave de publicación de fb

Esto describe aproximadamente el proceso utilizado con el intercambio de claves RSA. Con el intercambio de claves DH es diferente.

  

No entiendo la parte acerca de que fb puede cifrar su propia clave de publicación con la clave pvt de CA.

No encripta la clave pública. Ver más arriba.

    
respondido por el Steffen Ullrich 05.06.2017 - 14:41
fuente

Lea otras preguntas en las etiquetas