Esto supone que conoce los conceptos básicos de la autenticación de clave pública y cómo un navegador web se comunica con un servidor web a través de un nombre de dominio.
La interacción es entre el navegador web del usuario y el servidor web de la empresa.
Claves públicas y claves privadas
El servidor web tiene una clave pública y una clave privada.
La clave privada puede descifrar un mensaje cifrado por la clave pública.
La clave pública puede descifrar un mensaje cifrado por la clave privada.
La autoridad de certificación tiene su propia clave pública y clave privada.
El servidor web envía la información de su empresa, la clave pública y el nombre de dominio (que se asociará con el certificado SSL) a la autoridad de certificación.
La autoridad de certificación envía un mensaje de confirmación a la dirección de correo electrónico asociada con el nombre de dominio, a fin de demostrar que esta solicitud fue realizada por el propietario genuino del nombre de dominio.
En este punto, la autoridad de certificación esperará hasta que el propietario del nombre de dominio valide la solicitud por correo electrónico.
Firma de certificado
La autoridad de certificación cifra el nombre de dominio del servidor web, la información de la compañía y la clave pública utilizando su propia clave privada.
La autoridad de certificación envía el resultado cifrado al servidor web.
Este resultado es el certificado SSL, un mensaje de texto que contiene el nombre de dominio, la información de la compañía y la clave pública del servidor web que se ha cifrado con la clave privada de la autoridad de certificación.
El servidor web envía este certificado al navegador del usuario.
Autoridades de certificación de confianza
El navegador web viene precargado con una lista de autoridades de certificados de confianza y sus claves públicas.
El navegador web descifra el certificado utilizando la clave pública de la autoridad de certificación correspondiente.
En este punto, el navegador web sabe que el certificado y su contenido son confiables porque solo un mensaje cifrado con la clave privada de la autoridad certificadora podría haber sido descifrado coherentemente por la clave pública de la autoridad certificadora.
El navegador web ahora conoce la información confiable de la compañía, la clave pública y el nombre de dominio que se supone que están asociados con el servidor web, lo cual aún es sospechoso.
El navegador web confirma que el nombre de dominio en el certificado coincide con el nombre de dominio real del servidor web.
En este punto, si los nombres de dominio coinciden, el navegador web determina que el servidor web es lo suficientemente confiable como para enviar datos cifrados.
También en este punto, el navegador web determina que puede usar la clave pública confiable del certificado para cifrar sus mensajes porque solo la clave privada del servidor web genuino puede descifrar ese mensaje.
¡Tenga en cuenta que si se usó una clave pública no confiable (sin pasar por la verificación de la autoridad de certificación), el navegador web puede haber cifrado y enviado información confidencial solo para ser descifrada por la clave privada de un servidor malicioso! En otras palabras, es imperativo que se confíe en la clave pública porque cifrar un mensaje con ella es la única línea de defensa contra la información que envía el navegador web.
Continuando, el navegador web cifra su mensaje usando la clave pública de confianza y envía el mensaje cifrado al servidor web.
El servidor web descifra el mensaje con la clave privada genuina, si tiene una, luego lee el mensaje descifrado con éxito.
Clave secreta compartida
Cuando el servidor web responde al navegador web, ese mensaje también debe enviarse de forma segura.
El navegador web podría copiar lo que el servidor web acaba de hacer (excluyendo el proceso de la autoridad de certificación) al generar una clave pública y una clave privada para luego enviar su clave pública al servidor web. Esto establecería una conexión segura llamada cifrado asimétrico bidireccional. Sin embargo, tal comunicación es gravemente computacional (en términos relativos).
Por lo tanto, el enfoque estándar es usar una clave secreta compartida que pueda cifrar un mensaje y también descifrarlo.
El navegador web genera una clave secreta, la cifra mediante la clave pública de confianza y la envía al servidor web.
Si el servidor web es original, podrá descifrar la clave secreta con éxito.
En este punto, tanto el navegador web como el servidor web tienen una clave secreta compartida que pueden usar para cifrar y descifrar otras comunicaciones a partir de ahora.
Para leer más: