Как проверить файл с помощью файла подписи asc?

В качестве примера этот проект предлагает файл *. asc с подписью PGP для проверки содержимое загрузки (в отличие от контрольной суммы, вы видите пустой столбец): https://ossec.github.io/downloads.html

Как мне использовать этот файл? Я пробовал gpg --verify и другие варианты, но похоже, что имя соответствует файлу, однако имя файла при загрузке не совсем то же самое ... не знаю, как это предполагается на работу.

9
задан 30 November 2018 в 10:06
2 ответа
  • Загрузите файл ключа:
wget https://ossec.github.io/files/OSSEC-ARCHIVE-KEY.asc
  • Проверьте файл ключа, чтобы убедиться, что он содержит EE1B0E6B2D8387B7 в качестве идентификатора ключа.
gpg --keyid-format long --list-options show-keyring OSSEC-ARCHIVE-KEY.asc
  • Если правильный, импортируйте ключ:
gpg --import OSSEC-ARCHIVE-KEY.asc
  • Загрузите пакет программного обеспечения
wget https://github.com/ossec/ossec-hids/archive/2.9.3.tar.gz
  • Загрузите файл подписи
https://github.com/ossec/ossec-hids/releases/download/2.9.3/ossec-hids-2.9.3.tar.gz.asc
  • Проверьте его
gpg --verify ossec-hids-2.9.3.tar.gz.asc 2.9.3.tar.gz

Выходные данные

gpg: Signature made Sat Dec 23 16:13:01 2017 UTC
gpg:                using RSA key EE1B0E6B2D8387B7
gpg: Good signature from "Scott R. Shinn <scott@atomicorp.com>" [unknown]
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: B50F B194 7A0A E311 45D0  5FAD EE1B 0E6B 2D83 87B7
9
ответ дан 2 December 2019 в 22:32

Это еще больше уточняет ответ Евгения Новикова. Он не использует устаревшие команды GnuPG и избегает потенциально поддельных идентификаторов ключей для аутентификации:

Загрузите файлы

Получите сертификат OpenPGP, который автор использует для выпуска подписей:

wget https://ossec.github.io/files/OSSEC-ARCHIVE-KEY.asc

Затем получите отсоединенную подпись, выданную автором. :

wget https://github.com/ossec/ossec-hids/releases/download/2.9.3/ossec-hids-2.9.3.tar.gz.asc

Наконец, получите файл, который вы собираетесь аутентифицировать:

wget https://github.com/ossec/ossec-hids/archive/2.9.3.tar.gz

Отобразите и тщательно сравните отпечаток

Перед импортом сертификата отобразите полный отпечаток сертификата OpenPGP длиной 40 символов и убедитесь, что он полностью соответствует отпечатку пальца авторское свидетельство.

Внимание: Вы должны получить отпечаток пальца по защищенному каналу от автора. Помимо физической встречи с автором для обмена отпечатками пальцев, следующим лучшим вариантом будет отпечаток пальца, отображаемый на веб-сайте автора и доступный через https: схематический URI. Автор опубликовал один здесь.

Внимание: Если автор показывает только короткий идентификатор (длиной 8 символов, например, 2D8387B7) или длинный идентификатор (длиной 16 символов, например, EE1B0E6B2D8387B7), следует относиться скептически. и попросите автора опубликовать полный отпечаток пальца, так как было продемонстрировано, что и короткий, и длинный идентификаторы можно подделать (подробнее здесь)

gpg --import --import-options show-only OSSEC-ARCHIVE-KEY.asc

Старые версии GnuPG не отображали полный отпечаток по умолчанию. Попробуйте добавить флаг --fingerprint, если он не отображается.

Вывод должен выглядеть следующим образом:

pub   rsa4096 2011-03-10 [SC]
      B50FB1947A0AE31145D05FADEE1B0E6B2D8387B7
uid                      Scott R. Shinn <scott@atomicorp.com>
sub   rsa4096 2011-03-10 [E]

Отпечаток сертификата OpenPGP в этом случае:

B50FB1947A0AE31145D05FADEE1B0E6B2D8387B7

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

B50F B194 7A0A E311 45D0  5FAD EE1B 0E6B 2D83 87B7

Внимание: Не сравнивайте только части отпечатка пальца, так как это снова открывает возможности для спуфинговых атак.

Для простого и тщательного сравнения просто скопируйте оба одинаково отформатированных отпечатка пальца в последующие строки в текстовом редакторе по вашему выбору и визуально сопоставьте их.

Импортируйте сертификат.

Если полный отпечаток полностью совпадает, импортируйте сертификат в локальную связку ключей GnuPG:

gpg --import OSSEC-ARCHIVE-KEY.asc

Аутентифицируйте файл

Теперь вы можете криптографически проверить, что файл точно соответствует опубликованному и подписанному автором.

gpg --verify ossec-hids-2.9.3.tar.gz.asc 2.9.3.tar.gz

Внимание: Всегда указывайте здесь как отсоединенную подпись, так и файл для аутентификации. Помимо отдельных подписей, существуют другие типы подписей, и непонимание этого может привести к неверным предположениям о подлинности, если в списке указан только файл подписи.

Вывод должен выглядеть следующим образом:

gpg: Signature made Sa 23 Dez 2017 17:13:01 CET
gpg:                using RSA key EE1B0E6B2D8387B7
gpg: Good signature from "Scott R. Shinn <scott@atomicorp.com>" [unknown]
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: B50F B194 7A0A E311 45D0  5FAD EE1B 0E6B 2D83 87B7

Внимание: В случае, если файл был изменен, вы должны увидеть что-то вроде этого:

gpg: Signature made Sa 23 Dez 2017 17:13:01 CET
gpg:                using RSA key EE1B0E6B2D8387B7
gpg: BAD signature from "Scott R. Shinn <scott@atomicorp.com>" [unknown]

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

Аутентификация файлов, публикуемых автором снова и снова

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

Если вы храните и поддерживаете хранилище ключей GnuPG в течение длительного времени, вам не нужно снова проверять сертификат автора для каждого нового файла, что упрощает весь процесс и делает его менее подверженным атакам в будущем.

Внимание: Персональный сертификат OpenPGP для этого обязателен. Инструкция по его созданию не является темой этого ответа.

Выдача сертификата работает следующим образом:

gpg --lsign B50FB1947A0AE31145D05FADEE1B0E6B2D8387B7

Он сообщает и GnuPG, и вам в будущем, что вы уже тщательно проверили этот авторский сертификат.

После этого вывод gpg --verify ossec-hids-2.9.3.tar.gz.asc 2.9.3.tar.gz выглядит намного чище и увереннее:

gpg: Signature made Sa 23 Dez 2017 17:13:01 CET
gpg:                using RSA key EE1B0E6B2D8387B7
gpg: Good signature from "Scott R. Shinn <scott@atomicorp.com>" [full]
5
ответ дан 9 December 2020 в 04:18

Теги

Похожие вопросы