Linha de Comando do GnuPG - Verificando a Assinatura do KeePass

5
Estou tentando verificar a assinatura PGP da versão mais recente do arquivo de configuração do KeePass 2.14 em relação a "> esta assinatura , mas esta é a saída que recebo:

C:\Program Files (x86)\GNU\GnuPG>gpg.exe --verify C:\Users\User\Desktop\KeePass-2.14-Setup.exe
gpg: no valid OpenPGP data found.
gpg: the signature could not be verified.
Please remember that the signature file (.sig or .asc)
should be the first file given on the command line.

C:\Program Files (x86)\GNU\GnuPG>

Eu encontrei este comando aqui , mas ele não mencionou ".sig" ou ".asc" arquivos, então eu percebi que fiz algo errado. Ao ler as páginas do manual , tentei ainda o seguinte:

C:\Program Files (x86)\GNU\GnuPG>gpg.exe --pgpfile C:\Users\User\Desktop\KeePass-2.14-Setup.exe
gpg: Invalid option "--pgpfile"

C:\Program Files (x86)\GNU\GnuPG>

Como você pode ver, os resultados são bastante ofuscantes ...

Eu dei uma olhada em isso em SuperUser , mas nenhum dos links pareceu responder à minha pergunta, pelo menos não diretamente o suficiente para eu ter uma ideia de como avançar com isso.

Alguém aqui pode me ajudar com o tecnicismo esotérico do OpenPGP & o uso associado do programa GnuPG? Eu me senti muito estúpido aprendendo VBS, mas isso é além de ser humilhante: é absolutamente debilitante e mutilar qualquer confiança que eu tenha com minhas habilidades em TI (novamente, eu também não tenho justificativa para me gabar, já que eu ainda não recebi meu A + Cert, lol).

ATUALIZAÇÃO 04-04-2011

Ok, então cansei de brincar com o Windows e decidi fazer tudo certo inicializando o Ubuntu; isso por si só tornou as coisas muito mais lógicas!

Então aqui está minha lista de comandos e onde eu estou:

  1. proto@type:~$ cd Desktop/
  2. proto@type:~/Desktop$ gpg --import KeePass-2.14-Setup.exe.asc gpg: no valid OpenPGP data found. gpg: Total number processed: 0
  3. proto@type:~/Desktop$ gpg --import Dominik_Reichl.asc gpg: /home/proto/.gnupg/trustdb.gpg: trustdb created gpg: key FEB7C7BC: public key "Dominik Reichl " imported gpg: Total number processed: 1 gpg: imported: 1
  4. proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe gpg: no valid OpenPGP data found. gpg: the signature could not be verified. Please remember that the signature file (.sig or .asc) should be the first file given on the command line.
  5. proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe.asc gpg: Signature made Sun 02 Jan 2011 05:25:24 AM MST using DSA key ID FEB7C7BC gpg: Good signature from "Dominik Reichl " gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 2171 BEEA D0DD 92A1 8065 5626 DCCA A5B3 FEB7 C7BC
  6. proto@type:~/Desktop$ gpg --verify Dominik_Reichl.asc gpg: verify signatures failed: unexpected data

Como Mike instruiu, coloquei ".exe" & os arquivos ".asc" no mesmo diretório, sendo o Desktop. Como você pode ver no código, também coloquei a chave pública "Dominik_Reichl.asc" no diretório Desktop.

Por favor, seja paciente comigo, pois eu tenho sido completamente estragado por MD5; Estou assumindo que o Passo 5 acima é o equivalente a este GPG:

C:\Users\user\>CD Desktop

C:\Users\user\Desktop>MD5Sum KeePass-2.14-Setup.exe
bae59065b24f0a6f2ed4bb9e0d6fc65f *KeePass-2.14-Setup.exe

Eu digo isso porque o comportamento muda sempre que eu movo o arquivo "KeePass-2.14-Setup.exe" para uma pasta "temp" na área de trabalho. Quando eu executo o comando, este é o resultado que obtenho:

proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe.asc
gpg: no signed data
gpg: can't hash datafile: file open error

Estes resultados levaram-me a acreditar que eu deveria extrair o "DSA key ID" & a "Impressão da chave primária", da Etapa 5, e compare-os com os valores na parte superior da Página de assinatura . Então, é onde a similaridade está na verificação do MD5? Isso é tudo que existe para isso? Ou há mais um passo? Existe um comando que eu uso para verificar estes dois strings ? São essas seqüências que eu realmente preciso verificar? Quais são essas sequências?



Agora há outro problema com o qual estou tendo que lidar. Nos resultados da "impressão da chave primária", tenho 2 espaços entre o "8065" e o "5626". Quando eu uso uma planilha para verificar meus resultados com a string na Página de Assinatura, recebo um resultado "FALSE" devido ao espaço em branco extra nos meus resultados. Eu verifiquei a fonte da página de assinatura para ver se o navegador estava ignorando o espaço em branco extra, mas esse não é o caso.

2171 BEEA D0DD 92A1 8065 5626 DCCA A5B3 FEB7 C7BC    # From Source of Signature Page
2171 BEEA D0DD 92A1 8065  5626 DCCA A5B3 FEB7 C7BC    # From My Results

Desde que eu remova esse espaço em branco extra, meus resultados coincidem com os da Página de Assinatura, mas eles não devem corresponder sem nenhuma intervenção da minha parte? A diferença no espaço em branco deve ser motivo de alarme?

Infelizmente, as GPG Man Pages ainda são bastante obscuras para mim, ou como algumas pessoas podem dizer que são "hostis ao usuário" (pesquise "user hostile gpg"), então eu precisarei de algumas cenouras extras lançadas do meu jeito. Eu admito: sou burro. Na verdade, quando eu ainda estava aprendendo a usar a verificação do MD5, eu me atrapalhava com isso quase tanto quanto com isso.

    
por Stisfa 07.03.2011 / 06:18

5 respostas

4

No primeiro comando fornecido, você deve estar referenciando o arquivo de assinatura .asc - não o arquivo .exe. O arquivo .exe também deve residir no mesmo diretório do arquivo .asc.

Na página man do gpg:

--verify
      Assume that the first argument is a signed file or a detached signature and verify it without generat-
      ing any output. With no arguments, the signature packet is read from STDIN. If only a sigfile is given,
      it may be a complete signature or a detached signature, in which case the signed stuff is expected in a
      file without the ".sig" or ".asc" extension.  With more than 1 argument, the first should be a detached
      signature and the remaining files are the signed stuff. To read the signed stuff from STDIN,  use  '-''
      as the second filename.  For security reasons a detached signature cannot read the signed material from
      STDIN without denoting it in the above way.
    
por 07.03.2011 / 07:10
1

Você está complicando demais as coisas :-) Tente fazer uma pesquisa pela ID de chave DSA FEB7C7BC, no link e eu acho que você entendeu!

    
por 16.03.2011 / 08:59
0

Este post é principalmente para um detalhamento de "A-to-Z", desta forma, qualquer um que esteja preso a isso pode obter uma resposta sem ter que vasculhar todos os comentários. Por favor, não vote nisso; como crédito vai para os participantes (Mike Fitzpatrick, Grawity e Jan Ivar Beddari).

Outra coisa: não confie neste post! Declaração contra-intuitiva, mas estou postando isso com uma compreensão falha / limitada de como o GPG funciona. Eu vou estar atualizando isso, pois eu entendo melhor isso; agora eu tenho uma compreensão nebulosa de como funciona.

  1. Faça o download da cópia desejada de KeePass , o Signature , e a Public Key para o mesmo diretório em sua distro favorita do Linux (no meu caso, eu tenho usado o Ubuntu e tornei o Desktop o diretório de trabalho)
  • Isso é importante! A Chave pública no site do KeePass não deve ser baixada! Você precisa fazer o download de uma chave pública que seja de confiança de outros usuários, com a esperança de que esses usuários sejam indivíduos nos quais você confia. Como você faz isso? Peça a um amigo que tenha uma chave pública confiável para lhe dar uma cópia; mas você pode não necessariamente ter um amigo que tenha isso. Bem, graças ao post de Jan Ivar Beddari, pode-se baixar uma chave pública publicada por Dominik Reichl de aqui e usar o Importe a chave pública de lá.
  • Abra um Terminal ("CTRL + ALT + T" no Ubuntu)
  • Executar cd Desktop/
  • Executar gpg --import %KEYNAME%.asc
  • Executar gpg --verify %SIGNATURE%.asc
  • Compare a impressão digital da chave resultante com a do site do KeePass
  • Aqui estão os meus resultados ao usar a chave pública em keyserver.pgp.com:

    proto@type:~$ cd Desktop/
    
    proto@type:~/Desktop$ gpg --import key0xDCCAA5B3FEB7C7BC.asc 
    gpg: key FEB7C7BC: public key "Dominik Reichl " imported
    gpg: Total number processed: 1
    gpg:               imported: 1
    gpg: no ultimately trusted keys found
    
    proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe.asc
    gpg: Signature made Sun 02 Jan 2011 05:25:24 AM MST using DSA key ID FEB7C7BC
    gpg: Good signature from "Dominik Reichl "
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg:          There is no indication that the signature belongs to the owner.
    Primary key fingerprint: 2171 BEEA D0DD 92A1 8065  5626 DCCA A5B3 FEB7 C7BC
    

    Então, aqui estão os meus resultados ao usar a chave pública no site do KeePass:

    proto@type:~$ cd Desktop
    
    proto@type:~/Desktop$ gpg --import Dominik_Reichl.asc
    gpg: key FEB7C7BC: public key "Dominik Reichl " imported
    gpg: Total number processed: 1
    gpg:               imported: 1
    
    proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe.asc
    gpg: Signature made Sun 02 Jan 2011 05:25:24 AM MST using DSA key ID FEB7C7BC
    gpg: Good signature from "Dominik Reichl "
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg:          There is no indication that the signature belongs to the owner.
    Primary key fingerprint: 2171 BEEA D0DD 92A1 8065  5626 DCCA A5B3 FEB7 C7BC
    

    Como você pode ver, os resultados são todos iguais, excluindo a parte "gpg: no finally trusted keys found". Não tenho certeza do que fazer com isso, mas as principais impressões digitais combinam com as do site do KeePass, o que importa ao verificar o arquivo. Isso é muito diferente de verificar que a chave pública é confiável, no entanto. A chave pública é algo que você confia para usar ou não, como se você confia em um estranho. Uma maneira para eles parecerem confiável é se eles têm várias pessoas para atestar, o que é o mesmo para a chave pública. Mais uma vez, isso é do meu escopo limitado, portanto, a due diligence também é necessária de sua parte!

    Se você pode esperar, eu vou lentamente editando meus posts para favorecer uma representação sucinta, simples e esperançosa do uso correto do GPG na verificação da cópia do KeePass.

        
    por 08.04.2011 / 02:26
    0

    Já tentou correr isto?

    gpg --verify KeePass-2.14-Setup.exe.asc KeePass-2.14-Setup.exe
    

    Experimente no Ubuntu, é claro. O Windows tende a ser uma dor, se você me entende ...

        
    por 14.02.2012 / 06:24
    0

    IMPORTANTE! Isto é apenas FYI. Se você estiver migrando de uma plataforma para outra (por exemplo, do Win para o Linux) e reinstalando o KeepAss, verifique se está instalando o pacote correto. Existe o KeepAssX primeiro disponível em repos, mas se você usar o banco de dados KeepAss2 com ele, ele lançará o erro mencionado acima. Por favor use o pacote KeepAss2 para banco de dados .kbdx.

        
    por 13.04.2013 / 08:51