Как проверить файл, используя файл подписи 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 символов и убедитесь, что он полностью соответствует отпечатку сертификата автора.
Внимание: вам следует получить отпечаток пальца по защищенному каналу от автора. Помимо физической встречи с автором для обмена отпечатками пальцев, следующим лучшим вариантом будет отображение отпечатка пальца на веб-сайте автора и доступ к нему через
Внимание: если автор отображает только короткий идентификатор (длиной 8 символов, например
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]