Preguntas frecuentes Firma de Código (FAQs)

11 ago 2022

Preguntas frecuentes Firma de Código (FAQs)

Introducción

GlobalSign ofrece dos tipos de Certificados de Firma de Código. Los métodos y requisitos para firmar código varían de una plataforma a otra, lo que a menudo crea confusión para el usuario final. Este artículo aclarará las diferencias entre los tipos de certificados de firma de código y responderá preguntas comunes sobre los requisitos de firma de código para diferentes plataformas.

Certificados de firma de código

¿Qué es un certificado de firma de código? ¿Cómo es un certificado de firma de código único de otros certificados X.509 v3?

El certificado digital contiene campos como Uso de claves y Uso extendido de claves que dictan el propósito de un certificado. Cuando un certificado SSL para un sitio web contendría un uso extendido de la clave de la autenticación del servidor que muestra que se puede usar para identificar un servidor, un certificado de firma de código tiene un uso de clave extendido de la firma de código para indicar que se puede usar para firmar código.

Hay otros valores que se rellenan en estos campos en función del tipo de certificado. Limitar los casos de uso de los Certificados Digitales mitiga cierto riesgo en caso de un Certificado comprometido. Un certificado con todos los propósitos clave habilitados representaría un riesgo mucho mayor en caso de un compromiso.

¿Existen diferentes tipos de certificados de firma de código?

Sí. GlobalSign ofrece certificados de firma de código de validación estándar y extendida.

¿Cuál es la diferencia entre la firma de código estándar y EV?

Los certificados de firma de código estándar se someten a la validación estándar de la organización. Los certificados de firma de código EV se someten a estrictos requisitos de investigación de validación extendida establecidos por el Foro CA/B.

Los certificados de firma de código EV tienen el beneficio adicional de proporcionar una reputación instantánea con Microsoft Smart Screen. Los certificados de firma de código estándar deben construir reputación con el programa Smart Screen antes de que desaparezcan las advertencias del Smart Screen.

Los certificados de firma de código EV también son necesarios para acceder al portal del panel del Centro para desarrolladores de hardware de Windows a través del cual se deben firmar todos los controladores en modo kernel destinados a Windows 10 (compilación 1607 y posterior).

¿Existen diferentes opciones de pedido para los certificados de firma de código estándar y EV? 

Sí. Tanto los certificados de firma de código estándar como los certificados de firma de código EV tienen 3 opciones de pedido y se pueden entregar a tokens, HSM y también se pueden implementar con Azure Key Vault. Consulte la 'Opciones de almacenamiento de claves' en la comparación de la tabla aquí. Nota: PFX está disponible en la firma de código estándar.​​​​

¿Puedo usar el mismo certificado en varios equipos?

Sí, pero no simultáneamente, ya que el token solo se puede conectar a una computadora a la vez. Siempre que los controladores estén presentes en otro equipo, el token se puede conectar a esa estación de trabajo para su uso.

¿Puedo firmar un archivo de forma remota? 

No se puede acceder a los certificados de firma de código estándar ni a los certificados de firma de código EV a través de Escritorio remoto (RDP). El token USB debe estar conectado al equipo local. Nota: Firmar un archivo de forma remota dependerá del almacenamiento de claves. 

Se puede usar un token USB local para firmar un archivo en una máquina remota, pero no se puede usar un token USB remoto para firmar.

¿Cómo habilitar el Inicio de sesión único en el token? 

Para habilitar el inicio de sesión único del token, abra safenet Authentication Client (SAC). A continuación, haga clic en Configuración del cliente. En la pestaña Opciones avanzadas, marque la casilla Habilitar inicio de sesión único, como se muestra en el diagrama siguiente. Haga clic en Guardar para que los cambios surtan efecto. 
Nota: Esta función es la mejor para los clientes que desean firmar por lotes el código. De esta manera, no tiene que ingresar la contraseña del token cada vez. Sin embargo, para la firma de código regular, recomendamos encarecidamente deshabilitar esta función, ya que no es una buena práctica.

Code-Signing-FAQ-safenet.jpg

Firma de Código

¿Las diferentes plataformas tienen diferentes requisitos para firmar código? 

Sí. Los requisitos de firma de código variarán de una plataforma a otra. Los requisitos para firmar archivos Java JAR diferirán de la firma de un ejecutable portátil de Windows. También hay requisitos separados para firmar aplicaciones en OS X e iOS. Cómo y dónde se distribuirán sus solicitudes, también puede ser un factor en los requisitos de firma.

¿Cuáles son los requisitos para firmar código en Windows? 

Los requisitos para la firma de código de Windows variarán en función de las versiones de Windows a las que se dirija y del tipo de código que esté firmando.

Microsoft tiene diferentes requisitos para el código que se ejecutará en modo de usuario en comparación con el código que se ejecutará en modo kernel.

El código que se ejecuta en modo de usuario puede usar certificados que se encadenan a una CA de confianza, como GlobalSign. Para la firma en modo kernel, la cadena de certificados debe terminar en la CA raíz de Microsoft. Para lograr esto, GlobalSign proporciona un certificado cruzado que permite que nuestros certificados de firma de código se encadenen a la CA raíz de Microsoft y sean de confianza para la firma en modo kernel.​​

Windows (todas las versiones) tiene un requisito adicional. Los controladores en modo kernel deben estar firmados por el Portal del panel del Centro para desarrolladores de hardware de Windows, que requiere un certificado de firma de código EV para acceder. 

¿Hay algún requisito o factor adicional con la firma de código de Windows? 

Otro factor es el algoritmo de firma utilizado para firmar el certificado, así como el algoritmo de firma utilizado para firmar código. Para obtener más detalles sobre estos requisitos, consulte nuestro articulo Compatibilidad con Algoritmos Hash de Firma de Código de Windows.

Nota: A partir del 26 de enero de 2021, GlobalSign ya no ofrecerá los servicios SHA-1 Authenticode y CodeSign Timestamping.

¿Necesito firmar todos los archivos DLL incluidos con mi aplicación? 

Windows no comprueba las firmas en archivos DLL cuando lo carga un ejecutable. Hay excepciones a esto, como DLL relacionadas con DRM y todos los módulos en WindowsRT / ARM.

Si esos escenarios no se aplican, no es necesario firmar las DLL, sin embargo, una razón para firmar cada DLL es ejecutar una comprobación de integridad cada vez que se inicie la aplicación.

¿Puedo firmar un archivo para que sea válido en varias versiones de Windows con diferentes requisitos? 

¿Puedo firmar un archivo para admitir varias versiones de Windows con diferentes requisitos?
En la mayoría de los casos, sí, puede usar "Doble firma" para colocar varias firmas en un archivo. Una firma puede usar un certificado de firma de código SHA-1 y otra firma puede usar un certificado SHA-2. Los formatos que admiten firmas duales incluyen: .exe, .dll y .sys.

Los instaladores MSI no admiten firmas duales. Puede encontrar más información sobre la firma dual, incluida la compatibilidad con MSI, en este Artículo de Microsoft. ​​​

Para obtener un certificado de firma de código SHA-1 y SHA-2 estándar, simplemente puede volver a emitir su certificado SHA-1 o SHA-2 y cambiar el algoritmo de firma durante el proceso. Esto dará lugar a dos Certificados de Firma de Código válidos. Uno firmado con SHA-1 el otro con SHA-2.

Si tiene dos Certificados y desea firmar dos veces sus archivos, siga esta Guía de Firma Dual.

Nota: esta opción solo está disponible para los Certificados de Firma de Código Estándar, la Firma de Código EV es SHA-256 solamente y no se puede cambiar. Sin embargo, puede firmar dos veces con un Certificado de Firma de Código SHA-1 Estándar y un Certificado de Firma de Código SHA-256 EV.

¿Qué utilidades se requieren generalmente para firmar archivos? 

Windows: 
Microsoft signtool es la utilidad estándar para firmar controladores y archivos ejecutables. Se incluye como parte del SDK de Windows. Signtool puede firmar con un archivo .pfx local o puede aprovechar los certificados en el almacén de certificados de Windows. Funciona con certificados de Firma de Código Estándar y EV.

Muchas aplicaciones de desarrollo tienen soporte nativo para la firma de código mediante el método .pfx o el método de almacén de certificados. Por ejemplo, al firmar macros de VBA a través de Excel, la aplicación usará certificados del almacén de certificados local. Otras aplicaciones como InstallShield también admiten la firma de código integrada.

Java:
Jarsigner es una utilidad incluida con Java JDK y se puede utilizar para firmar certificados. Por lo general, si firma código para Java, creará un almacén de claves Java (.jks) con Java KeyTool (también incluido con el JDK), sin embargo jarsigner también tiene soporte para archivos .pfx, siempre que se conozca el alias.

La firma de código EV también funciona con Jarsigner. Es un poco más avanzado e implica la edición de un archivo de configuración para especificar la entrada del token USB. Más detalles en el artículo de firma de código Java EV .

Apple:

Si bien tanto los certificados de firma de código estándar como los EV pueden firmar archivos .dmg y .app, la política local predeterminada de Gatekeeper en OS X y la política de Apple App Store requiere el uso de un certificado emitido por Apple vinculado a un ID de desarrollador de Apple.

Los certificados de firma de código de otras CA aún se pueden usar para firmar cosas como perfiles y directivas en OS X. La utilidad predeterminada en OS X para firmar código se llama codesign. Puede encontrar más información sobre esta utilidad en el manual del producto.

Related Articles

Alertas de Sistema de GlobalSign

Ver alertas recientes del sistema.

Ver Alertas

Atlas Discovery

Escanee sus puntos finales (endpoints) para localizar todos sus Certificados.

Registrarse

Prueba de Configuración para SSL

Verifique la instalación de su certificado para detectar problemas y vulnerabilidades de SSL.

Contacte a Soporte