Ir al contenido

¡Se acercan los certificados de 47 días! ¿Estás preparado?

Actúa ahora →

Comprender cómo la firma de código impacta a su organización

uso de un hash criptográfico

El archivo ejecutable que se distribuye se firma digitalmente cuando un desarrollador firma su programa mediante firma de código. Los usuarios del programa consideran la firma intacta como prueba de que el código no ha sido modificado entre el momento de su transmisión y su instalación en el dispositivo del usuario. Esta firma funciona como una especie de "sello de garantía". La firma de código implica aplicar firmas digitales para distribuir archivos mediante cifrado de clave pública.

Cómo afecta la firma de código a una organización: determina si su software se instala sin una advertencia de seguridad, si las principales plataformas lo aceptan para su distribución y, si una clave de firma se ve comprometida, qué tan grande es el alcance de esa vulneración, que puede variar desde un solo artefacto hasta que todas las líneas de productos compartan una misma clave.

Puntos Clave

  • La firma de código no es opcional para la distribución en la mayoría de las plataformas principales; es un requisito previo que la mayoría de las tiendas de aplicaciones y sistemas operativos imponen antes de aceptar cualquier software.
  • El estándar HSM actual del CA/Browser Forum para certificados de firma de código de confianza pública es FIPS 140-2 Nivel 2 o Common Criteria EAL 4+, vigente desde el 1 de junio de 2023. Algunas plataformas superan ese mínimo con hardware de Nivel 3, pero el Nivel 2 es el mínimo conforme, no una solución insuficiente.
  • Para conocer la superficie de ataque completa de la cadena de suministro de software en la que encaja, consulte Introducción a la firma de código: Cómo proteger su cadena de suministro de software.

Necesidad de firma de código

Hoy en día, internet es el principal medio de distribución, acceso y uso de software; es probable que casi todas las aplicaciones de su ordenador se hayan descargado en línea. El uso generalizado de este medio también ha aumentado el riesgo de actividades delictivas.

Por ejemplo, hackers y cibercriminales podrían robar el código fuente del archivo ejecutable, añadirle malware y luego hacer que el software sea accesible para su descubrimiento y distribución en línea. Naturalmente, el malware infectaría a todos los usuarios que descargaran e instalaran este archivo.

La firma de código evita que esto ocurra. Su sistema operativo impide la instalación de cualquier programa sin verificar previamente la presencia de un certificado de firma de código durante la descarga e instalación. Si en ese momento falta un certificado de un proveedor de confianza, el usuario es informado y puede decidir si desea continuar con la instalación.

Funcionamiento de la firma de código

  1. Para desarrolladores

    El creador debe generar primero una clave privada especial que se utilizará para cifrar los datos. Según la teoría de la criptografía de clave pública, un par de claves pública-privada es un conjunto de técnicas de cifrado que se pueden utilizar para cifrar y descifrar. Una vez creado el par de claves, la clave pública se envía a una Autoridad de Certificación (CA), una organización reconocida que emite certificados.

    La CA confirma la legitimidad del desarrollador antes de adjuntar su clave pública a un certificado firmado digitalmente, lo que demuestra que es el legítimo propietario de la clave. El desarrollador que solicitó el certificado recibe la clave pública y el certificado de la CA.

    certificado firmado digitalmente
  2. para el consumidor

    Antes de instalar un programa, la mayoría de los sistemas operativos de consumo están configurados para comprobar la presencia de un certificado de firma de código. Al solicitar una instalación, el sistema operativo verifica primero la validez del certificado antes de descifrar el resumen con una clave pública de la CA.

Cambios realizados para el desarrollo de software

Un elemento (documento, archivo, script, biblioteca, etc.) utilizado durante el proceso de desarrollo de software se denomina artefacto intermedio. Estos artefactos deben firmarse durante todo el ciclo de desarrollo para evitar su modificación por parte de terceros que no sean su creador autorizado.

Los desarrolladores pueden modificar un archivo o script en su entorno de desarrollo, firmarlo y luego guardar el artefacto firmado en su repositorio para su uso futuro. La firma de código de estos artefactos intermedios ayuda a evitar que los hackers introduzcan componentes no deseados durante el proceso de desarrollo. En los enfoques contemporáneos de desarrollo de software se utilizan diversos componentes.

Podría producirse una vulneración importante si el malware se infiltra en cualquiera de estos componentes. Es fundamental que sus equipos de desarrollo de software tengan esto en cuenta. Por lo tanto, deben firmar el código de todos los artefactos intermedios que utilizan para crear software.

Beneficios de la firma de código

  • Ayuda a autenticar la identidad del desarrollador, promoviendo la confianza en ambos lados de la transacción.
  • Proporciona prueba de que el software no ha sido manipulado ni alterado y que se está consumiendo de la forma en que estaba destinado a ser consumido.
  • Permite a los desarrolladores distribuir en más plataformas, dado que las principales plataformas exigen la firma de código como paso obligatorio antes de la publicación.

Solución de firma de código empresarial

Obtenga una solución para todas sus necesidades criptográficas de firma de código de software con nuestra solución de firma de código.

Mejores prácticas de firma de código

  1. Realizar comprobaciones de integridad del código

    Todo código que los desarrolladores registren debe estar firmado digitalmente con su clave de firma. Para garantizar que el código final publicado no presente modificaciones, se deben verificar todas las firmas de los desarrolladores. La compilación final debe firmarse y publicarse una vez completadas todas estas comprobaciones. Un paso crucial para garantizar que la actualización de software esté libre de manipulaciones y sea segura para sus clientes es verificar la integridad del código fuente.

  2. Guarde las llaves en un lugar altamente seguro

    Uno de los mayores errores que cometen las empresas en lo que respecta al almacenamiento de claves es guardarlas en un disco duro, el ordenador personal de un desarrollador o los servidores de compilación. Este error puede brindar a los atacantes una amplia oportunidad para obtener sus claves privadas y comprometer varios sistemas. Guarde siempre sus claves de firma de código en áreas criptográficas muy seguras, como un Módulo de Seguridad de Hardware (HSM). El CA/Browser Forum exige protección de hardware HSM o equivalente, con un mínimo de FIPS 140-2 Nivel 2 o Common Criteria EAL 4+, para todos los certificados de firma de código de confianza pública desde el 1 de junio de 2023; algunas plataformas, incluida CodeSign Secure , utilizan hardware FIPS 140-2 Nivel 3, que supera ese mínimo. Los HSM son extremadamente difíciles de vulnerar, ya que son resistentes a la manipulación. Puede tener la garantía de que nunca se exportarán las claves privadas y de que nadie más tendrá acceso a las claves de firma de código ni las utilizará indebidamente.

  3. Girar llaves

    A veces, las organizaciones tienden a usar la misma clave para firmar versiones en diferentes líneas de productos y negocios. Esto no es una buena idea. Todas las versiones firmadas con la clave de firma de código corren el riesgo de ser pirateadas. En su lugar, conviene alternar las claves periódicamente. Además, utilice claves distintas e independientes para firmar varias versiones en los equipos de DevOps.

Preguntas frecuentes

¿Es necesario cumplir con el nivel 3 de FIPS 140-2 para la firma de código de los módulos de seguridad de hardware (HSM)?

No. El requisito mínimo del CA/Browser Forum para certificados de firma de código de confianza pública es FIPS 140-2 Nivel 2 o Common Criteria EAL 4+. El Nivel 3 supera ese mínimo; algunas plataformas lo adoptan como un estándar interno más estricto, pero no es el requisito de cumplimiento en sí mismo.

¿Cuál es el coste organizativo real de prescindir de la firma de código?

Más allá de las advertencias de seguridad que ven los usuarios, la mayoría de las plataformas principales (tiendas de aplicaciones, navegadores, mecanismos de actualización del sistema operativo) rechazan directamente el software sin firmar, lo que convierte la firma de código en un requisito previo para la distribución, y no solo en una señal de confianza.

¿Debería utilizarse la misma llave para identificar los lanzamientos en varias líneas de productos?

No. Compartir una misma clave entre diferentes líneas de productos implica que una sola vulnerabilidad pone en riesgo todas las versiones firmadas con esa clave. Utilice claves distintas para cada línea de producto o equipo para limitar el alcance de cualquier vulnerabilidad.

Conclusión

Un certificado de firma de código es esencial para generar confianza en el usuario y garantizar la integridad de tu código fuente. Además, te permite asegurar que tu aplicación no esté expuesta a ciberataques. El aumento de los ciberataques y un mercado de aplicaciones tan grande hacen que sea fundamental estar preparado en materia de seguridad.