La firma digital de documentos refuerza la seguridad en comunicaciones y transferencias de datos. Es la principal tecnología para garantizar la identidad del origen y la integridad de los datos. Por lo tanto, garantiza el no repudio.
En este post vamos a tocar los conceptos básicos detrás de la firma digital. Dónde la podemos emplear y cómo funciona.
¿Qué es una firma digital?
La firma digital se emplea para cumplir un importante objetivo: el no repudio. Esto se consigue garantizando la integridad de la comunicación y la autenticación del emisor.
Si somos capaces de garantizar que el emisor es quien dice ser (autenticación) y que el mensaje no se ha modificado (integridad), el emisor no podrá rechazar esta comunicación (no repudio)
Integridad de los datos
La integridad de los datos (del mensaje o del documento) asegura que el mensaje recibido por el destinatario es exactamente el mismo mensaje que envió el remitente.
En Internet siempre existe el riesgo de que los mensajes se alteren por el camino, ya sea de forma deliberada o accidental.
Los mecanismos de integridad de datos ayudan a mitigar esos riesgos. La firma digital permite verificar la integridad de los datos, con lo que garantiza que el mensaje que recibido no ha sido manipulado.
Autenticación
Cuando recibimos un documento electrónico (por ejemplo, un contrato legalmente vinculante) necesitamos asegurar que realmente proviene de la persona que creemos que lo envió.
En otras palabras, necesitamos un mecanismo que le permitiera autenticar al emisor.
Otro ejemplo, hemos recibido una lista confidencial de los precios de un proveedor que supone una gran oferta. Sería aconsejable autenticar la fuente de esa información antes de enviar una respuesta adecuada. No querrá enviar esa información confidencial a un competidor.
No repudio
Por último, queremos garantizar que los remitentes no rechacen las comunicaciones que nos enviaron en el pasado. Por ejemplo, si realizamos un pedido al proveedor anterior, no querrá que el remitente niegue el hecho de que lo envió tal oferta.
Cómo funciona la firma digital
La firma digital utiliza claves de cifrado asimétricas (es decir, criptografía de la buena 😉 )
Para el cifrado asimétrico se utilizan certificados digitales, que están compuestos de una clave pública y una clave privada. Las claves públicas, que se comparte con el receptor) y sus correspondientes claves privadas .
El emisor utiliza la clave privada para firmar. Como el nombre indica, es privada, así que el emisor la debe guardar de forma segura para garantizar que sólo él la pueda utilizar. Así se garantizará la autenticidad del origen.
El receptor utiliza la clave pública para verificar la firma digital. En este momento, deberá verificar que el certificado es válido (el emisor es quien dice ser) y que el documento no ha sido modificado. De esta forma se podrá asegurar el «no repudio» que hemos comentado.
La tecnología que hay detrás de todo esto, los certificados digitales PKI, hace de que un par de claves públicas y privadas están tan estrechamente vinculadas entre sí que sería prácticamente imposible que una clave pública autentique una firma generada por una clave privada con la que no está asociada.
¿Cómo se crea una firma digital?
Para crear una firma digital (para firmar un documento electrónico) se toma el documento a firmar y se lanza una función hash. Se obtiene un resumen cifrado del documento.
Este hash se combina con la clave privada y luego se aplica algoritmo de firma como RSA o DSA. El resultado final es la firma digital. Por supuesto, el programa informatico se ocupará de todo esto de forma transparente para el usuario.
Teóricamente, podría omitir esa parte de la función hash y simplemente ejecutar el archivo y la clave privada a través de algún «algoritmo de firma» y aún así producir una «firma digital». Sin embargo, si el archivo es tan grande, esto llevará mucho tiempo. Además, la «firma» resultante también consumiría una enorme cantidad de espacio.
¿Cómo se verifica la firma digital?
La validación de la firma digital garantiza que la clave publica está asociada a la clave secreta. Mientras que la clave secreta se usa para firmar documentos, su clave pública correspondiente se usa para verificar su autenticidad. ¿Recuerdas cuando te dije que la clave pública está estrechamente vinculada a su clave privada?
Si tenemos una clave pública y la clave no puede autenticar un documento que acaba de recibir, eso significaría que la clave secreta utilizada para firmar no era el par de esta clave pública. En consecuencia, también significaría que la fuente del documento no es la que esperábamos. Así es como se utilizan las firmas digitales para la autenticación.
Durante el mismo proceso de verificación, la clave pública también se utiliza para extraer el resumen del mensaje que se combinó originalmente con la clave privada para producir la firma digital. El resumen del mensaje recuperado se compara con el valor hash del mensaje recibido generado localmente por el destinatario. El destinatario debe saber qué función hash utilizó el remitente. Si el valor hash generado localmente y el resumen del mensaje extraído son iguales, significaría que se ha preservado la integridad del mensaje.
en este post se concretan algunos detalles adicionales (verificación de la firma)
firma digital paso a paso
Vamos a repasar el proceso punto por punto:
- En el origen (por ejemplo, el autor del documento), se aplica un algoritmo matemático al documento para generar un resumen de mensaje «hash». Este hash se asocia a la clave privada para producir la firma digital del documento. En este primer paso, el autor ha firmado digitalmente el documento.
- Enviamos el documento firmado a nuestro cliente: La firma digital puede estar incorporada dentro del propio documento «firma atachada», con lo que enviaremos un solo fichero, o ser un documento separado «firma detachada», con lo que tendremos que enviar dos ficheros.
- Nuestro cliente recibe el documento firmado y lo verifica: extrae el resumen hash de la firma digital utilizando la clave pública. El cliente no podrá extraer el resumen del mensaje si la clave pública en su poder no coincide con la clave privada utilizada para generar la firma digital. Por otro lado, lanza la misma función hash con la clave publica y compara los dos hashes.
Si los dos hashes son iguales, se probarían dos cosas: que el documento no ha sido mofificado desde que se firmó (integridad) y el emisor es quien dice ser (autenticidad del origen).
Si se logran ambos, se alcanza el «no repudio». Es decir, el remitente no podrá negar que envió el documento. Esto es así porque sólo el emisor tiene acceso a la clave privada.
Autoridades de certificación
Las autoridades de certificación son las responsables de garantizar la identidad de la Persona a la que se le genera un certificado electrónico. Una Autoridad de certificación es una entidad de confianza, responsable de emitir y revocar los certificados digitales o electrónicos, utilizados en la firma electrónica.
La Autoridad de Certificación da fe de que la firma electrónica se corresponde con un usuario concreto.
Normalmente, obtener un certificado electrónico de confianza implica acreditar la identidad de la persona solicitante en una oficina de registro.
En este link se pueden ver la lista de prestadores de servicios de confianza registrados en España: ver