Проверка файлов с помощью GPG, без файлов .sig или .asc?

3

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

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

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

И это похоже на примеры, которые я рассмотрел, используя 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, пожалуйста, объясните самый простой способ проверить этот файл?

etherice
источник

Ответы:

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.

etherice
источник
1
Вы должны рассмотреть возможность использования HTTPS для этих команд wget
Jeff Atwood
4

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

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


источник
Я проверил около 10 зеркал, и ни у одного из них нет файлов .sig или .asc, как я и ожидал. Сам пакет также не содержит такого файла. Вы можете посмотреть на себя по адресу: gcc.gnu.org/mirrors.html