Командная строка GnuPG — проверка подписи KeePass

Командная строка GnuPG — проверка подписи KeePass

Я пытаюсь проверить подпись 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, но это более чем унизительно: это абсолютно подрывает и калечит всю уверенность, которую я имел в своих навыках в области ИТ (с другой стороны, у меня нет никаких оснований хвастаться, поскольку я еще не получил свой сертификат A+, лол).


ОБНОВЛЕНИЕ 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" в один и тот же каталог, который называется Desktop. Как вы можете видеть в коде, я также поместил открытый ключ "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 Man для меня все еще довольно неясны, или, как некоторые могут выразиться, "неприязненны к пользователю" (поиск "user hostile gpg"), так что мне нужно будет подбросить пару дополнительных морковок. Признаю: я тупой. На самом деле, когда я только учился использовать проверку MD5, я барахтался с ней почти так же, как и с этой.

решение1

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

Из страницы руководства gpg:

--проверять
      Предположим, что первый аргумент — это подписанный файл или отделенная подпись, и проверьте ее, не генерируя
      ing любой вывод. Без аргументов пакет подписи считывается из STDIN. Если указан только sigfile,
      это может быть полная подпись или отдельная подпись, в этом случае подписанный материал ожидается в
      файл без расширения ".sig" или ".asc". При наличии более 1 аргумента первым должен быть отсоединенный
      подпись и остальные файлы — это подписанные вещи. Чтобы прочитать подписанные вещи из STDIN, используйте '-''
      как второе имя файла. По соображениям безопасности отделенная подпись не может читать подписанный материал из
      STDIN без обозначения его указанным выше способом.

решение2

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

решение3

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

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

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

решение4

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

Связанный контент