La credencial delegada es un certificado TLS de corta duración que se utiliza para mejorar la seguridad mediante una recuperación más rápida de la fuga de claves privadas , sin aumentar la latencia del protocolo de enlace TLS . Actualmente es un borrador de Internet del IETF , [1] y ha sido utilizado por Cloudflare [2] y Facebook , [3] con soporte de navegador de Firefox . [4]
Motivación
Los sitios web modernos y otros servicios utilizan redes de entrega de contenido (CDN), que son servidores potencialmente distribuidos en todo el mundo, para responder a la solicitud de un usuario lo más rápido posible, junto con otros servicios que brindan las CDN, como la mitigación de DDoS . Sin embargo, para establecer una conexión segura , se requiere que el servidor demuestre la posesión de una clave privada asociada con un certificado, que sirve como una cadena de confianza que une la clave pública y una parte de confianza. La parte de confianza es normalmente una autoridad de certificación (CA).
Las CA emiten estos certificados digitales con un tiempo de vencimiento, generalmente desde unos meses hasta un año. Es responsabilidad del servidor renovar el certificado cerca de su fecha de vencimiento. El conocimiento de una clave privada asociada a un certificado válido es devastador para la seguridad del sitio, ya que permite ataques Man-in-the-middle , en los que una entidad maliciosa puede suplantar a un usuario como un servidor legítimo. Por lo tanto, estas claves privadas deben mantenerse seguras, preferiblemente no distribuidas en todos los servidores de la CDN. Específicamente, si una clave privada se ve comprometida, el certificado correspondiente debe ser revocado de manera óptima , de modo que los navegadores ya no admitirán este certificado. La revocación de certificados tiene dos inconvenientes principales. En primer lugar, los métodos de revocación actuales no funcionan bien en todos los navegadores y ponen en riesgo a los usuarios; y en segundo lugar, tras la revocación, el servidor debe obtener rápidamente un nuevo certificado válido de la CA e implementarlo en todos los espejos .
Diseño
Una credencial delegada es una clave de corta duración (de unas pocas horas a unos días) que el propietario del certificado delega al servidor para su uso en TLS. De hecho, es una firma : el propietario del certificado usa la clave privada del certificado para firmar una clave pública delegada y una fecha de vencimiento.
Dada esta credencial delegada, un navegador puede (si la admite) verificar la autenticidad del servidor verificando el certificado delegado y luego verificar el certificado en sí.
Ventajas
Este enfoque tiene muchas ventajas sobre las soluciones actuales:
- Las credenciales delegadas son de corta duración, por lo que las claves privadas se pueden cambiar con frecuencia. Por lo tanto, incluso si una credencial delegada en particular se ve comprometida sin que el propietario del certificado lo sepa, esa credencial comprometida solo se puede abusar por un período muy corto de tiempo.
- No se necesita revocación para certificados robados. [ cita requerida ]
- El propietario del certificado no necesita exponer su clave privada a los servidores CDN, sino que debe proporcionarles periódicamente credenciales delegadas. Por lo tanto, el propietario del certificado puede mantener un control exclusivo sobre su clave privada (e incluso almacenarla en HSM ) mientras usa servidores CDN de terceros.
- La credencial delegada tiene su propia clave, por lo que puede experimentar con nuevos algoritmos como Ed25519 . Esto puede facilitar la agilidad criptográfica .
Referencias
- ^ Barnes, Richard; Iyengar, Subodh; Rescorla, Eric; Sullivan, Nick. "Credenciales delegadas para TLS" . tools.ietf.org . Consultado el 21 de junio de 2020 .
- ^ "Credenciales delegadas para TLS" . El blog de Cloudflare . 1 de noviembre de 2019 . Consultado el 21 de junio de 2020 .
- ^ Guzmán, Alex; Nekritz, Kyle; Iyengar, Subodh (1 de noviembre de 2019). "Credenciales delegadas: mejora de la seguridad de TLS" . Ingeniería de Facebook . Consultado el 21 de junio de 2020 .
- ^ Jacobs, Kevin; Jones, JC; Merwe, Thyla van der. "Validación de credenciales delegadas para TLS en Firefox" . Blog de seguridad de Mozilla . Consultado el 21 de junio de 2020 .