La respuesta se encuentra en un método conocido como cifrado de clave pública-privada junto con un concepto conocido como ‘la cadena de confianza’. Esta técnica de cifrado utiliza un algoritmo con dos claves:
- La clave privada: una pieza de información mantenida solo por el propietario.
- La clave pública: una información que se puede compartir públicamente con cualquier persona.
Las dos claves están relacionadas como parte de un algoritmo de tal manera que se puedan hacer los siguientes tipos de declaraciones:
- Cualquiera puede cifrar un mensaje con la clave pública de otra persona, de modo que solo el propietario de la clave privada correspondiente pueda descifrarlo.
- Un remitente puede firmar un mensaje con su clave privada para que cualquier persona con la clave pública pueda garantizar que en realidad proviene del remitente y que no ha sido alterado.
- Un efecto relacionado con (2) es que los certificados de clave pública pueden ser firmados por una autoridad confiable. Si tiene el certificado público de una autoridad en la que confía, puede confiar en los certificados públicos de otros que esa autoridad ha firmado. Así es como se implementa la ‘cadena de confianza’. Su navegador web (Firefox, Safari, Chrome, etc.) viene preinstalado con los certificados públicos de las ‘autoridades de firma’ confiables, como Verisign y otros que ‘avalan’ los certificados de los sitios web en todas partes.
Dados estos conceptos, se puede establecer una conexión segura de la siguiente manera:
- ¿Cuáles fueron los precursores de internet? ¿Cómo son diferentes de la versión actual?
- ¿Tu vida será mejor con o sin Internet?
- Cómo recuperar mi sitio web de Penguin con tiempo real 4.0
- ¿Por qué los correos electrónicos tienen una latencia mucho más alta que los mensajes instantáneos?
- ¿Existen reglas o leyes internacionales para Internet?
- La computadora A publica su certificado público, firmado por una autoridad de certificación de confianza.
- Debido a que se comparte públicamente, la computadora B puede obtener una copia del certificado de A y puede confiar en él porque está firmado por una autoridad confiable.
- La computadora B usa el certificado público de A para enviar un mensaje cifrado a A que solo A puede decodificar. En este punto, esta es una comunicación segura unidireccional.
- Dentro de este canal, B puede enviar un ‘certificado público’ propio para que A lo use al cifrar los datos para enviarlos de vuelta a B. Ahora tenemos una comunicación segura bidireccional.
Hasta ahora, no es necesario que el certificado público que B envió sea firmado y confiable. Literalmente, se puede generar sobre la marcha y siempre que B mantenga la clave privada correspondiente, el canal se puede cifrar de forma segura. Sin embargo, hasta este punto, mientras las comunicaciones están encriptadas, A realmente no sabe quién es B. Para identificar (o “autenticar”) quién es B, A puede
- solicite a B que se autentique dentro de la conexión segura utilizando un par de nombre de usuario y contraseña o
- solicite a B que proporcione un certificado público firmado por una autoridad en la que A confía. Este método, dado que involucra a ambas partes que proporcionan un certificado público firmado por una autoridad confiable, se conoce comúnmente como autenticación de certificado ‘mutuo’.
Una vez que A autentica quién es B, puede decidir qué tipo de privilegios de acceso otorgar.
Lo anterior pretende ser una explicación simple de muy alto nivel. A propósito, he omitido todos los detalles de miedo, como certificados x509, archivos PEM, almacenes de claves, cookies, etc., etc. Espero que esto sea útil.