
Я пытаюсь проверить подпись 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; это само по себе сделало все гораздо более логичным!
Итак, вот мой список команд и где я нахожусь:
proto@type:~$ cd Desktop/
proto@type:~/Desktop$ gpg --import KeePass-2.14-Setup.exe.asc gpg: no valid OpenPGP data found. gpg: Total number processed: 0
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
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.
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
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. Я обновлю это, когда лучше это пойму; сейчас у меня смутное представление о том, как это работает.
- Загрузите нужную вам копиюKeePass, соответствующийПодписьи открытый ключ к тому же каталогу в вашем любимом дистрибутиве Linux (в моем случае я использую Ubuntu и сделал рабочий стол рабочим каталогом)
- Это важно!TheОткрытый ключна сайте 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.
решение4
ВАЖНЫЙ ! Это просто FYI. Если вы переходите с одной платформы на другую (например, с Win. на Linux) и переустанавливаете KeepAss, пожалуйста, убедитесь, что вы устанавливаете правильный пакет. KeepAssX сначала доступен в репозиториях, но если вы используете базу данных KeepAss2 с ним, он выдаст указанную выше ошибку.Используйте пакет KeepAss2 для базы данных .kbdx.