Ir al contenido

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

Regístrate Ahora

¿Cómo integrar la canalización CI/CD de Azure DevOps con CodeSigning?

Integración de la canalización de CI/CD de Azure DevOps con firma de código

Azure DevOps es una potente plataforma en la nube que integra personas, procesos y herramientas para optimizar el desarrollo de software y permitir una colaboración fluida durante todo el ciclo de vida del desarrollo. Desde la ideación hasta la implementación y más allá, Azure DevOps Ofrece una gama completa de servicios que abarcan todo el ciclo de vida del desarrollo de software. Integra potentes tecnologías como Azure Boards, Azure Repos, Azure Pipelines, Azure Test Plans y Azure Artifacts para empoderar a los equipos de desarrollo y permitirles alcanzar un tiempo de comercialización más rápido, mayor productividad y mayor satisfacción del cliente. La incorporación de Azure en sus flujos de trabajo de CI/CD permite a las organizaciones acelerar la entrega de software, mejorar la colaboración y mantener altos estándares de calidad durante todo el ciclo de vida del desarrollo.

Firma de código

Firma de código Es un procedimiento que verifica la legitimidad del autor, así como la originalidad y autenticidad de la información digital, en particular del código de software. También garantiza que la información no sea código malicioso. Además, garantiza que esta información no haya sido alterada, falsificada ni cancelada después de su publicación. firmado digitalmente. La función de firma digital Se crea mediante una clave privada disponible únicamente para el editor del software. Al descargar e instalar el software, la firma digital se compara con la clave pública para confirmar su coincidencia y que el software no ha sido modificado. La firma de código es importante para garantizar la seguridad de las aplicaciones de software, ya que ayuda a prevenir la distribución de malware y otro software malicioso.

Encryption Consulting tiene una solución de firma de código, “CodeSign seguro”, que puede ayudarle con el almacenamiento a prueba de manipulaciones de las llaves y la visibilidad y control completos de Firma de código actividades. Las claves privadas del certificado de firma de código se pueden almacenar en un HSM para eliminar los riesgos asociados con claves robadas, corruptas o mal utilizadas.

Integración de Azure DevOps para el diseño de código

Para comenzar, primero necesitará una cuenta de Azure y un sistema con signtool y ECSigningKSP instalados y configurados. A continuación, se detallan los requisitos previos.

  1. Un sistema con ECSigning KSP y Signtool instalados y configurados. Este ejecutor debe tener privilegios de administrador.
  2. Cuenta de Azure.

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.

Para configurar ECSigningKSP y Signtool, siga los siguientes pasos:

Descargar Windows SDK: (desarrollador.microsoft.com/es-es/windows/downloads/windows-10-sdk/)

Puede elegir instalar solo las herramientas de firma del SDK de Windows para aplicaciones de escritorio.

Abra el archivo winsdksetup.exe. Recuerde la ruta predeterminada que se muestra en la ruta de instalación, ya que será útil para ejecutar estos comandos desde el símbolo del sistema.

Inicio del SDK de Windows

En la página de Privacidad de Windows Kits, cualquiera de las opciones para permitir que Microsoft recopile información es válida. Haga clic en Siguiente.

Privacidad del SDK de Windows

Acepta el acuerdo de licencia

Acuerdo de licencia del SDK de Windows

Deseleccione todas las funciones excepto Herramientas de firma del SDK de Windows para aplicaciones de escritorio Luego seleccione instalar.

función del SDK de Windows

Cuando se le pregunte si desea permitir que esta aplicación realice cambios, seleccione Sí.

Control de cuentas de usuario de Windows
SDK de Windows final

Haga clic en la barra de búsqueda de Windows en la barra de tareas y escriba “Editar las variables de entorno del sistema” y seleccione la opción del panel de control del mismo nombre.

editar la variable de entorno del sistema

Haga clic en Variables de entorno.

variables ambientales modales

Antes de editar la lista de variables, navegue hasta donde está instalado el SDK de Windows para usar el explorador de archivos, debe copiar la ruta de la carpeta que contiene la aplicación signtool, la ruta predeterminada es C:\Archivos de programa (x86)\Windows Kits\10\bin\10.0.22621.0\x64, Consulta la siguiente captura de pantalla. Asegúrate de hacer clic derecho y copiar la ruta como se muestra. También puedes ver la aplicación signtool al final de la lista de archivos; este es el comando que ejecutarás.

Ruta de instalación de signtool

En la lista de Variables del Sistema, haga clic en Nuevo. Escriba Ruta como nombre de la variable y copie y pegue la ruta mencionada. Haga clic en OK en el entorno empresarial las variables ventana y te propiedades ventana.

añadir nueva variable del sistema

Para probar la instalación, abra el símbolo del sistema y escriba signtool; el resultado debería ser como se muestra a continuación.

Símbolo del sistema de signtool

La ubicación de instalación predeterminada de signtool es, por ejemplo: C:\Archivos de programa (x86)\Windows Kits\10\bin\10.0.22621.0\x64

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.

Para configurar KSP siga los pasos a continuación:

Si está utilizando nuestra solución, puede descargar el KSP siguiendo los pasos a continuación:

  • Registrarse en Código de firma seguro.
  • Navegar a: Repositorio de herramientas de firma.

    Página de herramientas de firma segura de Codesign
  • Descargar “Consultoría de cifrado CNG-SigningKSP”
  • Instale las herramientas de cliente con el instalador .MSI. Este automatiza gran parte de la configuración. Vaya a la ubicación donde se guardó el archivo descargado e inicie el instalador.

    instalador msi
  • Haga clic en Siguiente cuando aparezca el asistente de instalación.

    Configuración de KSP para firma EC en casa
  • Haga clic en Siguiente.

    Instalación de la carpeta de configuración de KSP con firma EC
  • En la pantalla Nombre de usuario campo, tipo admin.
  • En la pantalla Código campo, copie el código del Repositorio de API de Postmanimportantes. Haz clic en el icono de información del Obtener token de inicio de sesión api y copie el código de la Cuerpo

    Descargue PostMan desde este este enlaceUna vez descargada, haga clic en el botón "Omitir" en la parte inferior de la ventana. En el panel, agregue una nueva colección usando el botón "+" junto a "Colecciones".

    API de GetLoginToken (http://codesignsecureapi.encryptionconsulting.com/api/auth/GetLoginToken): Esta es la API más importante, ya que le proporciona una Token de portador Para usar con el resto de las API, el contenido del cuerpo se muestra a continuación. El código sirve como contraseña para obtener el token de portador, el campo de usuario es el nombre de usuario y el campo de tipo de identidad especifica el tipo de usuario. Haga clic en Enviar Para generar una salida que incluya el token de portador en la parte inferior. Copiar este token para su uso.

    API de token de portador de cartero
  • Cambie la Identidad Tipo a 1.
  • Abandonar URL base de la API lo mismo.
  • Haga clic en Siguiente.

    Información de autenticación de usuario de configuración de KSP de firma EC
  • Haga clic en Siguiente.

    Confirmación de la instalación y configuración de KSP con firma EC
  • Luego se le notificará que este programa realizará cambios en su PC, haga clic en Sí.

    Control de cuentas de usuario de configuración de MSI
  • La instalación ya está completa.

    Instalación y configuración de KSP con firma EC completa

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.

Siga los pasos a continuación para configurar con Azure Devops:

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

    Iniciar sesión en Azure DevOps
  3. Se te pedirá que crees una organización si aún no lo has hecho. Crea una organización y comienza el proyecto.
  4. 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.

    crear un proyecto
  5. 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 el token de acceso personal. En la página siguiente, haz clic en "Nuevo token". En el cuadro de diálogo que aparece, proporciona la información necesaria, como el nombre del token y el nombre de la organización (la organización que creaste o a la que accediste anteriormente). Establece la caducidad y los ámbitos. He configurado el ámbito como acceso completo.

    Configuración de usuario de Azure DevOps
    Creación de un token de acceso personal

    Haga clic en crear y copie el token en algún lugar, ya que no podrá volver a verlo.

  6. 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 derecha de la pantalla, verá la configuración del proyecto; haga clic allí.

    Configuración del proyecto de Azure DevOps

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

    Grupos de agentes de Azure DevOps

    Haga clic en Nuevo agente en la parte superior izquierda.

    Nuevo agente de Azure DevOps

    Obtenga el agente según su sistema operativo. Estoy usando Windows. Descargue el agente y extráigalo a la carpeta "C:\agents".

    También puedes seguir este documentación Para obtener más ayuda sobre esto

    Agente de Windows de Azure
  7. Después de extraer los archivos, navegue a la carpeta donde los extrajo desde cmd y ejecute .\config.cmd.

    CMD de Azure Pipeline

    Ahora, la URL del servidor será https://dev.azure.com/<your_organzation_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 Pool de Agentes, ya que lo tenemos como predeterminado, presione Enter. Si desea nombrar a su agente, puede hacerlo, pero presione Enter para que se llame CLIENTE.

    Una vez que se agrega el agente, puede dejar la carpeta de trabajo como predeterminada o cambiarla según su elección. Para ejecutar el agente como un servicio, ingrese Y como en sí para que la cuenta de usuario la use para el servicio. Asegúrese de configurarlo como AdministradorEsto es importante porque necesitará privilegios administrativos para firmar código. Proporcione la contraseña de la cuenta administrativa de su equipo.

    Dado que hemos configurado esto como un servicio, el agente se ejecutará automáticamente; si no lo hubiéramos configurado como servicio, tendríamos que ejecutar el agente manualmente.

    Vaya a services.msc y desplácese hasta Azure Pipeline Agent para comprobar que ha seleccionado "Iniciar sesión como administrador". Si no lo hizo, puede cambiarlo. 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.

  8. Haga clic en tuberías para comenzar.

    Canalización de Azure

    Haga clic en Crear canalización en la página siguiente.

  9. En la siguiente página, en la sección Conectar, elige dónde se encuentra tu código. En este caso, mi código está en GitHub y estoy procediendo así. Necesitarás privilegios administrativos en tu repositorio para otorgar acceso.

    Especificar código
  10. Selecciona el repositorio donde tienes tu código.

    Repositorio de código
  11. Ahora, en la sección Configurar, si aún no tiene el 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; usted decide.

    Configuración de tubería
  12. En el editor escribe el siguiente script

    trigger:
    - <your_branch_name>

    pool:
      name: <your_pool_name> #In this documentation it’s set as Default
    variables:
      varible_name: variable_value

    steps:
    - script: |
      signtool sign /csp "Encryption Consulting Key Storage provider" /kc <Key_name> /fd <hashing algorithm> /f <certificate location> /tr <time stamping server> /td SHA256 <file path>

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.

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

: Se refiere a la clave criptográfica utilizada para firmar el código. Ejemplo: evcodesigning

Debe proporcionar el nombre del algoritmo hash, como SHA256, SHA384 o SHA512. Debe ser uno de estos tres valores.

Un ejemplo de lo que se puede incluir en este campo es C:\testing.pem. El certificado.pem El archivo debe incluirse en esta entrada. Puede generar un archivo PEM del certificado para el diseño de código si utiliza el nombre de clave ECSigningKSP. Para ello, siga los siguientes comandos:

En su dispositivo donde tiene ECSigningKSP instalado y configurado, navegue a la carpeta de ECSigningKSP, que generalmente está presente en “C:\Program Files\Encryption Consulting\SigningKSP”

En el símbolo del sistema, acceda a este directorio.

Luego use el siguiente comando para obtener el archivo pem del certificado.

ECGetCert.exe  (ejemplo: ECGetCert.exe evcodesigning)

Proporcione la ubicación del certificado guardado.

: Un servidor de marca de tiempo Proporciona prueba de que se realizó una firma digital en un momento específico, lo que permite verificar en el futuro que un archivo se firmó en un momento determinado. El que usamos generalmente es http://timestamp.digicert.com

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.

Mi guión fue:

Script de Azure

trigger:
- azure-pipelines1

pool:
  name: Default
variables:
  EC_Client_Auth: C:\Users\riley\Documents\EncryptionConsulting\testClient.pfx

steps:
- script: |
  signtool sign /csp "Encryption Consulting Key Storage provider" /kc evcodesigning /fd SHA256 /f C:\\Users\\Administrator\\Desktop\\ForTesting\\evcodesigning.pem /tr http://timestamp.digicert.com /td SHA256 C:\\Users\\Administrator\\Desktop\\ForTesting\\AgentService.exe

Cuando haga clic en Guardar y ejecutar, se le solicitará una etiqueta de rama; asegúrese de que el nombre proporcionado aquí y en el disparador en el script sean los mismos antes de ejecutar el script.

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

Archivo firmado exitosamente

Conclusión

El artículo anterior muestra el proceso de integración de su canalización de CI/CD de Azure Devops con el diseño de código. Es un proceso muy sencillo, ya que solo necesita configurar un ejecutor, conectarlo con una cuenta de Azure Devops y compilar la canalización para ejecutar el trabajo. El diseño de código es... crucial Hoy en día, como software malicioso, los archivos siguen aumentando. La firma de código establece confianza entre los desarrolladores de software y los usuarios finales, asegurándoles que el código no ha sido comprometido ni alterado. Puede contactarnos en info@encryptionconsulting.com Para cualquier ayuda con respecto a nuestra solución de firma de código.