Ir al contenido

Webinar: Regístrese para nuestro próximo seminario web

Regístrate Ahora

Certificados de firma de código

Certificados de firma de código

Introducción

Firma de código Es el proceso de aplicar una firma digital a un programa de software destinado a su distribución por internet. La firma de código ayuda a verificar la autenticidad del software, es decir, del desarrollador original, y también ayuda a validar que el código no haya sido manipulado por un atacante durante su transmisión, por ejemplo, mediante la inserción de código malicioso o malware. La firma digital utilizada para la firma de código está contenida en un... certificado digital llamado certificado de firma de código.

Certificados de firma de código

Al igual que cualquier otro certificado digital, los certificados de firma de código se basan en el estándar X.509 y también deben estar firmados por un tercero confiable, como un Autoridad de certificación (CA)Sin embargo, los certificados de firma de código no se pueden usar indistintamente con otros certificados como SSL Certificados. La razón principal es que, según la especificación X.509, cualquier certificado digital contiene un campo de "Uso de clave", que indica el uso previsto del certificado y se completa al generarlo. La extensión "Uso de clave extendido" también puede contener información adicional sobre el uso del certificado. La especificación X.509 exige que un certificado no se pueda utilizar para fines distintos a los previstos. Por ejemplo, un certificado SSL tiene el campo de uso de clave configurado como "Firma digital", mientras que un certificado de firma de código tiene el campo de uso de clave configurado como "Firma de código".

Si bien X.509 proporciona la especificación del formato del certificado, las implementaciones tecnológicas para generar certificados varían según el proveedor. Por ejemplo, Authenticode es una tecnología de firma de código de Microsoft que ayuda a los desarrolladores a firmar aplicaciones para el sistema operativo Windows. Los certificados Authenticode se utilizan para firmar archivos con extensiones como .exe, .dll, .ocx, .cab y .xpi. De igual forma, los certificados de firma de código de Apple se utilizan para firmar aplicaciones para iOS, los certificados de firma de código de Java se utilizan para firmar archivos .jar para Java Runtime Environment (JRE) y los certificados de Adobe AIR se utilizan para firmar archivos .air o .airi.

El proceso para obtener un certificado de firma de código es similar al de otros certificados digitales. Cualquier organización que desee publicar software para su distribución en internet solicita un certificado de firma de código a una CA, enviando su clave pública y otra información de la organización. Tenga en cuenta que el par de claves pública-privada debe generarse por separado, como en el caso de cualquier certificado digital. La CA valida al desarrollador (organización) que solicita el certificado, lo firma como prueba de validación y lo emite al desarrollador o editor del software. El certificado que emite la CA incluye información como la identidad del editor, su clave pública, su período de validez, la firma digital de la CA y otros detalles.

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.

Tipos de certificados de firma de código

Certificados autofirmados:
Los editores de software pueden generar sus propios certificados autofirmados. Sin embargo, en tales casos, el proceso de verificación de firmas durante la instalación del software generará una advertencia indicando que el software fue creado por un editor desconocido. Los certificados autofirmados pueden utilizarse para pruebas y desarrollo local de software, antes de su distribución pública. Sin embargo, no deben utilizarse para software de producción que se distribuya a usuarios finales.

Para la distribución pública de software, los certificados emitidos por una CA son la mejor opción. Existen dos tipos de certificados de firma de código emitidos por una CA según el tipo de validación.

Certificados de validación estándar:
Este es el tipo predeterminado de certificado de firma de código e implica validaciones básicas del editor o desarrollador por parte de la CA. Para obtener un certificado de firma de código estándar, los editores de software deben cumplir con requisitos básicos como la longitud mínima de la clave, el período máximo de validez y el sellado de tiempo para las firmas digitales.

Certificados de validación extendida (EV):
Los certificados de firma de código EV implican los niveles más altos de validación y verificación del editor de software por parte de la CA y suelen emitirse en un token de hardware para niveles adicionales de seguridad. Para obtener un certificado EV, además de los requisitos básicos de los certificados estándar, los editores de software también deben cumplir requisitos mucho más estrictos, por ejemplo, mantener claves privadas en un Módulo de seguridad de hardware (HSM) que cumpla con FIPS (Estándares Federales de Procesamiento de Información) 140 Nivel 2 o equivalente.

Caducidad del certificado y sellado de tiempo

Como cualquier certificado digital, los certificados de firma de código también caducan al final de su período de validez. Al caducar, la firma no se validará y el software podría dejar de instalarse o ejecutarse correctamente, aunque no exista ningún problema con el software en sí. Este problema se soluciona mediante el proceso de sellado de tiempo, que consiste en aplicar una marca de tiempo al código al firmar el archivo. Esto suele hacerse a través de un tercero de confianza, denominado Autoridad de Sellado de Tiempo (TSA), para comprobar la validez y autenticidad de la marca de tiempo. La presencia de una marca de tiempo garantiza que el software siga funcionando incluso después de que el certificado de firma de código haya caducado, lo que da tiempo al editor para renovarlo.

Revocación de certificado

Hemos visto en artículos anteriores que la fuerza de Infraestructura de clave pública (PKI) El funcionamiento de los sistemas depende de cómo se gestionen y protejan las claves privadas. Si la clave privada de un certificado digital se ve comprometida, la CA que lo emitió debe invalidarlo o revocarlo. La revocación de certificados es crucial en caso de una vulneración: garantiza que los usuarios finales sean alertados de que el certificado ya no es confiable, lo que desalienta la descarga, instalación y uso posterior del software. La revocación de certificados se realiza incluyendo el certificado revocado en una Lista de Revocación de Certificados (CRL) o actualizando su estado mediante el Protocolo de Estado de Certificados en Línea (OCSP). Se abordarán más detalles sobre las CRL y el OCSP en un artículo posterior.