Certificados digitales y PKI explicados para desarrolladores
Certificados digitales y PKI explicados para desarrolladores
Cada vez que abres un sitio por HTTPS, firmas un documento electrónicamente o autenticas un servicio con mTLS, dependes de una Infraestructura de Clave Pública (PKI). Después de trabajar en la implementación de una PKI y en plataformas que dependen de la firma digital, me di cuenta de que muchos desarrolladores usan certificados a diario sin tener un modelo mental claro de cómo funcionan. Vamos a solucionarlo.
Pares de claves: la base
Todo comienza con la criptografía asimétrica. Generas un par de claves:
- Una clave privada, que mantienes en secreto.
- Una clave pública, que puedes compartir con cualquiera.
Lo que una clave cifra o firma, solo la otra puede descifrarlo o verificarlo. El problema es: ¿cómo sé que una clave pública pertenece realmente a quien dice ser? Eso es exactamente lo que resuelve una PKI.
Certificados: un carné de identidad para una clave pública
Un certificado digital (normalmente en formato X.509) vincula una clave pública con una identidad: una persona, una organización, un dominio o un dispositivo. Contiene, entre otras cosas:
- El titular (a quién pertenece el certificado).
- La clave pública.
- El período de validez.
- Los usos permitidos (firma, cifrado, autenticación de servidor…).
- La firma de la Autoridad de Certificación que lo emitió.
Autoridades de Certificación y la cadena de confianza
Una Autoridad de Certificación (CA) es la entidad que verifica identidades y firma certificados. La confianza se organiza como una cadena:
- Una CA raíz, cuyo certificado está autofirmado y se mantiene fuera de línea bajo estricta protección.
- Una o más CA intermedias, firmadas por la raíz, que emiten certificados en el día a día.
- Los certificados de entidad final que usan personas, servidores y aplicaciones.
Al validar un certificado, el software recorre la cadena hasta llegar a una raíz en la que ya confía. Si algún eslabón está roto, caducado o revocado, la validación falla.
Revocación: cuando algo sale mal
Las claves privadas se pierden o se comprometen. Por eso una PKI debe poder revocar certificados antes de que caduquen, usando:
- CRL (listas de revocación de certificados), publicadas periódicamente.
- OCSP, un servicio que responde en tiempo real si un certificado sigue siendo válido.
Una validación que no comprueba la revocación está incompleta.
La firma digital en la práctica
Firmar un documento no significa cifrar todo el documento con tu clave privada. El proceso es:
- Calcular un hash del documento.
- Firmar ese hash con la clave privada.
- Adjuntar la firma y el certificado.
Quien verifica recalcula el hash, comprueba la firma con la clave pública del certificado y valida la cadena del certificado. El resultado garantiza integridad, autenticidad y no repudio.
Consejos desde la trinchera
- Protege las claves privadas con HSM o, al menos, con almacenes de claves bien asegurados. Nunca las subas a un repositorio.
- Automatiza la renovación. Los certificados caducados son una de las causas más comunes de caídas en producción.
- Usa herramientas maduras como EJBCA para operar una CA en lugar de reinventar la rueda.
- Define políticas claras (quién puede solicitar qué, por cuánto tiempo y con qué validaciones) antes de escribir código.
Conclusión
La PKI puede parecer intimidante, pero se apoya en unas pocas ideas sencillas: pares de claves, certificados que los vinculan a identidades y una cadena de confianza que puedes verificar. Entenderlas te hace mejor ingeniero cada vez que trabajas con autenticación, firmas o HTTPS.