¿Qué es una firma digital y cómo prueba el origen y la integridad?
Respuesta breve
Una firma digital es el hash de un mensaje transformado con la clave privada del firmante. El verificador recalcula el hash, aplica la clave pública del firmante y comprueba que coinciden. Como solo el firmante posee la clave privada, una firma válida prueba que el mensaje proviene de él (autenticidad), no fue alterado (integridad) y que no puede negarlo de forma creíble (no repudio).
Los entrevistadores preguntan esto para confirmar que entiendes las claves asimétricas «al revés»: el cifrado usa la clave pública del destinatario, pero la firma usa la clave privada del emisor. Confundir esto es un error revelador común.
Cómo funciona la firma
Firmar directamente un archivo de varios megabytes sería lento e incómodo, así que el firmante primero calcula un hash criptográfico del mensaje: una huella corta y de longitud fija. Luego transforma ese hash con su clave privada para producir la firma, que viaja junto al mensaje.
Cómo funciona la verificación
El verificador toma el mensaje recibido, calcula su hash de forma independiente, y aplica la clave pública del firmante a la firma para recuperar el hash que el firmante calculó. Si los dos hashes coinciden, la firma es válida. Esta única comprobación prueba tres cosas a la vez:
- Integridad: si cambiara aunque sea un bit del mensaje, el hash recalculado diferiría y la verificación fallaría.
- Autenticidad: solo el poseedor de la clave privada pudo producir una firma que verifica contra la clave pública correspondiente.
- No repudio: como la clave privada es exclusiva del firmante, no puede negar más tarde haberla firmado.
¿Por qué no usar simplemente un HMAC?
Un HMAC también prueba integridad y autenticidad, pero usa una clave secreta compartida: ambas partes poseen la misma clave, así que cualquiera de las dos pudo producir la etiqueta. Eso significa que un HMAC no puede proporcionar no repudio: en una disputa, no puedes probar qué parte la creó. Una firma digital sí puede, porque la clave privada pertenece exactamente a una parte.
La brecha de confianza
Una firma prueba que un mensaje proviene de quien posee una clave privada dada, pero no quién es esa persona. Vincular una clave pública a una identidad del mundo real es tarea de los certificados y una PKI.
Qué buscan los entrevistadores
El sentido clave-privada-para-firmar / clave-pública-para-verificar, firmar un hash en lugar del mensaje completo, las tres garantías, y la distinción del no repudio respecto a HMAC.
Posibles preguntas de seguimiento
- ¿Por qué firmamos un hash del mensaje en lugar del mensaje completo?
- ¿En qué se diferencia una firma digital de un HMAC?
- ¿Qué es el no repudio y por qué los MAC simétricos no pueden proporcionarlo?