Учиться · 5 мин. чтения
Как проверить подпись PGP, и почему это важно
Подпись на файле релиза полезна, только если вы её проверяете. Вот рабочий процесс на 30 секунд.
Вы скачали бинарник, разработчик опубликовал рядом .asc-подпись — что дальше? Большинство ничего не делает. Немногие, кто проверяет, обнаруживают атаки на цепочку поставок до запуска скомпрометированного кода.
Что на самом деле доказывает подпись
Действительная подпись PGP доказывает: (1) файл не был изменён с момента подписания, и (2) его подписал кто-то, владеющий закрытым ключом, чей открытый аналог вы использовали. Она НЕ доказывает, что подписавший честен, или что открытый ключ действительно принадлежит ему.
Если злоумышленник подменяет файл И публикует свой открытый ключ, подпись проверяется без ошибок — но против неверного ключа. Защита: устанавливайте ключ подписанта через отдельный канал.
Рабочий процесс проверки
- Скачайте файл и подпись (.asc).
- Получите открытый ключ подписанта из отдельного источника (сервер ключей, другой домен, лично).
- Откройте инструмент «Проверить» и вставьте подпись, исходный файл и открытый ключ.
- Убедитесь, что «Подпись действительна» указывает ожидаемого подписанта.
- Сверьте отпечаток с доверенным источником.
Отдельная vs clearsign vs зашифрованная-и-подписанная
- Отдельная — .asc в отдельном файле. Для бинарников, архивов, больших блобов.
- Clearsigned — подписанный текст и подпись в одном .asc, исходный текст в открытом виде. Для писем.
- Зашифрованная+подписанная — зашифрована для получателя и подписана отправителем. Сначала расшифруйте, затем проверьте.
Частые ошибки
- Проверка с открытым ключом, скачанным оттуда же, что и бинарник.
- Игнорирование предупреждений «хорошая подпись, но ключ не сертифицирован».
- Пересохранение файла перед проверкой — изменения концов строк ломают отдельные подписи.