Firma de un paquete de la aplicación de Windows 10

La firma del paquete de la aplicación es un paso necesario en el proceso de creación de un paquete de la aplicación de Windows 10 que se puede implementar. Windows 10 requiere que todas las aplicaciones estén firmadas con un certificado de firma de código válido.

Para instalar correctamente una aplicación de Windows 10, el paquete no solo tiene que estar firmado, sino también ser de confianza en el dispositivo. Esto significa que el certificado tiene que encadenarse a una de las raíces de confianza en el dispositivo. De forma predeterminada, Windows 10 confía en los certificados de la mayoría de las entidades de certificación que proporcionan los certificados de firma de código.

Además, si vas a crear un paquete MSIX, no es necesario firmar todos los paquetes del lote individualmente. Solo es necesario firmar la agrupación y todos los paquetes dentro se firman de forma recursiva.

Tema Descripción
Requisitos previos para la firma En esta sección se describen los requisitos previos necesarios para firmar el paquete de la aplicación de Windows 10.
Uso de SignTool En esta sección se describe cómo usar SignTool, del SDK de Windows 10, para firmar el paquete de la aplicación.
Firma de un paquete MSIX con firma de Device Guard En esta sección se describe cómo firmar la aplicación con la firma de Device Guard.
Creación de paquetes sin firmar para pruebas En esta sección se describe cómo crear un paquete MSIX sin firmar.

Marca de tiempo

Se recomienda encarecidamente usar marcas de tiempo al firmar la aplicación con un certificado. La marca de tiempo conserva la firma que permite que la plataforma de implementación de la aplicación acepte el paquete de la aplicación, incluso después de que el certificado haya expirado. Al inspeccionar el paquete, la marca de tiempo permite que se valide la firma del paquete en relación a la hora en que se firmó. Esto permite que los paquetes se acepten incluso después de que el certificado deje de ser válido. Los paquetes que no tienen ninguna marca de tiempo se evaluarán con la hora actual y si el certificado ya no es válido, Windows no los aceptará.

Estos son los diferentes escenarios de la firma de la aplicación con o sin marca de tiempo:

Escenario Aplicación firmada sin marca de tiempo Aplicación firmada con marca de tiempo
El certificado es válido. La aplicación se instalará. La aplicación se instalará.
El certificado no es válido (ha expirado). Se producirá un error al instalar la aplicación. La aplicación se instalará, ya que la autenticidad del certificado se verificó cuando la autoridad de marca de tiempo realizó la firma.

Nota:

Si la aplicación se instala correctamente en un dispositivo, continuará ejecutándose incluso después de la expiración del certificado, independientemente de que tenga una marca de tiempo o no.

Cumplimiento de la integridad del paquete

Además de garantizar que solo se instalan aplicaciones de confianza en un dispositivo, una ventaja adicional de firmar un paquete MSIX es que permite a Windows aplicar la integridad del paquete y su contenido después de implementarlo en un dispositivo. Al encadenar a AppxBlockMap.xml y AppxSignature.p7x en un paquete firmado, Windows puede realizar comprobaciones de validación sobre la integridad de un paquete y su contenido en tiempo de ejecución, y durante los exámenes de Windows Defender. Si se considera que un paquete está manipulado, Windows bloqueará el inicio de la aplicación e iniciará un flujo de trabajo de corrección para que el paquete se repare o vuelva a instalar. En el caso de los paquetes no distribuidos a través de Microsoft Store, la integridad del paquete se aplica si el paquete declara el elemento uap10:PackageIntegrity y se implementa en Windows 2004 y versiones posteriores. A continuación se muestra una declaración de ejemplo de aplicación de integridad de paquete en AppxManifest.xml:

<Package ...
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"  
IgnorableNamespaces="uap10">
...
  <Properties>
    <uap10:PackageIntegrity>
      <uap10:Content Enforcement="on" />
    </uap10:PackageIntegrity>
  </Properties>
...
</Package>

Modo del dispositivo

Windows 10 permite a los usuarios seleccionar el modo en que se ejecuta su dispositivo en la aplicación de configuración. Los modos son Aplicaciones de Microsoft Store, Transferir localmente aplicaciones y Desarrollador.

Aplicaciones de Microsoft Store es la forma más segura, ya que solo permite la instalación de aplicaciones de Microsoft Store. Las aplicaciones de Microsoft Store pasan por un proceso de certificación para asegurarse de que el uso de las aplicaciones sea seguro.

Transferir localmente aplicaciones y el modo Desarrollador son más permisivos con las aplicaciones que están firmadas por otros certificados, siempre y cuando dichos certificados sean de confianza y se encadenen a una de las raíces de confianza en el dispositivo. Selecciona el modo Desarrollador solo si eres un desarrollador y compilas o depuras aplicaciones de Windows 10. Puedes encontrar más información sobre el modo Desarrollador y lo que proporciona aquí.

Nota:

A partir de la versión 2004 de Windows 10, la opción de Instalación de prueba está activada de forma predeterminada. Como resultado, el modo para desarrolladores ahora es un botón de alternancia. Las empresas todavía pueden desactivar la instalación de prueba mediante una directiva.