В качестве примера этот проект предлагает файл *. asc
с подписью PGP для проверки содержимое загрузки (в отличие от контрольной суммы, вы видите пустой столбец): https://ossec.github.io/downloads.html
Как мне использовать этот файл? Я пробовал gpg --verify
и другие варианты, но похоже, что имя соответствует файлу, однако имя файла при загрузке не совсем то же самое ... не знаю, как это предполагается на работу.
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
Это еще больше уточняет ответ Евгения Новикова. Он не использует устаревшие команды 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]