Compartilhar via


Assinar um pacote de aplicativo do Windows 10

A assinatura do pacote de aplicativos é uma etapa necessária no processo de criação de um pacote de aplicativos 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 com êxito um aplicativo do Windows 10, o pacote precisa não apenas ser assinado, mas também ser confiável no dispositivo. Isso significa que o certificado precisa ser encadeado a 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 bundle MSIX, não será necessário assinar todos os pacotes dentro do bundle individualmente. Somente 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 discute os pré-requisitos necessários para assinar o pacote de aplicativos do Windows 10.
Como usar a SignTool Esta seção discute como usar o 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 o 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 depois que o certificado tiver expirado. No momento da inspeção do pacote, o carimbo de data/hora permite que a assinatura do pacote seja validada em relação ao momento em que foi assinado. Isso permite que os pacotes sejam aceitos mesmo depois que o certificado não for mais válido. Os pacotes que não possuem 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.

Os seguintes são os diferentes cenários sobre a assinatura de aplicativo com/sem carimbo de data/hora:

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 falhará ao instalar 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á a ser executado mesmo após a expiração do certificado, independentemente de estar carimbado com data/hora ou não.

Garantia de 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 seu pacote e seu conteúdo depois que ele é implantado em um dispositivo. Ao encadear 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 verificações 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 por meio da Microsoft Store, a integridade do pacote será imposta se o pacote declarar o elemento uap10:PackageIntegrity e for implantado no Windows 2004 e em builds posteriores. Abaixo está um exemplo de declaração para garantir a 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 de dispositivo

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

Os aplicativos da Microsoft Store são os mais seguros, pois permitem apenas a instalação de aplicativos da Microsoft Store. Os aplicativos na Microsoft Store passam pelo processo de certificação para garantir que os aplicativos sejam seguros para uso.

Aplicativos de sideload e Modo do desenvolvedor são mais permissivos de aplicativos que são assinados por outros certificados, desde que esses certificados sejam confiáveis e encadeiem 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. Mais informações sobre o modo desenvolvedor e o que ele fornece podem ser encontradas aqui.

Observação

A partir do Windows 10 versão 2004, a opção Sideload é ativada por padrão. Como resultado, o Modo do desenvolvedor agora é uma alternância. As empresas ainda podem desativar o sideload por meio da política.