Pregunta

Tengo una pequeña confusión en el protocolo de enlace SSL entre el navegador y el servidor en un escenario típico https web:

Lo que he entendido hasta ahora es que en el proceso de establecimiento de conexión SSL, el cliente (navegador en este caso) encripta una clave simétrica seleccionados al azar con la clave pública (certificado recibido del servidor). Esto se envía de vuelta al servidor, el servidor descifra (clave simétrica) con la clave privada. Esta clave simétrica ahora se utiliza durante el resto de la sesión para cifrar / descifrar los mensajes en ambos extremos. Una de las razones principales para ello se da como el cifrado más rápido utilizando claves simétricas.

Preguntas

1) ¿Cómo navegador Pick y genera esta clave simétrica "al azar" seleccionado?

2) Los desarrolladores (o / y los usuarios del navegador) tienen control sobre este mecanismo de generación de claves simétricas?

¿Fue útil?

Solución

Aquí es una muy buena descripción de cómo funciona el establecimiento de conexión HTTPS. Voy a ofrecer Resumen forma clave de sesión es adquirida por ambas partes (cliente y servidor), este proceso se conoce como "un protocolo de acuerdo de claves", aquí cómo funciona:

  1. El cliente genera el 48 bytes “secreto pre-maestro” valor aleatorio.
  2. Las almohadillas cliente estos bytes con datos aleatorios para hacer la entrada igual a 128 bytes.
  3. El cliente cifra con la clave pública del servidor y lo envía al servidor.
  4. Entonces llave maestra es producida por ambas partes en forma siguiente:

    master_secret = PRF(
       pre_master_secret, 
       "master secret", 
       ClientHello.random + ServerHello.random
    )
    
  

El PRF es la “pseudo-aleatorios función” que también se define en el   especificaciones y es muy inteligente. Combina el secreto, la etiqueta ASCII, y   los datos de semillas que se le da mediante el uso de la llave-Hash Mensaje   Código de autenticación (HMAC) versiones de ambos MD5 y SHA-1   funciones. La mitad de la entrada se envía a cada función hash. Sus   inteligente, ya que es muy resistente al ataque, incluso en la cara de   debilidades en MD5 y SHA-1. Este proceso de retroalimentación puede en sí mismo y   iterate siempre para generar tantos bytes como que necesitamos.

     

Después de este procedimiento, se obtiene un 48 bytes “secreto maestro”.

Otros consejos

Citando un video en este gran vídeo en red, minutos 01:18:07

  

Bueno, ¿de dónde sacas la aleatoriedad en el equipo debido a que su   computadora es un dispositivo determinista?

     

Bueno, recoge entropías como sus movimientos de carrera del ratón, su clave   movimientos de carrera y el tiempo de su disco duro, trata de recolectar   todo lo que la aleatoriedad del universo en un tirón para que se pueda generar claves aleatorias sólo para una conexión [esta sesión] . Y si que la aleatoriedad se rompe y su pasado muchas veces   en los últimos 30 años, entonces nada de esto funciona. Si el adversario puede   la figura cuál es su aleatoriedad puede ser entonces pueden adivinar sus llaves. Así que utilice buena aleatoriedad.

Nota: las claves se crean por sesión .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top