5

Я пытаюсь проверить подпись PGP последней версии установочного файла KeePass 2.14 по этой подписи, но я получаю вывод:

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>

Я нашел эту команду здесь, но она не упоминала о файлах ".sig" или ".asc", поэтому решил, что сделал что-то не так. Читая справочные страницы, я также попробовал следующее:

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>

Как видите, результаты довольно запутанные ...

Я взглянул на это в SuperUser, но ни одна из ссылок, похоже, не отвечала на мой вопрос, по крайней мере, не настолько, чтобы я мог понять, как двигаться дальше в этом вопросе.

Может ли кто-нибудь здесь помочь мне с эзотерической технической спецификой OpenPGP и связанным с этим использованием программы GnuPG? Я чувствовал себя довольно глупо, изучая VBS, но это не просто унизительно: это абсолютно изнурительно и подрывает всю мою уверенность в своих навыках в области ИТ (опять же, у меня нет никаких оснований для того, чтобы хвастаться, так как я еще не получил свой + Cert, LOL).


ОБНОВЛЕНИЕ 04-04-2011

Итак, я устал от дурачения с Windows и решил, что сделаю это правильно, загрузив Ubuntu; одно это сделало вещи намного более логичными!

Итак, вот мой список команд и где я нахожусь:

  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

Как и велел Майк, я поместил файлы «.exe» и «.asc» в тот же каталог, где находится «Рабочий стол». Как вы можете видеть в коде, я также поместил открытый ключ "Dominik_Reichl.asc" в каталог Desktop.

Пожалуйста, будьте терпеливы со мной, так как я был полностью испорчен MD5; Я предполагаю, что Шаг 5 сверху - это GPG, эквивалентный следующему:

C:\Users\user\>CD Desktop

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

Я говорю об этом, потому что поведение меняется, когда я перемещаю файл «KeePass-2.14-Setup.exe» в папку "temp" на рабочем столе. Когда я запускаю команду, это результат, который я получаю:

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

Эти результаты привели меня к мысли, что я должен извлечь "идентификатор ключа DSA" и "отпечаток первичного ключа" из шага 5 и сравнить их со значениями в верхней части страницы подписи. Итак, где же сходство с проверкой MD5? Это все, что нужно? Или есть еще один шаг? Есть ли команда, которую я использую для проверки этих двух строк? Это те строки, которые мне действительно нужно проверить? Что это за строки?



Теперь есть еще одна проблема, с которой мне приходится сталкиваться. В результатах "Отпечаток первичного ключа" у меня есть 2 пробела между "8065" и "5626". Когда я использую электронную таблицу для проверки результатов со строкой на странице подписи, я получаю результат "ЛОЖЬ" из-за лишних пробелов в моих результатах. Я проверил источник страницы подписи, чтобы убедиться, что браузер игнорирует лишние пробелы, но это не так.

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

Пока я удаляю этот лишний пробел, мои результаты совпадают с результатами со страницы подписи, но разве они не должны совпадать без какого-либо вмешательства с моей стороны? Должна ли разница в пробелах вызывать тревогу?

К сожалению, страницы руководства GPG для меня все еще неясны, или, как некоторые могут назвать это "враждебным по отношению к пользователю" (поиск "user hostile gpg"), поэтому мне понадобится пара дополнительных морковок. Я признаю это: я тупой. На самом деле, когда я все еще учился использовать проверку MD5, я с ней почти так же, как и с ней, боролся с ней.

5 ответов5

4

В первой предоставленной вами команде вы должны ссылаться на файл подписи .asc, а не на файл .exe. Файл .exe также должен находиться в том же каталоге, что и файл .asc.

Со страницы руководства 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.
1

Кажется, вы слишком усложняете ситуацию :-) Попробуйте выполнить поиск идентификатора ключа DSA FEB7C7BC по адресу https://keyserver.pgp.com/vkd/GetWelcomeScreen.event, и я думаю, вы его получите!

0

Вы пытались запустить это?

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

Попробуйте это на Ubuntu, конечно. Windows, как правило, боль, если вы понимаете мой смысл ...

0

Этот пост предназначен главным образом для разбивки «от А до Я», так что любой, кто застрял в этом, может получить ответ, не просматривая все комментарии. Пожалуйста, не голосуйте за это; как заслуга участников (Майк Фицпатрик, Гравити и Ян Ивар Беддари).

Другое дело: не верьте этому посту! Противоречивое утверждение, но я публикую это с ошибочным / ограниченным пониманием того, как работает GPG. Я буду обновлять это, поскольку я получаю лучшее понимание этого; сейчас у меня есть туманное представление о том, как это работает.

  1. Загрузите нужную копию KeePass, соответствующую подпись и открытый ключ в тот же каталог на вашем любимом дистрибутиве Linux (в моем случае я использовал Ubuntu и сделал рабочий стол рабочим каталогом)
  • Это важно! Открытый ключ на веб-сайте KeePass не следует загружать! Вам необходимо загрузить открытый ключ, которому доверяют другие пользователи, и, надеюсь, эти пользователи будут людьми, которым вы доверяете. Как ты это делаешь? Попросите друга, у которого есть открытый ключ, которому вы доверяете, дать вам копию; но вы не обязательно иметь друга, который имеет это. Что ж, благодаря сообщению Яна Ивара Беддари, вы можете скачать отсюда открытый ключ, изданный Домиником Рейхлом, и использовать там Импортировать открытый ключ.
  • Откройте терминал («CTRL +ALT +T» в Ubuntu)
  • Запустите cd Desktop/
  • Запустите gpg --import %KEYNAME%.asc
  • Запустите gpg --verify %SIGNATURE%.asc
  • Сравните полученный отпечаток ключа с отпечатком с веб-сайта KeePass

  • Вот мои результаты при использовании открытого ключа от 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
    

    Тогда вот мои результаты при использовании открытого ключа с веб-сайта 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
    

    Как вы можете видеть, результаты все одинаковы, за исключением части "gpg: в конечном итоге ключи не найдены". Я не уверен, что с этим делать, но ключевые отпечатки совпадают с отпечатками на веб-сайте KeePass, что важно при проверке файла. Это сильно отличается от проверки того, что открытый ключ заслуживает доверия. Открытый ключ - это то, что вы доверяете, чтобы использовать или не использовать, например, доверяете ли вы незнакомцу. Один из способов, которым они могут показаться заслуживающими доверия, - это иметь несколько человек, которые могут поручиться за них, что то же самое для Открытого ключа. Опять же, это из моей ограниченной области, поэтому с вашей стороны также требуется должная осмотрительность!

    Если вы можете подождать, я буду медленно редактировать свои посты, чтобы сделать лаконичное, простое и, надеюсь, точное представление о правильном использовании GPG при проверке своей копии KeePass.

    0

    ВАЖНЫЙ ! Это просто к вашему сведению. Если вы переходите с одной платформы на другую (например, с Win. На Linux) и переустанавливаете KeepAss, убедитесь, что вы устанавливаете правильный пакет. KeepAssX сначала доступен в репозиториях, но если вы используете базу данных KeepAss2 вместе с ней, она выдаст вышеупомянутую ошибку. Пожалуйста, используйте пакет KeepAss2 для базы данных .kbdx.

    Всё ещё ищете ответ? Посмотрите другие вопросы с метками .