Как проверить файл, используя файл подписи asc?

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

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

2 ответа

Решение
  • Загрузите файл ключа:
wget https://ossec.github.io/files/OSSEC-ARCHIVE-KEY.asc
  • Проверьте файл ключа, чтобы подтвердить, что он имеет EE1B0E6B2D8387B7 как его ключ.
gpg --keyid-format long --show-key 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

Это еще больше уточняет ответ Евгения Новикова. Он не использует устаревшие команды 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 символов и убедитесь, что он полностью соответствует отпечатку сертификата автора.

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

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

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

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

Вывод должен выглядеть так:

      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: 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]
Другие вопросы по тегам