Как проверить подлинность программного обеспечения Windows с помощью цифровых подписей

Каждый раз, когда вы загружаете программу из Интернета, вы должны доверять разработчику, что она не является вредоносной. Другого выхода нет. Но это обычно не проблема, особенно с известным программным обеспечением и разработчиками.
Тем не менее, веб-сайты, на которых размещено программное обеспечение, более уязвимы. Злоумышленники могут подорвать безопасность веб-сайта и заменить программы на свои вредоносные версии. Это выглядит и работает точно так же, как оригинал, за исключением того, что в него вставлена задняя дверь. С помощью этой задней двери злоумышленники могут контролировать различные части вашего обычного повседневного использования компьютера. Ваш компьютер либо становится частью ботнета, либо, что еще хуже, утилита ждет, пока вы используете свою кредитную/дебетовую карту, и крадет ее учетные данные. Вам следует быть особенно осторожным, когда вы загружаете важное программное обеспечение, такое как операционная система, криптовалютный кошелек или подобное.
Цифровые подписи могут спасти ситуацию
Разработчики программного обеспечения могут подписывать свои продукты. Если злоумышленник не сможет украсть их закрытый ключ, не существует известного способа, как кто-то может подделать эту подпись. Существуют многочисленные случаи, когда тысячи пользователей загрузили вредоносные программы, и почти в каждом случае, если бы они проверили цифровые подписи, они бы заметили, что они недействительны, тем самым избежав ситуации. Заменить программное обеспечение на уязвимом веб-сайте относительно легко, но невероятно трудно украсть закрытый ключ, который правильно хранится и изолирован от доступа в Интернет.
Вы можете прочитать гораздо больше о цифровых подписях здесь. Эта статья обсуждает то же самое, за исключением того, что вы будете использовать утилиты Windows для проверки загрузок.
Как использовать Gpg4win для проверки цифровых подписей
Перейдите на эту страницу и загрузите и установите Gpg4win. Умные люди зададут себе вопрос: “Но как я могу знать, что это легитимно?” И это хороший вопрос. Если это будет сломано, то все последующие шаги будут бесполезны.
К счастью, разработчик потратил все усилия, чтобы его программное обеспечение было подписано удостоверяющим центром. И он подробно описывает шаги для проверки своей программы на своем веб-сайте. Хотя используется аналогичная криптография для проверки действительности, общий метод отличается. Для этого используются цифровые сертификаты.
Проверьте контрольные суммы файлов
Допустим, вы хотите загрузить кошелек Bitcoin Core. Загрузите исполняемый файл Windows x64 (exe, а не zip). После этого нажмите на “Проверить подписи релиза”, чтобы загрузить файл “SHA256SUMS.asc”. Первый шаг — проверить хэш файла установки. Вы можете прочитать больше о хэшах здесь.
Перейдите в папку загрузок, и с установленным Gpg4win вы теперь можете щелкнуть правой кнопкой мыши на файле, и появится новое контекстное меню. Щелкните правой кнопкой мыши на файле установки Bitcoin (exe, который вы загрузили) и выберите “Больше опций GpgEX -> Создать контрольные суммы”, как на изображении ниже.

Откройте как “sha256sum.txt”, который был сгенерирован, так и “SHA256SUMS.asc”, который вы загрузили. Сравните контрольные суммы SHA256. Они должны совпадать.

Проверьте подпись файла, который перечисляет контрольные суммы
Хотя вы только что загрузили файл установки и список контрольных сумм с одного и того же веб-сайта, если злоумышленник заменил файл установки, он также мог легко заменить список контрольных сумм. Однако он не может подделать подпись. Это можно проверить с помощью известного (легитимного) открытого ключа. Сначала вам нужно загрузить этот ключ.
Следующее изображение показывает, как выглядит подпись.

Это встроенная подпись (включена в тот же файл, который она проверяет). Иногда она будет отделена, включена в отдельный файл. Если вы измените всего одну букву в этом текстовом файле, подпись станет недействительной. Это способ узнать, что разработчик одобрил и подписал именно эти конкретные содержимое с правильными контрольными суммами.
Импортируйте открытый ключ разработчика
У вас есть открытые ключи, доступные для загрузки в разделе “Ключи подписи релиза Bitcoin Core” на странице загрузки Bitcoin. В качестве меры предосторожности вы можете загрузить их из другого источника. Если злоумышленник заменил легитимные ключи на свои, вероятно, мы найдем правильные ключи (и отпечатки) во всех других местах, где они были опубликованы или обсуждены.
Щелкните правой кнопкой мыши на “SHA256SUMS.asc” и выберите “Расшифровать и проверить”. Программа сообщит вам, что у вас еще нет открытого ключа. Нажмите “Поиск”.

Поиск может занять некоторое время. Обратите внимание на строку в поле “Найти”.

Вы можете скопировать это и вставить в Google, чтобы увидеть, обсуждался ли этот отпечаток открытого ключа на легитимных форумах/веб-сайтах и т. д. Чем больше мест вы найдете, тем больше вы можете быть уверены, что он принадлежит предполагаемому владельцу.
Щелкните на ключ и затем импортируйте его. Вы можете нажать “Нет” в следующем запросе (принять меры для сертификации ключа), если вы не знаете, как это сделать, или не хотите делать это сейчас.
Наконец, нажмите “Показать журнал аудита”.

Вы должны увидеть текст, который был выделен на следующем изображении, “Хорошая подпись”.

Попробуйте изменить всего одну букву в “SHA256SUMS.asc”, и вы получите то, что изображено на следующем изображении.

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