Ir para conteúdo
  • Cadastre-se

dev botao

Code Sign: Assinatura Digital de .EXE e .DLL


  • Este tópico foi criado há 1590 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Fundadores

Porque devo assinar digitalmente meus executáveis ?

Event Viernes GIF by Vlad Naboka

O Produto final de quase todo desenvolvedor de Software para Windows, é gerar um arquivo compilado e executável, ou seja, um arquivo com a extensão .EXE ou .DLL

As versões recentes do Windows, incorporaram recursos de segurança, como o SmartScreen, que podem causar alertas quando Binários não assinados são executados...
O mesmo pode ocorre com módulos de Segurança de terceiros, instalados na máquina, como por exemplo: Antivírus e módulos de segurança bancários...

Para evitar mensagens assustadoras, como a exibida abaixo, é necessário Assinar digitalmente o seu binário, com um certificado emitido por uma Autoridade Certificadora válida

 

image.png

 

A título de exemplo, todos os binários distribuídos pelo Projeto ACBr, na área de Download do SAC ACBr, são assinados digitalmente com um certificado do Projeto ACBr...
Reparem que não somente o Executável final, mas o instalador, também deve ser assinado..

Abaixo, temos a imagem de quando é executamos o Instalador do ACBrMonitorPLUS SAC

image.png        image.png

Bem melhor, não ? Repare que o Fornecedor do binário, fica bem identificado na mensagem... Isso além de trazer mais confiança para o usuário final, ajuda os programas de segurança, a classificar de forma positiva, o seu Executável ou instalador, evitando bloqueios indevidos.

 

Ok, gostei... mas como fazer para assinar meus executáveis ?

O primeiro passo é comprar um Certificado do tipo "Code Signing"...

Garanto que agora você pensou algo como:
- Humm.. será que posso usar o meu certificado A1 ou A3 ?
 A resposta é NÃO... os certificados que usamos para os Documentos Fiscais eletrônicos brasileiros, não tem as características esperadas pelo Windows, para assinatura e validação de binários...

Quanto aos certificados gerados de forma local, ou seja, os Self-Signed Certificates, eles funcionarão para a assinatura... e podem ser ótimos para testes... Mas eles não devem garantir o nível de confiabilidade ao seu binário, pois eles não são gerados por uma  Autoridade Certificadora válida

Algumas empresas Brasileiras, vendem o certificado do tipo Code Signing.. Veja por exemplo esse link... Porém o preço é praticamente "o valor de um Rim esquerdo"...
(ps: veja mais empresas brasileiras, no post a seguir)

Você pode comprar o Certificado do Tipo OV, que é bem mais barato... Na página da KSoftware tem um interessante artigo, descrevendo a diferença da versão OV x EV

 

Eu preferi comprar nesse site gringo, porém isso pode exigir que você tenha um bom conhecimento de Inglês, pois o todo o processo de compra será feito em Inglês.

Esse certificado, também exige um processo de validação... ou seja, a  Empresa que irá emitir o certificado, precisa saber se você é você mesmo... 
A validação foi feita pela empresa Sectigo... eles enviam e-mails com links para você subir a documentação necessária... Como o certificado será emitido para uma Entidade Pessoa Jurídica, na etapa de envio de documentos de prova de identidade... eu enviei um PDF com o resultado da consulta de meu CNPJ, na Receita...

Na etapa final de validação, eles efetuam uma ligação para o telefone de sua empresa, para fornecer um Token, que deve ser usado para gerar o certificado... portanto, o número de telefone na documentação que você enviar, deve ser um número que você possa atender... Achei o Site de Validação da Sectigo, bastante confuso...

Eu preferi comprar a opção de 4 anos, para evitar esse penoso processo de compra, e pelos descontos oferecidos...

Após todas as validações de identidade,  eles lhe enviarão um Link para baixar o certificado em sua máquina... Será criado um arquivo PFX, e o processo de geração do Certificado na sua máquina, é muito semelhante a dos Certificados A1 brasileiros...

 

Ufa.. já tenho o meu certificado em PFX... Como eu assino os binários ?

Existem algumas ferramentas disponíveis... na página da KSoftware, você pode ler um tutorial, de como assinar usando o KSign

Você poderá assinar binários facilmente, usando a interface gráfica deles:

image.png

 

Para automatizar o processo de assinatura, você provavelmente ira preferir usar um utilitário de Linha de Comando...
Repare que na mesma pasta onde o KSign foi instalado, existe o utilitário signtool.exe

 Use esse utilitário com a seguinte sintaxe:

signtool.exe sign /du "http://seusite.com.br" /d "Descrição do seu Programa" /f "C:\Path\SeuCertificado.PFX" /p SenhaCertififcado /t "http://timestamp.comodoca.com" SeuBinario.exe

  • sign -> Comando para assinatura
  • /du -> Informa a URL do seu Site
  • /d -> Informa uma descrição resumida do seu Programa
  • /f -> Informa o Path completo para o seu Certificado (arquivo PFX)
  • /p -> Informa a Senha para abertura do seu Certificado
  • /t -> Informa um Servidor de Time Stamp, para que fique gravada a Data / Hora da assinatura

 

Mas como assinar um Binário Windows, de dentro do Linux ??

Todo processo de Build e Deploy dos binários do ACBr, é executado em um Linux OpenSuse.

A compilação de todas as plataformas que suportamos ocorre com Cross-Compiling,  e automatizamos o processo de Build e Deploy, com o uso de Jenkins e Shell Scripts,
Para transmitir o binário para fórum, criamos alguns utilitários que consomem a API do Invision Power Board

Para a assinatura dos binários, creio que seria possível usar o próprio signtool.exe, com Wine... mas encontramos um interessante utilitário nativo em Linux, chamado osslsigncode, repare que a sintaxe é muito semelhante a do signtool.exe...

osslsigncode sign -pkcs12 /path/SeuCertificado.pfx -pass SuaSenha -n "Descrição do seu Programa" -i http://seusite.com.br -t http://timestamp.comodoca.com -in SeuBinario.exe -out SeuBinario.exe.sign

(como passo final, apague o arquivo original, SeuBinario.exe e renomeie SeuBinario.exe.sign para SeuBinario.exe)

 

  • Curtir 17
  • Obrigado 2
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Ahh.. esse Google... efetuando pesquisas recentes, para escrever esse artigo.. notei que a Sectigo, agora tem um Site Brasileiro, e com preços bem semelhantes aos valores em Dólar... Deve ajudar muito, no momento da validação das informações...

https://www.sectigo.com.br/produtos/certificado-codesigning.php

Outra empresa, que também vende o Code Signing

https://www.rapidssl.com.br/certificado-code-signing

 

  • Curtir 10
  • Obrigado 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • EMBarbosa changed the title to Code Sign: Assinatura Digital de .EXE e .DLL
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.