Partilhar via


ClickOnce e Authenticode

O Authenticode é uma tecnologia da Microsoft que usa criptografia padrão do setor para assinar o código do aplicativo com certificados digitais que verificam a autenticidade do editor do aplicativo. Ao usar o Authenticode para implantação de aplicativos, o ClickOnce reduz o risco de um cavalo de Troia. Um cavalo de Troia é um vírus ou outro programa prejudicial que um terceiro mal-intencionado deturpa como um programa legítimo proveniente de uma fonte estabelecida e confiável. Assinar implantações do ClickOnce com um certificado digital é uma etapa opcional para verificar se os assemblies e arquivos não são adulterados.

As seções a seguir descrevem os diferentes tipos de certificados digitais usados no Authenticode, como os certificados são validados usando Autoridades de Certificação (CAs), a função do carimbo de data/hora em certificados e os métodos de armazenamento disponíveis para certificados.

Authenticode e assinatura de código

Um certificado digital é um arquivo que contém um par criptográfico de chaves públicas/privadas, juntamente com metadados que descrevem o editor para quem o certificado foi emitido e a agência que emitiu o certificado.

Existem vários tipos de certificados Authenticode. Cada um é configurado para diferentes tipos de assinatura. Para aplicativos ClickOnce, você deve ter um certificado Authenticode que seja válido para assinatura de código. Se você tentar assinar um aplicativo ClickOnce com outro tipo de certificado, como um certificado de email digital, ele não funcionará. Para obter mais informações, consulte Introdução à assinatura de código.

Você pode obter um certificado para assinatura de código de uma das três maneiras:

  • Compre um de um fornecedor de certificados.

  • Receba um de um grupo da sua organização responsável pela criação de certificados digitais.

  • Gere seu próprio certificado usando o cmdlet New-SelfSignedCertificate PowerShell ou o MakeCert.exe, que está incluído no Windows Software Development Kit (SDK).

Como o uso de autoridades de certificação ajuda os usuários

Um certificado gerado usando New-SelfSignedCertificate ou o utilitário MakeCert.exe é comumente chamado de autocertificado ou certificado de teste. Esse tipo de certificado funciona da mesma forma que um arquivo .snk funciona no .NET Framework. Consiste apenas num par de chaves criptográficas públicas/privadas e não contém informações verificáveis sobre o editor. Você pode usar autocertificados para implantar aplicativos ClickOnce com alta confiança em uma intranet. No entanto, quando esses aplicativos são executados em um computador cliente, ClickOnce irá identificá-los como provenientes de um editor desconhecido. Por padrão, os aplicativos ClickOnce assinados com certificados próprios e implantados pela Internet não podem utilizar o Desdobramento de Aplicações Confiáveis.

Por outro lado, se você receber um certificado de uma autoridade de certificação, como um fornecedor de certificados ou um departamento dentro de sua empresa, o certificado oferecerá mais segurança para seus usuários. Ele não apenas identifica o editor do software assinado, mas também verifica essa identidade através de uma consulta à autoridade de certificação que o assinou. Se a autoridade de certificação não for a autoridade raiz, o Authenticode também "encadeará" de volta à autoridade raiz para verificar se a autoridade de certificação está autorizada a emitir certificados. Para maior segurança, você deve usar um certificado emitido por uma autoridade de certificação sempre que possível.

Para obter mais informações sobre como gerar autocertificados, consulte New-SelfSignedCertificate ou MakeCert.

Carimbos de data/hora

Os certificados usados para assinar aplicativos ClickOnce expiram após um determinado período de tempo, normalmente doze meses. Para eliminar a necessidade de assinar constantemente novamente aplicativos com novos certificados, o ClickOnce suporta carimbo de data/hora. Quando um pedido é assinado com um carimbo de data/hora, o seu certificado continuará a ser aceite mesmo após a expiração, desde que o carimbo de data/hora seja válido. Isso permite que aplicativos ClickOnce com certificados expirados, mas carimbos de data/hora válidos, sejam baixados e executados. Ele também permite que os aplicativos instalados com certificados expirados continuem a baixar e instalar atualizações.

Para incluir um carimbo de data/hora em um servidor de aplicativos, um servidor de carimbo de data/hora deve estar disponível. Para obter informações sobre como selecionar um servidor de marcação de tempo, consulte Como assinar manifestos de aplicativo e implantação.

Atualizar certificados expirados

Em versões anteriores do .NET Framework, atualizar um aplicativo cujo certificado expirou poderia fazer com que esse aplicativo parasse de funcionar. Para resolver esse problema, use um dos seguintes métodos:

  • Atualize o .NET Framework versão 3.5 ou posterior.

  • Desinstale o aplicativo e reinstale uma nova versão com um certificado válido.

Armazenar certificados

  • Você pode armazenar certificados como um arquivo .pfx em seu sistema de arquivos ou pode armazená-los dentro de um contêiner de chaves. Um usuário em um domínio do Windows pode ter vários contêineres de chave. Por padrão, MakeCert.exe armazenará certificados em seu contêiner de chave pessoal, a menos que você especifique que ele deve salvá-lo em um .pfx . Mage.exe e MageUI.exe, as ferramentas do SDK do Windows para criar implantações do ClickOnce permitem que você use certificados armazenados de qualquer maneira.