Assinar um pacote do aplicativo do Windows 10

A assinatura de pacote do aplicativo é uma etapa necessária no processo de criação de um pacote do aplicativo do Windows 10 que pode ser implantado. O Windows 10 exige que todos os aplicativos sejam assinados com um certificado de assinatura de código válido.

Para instalar um aplicativo do Windows 10 com êxito, além de o pacote ser assinado, ele também precisa estar identificado como confiável no dispositivo. Isso significa que o certificado precisa ser encadeado para uma das raízes confiáveis no dispositivo. Por padrão, o Windows 10 confia em certificados da maioria das autoridades de certificação que fornecem certificados de assinatura de código.

Além disso, se você estiver criando um pacote MSIX, não há necessidade de assinar todos os pacotes no pacote individualmente. Apenas o pacote precisa ser assinado, e todos os pacotes dentro são assinados recursivamente.

Tópico Descrição
Pré-requisitos para assinatura Esta seção aborda os pré-requisitos necessários para assinar o pacote do aplicativo do Windows 10.
Como usar a SignTool Esta seção aborda como usar a SignTool do SDK do Windows 10 para assinar o pacote do aplicativo.
Assinar um pacote MSIX com a assinatura do Device Guard Esta seção discute como assinar seu aplicativo com a assinatura do Device Guard.
Criando pacotes não assinados para teste Esta seção discute como criar um pacote msix não assinado.

Carimbo de data/hora

É altamente recomendável que o carimbo de data/hora seja usado ao assinar seu aplicativo com um certificado. O carimbo de data/hora preserva a assinatura, permitindo que o pacote do aplicativo seja aceito pela plataforma de implantação do aplicativo mesmo após o certificado ter expirado. No momento da inspeção do pacote, o carimbo de data/hora permite que a assinatura do pacote seja validada em relação à hora em que ele foi assinado. Isso permite que os pacotes sejam aceitos, mesmo depois que o certificado não seja mais válido. Os pacotes que não têm o carimbo de data/hora serão avaliados em relação à hora atual e, se o certificado não for mais válido, o Windows não aceitará o pacote.

Estes são os diferentes cenários referentes ao carimbo de data/hora com e sem a assinatura do aplicativo:

Cenário O aplicativo é assinado sem o carimbo de data/hora O aplicativo é assinado com o carimbo de data/hora
O certificado é válido O aplicativo será instalado O aplicativo será instalado
O certificado é inválido (expirado) O aplicativo não será instalado O aplicativo será instalado, pois a autenticidade do certificado foi verificada durante a assinatura pela autoridade de carimbo de data/hora

Observação

Se o aplicativo for instalado com êxito em um dispositivo, ele continuará sendo executado mesmo após a expiração do certificado, independentemente de ele ter ou não o carimbo de data/hora.

Aplicação da integridade do pacote

Além de garantir que apenas aplicativos confiáveis sejam instalados em um dispositivo, um benefício adicional da assinatura de um pacote MSIX é que ele permite que o Windows imponha a integridade do pacote e de seu conteúdo depois que ele for implantado em um dispositivo. Ao encadear para o AppxBlockMap.xml e AppxSignature.p7x em um pacote assinado, o Windows é capaz de executar verificações de validação na integridade de um pacote e seu conteúdo em tempo de execução e durante as varreduras do Windows Defender. Se um pacote for considerado adulterado, o Windows bloqueará a inicialização do aplicativo e iniciará um fluxo de trabalho de correção para que o pacote seja reparado ou reinstalado. Para pacotes não distribuídos pela Microsoft Store, a integridade do pacote será imposta se o pacote declarar o elemento uap10:PackageIntegrity e for implantado no Windows 2004 e em compilações posteriores. Abaixo está um exemplo de declaração de imposição de integridade do pacote no 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 do dispositivo

O Windows 10 permite que os usuários selecionem o modo no qual seus dispositivos serão executados no aplicativo de Configurações. Os modos são Aplicativos da Microsoft Store, Aplicativos de sideload e Modo de desenvolvedor.

Aplicativos da Microsoft Store é a opção mais segura, pois só permite a instalação de aplicativos da Microsoft Store. Os aplicativos da Microsoft Store passam por um processo de certificação para garantir que sejam seguros para uso.

Aplicativos de sideload e Modo de desenvolvedor são opções mais permissivas de aplicativos que são assinados por outros certificados, desde que esses certificados sejam confiáveis e encadeados para uma das raízes confiáveis no dispositivo. Só selecione o Modo de desenvolvedor se você for um desenvolvedor e estiver compilando ou depurando aplicativos do Windows 10. Encontre mais informações sobre o Modo de desenvolvedor e o que ele oferece aqui.

Observação

A partir do Windows 10 versão 2004, a opção Sideload está ativada por padrão. Como resultado, o modo Desenvolvedor agora é uma alternância. As empresas ainda podem desativar o Sideload por meio de política.