Authenticode
Informações Gerais
O Authenticode é uma tecnologia da Microsoft utilizada para identificar quem fez publicações de software. Para isso ele utiliza técnicas de criptografia para verificar a integridade do código e quem o publicou. São assinaturas digitais combinadas com entidades confiáveis incluindo autoridades certificadoras.
Configuração do ambiente
Assinaturas baseadas em SHA1 podem ser feitas sem nenhuma configuração adicional, porém para assinar em SHA256 é necessário habilitar a CNG.
Para habilitar a CNG abra a console DINAMOcon com permissão de administrador (clique com botão direito e selecione Executar como Administrador). Depois de aberto clique em Configuração de ambiente.
Selecione a aba MS CAPI e marque a opção Habilitar CNG.
Aplique e volte para a tela inicial. Lembrando que para funcionar também é necessário que o certificado esteja habilitado para a máquina local e ela consiga acessar o HSM. Para validar isso basta ir em Certificados na tela inicial e verificar na tabela no menu Certificados . O ícone do certificado precisa aparecer na coluna Windows . Caso não esteja, basta clicar com o botão direito no certificado e clicar em Habilitar.
Assinatura
Para assinar, como exemplo será utilizado o Signtool, que é uma ferramenta de linha de comando da Microsoft criada para assinar, verificar e inserir carimbos de tempo em arquivos.
Para usar a ferramenta é necessário:
O arquivo do certificado.
O nome do container MSCAPI relacionado.
Para obter o certificado basta salvar para arquivo; na tabela de certificados do DINAMOcon, clique 2 vezes no certificado.
Depois clique em Detalhes e na opção Copiar para arquivo.
Escolha a opção Não, não exportar a chave privada.
Selecione o formato X.509 binário codificado por DER (*.cer).
Salve o arquivo.
Na mesma tabela de certificados, anote o nome do container, que está em uma das colunas da tabela de certificados.
Depois basta abrir o prompt e usar o seguinte comando:
Onde:
certificado.cer
é o certificado salvo anteriormentenome_do_container
é o nome do container que aparece na coluna Container na tabela de certificados do DINAMOconarquivo.exe
é o arquivo que deseja assinar
Verificação
A verificação de um arquivo de código assinado com padrão Authenticode pode ser feita com o programa
signtool
ou exibinndo as propriedades do arquivo (na aba Assinaturas Digitais).Para fazer a verificação de forma apropriada com o programa signtool é necessário incluir a opção
/pa
para que seja usada a Política de Verificação de Autenticação Padrão ao invés da Política de Verificação de Drivers do Windows.
Last updated