Как проверить подлинность файла, защищенного цифровой подписью

Скачивать программное обеспечение безопаснее всего с официальных сайтов разработчиков, но очень часто пользователи игнорируют это правило, предпочитая им сторонние сайты-каталоги. Это удобнее, но сопряжено с риском, поскольку каждый раз вы вынуждены доверять источнику, за подлинность которого не могут поручиться даже администраторы сайта. Если ресурс будет взломан, злоумышленники могут подменить часть выложенных на нём программ поддельными копиями с бэдкором или явно вредоносным кодом.

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

Как проверить цифровую подпись файла

Сразу нужно сказать, что к методу защиты от подделки с помощью цифровых подписей прибегают далеко не все разработчики. Используется он в основном софтверными компаниями, специализирующимся на разработке драйверов, платежного программного обеспечения и т.п. Помимо контрольной суммы, на своем сайте использующий ЭЦП разработчик выкладывает еще и публичный ключ, необходимый для расшифровки цифровой подписи.

Предположим, вы скачали кошелек Bitcoin Core и хотите проверить его подлинность. На официальном сайте Bitcoin Core вам нужно скачать еще два файла — SHA256SUMS.asc по ссылке «Сверить контрольные суммы релизов» и ключ для подписи релизов laanwj-releases.asc соответствующей версии.

Сверить контрольные суммы релизов

Также вам понадобится программа Gpg4win, предназначенная для шифрования файлов и электронных сообщений. Загрузить ее вы можете с официального сайта www.gpg4win.org/get-gpg4win.html.

Первый шаг заключается в сверении хэша исполняемого файла кошелка с контрольными суммами в файле SHA256SUMS.asc. Кликните ПКМ по проверяемому файлу и выберите в меню Другие параметры Gpg4win -> Создать контрольные суммы.

Другие параметры Gpg4win

В результате вы получите файл sha256sum.txt с хэшем проверяемого приложения.

Файл sha256sum.txt

Откройте полученный текстовый файл и сравните хэш с контрольной суммой в файле SHA256SUMS.asc, скачанном с официального сайта приложения.

Хэш

Если хэши совпадают, идем дальше.

Теперь проверим цифровую подпись. Она содержится в этом же SHA256SUMS.asc и начинается с BEGIN PGP SIGNATURE, смотрите этот скриншот.

PGP SIGNATURE

Кликните правой кнопкой мыши по файлу SHA256SUMS.asc и выберите в меню «Расшифровать и проверить».

Расшифровать и проверить

При этом вы получите сообщение, что подпись не может быть удостоверена. Нажмите либо «Искать», чтобы выполнить поиск публичного ключа на серверах, либо «Импорт», чтобы указать скачанный ключ laanwj-releases.asc.

Искать

В результате в окошке модуля Kleopatra появится имя предполагаемого владельца, выделите его и нажмите «Импорт».

Kleopatra

Предложение заверить сертификат можно отклонить, нажав «Нет».

Заверить сертификат

Готово, нажмите в окне программы «Журнал аудита».

Журнал аудита

И удостоверьтесь, что в журнале есть запись «Действительная подпись пользователя».

Действительная подпись пользователя

Если хотя бы один символ в сигнатуре окажется замененным, вы получите сообщение «Неверная подпись».

Неверная подпись

Плохая подпись пользователя

Здесь, наверное, у многих думающих пользователей возникнет вопрос, а что если взломанной окажется сама Gpg4win? Увы, тогда все описанные выше шаги окажутся бесполезными. Возможны и другие сценарии, например, заражение системы разработки с внедрением кода в ПО до подписания или кража сертификата, однако это вовсе не отменяет ценности описанного метода проверок подлинности, в любом случае он на порядок более эффективен, чем простое сверение хэша.

Рекомендуемые публикации:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *