2 escenarios que funcionan de forma ligeramente diferente:
ESCENARIO 1:
Navegador web (cliente) accediendo a la página web (servidor) a través de HTTPS usando SSL.
El servidor tiene el archivo .PFX que contiene ambas claves. El cliente se conecta a un sitio web en el servidor y el servidor envía una copia de su clave pública (archivo .CER) al cliente como parte del protocolo de enlace SSL. A continuación, el cliente genera una "clave de sesión" y la cifra utilizando la clave pública recibida del servidor. La clave de sesión se envía de vuelta al servidor y se descifra para confirmar su autenticidad. Si tiene éxito, tanto el Cliente como el Servidor ahora comparten la "Clave de Sesión" para comunicarse usando cifrado simétrico (es decir, tanto el cliente como el servidor, ahora ambos cifran Y descifran todos los mensajes entre ellos usando la misma clave de sesión. Todo esto está siendo hecho detrás de escena en el fondo del navegador web, entre el momento en que ingresas la URL en la barra de direcciones y ves que aparece la página web.
ESCENARIO 2: La
aplicación (cliente) se conecta a un sitio FTP (servidor)
o
escritorio remoto (cliente a servidor) mediante SSH
(se aplicarán ambos ejemplos)
En este escenario, tanto el cliente como el servidor tendrán sus propios pares de claves públicas y privadas
(a diferencia de los otros ejemplos mencionados en este hilo, que solo explican cuando un servidor tiene ambas claves y el cliente solo tiene la clave pública)
Ahora, para fines de explicación, etiquetemos los pares de claves de la siguiente manera:
A1 y A2 = como las claves públicas y privadas del servidor respectivamente
B1 y B2 = como claves privadas y públicas de los clientes respectivamente
Usando este modelo, las publicaciones anteriores en este hilo hablaban de cuándo el servidor tiene A1 y A2 ( archivo .PFX ) y comparte solo una copia de A2 ( .CER ) con los clientes
Mientras que las conexiones FTP o SSH (existen otros ejemplos) consisten en claves A1 , A2 , B1 y B2 en toda la comunicación cliente-servidor. Por ejemplo, el
cliente se conecta al servidor FTP.
- El servidor envía copia de su clave pública (A2) al cliente.
- El cliente envía su propia clave pública (B2) de regreso al servidor, completando el protocolo de enlace.
- Esto ahora usará cifrado asimétrico
El servidor ahora tiene A1 , ( su propio privado ), A2 ( su propio público ) y una copia de B2 ( público del
cliente ) El cliente ahora tiene B1 , ( su propio privado ), B2 ( su propio público ) y una copia de A1 ( servidor Público )
Comunicaciones
cliente -servidor: el cliente usa A2 (clave pública del servidor) para cifrar los mensajes destinados al servidor, el servidor los descifra usando A1 (clave privada del servidor)
Comunicaciones de
servidor a cliente: el servidor utiliza B2 (clave pública del cliente) para cifrar el mensaje vinculado al cliente, el cliente los descifra utilizando B1 (clave privada del cliente)
Con respecto a los tipos de archivo .CER y .PFX, el servidor tendrá su propio .PFX que no debe distribuirse fuera de su organización, sino que debe distribuir el archivo .CER a los clientes.
se puede encontrar más información aquí:
https://www.digicert.com/ssl-cryptography.htm
y aquí:
/server/107433/why-does-a-ssh-public-key-sit-on-the-server-and-not-with-the-client