Когда вы загружаете программное обеспечение из Интернета, вы должны верить разработчикам, что их программа не является вредоносной.
Тем не менее, вы также должны беспокоиться о хакерах.
Злоумышленник может получить много пользы от взлома веб-сайта и замены программного обеспечения на версию с резервным копированием.
Подумайте о сайте, на котором размещена утилита биткойн-кошелька.
Если злоумышленнику удастся заменить законную версию на вредоносную, он потенциально может украсть деньги у десятков тысяч пользователей.
Еще одна важная цель для бэкдора – операционная система.
Это ранее случилось с Linux Mint.
Итак, что вы можете с этим поделать?
Хеши и подписи
Разработчики, которые заботятся о безопасности, часто связывают свои установочные файлы или архивы с контрольными суммами, которые вы можете проверить.
Вы можете прочитать, как проверить их в Windows или Linux:
- Подсчет хэш-суммы md5 CD-диска в системе Astra Linux
- Изучаем Linux приемы для создания контрольных сумм и проверки целостности данных
- ⚿ Как сопоставить сертификат и его закрытый ключ
Однако проблема с этими хэшами заключается в том, что если хакер заменяет файлы на веб-сайте, он также может легко заменить хэши.
Это делает хэши сами по себе почти бесполезными, особенно если они размещены на том же сервере, где находятся программы.
Чтобы сделать эти контрольные суммы полезными, разработчики могут также подписать их цифровой подписью с помощью пары открытого и закрытого ключей.
Только человек, которому принадлежит этот закрытый ключ, может создавать подписи.
Их можно проверить только с помощью соответствующего открытого ключа, который публикуется в Интернете.
Если проверка прошла успешно, вы можете быть (почти всегда) уверены, что владелец закрытого ключа подписал свое программное обеспечение.
Чтобы хакер обошел этот механизм безопасности, он должен каким-то образом украсть закрытый ключ, что гораздо труднее сделать, если владелец примет надлежащие меры, чтобы сохранить его в секрете.
И даже когда ключ украден, владелец может сделать его недействительным, отозвав его и объявив его скомпрометированным.
Если это произойдет, когда вы загрузите его открытый ключ и попытаетесь использовать его для проверки подписи, вы будете уведомлены о том, что он был отозван.
Как проверить электронные подписи с помощью GnuPG (GPG)
Утилита gpg обычно устанавливается по умолчанию на всех дистрибутивах.
Если по какой-либо причине он отсутствует, вы можете установить его с помощью приведенных ниже команд.
В некоторых дистрибутивах, если вы получаете сообщение об ошибке типа «gpg: не удалось запустить dirmngr‘ /usr/bin/dirmngr ’: нет такого файла или каталога», вам также необходимо установить dirmngr.
В дистрибутивах Debian, Ubuntu или на основе Debian запустите:
sudo apt install gnupg dirmngr
Для RedHat/CentOS:
sudo yum install gnupg dirmngr
и Fedora:
sudo dnf install gnupg dirmngr
Вы можете следовать приведенному ниже примеру, чтобы проверить, как проверить установщик Debian 9.8.0 ISO.
Загрузите «SHA256SUMS», «SHA256SUMS.sign» и «debian-9.8.0-amd64-netinst.iso».
Возможно, вам придется щелкнуть правой кнопкой мыши первые два файла и выбрать «Сохранить ссылку как» или эквивалентный файл в ваш веб-браузер.
В противном случае нажатие на них может просто отобразить их содержимое вместо автоматической загрузки.
Откройте эмулятор терминала и перейдите в каталог, где находятся ваши загрузки.
cd Downloads/
Проверка контрольных сумм
Дождитесь окончания загрузки ISO. Затем проверьте контрольные суммы SHA256.
sha256sum -c SHA256SUMS
После проверки контрольной суммы вы увидите имя файла и сообщение «ОК». Для проверки других типов контрольных сумм у вас есть следующие команды: 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.
Но откуда вы знаете, что этот ключ является законным?
К сожалению, чтобы быть абсолютно уверенным, вам нужно создать нечто, называемое паутиной доверия.
Очевидно, у вас его нет на данный момент. Но есть пара вещей, которые вы еще можете сделать.
Отпечаток ключа Google (DF9B9C49EAA9298432589D76DA87E80D6294BE9B).
Если вы ничего не нашли, попробуйте Google только последние восемь символов (6294BE9B).
Законный ключ будет упоминаться на многих веб-сайтах относительно подобного программного обеспечения.
Кроме того, сообщения обычно охватывают годы, поскольку надежно защищенный ключ будет использоваться в течение длительного времени.
Если вы действительно параноик, загрузите образ BitTorrent, а затем проверьте контрольную сумму и подписи.
Так как работают торренты, невозможно заменить файлы, загруженные сотнями разных пользователей.
Кроме того, BitTorrent также имеет собственные механизмы для проверки целостности каждого фрагмента данных, которые он загружает.
Теперь, когда у вас есть открытый ключ, вы можете наконец проверить подпись:
gpg --verify SHA256SUMS.sign SHA256SUMS
Заключение
Как вы, возможно, уже знаете, в Интернете нет ничего определенного.
Но, безусловно, безопаснее принимать меры предосторожности, и проверка цифровых подписей загружаемых вами файлов поможет вам избежать вредоносного программного обеспечения.
Множество раз, когда пользователи загружали операционные системы с резервным копированием или программное обеспечение биткойн-кошелька, они могли бы избежать неприятностей, проверив подписи, поскольку они не были подделаны.