Cómo funciona la firma electrónica: hash, PKI, PAdES explicado
La firma electrónica avanzada y cualificada se basan en criptografía de clave pública. Esta guía explica paso a paso qué pasa cuando firmas un PDF: hash, cifrado con clave privada, certificado, sello de tiempo y verificación.
El problema que resuelve la firma electrónica#
Sin firma electrónica, un PDF puede modificarse después de firmar y nadie lo nota. El sello de la empresa pegado en JPG puede copiarse. La firma manuscrita escaneada se reutiliza con copy-paste.
La firma electrónica avanzada y cualificada resuelven dos cuestiones simultáneamente:
- Integridad: ¿el documento se ha modificado desde la firma? Sí o no, sin ambigüedad.
- Autenticación: ¿quién ha firmado realmente? Identidad criptográficamente verificable.
Y lo hacen sin necesidad de que receptor y emisor compartan ningún secreto previo. Eso es posible gracias a la criptografía de clave pública.
Paso 1 · Hash criptográfico del documento#
Cuando firmas un PDF, lo primero que hace la solución es calcular su hash.
Un hash es una función matemática que toma una entrada de cualquier tamaño (un PDF de 100 MB o de 100 bytes) y devuelve una salida de tamaño fijo. SHA-256 devuelve siempre 32 bytes (256 bits). Por ejemplo:
SHA-256("Hola mundo") → 7c7d6c... (32 bytes en hexadecimal)
SHA-256("Hola mundo.") → e8c2dc... (32 bytes completamente distintos)
Las propiedades clave de un hash criptográfico:
- Determinista: misma entrada → mismo hash, siempre.
- Resistente a colisiones: encontrar dos entradas distintas con el mismo hash es computacionalmente inviable.
- Sensible a un bit: cambiar 1 bit del documento cambia ~50% de los bits del hash.
Eso significa que el hash es una huella digital única del documento. Si cambia 1 byte del PDF firmado, el hash cambia y la firma deja de ser válida.
Paso 2 · Cifrado con clave privada#
Cada firmante tiene un par de claves criptográficas:
- Clave privada: solo la conoce el firmante (o su dispositivo).
- Clave pública: se distribuye libremente.
La criptografía de clave pública (RSA, ECDSA) tiene una propiedad mágica: lo que cifra una clave solo lo descifra la otra.
Cuando firmas, el sistema:
- Calcula el hash del documento.
- Cifra el hash con tu clave privada.
- Adjunta el resultado al PDF como firma.
Ese resultado cifrado solo se puede descifrar con tu clave pública. Y solo TÚ tienes la clave privada que produjo ese cifrado. Por tanto, demostrar que el descifrado con tu clave pública da el hash correcto prueba que tú firmaste.
Paso 3 · Certificado del firmante#
¿Cómo sabe el receptor que la clave pública corresponde realmente a ti y no a un impostor?
Aquí entran los certificados digitales. Un certificado es un documento electrónico firmado por una autoridad de certificación (CA) confiable que dice:
Yo, CA Confiable, certifico que la clave pública
0x9f8c2a...pertenece a Manuel Junguito, DNI 12345678A, válida hasta el 2027-12-31.
Cuando firmas, el certificado se embebe junto a la firma. Cualquiera puede verificar:
- La cadena del certificado (CA confiable → certificado intermedio → certificado del firmante).
- La firma de la CA sobre el certificado.
- La validez temporal (no caducado) y de revocación (no revocado en CRL/OCSP).
Si todo cuadra, la clave pública es legítimamente del firmante.
Paso 4 · Sello de tiempo (TSA)#
Hay un problema adicional: ¿cuándo firmaste exactamente? El reloj del ordenador del firmante no es fiable (puede falsearse).
La solución es el sello de tiempo cualificado (Time Stamping Authority, TSA). La TSA es un tercero confiable cuyo único trabajo es certificar momentos en el tiempo. El proceso:
- La plataforma envía a la TSA el hash de tu firma.
- La TSA añade su timestamp + firma todo con su propia clave privada.
- Devuelve un token con: hash + tiempo + firma de la TSA.
Ese token se embebe en el PDF firmado. Cualquiera puede verificar criptográficamente que tu firma existía en el instante T.
Los servicios de sello de tiempo electrónico cualificados deben cumplir los requisitos del Anexo III del Reglamento eIDAS y ser provistos por un prestador cualificado de servicios de confianza incluido en la TSL nacional.
Paso 5 · Verificación#
Cuando alguien recibe el PDF firmado, su lector (Adobe Reader, p. ej.) hace:
- Extrae la firma + certificado del PDF.
- Verifica la cadena del certificado contra las CAs confiables (TSL europea).
- Recalcula el hash del documento.
- Descifra la firma con la clave pública del certificado → obtiene el hash original que el firmante calculó.
- Compara los dos hashes:
- Coinciden → firma válida, documento íntegro, identidad verificada.
- No coinciden → documento alterado o firma falsa.
- Verifica el sello de tiempo contra la TSA emisora.
Todo el proceso ocurre en milisegundos sin que el receptor toque nada.
Estipula
¿Necesitas firma con audit chain criptográfico verificable?
Estipula aplica firma electrónica avanzada con audit chain inmutable. Cada documento puede verificarse públicamente en /verify subiendo el PDF.
PAdES, XAdES, CAdES — los tres formatos#
eIDAS no impone un formato concreto, pero ETSI ha estandarizado tres familias según el tipo de archivo:
PAdES — para PDFs#
PAdES (PDF Advanced Electronic Signatures), estándar ETSI EN 319 142, embebe la firma dentro del propio PDF sin alterar la apariencia visible. Adobe Acrobat Reader la valida nativamente.
Niveles:
- PAdES-B-B (Basic) — firma básica.
- PAdES-B-T — Basic + sello de tiempo cualificado.
- PAdES-B-LT — Basic + sello de tiempo + información de validación a largo plazo (LTV).
- PAdES-B-LTA — LT + archive timestamps periódicos para validez +10 años.
PAdES es el formato más usado en B2B porque los PDFs son ubicuos.
XAdES — para XML#
XAdES (XML Advanced Electronic Signatures), estándar ETSI EN 319 132, aplica firma a documentos XML. Se usa principalmente en:
- Facturación electrónica B2G (FACe en España).
- Servicios web con SOAP firmado.
- Documentos ofimáticos (LibreOffice ODF).
CAdES — para datos genéricos#
CAdES (CMS Advanced Electronic Signatures), basado en el RFC 5652 (Cryptographic Message Syntax), firma datos binarios cualquiera. Se usa cuando el documento no es PDF ni XML — por ejemplo, archivos ZIP, imágenes, ejecutables, mensajes de correo S/MIME.
Comparación de formatos#
| Formato | Tipo de archivo | Uso típico | Validez visual en Adobe |
|---|---|---|---|
| PAdES | Contratos, formularios, anexos | Sí (icono firma + identidad) | |
| XAdES | XML | Factura electrónica, FACe, B2G | No (requiere visor XML) |
| CAdES | Cualquier binario | Datos genéricos, S/MIME | No |
Para B2B con clientes en España, PAdES es prácticamente obligatorio porque es lo que ven y validan los receptores en su Adobe Reader sin instalar nada extra.
Validación a largo plazo (LTV / LTA)#
Un problema sutil: los certificados caducan (típicamente 1-3 años). Si firmas hoy y el certificado caduca en 2027, ¿la firma sigue siendo verificable en 2030?
La respuesta corta: solo si la firma está en formato B-LT o B-LTA.
- B-LT (Long Term) — embebe la información de validación (CRL, OCSP) en el momento de firma. Permite verificar la firma incluso después de que el certificado caduque.
- B-LTA (Long Term with Archive) — añade timestamps periódicos sobre la firma + datos de validación. Cada vez que un algoritmo criptográfico se debilita (ej. SHA-1 → SHA-256), el archivo timestamp puede actualizarse para mantener la validez probatoria décadas después.
Para contratos de larga duración (laborales indefinidos, hipotecas, registros notariales) lo correcto es B-LTA.
¿Qué nivel necesitas?#
Decisión rápida:
- Documentos transitorios (NDA estándar, aprobaciones rutinarias): PAdES-B-B o PAdES-B-T suficiente.
- Contratos comerciales / laborales que pueden necesitar defensa en juicio en años: PAdES-B-LT.
- Documentos críticos a largo plazo (escrituras, hipotecas, registros): PAdES-B-LTA.
Preguntas frecuentes#
¿La firma electrónica simple (SES) usa toda esta criptografía?#
No necesariamente. La SES puede ser tan simple como un clic + audit trail. Toda esta infraestructura criptográfica aplica desde AES en adelante.
¿Qué pasa si pierdo mi clave privada?#
Si pierdes la clave privada del certificado QES, debes revocar el certificado inmediatamente al QTSP emisor. Las firmas previas siguen siendo válidas si tienen sello de tiempo (probaron tu firma en un momento anterior a la revocación). Las nuevas firmas con esa clave perdida no.
¿Por qué SHA-256 y no SHA-1 o MD5?#
SHA-1 y MD5 están criptográficamente rotos: existen ataques prácticos para producir colisiones (dos documentos distintos con el mismo hash). SHA-256 es el estándar actual recomendado por ETSI y NIST. SHA-512 y SHA-3 también son aceptables.
¿Adobe Reader valida estas firmas automáticamente?#
Sí, para PAdES. Adobe Reader incluye la lista TSL europea con todas las CAs confiables y valida certificados, sello de tiempo y LTV nativamente. Para XAdES o CAdES necesitas Autofirma o herramientas específicas.
¿Puedo firmar electrónicamente sin saber criptografía?#
Sí. Las plataformas de firma (Estipula, DocuSign, Signaturit, etc.) abstraen toda la complejidad. Tú firmas, ellas aplican el formato correcto, gestionan certificados y sellos de tiempo, y entregan un PDF verificable.