Keyfactor Days 2027, la conferencia sobre seguridad de confianza, llega a San Diego!   Descubre lo que se avecina

Definición

Las firmas digitales son un mecanismo criptográfico que utiliza dos claves, una privada y otra pública, y que permite al firmante utilizar la clave privada para generar un valor que vincula un mensaje al titular de dicha clave privada. Cualquier persona que posea la clave pública correspondiente puede verificar dicha vinculación. Las firmas digitales garantizan la autenticidad (confirmando que el mensaje procede del titular de la clave privada), la integridad (detectando cualquier modificación del mensaje tras la firma) y el no repudio (impidiendo que el firmante niegue posteriormente haber generado la firma).

Las organizaciones confían en las firmas digitales para que los clientes puedan confiar en la software que ofrecen, para que los documentos confidenciales mantengan su integridad y para que el firmware y las actualizaciones inalámbricas lleguen a los dispositivos conectados sin alteraciones. Una firma digital es lo que permite al destinatario confirmar que un archivo procede del remitente aparente y que nadie lo ha modificado durante el trayecto. Esa garantía es la base de gran parte de la informática moderna, desde los instaladores de tu ordenador portátil hasta la actualización enviada a un sensor industrial.

Hay mucho en juego cuando la firma digital falla. Los procesos manuales, las herramientas dispares y las claves de firma desprotegidas dejan a muchas empresas expuestas al robo de claves y a ataques a la cadena de suministro de tipo « software ». Cada uno de esos incidentes merma la confianza que depositamos en el código y los documentos firmados. Esta guía explica qué son las firmas digitales y cómo funciona realmente el proceso de firma, repasa los problemas que resuelven, compara las principales familias de algoritmos, desde RSA hasta los poscuánticos, y aborda cómo se utilizan las firmas dentro de una PKI y cómo se protegen a gran escala. Al finalizar, comprenderás tanto la criptografía como la infraestructura que la hace fiable.

¿Qué es una firma digital?

Una firma digital es un valor criptográfico que vincula la identidad del firmante a un dato concreto. Permite a cualquiera verificar dos cosas a la vez: que los datos no han sufrido modificaciones desde que se firmaron y quién los generó. Esa combinación de integridad y origen es lo que hace que una firma tenga un significado real y no sea meramente decorativa.

Esto es muy diferente de una simple firma electrónica. Una imagen escaneada de tu letra, un nombre escrito a máquina al final de un correo electrónico o una casilla de verificación del tipo «haz clic para aceptar» registran la intención, pero ninguna de ellas está vinculada criptográficamente al contenido. Si cambias una sola palabra en el documento, la firma escaneada permanece intacta. Una firma digital (criptográfica) se invalida en el momento en que se alteran los datos subyacentes, y ese es precisamente el objetivo.

La firma es el acto de generar ese valor criptográfico. El firmante utiliza una clave privada para generar una firma sobre los datos, y cualquier persona que posea la clave pública correspondiente puede verificarla. Por lo tanto, el término «firma» describe la operación, mientras que «firma digital» describe el resultado. Ambos dependen de que la clave privada se mantenga en secreto, razón por la cual gran parte de esta guía trata sobre la protección de las claves.

Cómo funcionan las firmas digitales: los fundamentos

En el núcleo de toda firma digital se encuentra un par de claves. La clave privada firma y la clave pública verifica. Ambas claves están vinculadas matemáticamente. La clave pública se deriva de la privada (o de la semilla privada) mediante un algoritmo eficiente, pero no es posible derivar la clave privada a partir de la pública. El firmante guarda la clave privada celosamente. Por su parte, el firmante distribuye libremente la clave pública, a menudo dentro de un certificado, de modo que cualquiera pueda validar lo que el firmante ha generado sin que sea posible falsificarlo.

En la práctica, los firmantes rara vez firman los datos sin procesar. En su lugar, siguen el patrón clásico de «hash y firma»: primero los datos se someten a un hash criptográfico —una función que genera un resumen corto de longitud fija— y, a continuación, se firma dicho resumen. Por eso los nombres de los algoritmos suelen tener el formato que tienen, como SHA256WithRSA y SHA256WithECDSA, donde la primera parte indica el algoritmo de hash y la segunda, el algoritmo de firma. Firmar el resumen compacto en lugar de un archivo binario de varios gigabytes hace que la operación sea rápida y práctica.

El hash del lado del cliente lleva esta idea un paso más allá. El hash se calcula en el cliente, por lo que los archivos de gran tamaño nunca tienen que transmitirse a través de la red hasta un servicio de firma central. Los desarrolladores pueden firmar rápidamente, los equipos mantienen el control de sus artefactos e incluso los entornos más complejos y a gran escala conservan su rendimiento, ya que solo se envía un pequeño resumen al firmante.

En todo este proceso, hay una regla que no debe olvidarse: las claves privadas de firma nunca deben salir del almacenamiento seguro y cifrado, ni siquiera durante el proceso de firma. Los diseños más seguros generan y utilizan la clave dentro de un entorno protegido hardware, de modo que el valor secreto nunca queda expuesto en una estación de trabajo ni en un servidor de compilación. La firma sale; la clave se queda dentro.

¿Qué problemas resuelven las firmas digitales?

Las firmas digitales aportan una serie de propiedades de confianza que los archivos sin cifrar, por sí solos, simplemente no pueden ofrecer.

  • Integridad.
    Una firma demuestra que el código, los documentos o el firmware no han sido alterados, ya sea durante su transmisión o mientras se encuentran almacenados. Si cambia un solo byte, la verificación falla.
  • Autenticidad.
    Una firma confirma quién la ha firmado, lo que te proporciona un registro fiable de quién ha firmado el mensaje, en lugar de una afirmación imposible de verificar.
  • No repudio y auditabilidad.
    Los registros de eventos detallados y firmables crean un registro irrefutable de la actividad de firma, lo cual resulta de un valor incalculable para el cumplimiento normativo y la trazabilidad. Un firmante no puede negar ante nadie una acción que haya quedado registrada en un registro firmado.

Estos son tres de los cinco pilares de la seguridad de la información, siendo la confidencialidad y la disponibilidad los dos más destacados.

Las firmas resuelven otros problemas del mundo real, como garantizar la seguridad de las cadenas de suministro y la protección frente al malware. La firma de código es un paso fundamental para evitar la propagación de malware y bloquear a los actores maliciosos en la cadena de suministro de software . Tanto si distribuyes aplicaciones, implementas scripts y contenedores, como si envías actualizaciones inalámbricas a dispositivos de IoT , la firma es lo que permite a los destinatarios confiar en el artefacto.

En conjunto, estas propiedades explican por qué la firma aparece en todas partes, desde imágenes base publicadas de software y de contenedores hasta contratos legales e identificaciones electrónicas emitidas por la administración pública.

Familias de algoritmos de firma digital

En el fondo, hay varias familias de algoritmos que generan firmas. El sector se encuentra en plena transformación, pasando de los algoritmos clásicos —que han garantizado la seguridad de la firma durante décadas— a los nuevos algoritmos poscuánticos, diseñados para resistir a los futuros ordenadores cuánticos. Comprender primero las familias clásicas hace que la transición hacia los algoritmos poscuánticos resulte mucho más fácil de seguir.

Firmas RSA

RSA es el estándar de referencia desde hace mucho tiempo. Ha sido la opción predeterminada para la firma durante muchos años y sigue apareciendo constantemente, a menudo a través de combinaciones de hash y firma como SHA256WithRSA. Incluso en configuraciones que utilizan algoritmos más recientes para la firma, RSA sigue estando presente con frecuencia: los pares de claves de cifrado para la recuperación de claves, por ejemplo, suelen seguir basándose en RSA con longitudes de 1024 o 2048 bits. RSA es fiable y cuenta con compatibilidad universal, y esa es precisamente la razón por la que está tan arraigado.

ECDSA y las firmas de curva elíptica

El algoritmo de firma digital de curva elíptica (ECDSA) ofrece una seguridad comparable a la del RSA con claves mucho más pequeñas, lo que resulta atractivo para dispositivos con recursos limitados y para la firma de grandes volúmenes. Para garantizar la estabilidad a largo plazo, se recomienda utilizar las curvas más habituales. Elige P-256, P-384 o P-521, salvo que un requisito específico indique lo contrario. Las implementaciones basadas en BouncyCastle admiten una amplia gama de curvas con nombre de las familias NIST, SEC, X9.62 y Brainpool.

La mayoría de las implementaciones codifican las curvas con nombre directamente en los certificados y las solicitudes, tal y como recomienda la IETF. En algunos casos, en cambio, se necesitan parámetros explícitos, un enfoque exigido por la Organización de Aviación Civil Internacional (OACI) para los certificados de la Autoridad de Certificación de Firma Nacional (CSCA) y los certificados de firmante de documentos utilizados en los pasaportes electrónicos. Los parámetros explícitos solo deben habilitarse cuando sea realmente necesario, ya que pueden infringir la norma RFC 5280 y provocar que falle la inscripción en algunos flujos de la API REST.

EdDSA (firmas con curva de Edwards)

El algoritmo de firma digital de curva de Edwards (EdDSA) utiliza una variante de la firma de Schnorr basada en curvas de Edwards retorcidas, y se define en el RFC 8032. Está diseñado para ser más rápido que los esquemas de firma existentes sin sacrificar la seguridad, lo que lo convierte en una opción moderna muy popular. Las dos variantes son Ed25519 y Ed448, siendo Ed25519, con diferencia, la más ampliamente compatible. Con el tiempo, la compatibilidad con hardware ha ido mejorando, y la mayoría de los módulos de hardware probados admiten Ed25519, mientras que Ed448 sigue siendo menos habitual.

Algoritmos de firma poscuánticos

Los algoritmos poscuánticos se están convirtiendo en una cuarta familia esencial, pero su descripción merece un análisis más exhaustivo. Consulta la sección dedicada a los algoritmos poscuánticos que aparece a continuación para conocer las normas, las ventajas e inconvenientes operativos y un caso real de migración.

Protocolos y formatos que utilizan firmas digitales

Las firmas rara vez se utilizan de forma aislada. Se presentan en formatos estandarizados para que diferentes herramientas y plataformas puedan generarlas y verificarlas de manera coherente.

  • Formatos de firma de código.
    Entre ellos se incluyen MS Authenticode para ejecutables de Windows, instaladores MSI y scripts de PowerShell; la firma de archivos JAR de Java y la firma de Android; la firma de CMS; la firma OpenPGP con hash del lado del cliente; la firma de paquetes Debian; y la firma de paquetes AppX de Microsoft.
  • Firma de documentos.
    Al igual que la PKI, la firma de documentos PDF admite diferentes niveles de certificación (en función de los cambios permitidos en el documento) y puede solicitar e incorporar respuestas de marca de tiempo.Firmas electrónicas avanzadas(AdES) paraservicios de identificación, autenticación y confianza electrónicos(eIDAS).
     La familia AdES abarca PAdES para PDF, CAdES para la sintaxis de mensajería criptográfica (CMS) y XAdES para XML.
  • Marcado de fecha y hora.
    Las marcas de fecha y hora se ajustan a varios RFC de la IETF y a MS Authenticode. Una autoridad de marcado de fecha y hora puede emitir marcas de fecha y hora conformes con eIDAS para acreditar cuándo se firmó un documento.
  • Firma del pasaporte electrónico.
    Los documentos de viaje legibles por máquina (MRTD) de la OACI utilizan firmas digitales para proteger los datos de los pasaportes electrónicos.

Cómo se utilizan las firmas digitales en el marco de una PKI

Dentro de una infraestructura de clave pública (PKI), la firma desempeña varias funciones distintas. Esta sección se centra en esas funciones de firma, más que en los fundamentos de la PKI. Si quieres profundizar en la PKI, echa un vistazo a nuestro .

Las claves de firma de la autoridad de certificación (CA) son el punto de referencia. El par de claves de firma de la CA firma todos los certificados que emite utilizando su propio algoritmo de firma, independientemente del tipo de clave del suscriptor. Una CA EdDSA, por ejemplo, genera firmas EdDSA en los certificados que emite, incluso cuando la clave del cliente es RSA o ECDSA.

La firma del respondedor del Protocolo de Estado de Certificados en Línea (OCSP) es una función relacionada. Los pares de claves y certificados dedicados a la firma OCSP firman las respuestas sobre el estado de revocación, de modo que un cliente que compruebe si un certificado sigue siendo válido puede confiar en la respuesta que recibe. Esto se utiliza en muchas implementaciones de PKI, incluidas algunas partes de la PKI web. La firma de CRL cumple el mismo objetivo de forma masiva: las propias listas de revocación de certificados están firmadas. Las CRL de gran tamaño pueden plantear retos prácticos de firma con determinados algoritmos, un aspecto que cobra especial importancia con los esquemas poscuánticos. Obtén más información en nuestras guías específicas sobreCRLyOCSP.

Por último, la emisión de certificados normalmente vincula una clave pública a una identidad solo después de que el solicitante demuestre la posesión de la clave privada correspondiente, entendiendo por «posesión» la capacidad de utilizarla, no el control exclusivo. En el caso de las claves de firma, esto no supone prácticamente ningún coste: PKCS#10 exige que la solicitud esté autofirmada, y la CA verifica dicha firma. Pero esto nunca ha sido una norma universal. Las claves de acuerdo y de transporte han necesitado otros mecanismos desde el RFC 4210, y RSA simplemente ocultó el problema permitiendo que una clave destinada exclusivamente al cifrado generara, de todos modos, una autofirma válida. ML-KEM elimina esa facilidad. El RFC 9810 define las alternativas para las claves KEM: el archivo de la clave privada, una prueba indirecta en la que la CA devuelve el certificado cifrado al sujeto, o un desafío-respuesta directo, en el que EnvelopedData sustituye al antiguo EncryptedValue en todo momento. Infraestructura de firma: protección de claves y escalabilidad de la firma

Contar con algoritmos y protocolos sólidos es solo la mitad de la historia. La infraestructura que almacena las claves y gestiona las operaciones de firma es igual de importante.

  • Motores de firma centralizados.
    Una única plataforma puede albergar simultáneamente numerosos casos de uso, firmantes, organizaciones y usuarios. La consolidación de herramientas de firma dispersas en un único motor simplifica la administración, mejora la seguridad y reduce los costes, al tiempo que permite a los desarrolladores y a los procesos automatizados firmar con rapidez.
  • Protección de claves respaldada por HSM.
    Las claves de firma deben generarse y utilizarse dentro de un módulo de seguridad HSM ( hardware ) certificado por FIPS, de modo que nunca queden expuestas en estaciones de trabajo ni en servidores de compilación. Los distintos miembros del proyecto o sistemas pueden autenticarse y compartir la misma clave protegida, aunque siempre con un registro de quién ha firmado qué.
  • Firma de código como servicio.
    Los agentes ligeros se integran directamente en herramientas nativas de la plataforma, como SignTool, Jarsigner, Cosign y OpenSSL, de modo que la firma se realiza de forma local en la estación de trabajo del desarrollador o en el servidor de compilación. Los archivos binarios de gran tamaño nunca tienen que transmitirse a través de la red a un servicio central.
  • Políticas, control de acceso y autenticación.
    Las políticas granulares determinan quién puede firmar qué, cuándo y con qué herramientas. La autenticación mediante SAML, OAuth o métodos similares verifica la identidad de los usuarios y los equipos antes de que se realice cualquier firma, y los controles basados en roles garantizan que el uso cumpla con las normas.
  • Auditabilidad y escalabilidad.
    Los registros de eventos detallados y firmables generan registros irrefutables del acceso y el uso de las claves. La conmutación por error integrada, el equilibrio de carga y la escalabilidad bajo demanda garantizan la disponibilidad de la firma incluso con altos volúmenes de transacciones.

Firmas digitales poscuánticas

La criptografía poscuántica (PQC) es aquella que resiste la amenaza que supondría un ordenador cuántico con capacidad criptográfica. Aún no existe un ordenador cuántico lo suficientemente potente como para descifrar la criptografía, pero los gobiernos y los organismos de normalización ya están impulsando la transición desde la criptografía asimétrica clásica, y el principal impulsor de esta iniciativa es el Instituto Nacional de Estándares y Tecnología (NIST). La razón es sencilla: una vez que se disponga de un ordenador cuántico lo suficientemente potente, se podrán descifrar algoritmos como el RSA y la criptografía de curvas elípticas.

El NIST ha normalizado los algoritmos básicos. En cuanto a las firmas, la norma FIPS 204 define el ML-DSA (derivado de CRYSTALS-Dilithium) y la norma FIPS 205 define el SLH-DSA (derivado de SPHINCS+), a los que seguirá otra norma de firmas, el FN-DSA (derivado de FALCON). Actualmente está en marcha un proceso de normalización adicional, cuyo objetivo es añadir estructuras de firma para diversificar los fundamentos matemáticos y abarcar diferentes casos de uso. También existen dos algoritmos de firma basados en hash con estado, LMS y XMSS, normalizados en la norma NIST SP 800-208. Son criptográficamente sólidos, pero operativamente engorrosos, ya que la clave privada contiene un estado que debe gestionarse con cuidado. La especificación no permite exportar el material de la clave privada, lo que dificulta considerablemente el funcionamiento seguro a largo plazo y la recuperación ante desastres.

Para facilitar la transición, las claves y firmas híbridas combinan una clave clásica (RSA, ECDSA o EdDSA) con una clave poscuántica, como ML-DSA. Un certificado protegido de esta forma sigue siendo fiable mientras se mantenga la validez de cualquiera de los dos componentes. Se trata de una medida de protección sensata durante la migración a la PQC, ya que no todo el mundo confía plenamente en la seguridad de los nuevos algoritmos de PQC. No todos los HSM admiten todas las combinaciones híbridas, por lo que es necesario comprobar tanto el modelo como la versión de su firmware.

Hay un inconveniente técnico que destaca. Muchos algoritmos poscuánticos no siguen el modelo «hash y firma» como lo hacen los clásicos RSA y EC, que admiten resúmenes hash que dependen únicamente del mensaje, lo que los hace más portátiles. Esto significa que, en el caso de muchas construcciones poscuánticas, se debe enviar la carga útil completa a la función de firma, en lugar de un hash compacto. Esto puede suponer una carga para un HSM a la hora de firmar objetos de gran tamaño, como las CRL extensas, ya que la cantidad de datos que se puede enviar a un HSM suele estar limitada. La RFC 9881 aborda este problema introduciendo Externalμ-ML-DSA como método seleccionado para gestionar la firma de cargas útiles de gran tamaño, aunque la compatibilidad varía según el HSM y el firmware, por lo que es recomendable realizar pruebas a escala de producción desde el principio.

Si quieres profundizar en el ecosistema más amplio de la resistencia cuántica, echa un vistazo a nuestraguía completa sobre criptografía poscuántica.

Cómo Keyfactor ayudarte Keyfactor

KeyfactorLa gama de soluciones de firma de se adapta perfectamente a los retos que se plantean en esta guía. SignServer es un motor de firma versátil del lado del servidor que firma de forma segura software, firmware, contenedores, documentos y mucho más, mientras que Signum ofrece la firma de código como servicio con un HSM integrado y un modelo SaaS de rápida implementación.

Ambos relacionan los problemas de los lectores con soluciones concretas. Ellos

  • proteger las claves de firma en módulos HSM con certificación FIPS para que los datos confidenciales nunca queden expuestos,
  • aplicar la política de firmas de forma centralizada,
  • integrarse con los flujos de trabajo existentes de DevOps y de documentación mediante herramientas nativas e interfaces estándar, y
  • mantener registros de auditoría completos y firmables de cada acción de firma.
  • Esa combinación contrarresta directamente los principales riesgos relacionados con el robo y la cadena de suministro que socavan la confianza.

Además, están diseñadas para ofrecer agilidad criptográfica y estar preparadas para la era poscuántica. La compatibilidad abarca RSA, ECDSA y EdDSA, junto con los algoritmos de firma poscuánticos ML-DSA y SLH-DSA, además de funciones de hash del lado del cliente para mejorar el rendimiento y escalabilidad bajo demanda para grandes volúmenes. Esto permite a los equipos seguir firmando en la actualidad y pasar a la firma poscuántica cuando estén preparados.

Keyfactor’s Bouncy Castle es una biblioteca de criptografía de open-source de larga trayectoria que constituye la opción predeterminada para cualquier tarea relacionada con certificados y firmas. Es compatible con prácticamente todos los algoritmos de firma en uso, incluidos los nuevos esquemas poscuánticos, como ML-DSA y SLH-DSA.

¿Tienes dudas sobre la firma digital? Tenemos las respuestas.

¿Qué es una firma digital?

Una firma digital es un valor criptográfico que vincula al firmante con un dato concreto. Permite a cualquiera verificar que los datos no han sido alterados y confirmar quién los ha firmado. Es mucho más segura que una firma electrónica escaneada o escrita a máquina, que no está vinculada criptográficamente al contenido.

¿Qué es la lengua de signos?

La firma es el acto de crear una firma digital. La clave privada del firmante genera una firma sobre un hash de los datos, y cualquier persona que disponga de la clave pública correspondiente puede verificarla. La clave privada debe mantenerse protegida en un almacenamiento seguro o en un HSM en todo momento.

¿Qué problemas resuelven las firmas digitales?

Garantizan la integridad (prueba de que los datos no se han modificado), la autenticidad (prueba de quién ha firmado) y el no repudio (un registro irrefutable del acto de firma). En la práctica, esto protege los documentos, el código y el firmware contra la manipulación y contra los ataques de la cadena de suministro de tipo « software ».

¿Qué algoritmos se utilizan para las firmas digitales?

Las familias clásicas más comunes son RSA, ECDSA (curva elíptica) y EdDSA (Ed25519 y Ed448). Las normas poscuánticas añaden ML-DSA (FIPS 204) y SLH-DSA (FIPS 205), a las que seguirá FN-DSA.

¿Cuál es la diferencia entre la firma y el cifrado?

La firma garantiza la integridad y el origen, utilizando la clave privada para firmar y la clave pública para verificar. El cifrado protege la confidencialidad. Algunos tipos de claves de cifrado, como las claves KEM poscuánticas, pueden establecer o cifrar claves, pero no pueden generar firmas.

¿Por qué las firmas digitales necesitan un HSM?

Un módulo de seguridad « hardware » genera claves privadas de firma y las almacena en dispositivos de almacenamiento de claves ( hardware) a prueba de manipulaciones y con certificación FIPS, de modo que nunca quedan expuestas en estaciones de trabajo ni en servidores de compilación. Esto reduce drásticamente el riesgo de robo y uso indebido de las claves.

¿Qué son las firmas digitales poscuánticas?

Se trata de algoritmos de firma diseñados para resistir los ataques de los futuros ordenadores cuánticos. El NIST ha normalizado los algoritmos ML-DSA y SLH-DSA, y las organizaciones pueden utilizar firmas híbridas que combinen una clave clásica y una clave poscuántica durante la migración.

¿Cómo se utilizan las firmas digitales en la firma de código?

La firma de código aplica una firma digital a software, contenedores, scripts o firmware, de modo que los destinatarios puedan confirmar que el código es auténtico y no ha sido modificado. Constituye una defensa fundamental contra el malware y los ataques a la cadena de suministro de tipo « software », y se integra en los procesos de CI/CD.