Assinar digitalmente um arquivo

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Assinar digitalmente um arquivo

Mensagem por sygecom »

Pessoal,
Quem ainda não passou, vai passar por isso, os bancos(Itaú,Banco do Brasil e etc...) tem um aplicativo que monitora nossos sistemas e acaba por deixando tudo mais lento, ou algum antivírus que incomoda tentando deletar nossos sistemas.
Para resolver isso fizemos aqui a assinatura digital dos nossos binários e dll's para tornar o processo mais confiante e o resultado foi imediato, ficou tudo mais rápido.

O processo inicia adquirindo um certificado digital especifico para assinatura de código(Code Signing) e claro tentei antes usar o certificado que usamos para emitir NFe e não deu certo, nós cogitamos dois, da Norton e da Comodo e, por fim ficamos com a Comodo pelo custo e suporte ser mais simplificado.
https://www.comodobr.com/produtos/certi ... igning.php

Nesse meio tempo, houve uma série de verificações dos dados da empresa, telefonema para checagem e etc...

Recebemos o certificado e instalamos na maquina, e logo em seguida exportamos para o pessoal da programação poder assinar nossos arquivos.

Para quem já meche com NFe deve saber exportar um certificado, mas para quem não souber no google tem varios exemplos, abaixo um passo a passo do site dos correios:
https://www.correios.com.br/para-sua-em ... al-tipo-a1

Para assinar, usamos uma ferramenta da Microsoft chamada: SignTool, abaixo tem um link que demonstra todos os parâmetros dela:
https://msdn.microsoft.com/en-us/librar ... 64(v=vs.85).aspx

Para quem não tem o MSVC 2010 instalado da maquina, pode baixar o pacote completo deles abaixo, é só descompactar:
http://sagierp.com.br/devel/xbase/compi ... 32bits.rar

Exemplo para fazer assinatura de um .EXE:

Código: Selecionar todos

d:\devel\msvc201032bits\v7.0A\Bin\signtool.exe sign /v /f "d:\devel\doc\meu_certificado.pfx" /p senha /t "http://timestamp.verisign.com/scripts/timstamp.dll" /a "c:\sistemas\sistema.exe"
Nesse exemplo o meu signtool.exe está no seguinte caminho: d:\devel\msvc201032bits\v7.0A\Bin\, então apenas observe o caminho onde vai descompactar ou onde está instalado o MSVC para ajustar no comando acima.

Exemplo de um .EXE assinado, quando clica com o botão da direita no .EXE e vai em propriedades:
Imagem
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Assinar digitalmente um arquivo

Mensagem por fladimir »

obrigado por Compartilhar Leo..
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Assinar digitalmente um arquivo

Mensagem por JoséQuintas »

Numa época comprei direto dos EUA, mas depois era caro pra renovar.
O BAT que eu usava era este:

Código: Selecionar todos

echo url de timestamp
echo http://timestamp.verisign.com/scripts/timstamp.dll
if "%1" == "" goto :semdados
:ok
d:\tools\signtool\signtool sign /v /d "http://www.jpatecnologia.com.br" /du "http://www.jpatecnologia.com.br" /t http://timestamp.verisign.com/scripts/timstamp.dll %1
goto :fim
:semdados
echo nao foi especificado arquivo a assinar
:fim
Essa ferramenta tinha download individual, não sei se ainda tem.
O readme dá uma idéia da idade da ferramenta.
Known Issue
-----------

Due to a difference in default keylengths between Windows Millennium/Windows XP and other
versions of Windows, the pvkimprt.exe utility may fail when used to import keys between
Millennium or XP and other Windows platforms. The following is a workaround:
...
Sacanagem que parece estar virando obrigatório isso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Assinar digitalmente um arquivo

Mensagem por JoséQuintas »

Não lembro mais a senha, mas de qualquer jeito não vale mais.... rs
certificado.png
certificado.png (5.23 KiB) Exibido 11034 vezes
Acho que quando fiz custou uns 200 reais, e depois pra renovar era mais de 1.000 reais.
Na época não percebi diferença no programa com ou sem assinatura.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Assinar digitalmente um arquivo

Mensagem por JoséQuintas »

Uma coisa a mais:

No Visual Studio Express, ele assina o EXE também.
Não tem como usar a mesma assinatura pra ser grátis?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Assinar digitalmente um arquivo

Mensagem por JoséQuintas »

Depois de pesquisar assinatura grátis, cheguei nesta página que dizia de existir grátis:

http://stackoverflow.com/questions/1177 ... e-projects

Mas que agora é pago, cerca de 20 euros com taxas, mas não encontrei informação sobre quanto tempo vale o certificado.

Parece destinado a open source / programador individual

https://en.sklep.certum.pl/data-safety/ ... cates.html
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Assinar digitalmente um arquivo

Mensagem por asimoes »

Uma alternativa é usar máquinas virtuais, porque até para compilar o harbour fica lento. O Bradesco e Itaú já tem aplicativos próprios de acesso ao banco, não usam mais aquele módulo de segurança da gas tecnologia.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Assinar digitalmente um arquivo

Mensagem por rochinha »

Amiguinhos,

Eu cheguei a usar algum tutorial na internet para gerar o meu próprio certificado em minha máquina para registrar meus aplicativos, mas não tenho tanta certeza de que atuou de forma a dar mais segurança. Gerei os PEMs depois gerei o PFX e usei o signtool.exe para assinar.

Tem esse tal de kSign que é gratis, assina, mas enche o pacová abrindo o browser com seu site.

JoséQuintas
Encontrei o signtool.exe na pasta C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin em meu Windows Seven ThinPC. Mas ele faz parte do Microsoft .NET 2 SDK.

asimoes
Uma alternativa é usar máquinas virtuais, porque até para compilar o harbour fica lento. O Bradesco e Itaú já tem aplicativos próprios de acesso ao banco, não usam mais aquele módulo de segurança da gas tecnologia.
Na verdade, pelo menos o aplicativo do Itau é um browser modificado e um proxy seguro.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Assinar digitalmente um arquivo

Mensagem por JoséQuintas »

Justamente são os aplicativos dos bancos que estão ferrando com tudo.
Eles causam mais problemas do que os programas de segurança anteriores.
Justamente os que confirmei foram Bradesco e Itaú.
Nas máquinas que possuem esses programas, depois de usar o banco, os aplicativos em Harbour passam a não atualizar a tela direito.

https://pctoledo.org/forum/viewto ... 47&t=16934

O chato é que a solução pareceu a adotada pelos políticos brasileiros.

Aliás... a informática tá phoda:

- pagar pra usar o computador, onde os softwares usam mais que nós
- pagar pra antivírus, pelo sistema operacional permitir vírus
- pagar pra fazer programa de computador (certificado), por problemas causados por outros
- no celular, pagar pra uso limitado, pra propaganda de outros usarem nosso tempo pago
- tentaram limitar a internet residencial, talvez porque o SPAM e outras propagandas consumam muita internet

e por aí vai....

E muitos ainda concordam com isso, o que é pior ainda....

Já que é interesse da Microsoft proteger o Windows, ELA deveria fornecer ferramenta pra isso, até mesmo vinculada à própria licença do Windows. O software, perigoso ou não, é criado em uma máquina com licença de Windows, que possui todos os dados do "dono".
Aliás... isso é o que ela já faz nos produtos dela, caso alguém ainda não saiba.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Assinar digitalmente um arquivo

Mensagem por asimoes »

Quintas,

Teve uma atualização do aplicativo desktop do itaú semana passada e comecei a notar lentidão, mas não estava assim antes. Isso é uma praga mesmo!
Achei essa janela segurança da instalação do Java.
Screen Shot 07-31-16 at 08.22 AM.PNG
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Assinar digitalmente um arquivo

Mensagem por fladimir »

Com relação a usar os bancos nos micros windows fiz o seguinte:

Usa o Mozilla e instala nele o User-Agent e configura o Navegador como Linux-Opera.

Isso engana os bancos, achando q estão navegando em um micro com SO Linux e Navegador Opera e ai como eles não tem nada (ainda) pra isso abre os bancos.

Resumindo, hj eu no meu micro não tenho nenhuma dessas ferramentas dos bancos q deixa tudo lento, fiz a dica acima (pesquisei na net, se achar o link posto depois, pq numa busca rápida não achei) e resolveu meu problema.

Bancos testados: Banco do Brasil, Bradesco e Sicredi.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Assinar digitalmente um arquivo

Mensagem por JoséQuintas »

Encontrei isto:
É exatamente o problema que vém acontecendo.
Inicialmente vou responder a seguinte dúvida: quais são os benefícios de assinar um aplicativo?

São diversos benefícios, vou listar aqui alguns que tiveram maior relevância para nossa empresa:
1.Recentemente tivemos um problema gravíssimo com nosso software Pet Shop Control. Vários clientes nos reportaram que ao longo do dia, por diversas vezes, todos ícones e botões do software sumiam (ficavam brancos). Acabamos descobrindo que o aplicativo de segurança bancário da GAS TECNOLOGIA, bloqueava nosso software, por ele não conter uma assinatura digital. Portanto, sempre que um cliente acessava um internet banking, o sistema de segurança era ativado e bloqueava o Pet Shop Control.
2.Sempre que lançávamos uma atualização do software via clickonce, quando os clientes colocavam para atualizar, aparecia uma mensagem do SmartScreen do Windows, tentando bloquear essa operação, falando que o computador poderia estar em risco.
3.Quando os clientes vão instalar o software sem assinatura digital, aparece que o Publisher é desconhecido. Isso passa uma imagem ruim para o usuário.
4.A maioria dos anti-vírus consideram aplicativos sem assinatura digital suspeitos, podendo bloquear determinadas operações.

Esses são os pontos mais importantes que identificamos.
http://www.devsol.com.br/blog/?p=458
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Assinar digitalmente um arquivo

Mensagem por asimoes »

Agora a pergunta que não quer calar: Quem vai arcar com os custos de um certificado?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Assinar digitalmente um arquivo

Mensagem por JoséQuintas »

O mais barato é na Comodo mesmo, R$690,00 pra um ano.
Em outros lugares chega até quase R$1.500,00.
Aquele que mencionei baratinho, cerca de R$80 reais, não tá funcionando.... rs
Se entendi direito, isso é só pra Windows.

Já vi no Harbour 3.4 indícios do certificado do VSzakats.
2016-07-29 00:55 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* config/win/mingw.mk
+ add support for code signing using `osslsigncode` tool
; NOTE: Code signature appended to executables will
-if for nothing else, due to the included
signed-timestamp- inherently render those files
non-deterministic.
Anyhow, determinism was already broken by
using MSYS2 _and_ updating it to the freshest
version of components before the build.

* package/mpkg_win.sh
+ rebuild code signatures for binaries created by the
GNU Make process. This is necessary because the
post-processing to make them deterministic
modifies the exe and breaks the original signatures.

* appveyor.yml
* package/vsz_01_code.p12.gpg -> package/vszakats.p12.gpg
* update code signing key

* package/mpkg_win_ci.sh
* clear HB_CODESIGN_KEY if decryption didn't take place or didn't succeed
* remove debug lines

* .travis.yml
+ try to install osslsigncode (for cross-builds)

* .gitattributes
- package/vsz_01_ca.crt
% remove root CA
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

Assinar digitalmente um arquivo

Mensagem por pauloa1 »

Sinceramente não sei onde tudo isso vai parar....
Ta cada vez mais complicado...

Leonardo!
o link não ta abrindo.
Para assinar, usamos uma ferramenta da Microsoft chamada: SignTool, abaixo tem um link que demonstra todos os parâmetros dela:
https://msdn.microsoft.com/en-us/librar ... 64(v=vs.85).aspx

Uma dúvida!

Você só assina quando vai enviar o exe para o cliente?
Todas as dlls externas também precisam ?
Quando está alterando etc.. e compilando várias vezes ao dia não precisa assinar?

Na máquina do cliente, fica a mesma coisa, ou é preciso atualizar ou enviar alguma coisa?
Caso precisar algo no cliente é só no servidor ou nos terminais também?

Paulo
Responder