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
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 »

Perguntas:

O certificado tem que está registrado em cada máquina que roda o windows, ou isso é somente no executável?
►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 »

Isso é igual NFE. Precisa do certificado aonde vai fazer a assinatura.
Na máquina onde roda o programa, precisa só que reconheça a autoridade que emitiu o certificado.
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 »

Complementando:

Compare com o XML de NFE, só que neste caso vai ser o binário do EXE.
Ao assinar, é acrescentada a assinatura ao EXE, que garante que o EXE não foi alterado desde a assinatura.
Algo como um CRC32, mas criptografado com o seu certificado.
Também vai junto uma cópia do seu certificado, mas que só vale pra conferência.
Por essa cópia ir junto, já mostra toda procedência do certificado, a tal "cadeia de certificados".

Em todo computador existem os certificados de autoridades confiáveis instalados.
Justamente através deles é que seu certificado vai ser conferido se é válido.

Minha dúvida que resta é: o que acontece depois do certificado vencer? Vai acusar novamente que o EXE é inválido ou vai continuar valendo?
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 »

Perguntas:

A ferramenta signtool da ms serve para assinar um aplicativo compilado com mingw ?
►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 »

Pensei em outra coisa que precisa testar:

EXE compactado com UPX.

Mas no geral, assinatura é para o EXE, ou equivalente, não importa o que foi usado.
E são tratados assim EXE, DLL, OCX, programas de instalação, etc.

O que leva à preocupação sobre o que fazer com DLLs de terceiros.
Por exemplo, se precisar assinar a DLL do RMChart, e ela causar problemas, poderão bloquear tudo do mesmo "assinante" ?
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 »

Informação interessante:

Howto: Add a Digital Signature to Executables

https://blog.didierstevens.com/2008/12/ ... ecutables/
►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 »

Pensei em outra coisa que precisa testar:

EXE compactado com UPX.

Mas no geral, assinatura é para o EXE, ou equivalente, não importa o que foi usado.
E são tratados assim EXE, DLL, OCX, programas de instalação, etc.

O que leva à preocupação sobre o que fazer com DLLs de terceiros.
Por exemplo, se precisar assinar a DLL do RMChart, e ela causar problemas, poderão bloquear tudo do mesmo "assinante" ?

Uia. lembrei da senha e instalei, mas não vale mais nada.
Lembro que tive que descobrir como transformar o certificado em PFX pra facilitar, não sei se agora vém pronto.
Nessa época eu usava Clipper e VB6, em 2011, e nessa época não fez diferença assinado ou não.
certificado.png
certificado.png (10.3 KiB) Exibido 6237 vezes
certificado2.png

Código: Selecionar todos

d:\TOOLS\signtool>dir
 O volume na unidade D é TRABALHO
 O Número de Série do Volume é 640D-3E41

 Pasta de d:\TOOLS\signtool

13/07/2016  00:21    <DIR>          .
13/07/2016  00:21    <DIR>          ..
24/02/2016  15:24               356 assina.bat
24/08/2010  18:14               402 assinaan.bat
11/04/2007  11:11           511.328 capicom.dll
23/08/2010  04:14                80 gerapfx.txt
02/08/2010  17:19               636 jpateckey.pvk
07/10/2010  17:47             2.325 jpatecnologia.pfx
07/10/2010  17:46           435.856 MakePFX.exe
03/08/2010  17:25             7.008 mycredentials.spc
05/05/1999  08:52            25.600 PVKImprt EULA.doc
15/04/1999  17:10            14.080 PVKIMPRT.EXE
08/05/2001  10:38               697 readme.txt
05/12/2008  13:18           108.880 signtool.exe
              12 arquivo(s)      1.107.248 bytes
               2 pasta(s)   473.013.669.888 bytes disponíveis
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 »

Sei que foge do assunto, mas achei esse utilitário interessante OleView.Exe, do sdk da microsoft.
►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
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Assinar digitalmente um arquivo

Mensagem por sygecom »

asimoes escreveu:Agora a pergunta que não quer calar: Quem vai arcar com os custos de um certificado?
Essa não tem jeito, eles inventam e nós pagamos a conta, nem que seja com desenvolvimento longo para entender tributação e fazer toda a bagaça funcionar.
fladimir escreveu: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
Problema chefe, é fazer isso em escala muito grande de usuários, e tem lugar que tem TI que o ainda acha que o problema é no sistema, até convencer o o cara do TI do problema, ai o problema se arrasta por semanas.
pauloa1 escreveu:Sinceramente não sei onde tudo isso vai parar....
Ta cada vez mais complicado...
Pior que todo dia é uma nova invenção e assim agente passa o tempo todo trabalhando para sobreviver a essas loucuras sem fim produtivo algum.
Leonardo!
o link não ta abrindo.
Vou colocar o link dentro do CODE abaixo, copia e cola no navegador:

Código: Selecionar todos

https://msdn.microsoft.com/en-us/library/windows/desktop/aa387764(v=vs.85).aspx
Você só assina quando vai enviar o exe para o cliente?
Sim, em quando estamos comilando e testando não fazemos assinatura, só na versão final do cliente que vai assinado.
Todas as dlls externas também precisam ?
Nós temos umas DLL feita em Lazarus que assinamos, e mais alguns .EXE auxiliar que mandamos junto com o sistema, quando assinei apenas o .EXE principal resolveu tudo, mas na duvida assinei tudo e mandei para os clientes novamente.
Quando está alterando etc.. e compilando várias vezes ao dia não precisa assinar?
Não precisa, até atrapalha.
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?
Não muda nada, apenas substituiu o .EXE assinado pelo velho e nada mais.
asimoes escreveu:Perguntas:

O certificado tem que está registrado em cada máquina que roda o windows, ou isso é somente no executável?
Não precisa chefe, assina na sua maquina o .EXE manda para o cliente o .EXE assinado e pronto.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
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 »

JoséQuintas escreveu:Pensei em outra coisa que precisa testar:

EXE compactado com UPX.
Eu parei de usar UPX faz um tempo, na época também era por causa dos anti-virus, mas nem me arisco a colocar de novo.
O que leva à preocupação sobre o que fazer com DLLs de terceiros.
Por exemplo, se precisar assinar a DLL do RMChart, e ela causar problemas, poderão bloquear tudo do mesmo "assinante" ?
Pensei nisso também, na duvida assinei apenas o que eu posso compilar e mexer caso precise, o resto não assinei nada.
asimoes escreveu:Perguntas:

A ferramenta signtool da ms serve para assinar um aplicativo compilado com mingw ?
Deve funcionar, assinei .EXE compilado com xHarbour BCC55, MSVC-2010 e DLL em Lazarus.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
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 »

Só pra lembrar o harbour não tá sozinho nesse problemão, sistemas feitos em delphi também devem padecer do mesmo problema.
Eu não sei se isso afeta também sistemas feitos em c#
►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,

Uma coisa a ser lembrada:

Pelo menos no meu caso, quando criei o meu certificado, com dicas de internautas, passei a colocá-lo em meu SETUP e o mesmo ao ser instalado já instala o .PFX na máquina do cliente.

Eu não tive problemas com certificado mas tive muitos problemas com Trojan EVO.Gen e por não saber se era a certificação ou compactação tirei tudo.

Resumindo tenho 2 certificados o que eu criei e o NFe comprado.
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 »

O relato do outro tópico me deixou na dúvida se o certificado vai resolver o problema do programa do banco ou não - ref. problema com GTWVW.

E também vai precisar teste compactado e sem compactação. (assinar antes e/ou depois de compactar).

Me chamou a atenção um relato sobre EXEs/DLLs compactados.
Isso causa precisar de uma área a mais de memória pra conter o processo, durante todo o uso.
Apesar que 8MB em 2GB representar pouco, chamou a atenção.
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 »

É complicado criar o seu próprio certificado para aplicação?
►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 »

É preciso COMPRAR o certificado, não dá pra fabricar 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/
Responder