Digamos que JayP quiere conectarse a youtube.com a través de la Internet pública. Antes de que ocurra cualquier comunicación, surgirán algunas preocupaciones:
¿Cómo puede verificar que efectivamente se está comunicando con youtube? (Autenticación)
¿Cómo puede saber JayP que nadie ha interceptado su mensaje? (Confidencialidad)
Además, ¿cómo puede estar seguro de que nadie alteró el mensaje? (Integridad)
Bueno, abordemos cada problema por separado. En primer lugar, JayP debe verificar la identidad de Youtube . Para eso, necesita la clave pública de Youtube. La clave pública representa la identidad de youtube.
El problema es que los atacantes han ideado formas de interceptar una solicitud de una computadora a otra en Internet y lanzar un ataque de intermediario . Con este tipo de ataque, nuestro atacante Chady inyectaría su propia clave pública y haría que JayP pensara que se está comunicando con Youtube, cuando en realidad se está comunicando con Chady.
Chady se cuela y envía SU clave pública.
Ahora usted puede pensar, aterrador, ¿no es así? Imagine lo que podría ser posible con este tipo de ataque, desde el robo de información personal, como credenciales de inicio de sesión o detalles de tarjetas de crédito, hasta la distribución de malware u otros objetivos maliciosos. Entonces, ¿cómo puede JayP estar seguro de que la clave pública que recibió proviene realmente de Youtube? Ahí es donde entran los certificados digitales. (TADAAA)
Se aseguran de que la clave pública efectivamente provenga de Youtube, y no de un Chady malicioso. En realidad, los certificados digitales se pueden usar no solo para HTTPS, sino también para correo, IOT y VPN…
Un certificado digital contendrá bastante información, exploremos las más importantes:
El emisor es el tercero que firmó este certificado, lo abordaremos en un momento. Parte de la información básica incluirá el nombre común, la organización y el país.
Por supuesto, un certificado digital también incluirá su Validez , con dos campos críticos, ni antes ni después.
El Sujeto es el propietario del certificado y sería Youtube en nuestro caso. El asunto contendrá información como el nombre común, la dirección y, lo que es más importante, la clave pública.
Por último, un certificado digital incluye su Firma . Esta es la firma firmada por el emisor que prueba que este certificado es auténtico.
Los certificados digitales están firmados por entidades denominadas autoridades de certificación (por ejemplo, DigiCert, Comodo, Symantec, Google Trust Services).
Pero espera, ¿qué son las autoridades de certificación?
Bueno, en pocas palabras, las autoridades de certificación son organizaciones de terceros confiables responsables de emitir certificados digitales.
Las autoridades de certificación tienen sus propias claves públicas y privadas. A partir de eso, expliquemos cómo se hacen las firmas.
La información mencionada anteriormente contenida en un certificado digital será hash utilizando un algoritmo SHA-256 , por ejemplo. Una vez que se genera el hash, la autoridad de certificación cifra el hash utilizando su clave privada mediante el cifrado de clave asimétrica RSA. Este hash cifrado es la firma de un certificado y solo se puede descifrar utilizando la clave pública de la autoridad de certificación. Cualquiera que tenga la clave pública de la autoridad de certificación que haya firmado este certificado puede descifrar y verificar que el certificado sea auténtico y no haya sido alterado.
Cuando el navegador recibe el certificado, codificará toda la información de su lado utilizando el mismo algoritmo hash, en este ejemplo, SHA-256. Luego, descifra la firma utilizando la clave pública de la autoridad de certificación para recibir el hash de la autoridad de certificación. Si ambos hashes coinciden, el navegador puede confirmar que este certificado realmente proviene de la autoridad de certificación reclamada.
Existen jerarquías para las autoridades de certificación: la autoridad de certificación raíz y la autoridad de certificación intermedia.
Estas CA raíz en realidad no emiten directamente ningún certificado digital para los servidores. Únicamente emite certificados digitales para las AC intermedias que actúan en su nombre. Las CA intermedias pueden emitir certificados digitales para otra CA intermedia o para un servidor directamente.
Por lo tanto, existe una cadena de confianza, desde la CA raíz hasta el servidor.
Los sistemas operativos vienen con un almacén de confianza, que es una lista de autoridades de certificación raíz confiables. Esta lista la mantienen las empresas que fabrican sistemas operativos como Apple y Microsoft. Todos requieren una autoridad de certificación raíz para someterse a una o más auditorías que demuestren su confiabilidad y validez.
En primer lugar, supongamos que youtube.com es una empresa nueva. Al comprender la necesidad de estar seguro en una Internet disponible públicamente, Youtube tendría que poseer un certificado digital confiable y presentárselo a sus visitantes.
En primer lugar, Youtube busca una autoridad de certificación intermedia. Recuerde que las autoridades de certificación intermedias son intermediarios entre los servidores y las autoridades de certificación raíz. En el caso de Youtube, Google tiene su propia autoridad certificadora llamada Google Trust Services.
Después de elegir una CA intermedia, Youtube realiza una solicitud de firma de certificado. La solicitud de firma del certificado contendrá información que se incluirá en el certificado digital de Youtube, como el nombre común, la organización y, lo que es más importante, la clave pública de Youtube. Youtube enviará la solicitud de firma del certificado a la CA intermedia.
La autoridad de certificación intermedia verificará el CSR que contiene información sobre el propietario, también denominado sujeto. Luego, agrega campos como información del emisor, que es información sobre el certificado intermedio y la validez, luego firma toda esta información como se explicó anteriormente en el proceso de firma. Después de firmar, la autoridad de certificación intermedia enviará de vuelta el certificado digital para youtube.
Youtube ahora puede adjuntar su certificado digital recién comprado a sus servidores web.
Cuando se conecte a Youtube, Youtube enviará su propio certificado y los certificados de las autoridades de certificación intermedias. La autoridad de certificación raíz no se enviará porque está disponible en el sistema operativo de JayP. El certificado de Youtube incluirá la información del emisor, que es la autoridad de certificación intermedia. Por lo tanto, el navegador sabrá que este certificado está firmado por la autoridad de certificación intermedia de los servicios de confianza de Google y tendrá su certificado. Cualquier certificado digital contendrá información y una firma, como se explicó anteriormente. El navegador analizará toda la información para obtener su valor hash. Luego, descifrará la firma utilizando la clave pública del emisor, es decir, la clave pública de la autoridad certificadora intermedia. Nuevamente, recuerde que la firma solo se puede descifrar utilizando la clave pública del emisor. Después de eso, el navegador comparará los dos valores hash, si son iguales, entonces se verifica esta parte de la cadena, y el navegador pasará a verificar la autoridad de certificación intermedia porque, como se explicó, las autoridades de certificación intermedias no son de confianza directamente para los sistemas operativos
Bien, ahora el navegador verificará el certificado de la autoridad de certificación intermedia de confianza de Google. Este certificado intermedio está firmado por la autoridad de certificación raíz de Google Trust Services. Tenga en cuenta que antes de este paso, podríamos tener muchas autoridades de certificación intermedias entre el certificado final y el certificado raíz, y para cada parte de la cadena ocurrirá el mismo proceso de verificación.
En nuestro ejemplo, nos limitaremos a uno. La firma del certificado de la autoridad de certificación intermedia se verificará con la clave pública de la autoridad de certificación raíz, como se indicó anteriormente. Al llegar a la autoridad de certificación raíz, ahí es donde termina la cadena. La autoridad de certificación raíz, que está autofirmada, estará disponible en el almacén de confianza del sistema operativo de JayPee.
¡Eso es todo! El navegador, después de esta verificación, mostrará un bonito icono de candado, como el de su navegador. Ahora se garantiza que la comunicación es realmente con Youtube y que es segura (HUrra)
Antes de terminar, explicaremos brevemente tres tipos principales de certificados TLS.
Un único certificado de dominio está diseñado para proteger un único nombre de dominio completo. Significa que el certificado es válido solo para un dominio específico y no cubre ningún subdominio o dominio adicional. Por ejemplo, para el dominio "www.youtube.com", un solo certificado de dominio protegería solo ese dominio y ninguna otra variación como "academy.youtube.com" o "blog.youtube.com".
Casos de uso: los certificados de dominio único son ideales cuando tiene un solo sitio web o aplicación web que no requiere subdominios adicionales. Son la opción más sencilla y rentable para proteger un dominio específico.
A continuación, tenemos un certificado comodín, que es un tipo de certificado TLS emitido para un dominio principal y todos sus subdominios mediante un único certificado. El asterisco de carácter comodín se utiliza en el campo Nombre común (CN) o en el campo Nombre alternativo del sujeto (SAN) para indicar que cualquier subdominio bajo el dominio especificado está cubierto. Por ejemplo, si tiene un certificado comodín para " .youtube.com", protegería "youtube.com", "academy.youtube.com ", blog.youtube.com, etc.
Casos de uso: los certificados comodín le evitan tener que administrar y renovar certificados individuales para cada subdominio. Sin embargo, es esencial tener en cuenta que los certificados comodín solo cubren un nivel de subdominios. Por ejemplo, un certificado comodín para "*.youtube.com" no cubriría "academy.blog.youtube.com".
Un certificado multidominio, también conocido como certificado de nombre alternativo del sujeto, le permite proteger varios dominios no relacionados dentro de un solo certificado. Cada dominio o subdominio que se protegerá se incluye en la extensión del nombre alternativo del sujeto (SAN) del certificado.
Por ejemplo, Google y otras grandes empresas utilizarían estos certificados multidominio. Uno de los principales beneficios sería la administración de certificados simplificada: Google opera una gran cantidad de aplicaciones y servicios web, cada uno con su propio dominio o subdominio. El uso de certificados multidominio les permite consolidar la gestión de certificados para varios dominios o subdominios en un solo certificado. Esto agiliza el proceso de emisión, renovación y seguimiento de certificados.
Y eso es. Tómese un tiempo para ver la lección animada.
En mi próximo artículo, hablaré sobre el cifrado con TLS.
También publicado aquí.