Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 14-11-2021 em todas as áreas

  1. Porque devo assinar digitalmente meus executáveis ? 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 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 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: 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)
    1 ponto
×
×
  • 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...