Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Fundadores
Postado

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.

  • Fundadores
Postado

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.

  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...