Когда вы загружаете программное обеспечение из Интернета, вы должны доверять разработчикам, что их программа не является вредоносной. Однако вам также придется беспокоиться о хакерах. Злоумышленник может получить много пользы от взлома веб-сайта и замены программного обеспечения версией с бэкдором.
Представьте себе сайт, на котором размещена утилита биткойн-кошелька. Если злоумышленнику удастся заменить легитимную версию вредоносной, он потенциально может украсть деньги у десятков тысяч пользователей. Еще одна ценная цель бэкдора — операционная система. Это случалось с Linux Mint в прошлом .
Итак, что с этим можно сделать?
Хеши и подписи
Разработчики, заботящиеся о безопасности, часто связывают свои установочные файлы или архивы с контрольными суммами, которые вы можете проверить. Вы можете прочитать, как проверьте их в Windows или Линукс . Однако проблема с этими хэшами заключается в том, что если хакер заменяет файлы на веб-сайте, он так
Contents
Хеши и подписи
хэши. Это делает хэши сами по себе практически бесполезными, особенно если они размещены на том же сервере, где находятся программы.Чтобы сделать эти контрольные суммы полезными, разработчики также могут подпишите их цифровой подписью с помощью пары открытого и закрытого ключей. Только тот, кто владеет этим закрытым ключом, может создавать подписи. Проверить их можно только с помощью соответствующего открытого ключа, который опубликован в Интернете. Если проверка пройдена, вы (почти всегда) можете быть уверены, что владелец закрытого ключа подписал свое программное обеспечение.
Чтобы хакер мог обойти этот механизм безопасности, он должен каким-то образом украсть закрытый ключ, что гораздо сложнее сделать, если владелец принимает надлежащие меры для сохранения его в секрете. И даже если ключ украден, владелец может сделать его недействительным, отозвав его и объявив об этом. Если это произойдет, когда вы загрузите его/ее открытый ключ и попытаетесь использовать его для проверки подписи, вы получите уведомление о том, что он был отозван.
Как проверить подписи с помощью GnuPG (GPG)
Утилита gpg обычно устанавливается по умолчанию во всех дистрибутивах. Если по какой-то причине он отсутствует, вы можете установить его с помощью команд ниже. В некоторых дистрибутивах, если вы получаете сообщение об ошибке типа «gpg: не удалось запустить dirmngr ‘/usr/bin/dirmngr’: нет такого файла или каталога», вам необходимо установить dirmngr
тоже.
В Debian, Ubuntu или дистрибутивах на его основе запустите:
sudo apt install gnupg dirmngr
Для RedHat/CentOS:
sudo yum install gnupg dirmngr
и в Fedora:
sudo dnf install gnupg dirmngr
Вы можете воспользоваться приведенным ниже примером, чтобы проверить, как проверить ISO-образ установщика Debian 9.8.0.
Загрузите «SHA256SUMS», «SHA256SUMS.sign» и «debian-9.8.0-amd64-netinst.iso». Возможно, вам придется щелкнуть правой кнопкой мыши первые два файла и выбрать «Сохранить ссылку как» или аналогичный вариант в веб-браузере. В противном случае нажатие на них может просто отобразить их содержимое вместо автоматической загрузки.
Откройте эмулятор терминала и перейдите в каталог, в котором находятся ваши загрузки.
cd Downloads/
Проверка контрольных сумм
Дождитесь завершения загрузки ISO. Затем проверьте контрольные суммы SHA256.
sha256sum -c SHA256SUMS
Если контрольная сумма в порядке, вы увидите имя файла и
Как проверить подписи с помощью GnuPG (GPG)
ных сумм, у вас есть следующие команды:sha1sum
, sha512sum
, md5sum
. Но рекомендуется использовать как минимум сумму SHA256 или выше, если она доступна.
Некоторые сайты не предлагают такие файлы, как SHA256SUMS, где имена файлов и контрольные суммы сгруппированы для упрощения проверки. Если они просто отображают сумму на своем сайте, проверьте хэш файла с помощью команды типа:
sha256sum debian-9.8.0-amd64-netinst.iso
Использование GPG для проверки подписанных контрольных сумм
В этом примере команда Debian подписала файл «SHA256SUMS» своим закрытым ключом и сохранила его в файле «SHA256SUMS.sign». Проверьте подпись с помощью:
gpg --verify SHA256SUMS.sign SHA256SUMS
Вы получите это сообщение:
gpg: Signature made Sun 17 Feb 2019 05:10:29 PM EET gpg: using RSA key DF9B9C49EAA9298432589D76DA87E80D6294BE9B gpg: Can't check signature: No public key
Это означает, что на вашем компьютере нет открытого ключа, и это нормально. Вам необходимо импортировать его с сервера ключей.
gpg --keyserver keyring.debian.org --recv-keys DF9B9C49EAA9298432589D76DA87E80D6294BE9B
Если сервер ключей не работает, вы можете использовать альтернативный. Например, вы можете заменить keyring.debian.org
на keyserver.ubuntu.com
.
Но как узнать, что этот ключ действителен? К сожалению, чтобы быть абсолютно уверенным, вам нужно будет создать что-то под названием сеть доверия . Очевидно, что на данный момент у вас его нет. Но есть пара вещей, которые вы можете сделать.
Погуглите отпечаток ключа (DF9B9C49EAA9298432589D76DA87E80D6294BE9B). Если вы ничего не нашли, попробуйте загуглить только последние восемь символов (6294BE9B). На
Проверка контрольных сумм
многих веб-сайтах, посвященных аналогичному программному обеспечению. Кроме того, сообщения обычно публикуются годами, поскольку надежно защищенный ключ будет использоваться в течение длительного времени.Если вы настоящий параноик, загрузите BitTorrent-образ , а затем проверьте контрольную сумму и подписи. Торренты работают так, что заменить файлы, загруженные сотнями разных пользователей, невозможно. Более того, BitTorrent также имеет собственные механизмы для проверки целостности каждого загружаемого фрагмента данных.
Теперь, когда у вас есть открытый ключ, вы можете, наконец, проверить подпись:
gpg --verify SHA256SUMS.sign SHA256SUMS
Если вы видите надпись «Хорошая подпись», это означает, что все проверено. Не беспокойтесь об этом предупреждении — это нормально, поскольку, как уже упоминалось, у вас нет установленной сети доверия к открытому ключу.
Заключение
Как вы, возможно, уже знаете, в Интернете нет ничего определенного. Но, безусловно, безопас