Скачивать программное обеспечение безопаснее всего с официальных сайтов разработчиков, но очень часто пользователи игнорируют это правило, предпочитая им сторонние сайты-каталоги. Это удобнее, но сопряжено с риском, поскольку каждый раз вы вынуждены доверять источнику, за подлинность которого не могут поручиться даже администраторы сайта. Если ресурс будет взломан, злоумышленники могут подменить часть выложенных на нём программ поддельными копиями с бэдкором или явно вредоносным кодом.
Внешне отличить поддельную программу от оригинала невозможно, гарантией подлинности не является даже контрольная сумма, поскольку и она может быть изменена злоумышленником на сайте-источнике. Удостоверением подлинности программы является цифровая подпись — криптографический метод с использованием связки закрытого и открытого ключей. Закрытый ключ используется для шифрования хэша файла, а открытый — для проверки подлинности этого самого зашифрованного хэша. Публичный ключ доступен всем, тогда как закрытый хранится только у владельца цифровой подписи.
Как проверить цифровую подпись файла
Сразу нужно сказать, что к методу защиты от подделки с помощью цифровых подписей прибегают далеко не все разработчики. Используется он в основном софтверными компаниями, специализирующимся на разработке драйверов, платежного программного обеспечения и т.п. Помимо контрольной суммы, на своем сайте использующий ЭЦП разработчик выкладывает еще и публичный ключ, необходимый для расшифровки цифровой подписи.
Предположим, вы скачали кошелек Bitcoin Core и хотите проверить его подлинность. На официальном сайте Bitcoin Core вам нужно скачать еще два файла — SHA256SUMS.asc по ссылке «Сверить контрольные суммы релизов» и ключ для подписи релизов laanwj-releases.asc соответствующей версии.
Также вам понадобится программа Gpg4win, предназначенная для шифрования файлов и электронных сообщений. Загрузить ее вы можете с официального сайта www.gpg4win.org/get-gpg4win.html.
Первый шаг заключается в сверении хэша исполняемого файла кошелка с контрольными суммами в файле SHA256SUMS.asc. Кликните ПКМ по проверяемому файлу и выберите в меню Другие параметры Gpg4win -> Создать контрольные суммы.
В результате вы получите файл sha256sum.txt с хэшем проверяемого приложения.
Откройте полученный текстовый файл и сравните хэш с контрольной суммой в файле SHA256SUMS.asc, скачанном с официального сайта приложения.
Если хэши совпадают, идем дальше.
Теперь проверим цифровую подпись. Она содержится в этом же SHA256SUMS.asc и начинается с BEGIN PGP SIGNATURE, смотрите этот скриншот.
Кликните правой кнопкой мыши по файлу SHA256SUMS.asc и выберите в меню «Расшифровать и проверить».
При этом вы получите сообщение, что подпись не может быть удостоверена. Нажмите либо «Искать», чтобы выполнить поиск публичного ключа на серверах, либо «Импорт», чтобы указать скачанный ключ laanwj-releases.asc.
В результате в окошке модуля Kleopatra появится имя предполагаемого владельца, выделите его и нажмите «Импорт».
Предложение заверить сертификат можно отклонить, нажав «Нет».
Готово, нажмите в окне программы «Журнал аудита».
И удостоверьтесь, что в журнале есть запись «Действительная подпись пользователя».
Если хотя бы один символ в сигнатуре окажется замененным, вы получите сообщение «Неверная подпись».
Здесь, наверное, у многих думающих пользователей возникнет вопрос, а что если взломанной окажется сама Gpg4win? Увы, тогда все описанные выше шаги окажутся бесполезными. Возможны и другие сценарии, например, заражение системы разработки с внедрением кода в ПО до подписания или кража сертификата, однако это вовсе не отменяет ценности описанного метода проверок подлинности, в любом случае он на порядок более эффективен, чем простое сверение хэша.
Добавить комментарий