Guía de integración de Azure DevOps

La integración de CodeSign Secure con Azure DevOps mejora sus canales de CI/CD al automatizar el proceso de firma. Esto garantiza que cada compilación se firme de forma segura y eficiente, reduciendo los errores manuales y reforzando la confiabilidad de su cadena de suministro de software.

Configurar CodeSign Secure KSP

El Proveedor de Almacenamiento de Claves de Consultoría de Cifrado (KSP) para Windows es un componente de software que amplía el marco de la API de Criptografía de Microsoft: Próxima Generación (CNG). Su objetivo principal es permitir que las aplicaciones de Windows, como signtool.exe, interactúen fluidamente con las claves criptográficas y los certificados almacenados en un HSM.

Pasos:

  1. Descargar el EC KSP

    • Inicie sesión en el portal CodeSign Secure y navegue a la sección Herramientas de firma para descargar “EC KSP para Windows”.

      Ruta de herramientas de firma
    • Extraiga el archivo zip para obtener el archivo “Setup.msi”.
  2. Instalar el EC KSP
    • Ejecute el instalador “Setup.msi” con privilegios de administrador.

      Configurar el instalador
    • Siga las instrucciones en pantalla del asistente de instalación.

      1. Acepte el Acuerdo de licencia de usuario final.
      2. Seleccione el directorio de instalación (el predeterminado es C:\Archivos de programa\Encryption Consulting\SigningKSP).
      3. Elija si desea instalar el KSP para todos o solo para el usuario actual
      Carpeta de instalación
    • Ingrese los detalles solicitados, como:

      1. Nombre de usuario:El nombre de usuario/correo electrónico que utiliza para iniciar sesión en el portal CodeSign Secure.
      2. Código:El código secreto que usted configuró al momento de configurar la solución CodeSign Secure.
      3. Tipo de identidad:Mantenga este campo como predeterminado (2)
      4. URL segura de CodeSign:La URL para acceder al portal (Recuerde agregar “/api/” al final de la URL)
      Información de autenticación de usuario de API
    • Haga clic en Siguiente y confirme la instalación.

      Instalación de KSP
  3. Configurar los ajustes del Editor del Registro
    • Abra el Editor del Registro y navegue al directorio HKEY_CURRENT_USER>Software>Encryption Consulting>SigningKSP.

      Editor del registro
    • Ahora abra el portal CodeSign Secure y vaya a Configuración del sistema > Usuario. Seleccione "Generar clave API" en el menú desplegable de la derecha.

      Generar clave API
    • Crea un token para tu cuenta indicando un nombre y el periodo de validez. Recuerda copiar el token, ya que solo se mostrará una vez.

      Generar clave API
    • Agregue este token al campo “ectoken” en el Editor del Registro.

      ectoken

Configurar el certificado de autenticación P12

La configuración de un certificado P12 implica configurar las variables de su entorno para autenticar su máquina cliente con CodeSign Secure de Encryption Consulting.

Pasos:

  1. Configurar las variables de entorno
    • Abra las variables de entorno desde su menú Inicio

      Propiedades del sistema
    • Agregue nuevas variables del sistema haciendo clic en el botón "Nuevo". Indique el nombre de la variable y sus detalles correspondientes.

      1. Autenticación de cliente EC:Corresponde a la ruta de su certificado de autenticación SSL, que se puede crear desde CodeSignSecure
      2. Contraseña de cliente EC:Corresponde a la contraseña de su certificado, la cual se proporciona en el momento de la creación del certificado.
      3. EC_SSL_VERBOSE:Corresponde a la configuración para habilitar (1) o deshabilitar (0) la salida de depuración para EC KSP.
      Variables ambientales

Configurar Signtool para firmar

Para configurar signtool para la firma de código es necesario asegurarse de que la utilidad Signtool.exe esté disponible en su máquina y configurada para interactuar correctamente con el proveedor criptográfico de Encryption Consulting que proporciona acceso a la clave privada de su certificado de firma de código.

Pasos:

  1. Descargar e instalar el SDK de Windows
    • Utilizando el siguiente enlace de descarga, descargue el Kit de desarrollo de software de Windows con las siguientes herramientas seleccionadas: desarrollador.microsoft.com/es-es/windows/downloads/windows-10-sdk/

      Windows SDK
    • Abra el instalador una vez descargado y seleccione “Siguiente” en la primera pantalla para mantener la configuración predeterminada.

      Instalador del SDK de Windows
    • Siga las instrucciones en pantalla del asistente de instalación.

      1. Acepte la privacidad del kit de Windows.
      2. Acepte el Acuerdo de licencia de usuario final.
    • Anule la selección de todo excepto “Herramientas de firma del SDK de Windows para aplicaciones de escritorio” y seleccione “Instalar”.

      Característica del SDK de Windows
    • Vaya a la siguiente ruta donde deberían haberse descargado las herramientas: “C:\Archivos de programa (x86)\Windows Kits\10\bin”. Seleccione el directorio de la versión deseada y compruebe si el archivo “signtool.exe” está presente.

      Ruta de la herramienta de señal
    • Asegúrese de estar en el directorio x64 y copie esta ruta de directorio.
  2. Agregar ruta a Signtool.exe en las variables de entorno
    • Abra las variables de entorno desde el menú Inicio.

      Ruta de la herramienta de firma en la variable ambiental
    • Desplácese hacia abajo a través de las variables del sistema en la tabla inferior hasta encontrar PATH en los nombres de las variables.

      Nombres de variables
    • Haga doble clic en PATH en las variables del sistema y seleccione "Nuevo" a la izquierda de la pantalla. Pegue la ruta del directorio "signtool.exe" que copió en la nueva selección.

      Ruta del directorio de la herramienta de firma
    • Seleccione Aceptar en la parte inferior para salir de la página Variables de entorno.

Configurar Azure DevOps

La configuración de Azure DevOps implica configurar su organización, proyecto y, específicamente, sus canalizaciones de compilación de Azure DevOps para firmar archivos mediante signtool en una máquina Windows.

Pasos:

  1. Crear un proyecto de Azure DevOps

    • Vaya a dev.azure.com e inicie sesión con su cuenta Microsoft, o también puede comenzar de forma gratuita con su cuenta de GitHub.
    • Proporcione los detalles según se le solicite

      Iniciar sesión en la cuenta
    • Se te pedirá que crees una organización si aún no lo has hecho. Crea una organización y comienza el proyecto.
    • Si ya tiene un proyecto donde desea crear la canalización, vaya a Canalizaciones. De lo contrario, cree primero un proyecto simple. Proporcione los detalles necesarios para continuar.

      Creación de proyectos
  2. Crear un token de acceso personal

    • Después de crear un proyecto, dirígete a la configuración de usuario en la esquina superior izquierda de la pantalla y haz clic en "Token de acceso personal". En la página siguiente, haz clic en "Nuevo token".

      Token de acceso personal
    • En el cuadro de diálogo que se solicita, proporcione los detalles necesarios, como el nombre del token, el nombre de la organización (la organización que creó o a la que accedió anteriormente). Establezca la expiración y los alcances. He configurado el alcance en acceso completo.

      Modalidad de token personal
    • Haga clic en crear y copie el token en algún lugar, ya que no podrá volver a verlo.
  3. Configurar y descargar un agente

    • Una vez obtenido el token, necesitamos configurar un ejecutor autoalojado. Este es un equipo donde Signtool y ECSigningKSP están instalados y configurados. Para ello, regrese a la página Resumen de código y, en la parte inferior izquierda de la pantalla, verá la configuración del proyecto. Haga clic allí.

      Portal de código
    • En Pipelines, verás los grupos de agentes. Haz clic ahí y luego en "Predeterminado".

      agente polaco
    • Haga clic en el nuevo agente en la parte superior izquierda.

      Agente
    • Obtenga el agente según su sistema operativo. Estoy usando Windows. Descargue el agente y extráigalo a la carpeta "C:\agents". También puede seguir este procedimiento. documentación para más ayuda con esto

      Modal de descarga del agente
  4. Configurar el agente

    • Después de extraer los archivos, navegue a la carpeta donde los extrajo desde cmd y ejecute .\config.cmd.
    • Ahora, la URL del servidor será https://dev.azure.com/<your_organization_name>

      Simplemente presione Enter para PAT en el tipo de autenticación y, en la siguiente pregunta, proporcione el token copiado anteriormente.

    • Una vez registrado el agente, para el grupo de agentes, como está predeterminado, presione Intro. Si desea asignarle un nombre a su agente, puede hacerlo, pero presione Intro para que se llame CLIENTE.
    • Una vez agregado el agente, puede dejar la carpeta de trabajo predeterminada o cambiarla según sus preferencias. Para ejecutar el agente como servicio, ingrese "Y" (sí). Para usar la cuenta de usuario para el servicio, asegúrese de configurarla como Administrador. Esto es importante porque necesitará privilegios administrativos para firmar código. Proporcione la contraseña de su cuenta administrativa en su equipo.
    • Dado que lo hemos configurado como un servicio, el agente se ejecutará automáticamente; si no lo hubiéramos configurado como un servicio, tendríamos que ejecutar el agente manualmente.
    • Vaya a services.msc y desplácese hasta Azure Pipeline Agent para comprobar que ha configurado Iniciar sesión como Administrador. Si no lo hizo, puede cambiarlo usted mismo. Simplemente haga clic en Iniciar sesión y aparecerá un cuadro de diálogo. Vaya a Iniciar sesión, configúrelo como Administrador, proporcione la contraseña y reinicie el servicio. Una vez hecho esto, regrese a Azure DevOps para compilar la canalización.
    Canalización de Azure
  5. Crear la canalización en Azure DevOps
    • Haga clic en “Pipelines” en Azure DevOps para comenzar y haga clic en “Crear pipeline” en la página siguiente.

      Portal de código
    • En la siguiente página, en la sección Conectar, elige dónde está tu código. En este caso, mi código está en GitHub y así lo estoy haciendo. Necesitarás privilegios de administrador en tu repositorio para acceder.

      Sección Conectar
    • Selecciona el repositorio donde tienes tu código.

      Repositorio
    • Ahora, en la sección Configurar, si aún no tiene un archivo .yml en su repositorio, haga clic en "Canalización de inicio"; si lo tiene, haga clic en "Canalización de Azure existente". Para la canalización de inicio, es posible que deba crear una nueva rama o confirmar en la rama principal.

    • En el editor, escribe el siguiente script

      guión

      Reemplace las variables especificadas en A continuación se ofrece una breve descripción de la variable esperada.

      1. : Se refiere a la clave criptográfica utilizada para firmar el código. Ejemplo: evcodesigning
      2. Debe proporcionar el nombre de un algoritmo hash, como SHA256, SHA384 o SHA512. Debe ser uno de estos tres valores.
      3. :Proporcione la ruta al certificado de firma de código que obtuvo del portal CodeSign Secure.
      4. Un servidor de marca de tiempo proporciona evidencia de que una firma digital se realizó en un momento específico, lo que permite verificar en el futuro que un archivo se firmó en un momento específico. El que usamos generalmente es http://timestamp.digicert.com
      5. Aquí se proporciona la ruta del archivo que se desea firmar. Ejemplo: C:\ \ Asegúrese de haber proporcionado un nombre de archivo con la extensión adecuada.

      Nota: :En la sección “variables”, deberá proporcionar los mismos campos y valores que haya configurado en su Variable de entorno para el Certificado de autenticación P12.

  6. Ejecutar la canalización de Azure DevOps

    Cuando haga clic en guardar y ejecutar, se le solicitará una etiqueta de rama; asegúrese de que el nombre proporcionado aquí y debajo del disparador en el script sea el mismo antes de ejecutar el script.

    Una vez que la compilación sea exitosa, verás que tu archivo ha sido firmado exitosamente.

    Archivo firmado