Como assinar um arquivo EXE usando um certificado de assinatura de código?

Assinar arquivo Exe

Se você desenvolve ou distribui software para Windows, saber como assinar um arquivo EXE garante que seus aplicativos sejam confiáveis e estejam livres de avisos de segurança. A assinatura de código verifica a autenticidade e a integridade de um executável, garantindo aos usuários que o software é de uma fonte legítima e não foi adulterado. Sem uma assinatura digital válida, o Windows pode bloquear o aplicativo ou exibir alertas de segurança, dificultando a conquista da confiança do usuário.

Este artigo explica como assinar um executável, abordando tudo, desde os requisitos e instruções passo a passo até a verificação e os benefícios de assinar um arquivo EXE.

Ao final deste guia, você saberá como obter e instalar um certificado de assinatura de código, usaro signtool.exe da Microsoft para assinar um arquivo EXE e verificar se o executável está assinado corretamente. Vamos começar.


Requisitos antes de assinar um EXE ou aplicativo

Antes de assinar um arquivo EXE, você deve ter as ferramentas e a configuração corretas. A assinatura de código não se trata apenas de aplicar uma assinatura digital. Ela requer um certificado válido, armazenamento seguro de chaves e um software de assinatura adequado. A seguir, examinaremos os principais requisitos passo a passo, abordando tudo, desde a escolha do certificado correto até a configuração do software necessário.

1. Obtenha um certificado de assinatura de código

Primeiro, você precisa de um certificado de assinatura de código emitido por uma autoridade de certificação (CA) confiável, como a DigiCert ou Sectigo. Esse certificado verifica sua identidade como editor de software.

Desde 1º de junho de 2023, todos os certificados de assinatura de código devem armazenar a chave privada em hardware seguro. Como resultado, você não pode gerar ou manter a chave privada em seu computador local. Em vez disso, ela deve ser armazenada em um dispositivo aprovado pelo FIPS 140-2 Nível 2+, como um token USB SafeNet ou um módulo de segurança de hardware (HSM).

O tipo de certificado escolhido afeta a forma como você lida com o armazenamento de chaves:

  • Os certificados de assinatura de código EV sempre vêm com um token USB SafeNet emitido pela CA. Esse dispositivo físico contém sua chave privada e é necessário sempre que você assina um arquivo EXE.
  • Os certificados de assinatura de código padrão não incluem um token USB. Em vez disso, você pode usar um serviço de assinatura baseado em nuvem (como o KeyLocker da DigiCert) ou armazenar a chave privada em seu próprio HSM, se a CA permitir.

2. Configure seu ambiente de assinatura

Depois de obter o certificado e o dispositivo de armazenamento seguro, você precisa das ferramentas certas. O SDK (Kit de Desenvolvimento de Software) do Windows inclui o utilitário de assinatura necessário, signtool.exe, que você usará para aplicar a assinatura digital. Se ele ainda não estiver instalado, você poderá fazer o download da versão mais recente no site oficial da Microsoft.

Instalador do Signtool

Se estiver usando um certificado EV Code Signing, você também precisará instalar o software SafeNet Authentication Client. Isso permite que seu sistema se comunique com o token USB e recupere a chave privada com segurança. Se você estiver assinando com um HSM, verifique se o dispositivo está configurado adequadamente e se o certificado está acessível no ambiente de assinatura.

Safenet

Você também deve ter privilégios de administrador em seu computador. A assinatura de código requer permissões elevadas, portanto, execute o Prompt de Comando ou o PowerShell como administrador antes de executar qualquer comando de assinatura.


3. Por que o registro de data e hora é importante

Uma parte importante do processo de assinatura é o registro de data e hora, que garante que a assinatura digital permaneça válida mesmo depois que o certificado expirar. Sem um registro de data e hora, o Windows tratará o EXE assinado como não confiável quando o certificado atingir a data de expiração.

Quando você assina o arquivo, a ferramenta de assinatura entra em contato com um servidor de registro de data e hora, que registra a data e a hora exatas da assinatura. Isso prova que seu arquivo foi assinado enquanto o certificado ainda era válido. A maioria das CAs fornece serviços de registro de data e hora gratuitamente. Se você não adicionar um carimbo de data/hora, os usuários verão avisos sobre uma assinatura expirada, fazendo com que seu aplicativo pareça inseguro.


4. Preparativos finais antes da assinatura

Antes de você assinar o EXE, verifique se as ferramentas de assinatura, os drivers e o dispositivo de armazenamento seguro estão configurados corretamente. Se você estiver usando um HSM, verifique se a chave está acessível e configurada corretamente. Se você estiver usando um token USB SafeNet, verifique se ele está conectado e se o SafeNet Authentication Client está em execução.

Com tudo pronto, você está pronto para assinar o arquivo EXE. O processo pode parecer complexo no início, mas seguir essas etapas garante que o Windows confie no seu software, evita avisos de segurança e garante aos usuários que a instalação do aplicativo é segura.


Guia passo a passo para assinar um arquivo EXE

Abaixo você encontra um guia detalhado e atualizado sobre como assinar um EXE, que agora deve ser armazenado em um módulo de segurança de hardware (HSM) ou token USB para aumentar a segurança.

Etapa 1: Insira o HSM ou o token USB

Antes de assinar um EXE, você deve conectar o token de hardware ou o HSM que contém o certificado de assinatura de código e a chave privada. As autoridades de certificação agora exigem que todos os certificados de assinatura de código sejam armazenados em dispositivos aprovados pelo FIPS 140-2 Nível 2, como um token USB SafeNet ou um HSM YubiKey.

Etapas para conectar seu token de hardware:

  1. Conecte o HSM ou o token USB ao computador Windows.
  2. Se solicitado, instale os drivers necessários (a maioria dos dispositivos é instalada automaticamente).
  3. Verifique se você tem o SafeNet Authentication Client ou qualquer software HSM necessário instalado.

Se você usar um HSM baseado em nuvem (como o Azure Key Vault ou o AWS CloudHSM), verifique se as credenciais estão configuradas corretamente antes de continuar.


Etapa 2: abra o prompt de comando como administrador

Como a assinatura requer permissões do sistema, você deve usar o Prompt de Comando (cmd.exe) ou o PowerShell com direitos administrativos.

Etapas para abrir o prompt de comando como administrador:

  1. Clique no menu Iniciar e digite cmd.
  2. Clique com o botão direito do mouse em Prompt de comando e selecione Executar como administrador.

Como alternativa, se você preferir o PowerShell, siga as mesmas etapas, mas digite PowerShell.


Etapa 3: Localize o SignTool

O SignTool é um utilitário da Microsoft incluído no SDK do Windows, necessário para assinar executáveis.

Encontrar o SignTool em seu sistema:

O local do SignTool depende da versão do Windows SDK que você instalou. Você pode encontrá-lo em:

C:\Arquivos de programas (x86)\Windows

Kits\10\bin\10.0.22621.0\x64\signtool.exe

Substitua 10.0.22621.0 pela versão do SDK que você instalou, se necessário.

Caminho do Signtool

Etapa 4: assinar o EXE usando o SignTool

Agora que tudo está configurado, você pode assinar o arquivo EXE usando o SignTool. Abaixo está um exemplo do comando correto para assinar com um carimbo de data/hora. Faça os ajustes necessários.

signtool sign /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 /a "C:\path\to\yourfile.exe"

Explicação do comando:

  • /tr http://timestamp.digicert.com – Especifica o URL do servidor de registro de data e hora RFC 3161 (substitua pelo servidor da sua CA).
  • /td SHA256 – Define SHA-256 como o algoritmo de digestão de carimbo de data/hora.
  • /fd SHA256 – Especifica SHA-256 como o algoritmo de digestão de arquivos (as versões modernas do Windows exigem isso).
  • /a – Seleciona automaticamente o certificado de assinatura de código correto.
  • “C:\path\to\yourfile.exe” – Substitua pelo caminho real do seu arquivo EXE.

Etapa 5: Digite a senha (se necessário)

Se o seu HSM ou token USB exigir autenticação, será exibida uma janela pop-up solicitando sua senha ou PIN.

O que você deve fazer a seguir:

  • Digite a senha do token SafeNet (ou de qualquer outro HSM).
  • Se você tiver vários certificados, o SignTool poderá solicitar que você selecione o certificado correto.

Observação: se estiver usando um HSM baseado em nuvem, talvez você precise se autenticar por meio de credenciais de API ou de um PIN seguro.


Verificar o arquivo EXE assinado

Depois de assinar o EXE, confirme se a assinatura foi aplicada corretamente e se inclui um carimbo de data/hora. Veja como você pode verificar isso:

1. Verifique as propriedades do arquivo

  1. Localize o arquivo EXE assinado em seu computador.
  2. Clique com o botão direito do mouse no arquivo e selecione Propriedades.
  3. Vá para a guia Assinaturas digitais.
  4. Se a assinatura for bem-sucedida, você verá a assinatura listada junto com um carimbo de data/hora. Clique em Details (Detalhes ) para confirmar que a mensagem diz This digital signature is OK (Esta assinatura digital está OK).

2. Use o Poweshell para verificação

Para uma verificação mais profunda, você pode usar o Windows Powershell.

  1. Abra o PowerShell (Win + X → PowerShell).
  2. Execute o comando:

    Get-AuthenticodeSignature "C:\Windows\System32\cmd.exe"

    Verificação de assinatura Powershell

Substitua “cmd/exe” pelo seu arquivo exe.

Isso exibirá detalhes sobre a assinatura, incluindo a cadeia de certificados e o registro de data e hora. Se a assinatura for inválida ou estiver faltando, o Windows a sinalizará.

3. Teste em outro sistema

Para maior segurança, tente fazer o download e executar o EXE assinado em outro computador. Se tudo estiver correto, o Windows deverá reconhecê-lo como um aplicativo confiável sem exibir avisos de segurança. Seguindo essas etapas, você pode garantir que seu EXE esteja assinado corretamente e pronto para distribuição segura.


Por que você deve assinar um arquivo EXE?

A assinatura de aplicativos do Windows não se trata apenas de segurança, mas de confiança, proteção e garantia de que o software seja executado sem problemas. Aqui estão alguns motivos para você assinar um arquivo executável:

  • Os usuários confiam em softwares assinados. Quando um arquivo EXE não está assinado, o Windows emite avisos de segurança e alguns sistemas podem bloqueá-lo completamente. Uma assinatura verificada de uma autoridade de certificação confiável garante aos usuários que o arquivo é seguro e não foi adulterado.
  • Ele impede modificações não autorizadas. Uma vez assinado, um EXE funciona como um pacote lacrado. Se alguém tentar alterá-lo, seja para injetar malware ou modificar o código, a assinatura será quebrada e o Windows marcará o arquivo como não confiável.
  • Ele reduz os avisos do Microsoft SmartScreen. O SmartScreen é agressivo com softwares não assinados, exibindo avisos que fazem com que os usuários hesitem em instalar. Ao assinar seu EXE, especialmente com um certificado de assinatura de código EV (Extended Validation), você reduz significativamente esses avisos e torna as instalações mais fáceis.
  • Ele é essencial para a distribuição corporativa. Muitos ambientes corporativos impedem que softwares não assinados sejam executados em suas redes. Um EXE assinado atende às políticas de segurança, garantindo que ele possa ser implantado sem problemas.
  • O registro de data e hora mantém a assinatura válida. Sem um carimbo de data/hora, a assinatura se torna inválida no momento em que o certificado expira. Com um carimbo de data/hora, a assinatura permanece válida mesmo após a expiração, garantindo que seu software continue funcionando.

Assine seu EXE com confiança – obtenha um certificado de assinatura de código

Depois que você souber como assinar um arquivo EXE e proteger seu software contra avisos de segurança, a próxima etapa será obter o certificado de assinatura de código adequado. Quer você seja um desenvolvedor independente ou uma empresa, a assinatura do seu EXE garante confiança, instalações tranquilas e proteção contra adulteração. Sem uma assinatura válida, o Windows sinalizará o seu software, dificultando a instalação e a execução pelos usuários.

Na SSL Dragon, oferecemos certificados de assinatura de código OV e EV dos principais provedores, como DigiCert, Sectigo e GoGetSSL. Você precisa de uma solução simples? Você pode optar pela validação individual ou da organização. Você deseja uma reputação mais sólida e menos avisos do SmartScreen? A validação estendida é o caminho que você deve seguir. Faça sua escolha, assine seu software com confiança e faça com que os avisos de segurança sejam coisa do passado.

Economize 10% em certificados SSL ao fazer seu pedido hoje!

Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10

Uma imagem detalhada de um dragão em voo
Escrito por

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.