- Puntos Clave
- Cómo funciona la firma de código
- Certificados de firma de código: de confianza pública frente a autofirmados
- Por qué es importante el sellado de tiempo
- Requisitos básicos del Foro CA/B: La regla de almacenamiento de hardware
- Firma de códigos y criptografía postcuántica
- Casos de uso comunes
- Mejores prácticas para la firma de código
- Cómo ayuda la consultoría de cifrado
- Preguntas frecuentes
- Firma con confianza
La firma de código es la práctica de utilizar una firma digital para demostrar que un programa, firmware, script o archivo ejecutable proviene de un editor específico y no ha sido alterado desde que fue firmado.
La firma de código utiliza una clave privada y una certificado de firma de código Consiste en adjuntar una firma digital al software antes de su distribución. Cuando un usuario instala el código, su sistema operativo verifica la firma para confirmar la identidad del editor y que el código no ha sido manipulado. Es el principal mecanismo de confianza en la distribución de software moderna.
Puntos Clave
- La firma de código demuestra la autoría y la integridad del software mediante una clave privada en poder del editor y un certificado de firma de código emitido por una Autoridad de Certificación de confianza.
- El CA/Browser Forum exige que las claves privadas de firma de código se almacenen en hardware que cumpla con los requisitos. FIPS 140-2 Nivel 2 (o FIPS 140-3 Nivel 2) o Criterios Comunes EAL 4+, con vigencia a partir del 1 de junio de 2023.
- El sellado de tiempo (RFC 3161) mantiene la validez de una firma después de que expire el certificado de firma, al demostrar cuándo se firmó el código.
- SHA-256 es el algoritmo hash de referencia actual; SHA-1 está obsoleto y es rechazado por las plataformas modernas.
- La firma de código post-cuántica utiliza ML-DSA (FIPS 204) o SLH-DSA (FIPS 205); CNSA 2.0 tiene como objetivo la firma resistente a la computación cuántica exclusiva para los sistemas de seguridad nacional de EE. UU. a partir de 2027.
Cómo funciona la firma de código
La firma de código sigue el mismo patrón de criptografía de clave pública que cualquier firma digital, aplicado específicamente a los artefactos de software.
- Generar un par de claves: El editor genera un par de claves pública y privada, luego un Solicitud de firma de certificado (CSR).
- Obtén un certificado: Un confiable Autoridad certificada Valida la identidad del editor y emite un certificado de firma de código vinculado a la clave pública.
- Calcula el hash del código: Un criptográfico función hash (normalmente SHA-256) produce un resumen de longitud fija del artefacto de software.
- Firma el hash: La clave privada del editor cifra el hash para generar una firma digital. Según las normas del Foro CA/B, la clave privada debe almacenarse en un módulo de hardware FIPS 140-2 Nivel 2 (o FIPS 140-3 Nivel 2).
- Paquete para su distribución: El código original, la firma y el certificado de firma de código (que contiene la clave pública) se empaquetan juntos y se distribuyen.
- Verificar durante la instalación: El sistema operativo del destinatario vuelve a aplicar el hash al código, descifra la firma con la clave pública y compara ambos hashes. Si coinciden, se confirma la autenticidad e integridad.
Si el código se modifica después de la firma, el hash recalculado no coincidirá, la firma fallará en la verificación y el sistema operativo advertirá al usuario o bloqueará la instalación.

Certificados de firma de código: de confianza pública frente a autofirmados
Los certificados de firma de código se dividen en dos categorías con características de confianza muy diferentes.
| Atributo | Certificado autofirmado | Certificado de confianza pública |
|---|---|---|
| Emitido por | El editor, internamente | Una autoridad de certificación de confianza (DigiCert, Sectigo, GlobalSign, etc.) |
| Confianza en el sistema operativo/navegador | No es de confianza por defecto; activa advertencias de seguridad. | Confiable por defecto; sin advertencias |
| Costo | Free | De pago; varía según el nivel de validación. |
| Niveles de validación | Ninguna | Estándar (OV), Validación de la organización, Validación extendida (EV) |
| Ideal para | Pruebas internas, desarrollo, distribución privada | Distribución pública de software a usuarios finales |
| requisito de almacenamiento de clave privada | Recomendado en HSM | Requerido en hardware FIPS 140-2 Nivel 2+ desde el 1 de junio de 2023. |
Los certificados de validación extendida (EV) incluyen las comprobaciones de identidad más estrictas y otorgan al software firmado una mejora inmediata en su reputación con Microsoft SmartScreen y otros sistemas de reputación de aplicaciones.
Por qué es importante el sellado de tiempo
El sellado de tiempo adjunta un registro de tiempo confiable a la firma en el momento de la firma, por lo que la verificación sigue siendo válida incluso después de que expire el certificado de firma de código.
Los certificados de firma de código suelen tener una validez de uno a tres años. Sin una marca de tiempo, una vez que el certificado caduca, la firma se considera inválida y los usuarios ven advertencias de seguridad, aunque el código se haya firmado legítimamente mientras el certificado estaba vigente. Una marca de tiempo de una Autoridad de Sellos de Tiempo (TSA) de confianza soluciona este problema al demostrar criptográficamente la fecha de firma. El estándar pertinente es RFC 3161.
Siempre registre la fecha y hora en las firmas del código de producción. Esta es una operación de bajo costo y alto valor, y es una práctica estándar.
Requisitos básicos del Foro CA/B: La regla de almacenamiento de hardware
Desde 1 de junio de 2023Los requisitos básicos de firma de código del CA/Browser Forum han exigido que todas las claves privadas de firma de código, tanto para los certificados de validación de organización (OV) como para los de validación extendida (EV), se almacenen en hardware que cumpla con FIPS 140-2 Nivel 2 (o FIPS 140-3 Nivel 2) o Criterios Comunes EAL 4+El almacenamiento de claves exclusivamente mediante software ya no está permitido para la firma de código de confianza pública.
Las opciones de almacenamiento aceptables incluyen:
- Módulos de seguridad de hardware (HSM)
- Servicios HSM basados en la nube
- Tokens de hardware basados en USB que cumplen con las certificaciones requeridas.
Esta regla abordaba directamente el tema de alto perfil. ataques a la cadena de suministro como SolarWinds (2020), donde se utilizaron claves de firma comprometidas para distribuir actualizaciones de Orion infectadas con troyanos a miles de organizaciones. Almacenar las claves en hardware a prueba de manipulaciones dificulta considerablemente el robo de claves.
Firma de códigos y criptografía postcuántica
El código firmado a menudo necesita seguir siendo verificable durante años o décadas, como en el firmware de un dispositivo industrial, la versión de un sistema operativo o un controlador firmado, lo que convierte la firma de código en una de las prioridades más urgentes de la migración post-cuántica.
RSA y las firmas ECDSA, que sustentan casi todas las firmas de código actuales, pueden ser falsificadas por una computadora cuántica suficientemente grande que ejecute el algoritmo de Shor. El NIST estandarizó dos algoritmos de firma resistentes a la computación cuántica en agosto de 2024:
- ML-DSA (FIPS 204), basado en CRYSTALS-Dilithium
- SLH-DSA (FIPS 205), basado en SPHINCS+
La NSA de EE. UU. CNSA 2.0 La guía exige algoritmos resistentes a la computación cuántica para firmar software y firmware en sistemas de seguridad nacional, con uso exclusivo dirigido a 2027Las organizaciones que manejan artefactos firmados de larga duración deberían comenzar a planificar la transición ahora, a menudo mediante certificados híbridos que incluyan tanto una firma clásica como una post-cuántica durante la migración.
Casos de uso comunes
La firma de código es obligatoria o esperada en la mayoría de las vías de distribución de software.
- Distribución de la aplicación: Windows SmartScreen y macOS Gatekeeper bloquean o emiten advertencias sobre los ejecutables no firmados. La App Store de Apple y Google Play requieren que los archivos se envíen firmados.
- Actualizaciones y parches de software: Las actualizaciones firmadas demuestran que el parche proviene del proveedor y que no ha sido modificado durante su transmisión.
- Controladores de dispositivos: Windows requiere controladores firmados en modo kernel; los controladores sin firmar están bloqueados directamente en Windows de 64 bits.
- Firmware: El firmware para IoT, aplicaciones industriales y automotrices está firmado digitalmente para evitar su reemplazo malicioso.
- Scripts y macros: PowerShell, las macros VBA de Microsoft Office y similares pueden firmarse para cumplir con las políticas de ejecución.
- Artefactos de CI/CD: Las imágenes de contenedores, los paquetes y los resultados de la compilación se firman cada vez más como parte de la seguridad de la cadena de suministro de software (SLSA, Sigstore).
Mejores prácticas para la firma de código
Seis prácticas distinguen un programa de firma de código sólido de uno que se convierte en un incidente en la cadena de suministro.
- Almacene las claves privadas en un HSM: Esto es obligatorio para la firma de código de confianza pública desde el 1 de junio de 2023, y es el control más eficaz contra el robo de claves.
- Marcar con fecha y hora cada firma de producción: Utilice un TSA de confianza (RFC 3161) para que las firmas sigan siendo válidas incluso después de la expiración del certificado.
- Utilice SHA-256 o superior: SHA-1 está obsoleto. No firme nuevos artefactos con SHA-1.
- Restringir el acceso a la firma: Exigir autenticación multifactor para cada operación de firma. Registrar quién firmó qué, cuándo y desde dónde.
- Rote las llaves y supervise su uso indebido: Realizar un seguimiento de la caducidad de los certificados, vigilar cualquier actividad de firma anómala y revocarlos inmediatamente ante cualquier vulneración de seguridad.
- Planifique la transición de PQC: Comience a evaluar ML-DSA y la firma híbrida para firmware y software de sistema de larga duración.
Cómo ayuda la consultoría de cifrado
CodeSign Secure es la plataforma de firma de código empresarial de Encryption Consulting. Centraliza las operaciones de firma detrás de un FIPS 140-2 Nivel 2. HSM, se integra con Microsoft SignTool, jarsigner y pipelines de CI / CD Incluye Jenkins, Azure DevOps y GitLab, y admite algoritmos de firma post-cuántica y de sellado de tiempo a medida que se implementan. Proporciona a los equipos de seguridad total auditoría Registra cada operación de firma y aplica de forma predeterminada la regla de almacenamiento de hardware del Foro CA/B. Respaldado por las prácticas certificadas ISO/IEC 27001:2022 y SOC 2.
Preguntas frecuentes
¿Qué es la firma de código en términos sencillos?
La firma de código es un método que utilizan los desarrolladores de software para añadir un sello criptográfico a sus programas. Cuando un usuario instala el software, su sistema operativo verifica el sello para confirmar dos cosas: que el software proviene realmente de ese desarrollador y que nadie lo ha modificado desde que se firmó. Si el sello está roto o falta, el sistema operativo advierte al usuario o bloquea la instalación.
¿Cuál es la diferencia entre un certificado de firma de código autofirmado y un certificado de firma de código de confianza pública?
Un certificado autofirmado es creado por el editor sin validación externa y, por defecto, los sistemas operativos y los navegadores no confían en él, por lo que los usuarios ven advertencias de seguridad durante la instalación. Un certificado de confianza pública es emitido por una Autoridad de Certificación tras la validación de identidad y, por defecto, se confía en él en todas las plataformas. Los certificados de confianza pública son necesarios para distribuir software a usuarios externos; los autofirmados son adecuados para pruebas internas.
¿Por qué necesito añadir una marca de tiempo al código firmado?
Un certificado de firma de código suele caducar entre uno y tres años. Sin una marca de tiempo, la firma se considera inválida una vez que caduca el certificado, incluso si el código se firmó mientras el certificado aún era válido. Una marca de tiempo de una Autoridad de Marcas de Tiempo RFC 3161 de confianza demuestra cuándo se firmó el código, por lo que la verificación sigue siendo válida después de que caduque el certificado. Siempre se debe incluir una marca de tiempo en las firmas de producción.
¿Qué algoritmo hash utiliza la firma de código?
SHA-256 es el estándar actual para la firma de código. SHA-384 y SHA-512 también son aceptables cuando se prefiere un hash más robusto. SHA-1 está obsoleto y rechazado por los sistemas operativos modernos y los requisitos del Foro CA/B. Las consideraciones posteriores a la computación cuántica no requieren reemplazo. SHA-256, porque el algoritmo de Grover solo reduce a la mitad el nivel de seguridad efectivo, dejando a SHA-256 con una seguridad post-cuántica de aproximadamente 128 bits.
¿Qué ocurre con la firma de código en la criptografía postcuántica?
RSA y ECDSA firma de código Se vuelven vulnerables una vez que existe una computadora cuántica suficientemente potente, ya que el algoritmo de Shor puede falsificar firmas. El NIST estandarizó algoritmos de firma resistentes a la computación cuántica en agosto de 2024: ML-DSA (FIPS 204) y SLH-DSA (FIPS 205). La CNSA 2.0 exige firmas resistentes a la computación cuántica para los sistemas de seguridad nacional de EE. UU. a partir de 2027. Las organizaciones deben planificar la firma híbrida (clásica más post-cuántica) para los artefactos firmados de larga duración.
¿Cómo puedo almacenar de forma segura una clave privada de firma de código?
Almacene la clave privada en un módulo de seguridad de hardware o un token de hardware que cumpla con la norma FIPS 140-2 Nivel 2 (o FIPS 140-3 Nivel 2) o con los Criterios Comunes EAL 4+. Esto es un requisito del Foro CA/Browser para todas las firmas de código de confianza pública desde el 1 de junio de 2023. Restrinja el acceso con autenticación multifactor, registre cada operación de firma y nunca exporte la clave privada al disco ni la transmita por software.
Firma con confianza
¿Listo para proteger sus operaciones de firma de código de principio a fin? Explore CodeSign Secure, o hablar a un asesor de consultoría en cifrado.
- Puntos Clave
- Cómo funciona la firma de código
- Certificados de firma de código: de confianza pública frente a autofirmados
- Por qué es importante el sellado de tiempo
- Requisitos básicos del Foro CA/B: La regla de almacenamiento de hardware
- Firma de códigos y criptografía postcuántica
- Casos de uso comunes
- Mejores prácticas para la firma de código
- Cómo ayuda la consultoría de cifrado
- Preguntas frecuentes
- Firma con confianza
