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 »

Quintas,

Se não me engano o Rochinha criou um certificado, será que não é possí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
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

Assinar digitalmente um arquivo

Mensagem por HASA »

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 »

Segui as instruções, deu tudo certo.

Mas no final continua como não confiável, mesmo instalando 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 »

Parece até prático.
cert1.png
cert2.png
cert3.png
cert4.png
E mesmo depois de instalar como autoridade raiz confiável, ou fornecedor confiável, ainda mostra como suspeito.
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 »

Faltou o resultado:
O certificado de confiança não é confiável.... rs
cert5.png
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,

só falta descobrir o pulo do gato, rs
►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 »

Acabei de tentar uma gambiarra, deu certo para o que eu queria, mas.... certo demais.... rs

Alterei a data do computador e assinei com meu certificado antigo. Deu certo.

Mas ao corrigir a data do computador, mostra que o certificado usado pra assinar está vencido.... rs
No cliente aconteceria o mesmo.

Ou seja, caso seja bloqueado por causa do certificado, seus clientes obrigatoriamente precisariam de versão nova, ou pelo menos assinatura nova.
Tá aí um bloqueio por falta de pagamento,,,, rs
Mas que obriga ao SEU pagamento por um novo certificado.

Nota: ainda falta confirmar se a assinatura correta e verdadeira realmente faz diferença para os problemas que mencionei.
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 »

Usei a criação indicada no site de assinar Delphi.
Um super-resumo é este:

Código: Selecionar todos

rem baixar openssl light e executar como administrador
c:\openssl\bin\openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
c:\openssl\bin\openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name "onome"
signtool sign /f mycert.pfx /p senha nomedoexe.exe
No outro site, ele diz pra primeiro criar um certificado raiz, e depois criar outro pra autenticação de servidor, assinado pelo primeiro.

Então, dúvidas:

- O certificado raiz pode ser usado pra assinar? se alterar isso será que funciona?
- Se funcionar, do lado do cliente, será aceita a instalação de um certificado gambiarra como raiz confiável?

Mas no modo gambiarra, é trocar a configuração de antivírus ou outra coisa, pra uma configuração de certificado, isso me parece continuar sendo outra gambiarra.

Se o problema ficar resolvido, é fazer oficial e cobrar adicional dos clientes, mais prático.
vai ser o que? 10 reais pra cada um ou menos?

O ponto principal, que ainda não vi, é se isso realmente vai resolver o problema de partes brancas no software depois de usar bancos.
Senão, vai ser só perda de tempo e/ou dinheiro.
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
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

Assinar digitalmente um arquivo

Mensagem por HASA »

:'(
Srs. fui até onde o José foi e estamos sem resposta.
:(
HASA
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Assinar digitalmente um arquivo

Mensagem por fladimir »

na mensagem do próprio certificado fala: "para ativar a confiabilidade, instale no repositório de autoridades confiáveis..."

talvez se conseguirmos isso resolve o problema.
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
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 »

Tem um exemplo no harbour 3.4 na pasta contrib\hbhttpd\tests que cria um certificado, alguém pode conferir?
Atualizei o harbour agora e vi esse exemplo.

C:\Projetos_GIT\harbour-fork\contrib\hbhttpd\tests

Vejam o arquivo mkcert.sh
►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 »

An intermediate certificate is also required to be in your keychain to ensure that your certificate is issued by a certificate authority.
https://developer.apple.com/library/ios ... cates.html

Minha suspeita estava certa.
Precisa de um certificado que foi emitido por autoridade confiável.
Parece piada, mas não pode ser o próprio certificado da autoridade, porque não consta quem foi que emitiu.... rs
Então será necessário criar DOIS certificados.

Postaram dois links sobre criar assinatura.
Um deles mostra como criar o certificado confiável, mas isso é só a metade.
O outro mostra como criar o segundo certificado assinado pelo primeiro.

No final, vamos precisar de 3 certificados, apesar de existirem 4.... rs

Certificado 1: autoridade raiz, a ser instalado na nossa máquina, pra criar certificado
Certificado 2: nosso certificado, a ser instalado na nossa máquina, pra assinar
Certificado 3: autoridade raiz pra conferência, a ser instalado no cliente
Certificado 4: Nosso certificado, a ser usado pra conferência, que já consta na assinatura

Não poderemos distribuir nem o certificado 1 nem o 2, senão estaremos distribuindo pra qualquer um assinar.

Existe o repositório de certificados do usuário, e o da máquina.
Dependendo da finalidade, é instalado num lugar diferente, por exemplo pra drivers.
É o que entendi até agora.

Supondo que o certificado emitido pela COMODO exija instalar certificado da COMODO....
Dá quase no mesmo de criar nosso próprio certificado.
Só será interessante se vier pré-instalado no Windows.

O que gera outra dúvida: talvez um certificado poderia gerar novos certificados vinculados a ele, afinal, tornou-se uma autoridade confiável.

É uma coisa de doido.... rs
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 »

Pensei numa possibilidade:

Um certificado pode ser assinado por outro, como mencionado num dos links apresentados antes.

Não sei se um certificado de código poderia liberar sub-certificados.

Desta forma, seriam criados certificados vinculados ao existente.

Mas ok, já temos várias possibilidades que podem ter custo menor.

Agora só falta descobrir qual das opções resolve qual questã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 »

Quintas,

Para distribuição do exe basta que ele esteja assinado, pelo menos foi isso que o Leonardo informou a pergunta é tanto faz ele ser executado na máquina do usuário ou no servidor?
►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 »

A assinatura digital, seja EXE ou XML, já inclui o certificado.
Então o arquivo é "auto-verificável".
Isso garante que o EXE não foi modificado, e já fornece o certificado pra checagem.

Mas quem garante o certificado?
É a autoridade "master".
E essa autoridade "master" tem que estar no estoque de certificados de autoridades confiáveis do Windows.

Se for um certificado fabricado, precisa instalar o "master" nas máquinas aonde vai rodar o aplicativo, em TODAS.
Se for um certificado oficial, a autoridade já está instalada, atualizada até pelo próprio Windows.

Lembre-se que, se fosse simples, bastaria que os hackers fizessem a mesma coisa.
Bastaria re-assinar o EXE com vírus.

Além disso, tem as máquinas com domínio, com restrições, etc. que podem impedir de ficar instalando certificados particulares.

Lembre-se também do seu próprio post, com a configuração do Java: "somente certificados de autoridades confiá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/
Responder