Explicación del protocolo de enlace SSL con certificado

3

He leído muchos artículos.

  

El cliente utiliza la información enviada por el servidor para autenticar el   servidor. Si el servidor no puede ser autenticado, se avisa al usuario de   El problema de que una conexión cifrada y autenticada no puede ser   establecido. Si el servidor puede ser autenticado exitosamente,   el cliente procede.

Sin embargo, no he encontrado una respuesta a mi siguiente pregunta.

Cuando el navegador de un cliente va al sitio web de un banco y obtiene el certificado del banco, ¿qué hace el sistema operativo para aprobar que este es el banco?

Creo que es como sigue, pero corríjame si me equivoco:

  1. El banco envía su certificate y su public key al cliente. Este certificado también tiene un hashed info que se cifró con el certificado del servidor private key .

  2. El cliente busca si es una CA + válida que descifra la información de hash con el CA public key .

  3. El cliente cifra el PK del servidor y también obtiene un valor de hash para ver si ambos hashes son iguales.

¿Esto es correcto?

    
pregunta Royi Namir 23.02.2012 - 22:15
fuente

1 respuesta

5

En primer lugar, un recordatorio, en la criptografía de clave pública:

  • La clave privada se usa para firmar y descifrar / descifrar .
  • La clave pública se utiliza para verificar firmas y cifrar / encriptar .

Consulte el glosario de la especificación TLS :

  

criptografía de clave pública :         Una clase de técnicas criptográficas que emplean cifrados de dos claves.         Los mensajes cifrados con la clave pública solo pueden ser descifrados con         La clave privada asociada. Por el contrario, los mensajes firmados con el         La clave privada se puede verificar con la clave pública.

En tu pregunta:

  

1) el banco envía su certificado y su clave pública al cliente.

     

este certificado también tiene una información de hash que se cifró con   clave privada del certificado del servidor

Esto no tiene sentido (no cifras con una clave privada).

El certificado del servidor está firmado utilizando una clave privada (y sí, es un hash del contenido del certificado que se ha firmado efectivamente). Sin embargo, no se hace con la clave privada del servidor (a menos que el certificado sea autofirmado). Esto se hace usando las claves privadas del emisor del certificado (la CA): la que se menciona en el certificado Issuer DN .

Su navegador o sistema operativo viene con un conjunto predefinido de certificados de CA. Estas CA son aquellas que pueden emitir un certificado, es decir, firmar su contenido con sus claves privadas (y colocar su propio DN de Asunto como el DN del Emisor del certificado que emiten). Al verificar un certificado dado (a priori desconocido), busca uno de sus certificados de CA conocidos cuyo DN de Asunto coincide con el DN del Emisor de ese certificado de servidor. Si la clave pública de ese certificado de CA le permite verificar el certificado del servidor (es decir, si la CA efectivamente firmó el contenido de ese certificado), es una coincidencia.

(También es posible crear una cadena cuando hay certificados de CA intermedios: el servidor puede enviar una cadena, que puede tener que vincular a sus certificados de CA conocidos).

No hay encriptación involucrada en todo esto: se trata de una firma digital.

    
respondido por el Bruno 24.02.2012 - 00:43
fuente

Lea otras preguntas en las etiquetas