3

Из моих ограниченных знаний PGP/GPG, для проверки файла нужно иметь 2 вещи:

  • "Подпись" файла (по сути, хэш файла, зашифрованный закрытым ключом доверенного лица; обычно распространяется в виде двоичного файла .sig или файла base64 .asc ).

  • Открытый ключ доверенного лица.

И это похоже на примеры, на которые я смотрел, используя gpg . Однако я немного запутался, пытаясь проверить файл, загруженный с одного из зеркальных сайтов GCC. На странице со списком зеркальных сайтов (http://gcc.gnu.org/mirrors.html) написано:

Архивы (размещенные на этих зеркалах) будут подписаны одним из следующих ключей GnuPG:

И тогда он перечисляет 6 возможных ключей:

1024D/745C015A 1999-11-09 Gerald Pfeifer <gerald@pfeifer.com>
Key fingerprint = B215 C163 3BCA 0477 615F 1B35 A5B3 A004 745C 015A

1024D/B75C61B8 2003-04-10 Mark Mitchell <mark@codesourcery.com>
Key fingerprint = B3C4 2148 A44E 6983 B3E4 CC07 93FA 9B1A B75C 61B8

1024D/902C9419 2004-12-06 Gabriel Dos Reis <gdr@acm.org>
Key fingerprint = 90AA 4704 69D3 965A 87A5 DCB4 94D0 3953 902C 9419

1024D/F71EDF1C 2000-02-13 Joseph Samuel Myers <jsm@polyomino.org.uk>
Key fingerprint = 80F9 8B2E 0DAB 6C82 81BD F541 A7C8 C3B2 F71E DF1C

2048R/FC26A641 2005-09-13 Richard Guenther <richard.guenther@gmail.com>
Key fingerprint = 7F74 F97C 1034 68EE 5D75 0B58 3AB0 0996 FC26 A641

1024D/C3C45C06 2004-04-21 Jakub Jelinek <jakub@redhat.com>
Key fingerprint = 33C2 35A3 4C46 AA3F FB29 3709 A328 C3A2 C3C4 5C06 

Все, что он предоставляет, - это идентификаторы ключей и отпечатки пальцев (а не сами ключи), и нигде на странице (или на любом из зеркал, или даже в архиве 4.8.0) нет файла сигнатуры .sig/.asc .

Мой вопрос: как я должен проверить этот архив (http://gcc.petsads.us/releases/gcc-4.8.0/gcc-4.8.0.tar.gz) без файла подписи и без ведома общественности ключ, или не зная, какой из 6 ключей может быть использован для подписи файла? Может кто-то с большим знанием GPG, пожалуйста, объясните самый простой способ проверить этот файл?

2 ответа2

8

Получил объяснение от команды GNU/GCC об этом, и файлы .sig отсутствовали из-за ошибки при репликации файлов на их зеркальные серверы. От команды:

Интересно, что файлы .sig находятся только на сервере GNU (например, http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/), но не на сервере GCC (например, ftp://gcc .gnu.org/pub/gcc/ Releases /gcc-4.8.0 /). Поскольку последний используется зеркалами, он также недоступен на зеркалах.

Я нашел файлы .sig на сервере GNU, как они и предлагали, но затем мне пришлось еще немного покопаться, чтобы найти "файл ключей GNU", необходимый для проверки подписи. В целом, процесс проверки был:

$ wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.gz
$ wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.gz.sig
$ wget ftp://ftp.gnu.org/gnu/gnu-keyring.gpg
$ gpg --verify --keyring ./gnu-keyring.gpg ./gcc-4.8.0.tar.gz.sig

gpg: Signature made Fri 22 Mar 2013 08:32:29 AM CDT using DSA key ID C3C45C06
gpg: Good signature from "Jakub Jelinek <jakub@redhat.com>"
gpg: Note: This key has expired!
Primary key fingerprint: 33C2 35A3 4C46 AA3F FB29  3709 A328 C3A2 C3C4 5C06

Надеюсь, это поможет всем, кто пытается проверить тарбол, загруженный с одного из зеркальных сайтов GCC.

4

Вам нужен файл sig. Единственный другой способ - если сам файл был «.gpg» и имел прикрепленную подпись. Если в сообщении говорится, что "они будут подписаны", а в зеркале нет .sig, то .sigs были удалены из зеркала.

Вы можете проверить подписи с помощью любого из других зеркал, просто получите .sig у одного из них - если только не был изменен .gz, подпись все равно будет применяться.

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