Подменённый файл выглядит как настоящий: то же имя, тот же размер, та же иконка.
Отличить его можно только по контрольной сумме (короткий отпечаток содержимого: изменился один байт, изменился весь отпечаток). Если сумма скачанного файла совпадает с той, что опубликовал автор, это тот самый файл. Не совпадает, значит другой, и запускать его не надо. Ниже: откуда берётся подмена, как посчитать сумму за секунду и где брать эталон, чтобы проверка что-то значила.
Коротко:
- Подменённый файл может совпадать с настоящим по имени, размеру и иконке, но его контрольная сумма SHA-256 будет другой.
- Посчитайте SHA-256 файла в браузере или командой certutil, shasum или sha256sum и сравните с эталоном: совпало, значит файл тот самый, не совпало, не запускайте.
- Эталон берите с официального сайта автора, а не оттуда же, откуда пришёл подозрительный файл, иначе проверка ничего не значит.
Что такое хеш, если совсем просто
Возьмите любой файл, хоть на гигабайт, и пропустите через формулу. На выходе всегда 64 символа, и всегда одни и те же для одного и того же файла. Поменяйте в файле один байт, и все 64 символа станут другими, без всякой связи со старыми. Восстановить файл по этим символам нельзя, зато сравнить два файла по ним можно за секунду, не сравнивая сами файлы.
Это и есть хеш, он же контрольная сумма, он же отпечаток. Автор считает его от своего файла и публикует. Вы считаете от своего и сравниваете. Совпали, значит файлы одинаковы до последнего байта. Формула открытая и одна на всех, поэтому сумму, посчитанную на Windows, можно сверить с суммой, посчитанной на Mac или в браузере.
Как подменяют скачанный файл?
Между сайтом и вашим диском есть дорога, и на ней файл могут заменить. Зеркало, которое «просто быстрее качает». Заражённый роутер в отеле. Оператор, подставляющий свою рекламу в незашифрованные страницы. Публичный Wi-Fi, где кто-то встал посередине. И самый частый случай: вы скачали файл не с официального сайта, а «с другого адреса, где то же самое», решив, что это то же самое.
HTTPS защищает от многого, но не от последнего. Если вы сами пришли на чужой сайт и сами скачали чужой файл, шифрование канала честно доставило вам подделку. Сумма отвечает на вопрос однозначно: это тот файл, что выпустил автор, или нет.
Для приложений VPN это особенно важно. Файл, который получает права на весь ваш трафик, стоит проверить до установки, а не после. Почему APK не из магазина это отдельный риск, сказано в статье VPN на Android: настройка.
Как проверить хеш SHA-256 файла?
Откройте контрольную сумму файла и перетащите файл. Считается SHA-256 (стандартный алгоритм отпечатка, 64 символа), рядом по кнопке SHA-1 и SHA-512, если автор опубликовал их. Файл никуда не загружается: он читается в памяти вкладки, и сетевых запросов при этом не происходит, что можно проверить во вкладке «Сеть» инструментов разработчика.
Если у вас есть эталонная сумма, вставьте её в поле рядом: страница сама скажет «совпала» или «не совпала», сравнивать 64 символа глазами не придётся.
Без браузера тоже можно, если вы на компьютере:
Windows: certutil -hashfile файл SHA256
macOS: shasum -a 256 файл
Linux: sha256sum файл
Результат один и тот же на любой системе. В этом весь смысл: сумма зависит от содержимого, а не от того, кто и чем её считал.
Где взять эталонную контрольную сумму
Вот здесь ошибаются чаще всего. Эталонную сумму надо брать с того источника, которому вы доверяете, а не из того же места, откуда скачали подозрительный файл. Если файл подменили на зеркале, сумму рядом с ним подменили тоже, и они «совпадут». Проверка тогда ничего не значит.
Правильно так: файл откуда угодно, сумма с официального сайта автора. Мы публикуем рядом с каждой нашей загрузкой файл с расширением .sha256: 404vpn.apk.sha256, 404vpn-macos.dmg.sha256, tunnel.apk.sha256. Такие же файлы есть у версий для Windows и Linux. В каждом лежит эталон. Скачали приложение с любого зеркала, взяли сумму со страницы загрузки, сравнили.
Что значит, если хеш не совпал?
Что это не тот файл. Причины бывают безобидные и нет, и различить их просто.
Безобидные. Скачали другую версию: автор обновил файл, а сумму на странице ещё нет, или наоборот. Файл не докачался. Браузер распаковал архив на лету. Во всех этих случаях повторное скачивание с официального сайта даёт совпадение.
Не безобидные. Скачали заново с того же места, сумма снова не совпадает с авторской, а с сайта автора файл совпадает. Значит, на том месте лежит другой файл. Что в нём, вы не узнаете, и узнавать не надо: удалить, не запуская.
Простое правило: несовпадение это не «проверить ещё раз глазами», а «не запускать, пока не совпадёт».
Что сумма не проверяет
Сумма подтверждает, что файл не изменился с момента, как автор посчитал эталон. Она не говорит, что сам автор честный, и не говорит, что в файле нет ошибок. Если вы доверяете автору, сумма гарантирует, что получили именно его файл. Если не доверяете, сумма не поможет: она с той же точностью подтвердит подлинность вредоносного файла, выпущенного тем, кому вы зря поверили.
И она не заменяет подпись. Подпись отвечает ещё и на вопрос «кто это выпустил», а сумма только «это то же самое или нет». Для скачанного приложения этого обычно достаточно, если сумма взята с сайта, которому вы доверяете.
Скажу, как делал бы сам: проверять всё подряд не стал бы. Проверял бы три категории: приложения, которые получают широкие права (VPN, антивирус, всё с доступом к системе), файлы с зеркал и торрентов, и всё, что пришло по ссылке от незнакомого человека. На это уходит секунда, а сэкономить может очень много.
Если сумма не совпала, а понять, безобидная ли причина, не получается, дайте нейросети обе суммы и историю файла.
Помоги понять, почему не совпала контрольная
сумма файла.
Файл: (что это, откуда скачан).
Эталон взят: (с сайта автора / рядом с файлом /
не знаю).
Моя сумма: (вставьте). Эталон: (вставьте).
Скачивал повторно: (да, сумма та же / нет).
Скажи, похоже ли это на другую версию или
недокачку, или на подмену, и что сделать
дальше. Не советуй запускать файл.
Коротко
Имя и размер подделать можно, сумму нет. Перетащили файл, получили SHA-256, сравнили с эталоном с сайта автора. Совпало, файл тот самый. Не совпало, не запускать. Главная ошибка: брать эталон оттуда же, откуда пришёл подозрительный файл, тогда проверка не значит ничего.
Частые вопросы
Какой командой проверить SHA-256 на Windows, Mac и Linux?
В Windows: certutil -hashfile файл SHA256, в macOS: shasum -a 256 файл, в Linux: sha256sum файл. Результат на любой системе один и тот же, потому что сумма зависит только от содержимого файла.
Можно ли брать контрольную сумму с того же сайта, где скачал файл?
Только если это официальный сайт автора. Если файл подменили на зеркале, сумму рядом с ним подменили тоже, и они совпадут, поэтому эталон берите у автора.
Что делать, если контрольная сумма не совпала?
Не запускайте файл и скачайте его заново с официального сайта: если причина безобидная, например другая версия или недокачка, сумма совпадёт. Если файл с сайта автора совпал, а скачанный заново с прежнего места снова нет, там лежит другой файл: удалите его, не запуская.
Какие файлы стоит проверять по контрольной сумме?
Приложения с широкими правами вроде VPN и антивируса, файлы с зеркал и торрентов и всё, что прислал по ссылке незнакомый человек. На проверку уходит секунда.
Где взять SHA-256 для приложений 404 VPN?
На странице загрузки 404 VPN: рядом с каждой кнопкой скачивания есть сумма SHA-256 со ссылкой на файл .sha256, в котором лежит эталон.
Что о вас видно прямо сейчас?
Нажмите «Проверить», и мы покажем, что видит любой сайт, который вы открываете.
Отчёт придёт после подтверждения адреса. Проверка идёт в браузере и на нашем сервере (для WebRTC браузер обращается к серверу STUN Google). Сохраняем результат, только если вы попросите отчёт.
Сообщим, когда ваш сервис перестанет работать
Наши узлы проверяют сервисы круглые сутки. Выберите свои, и мы напишем, как только наши точки проверки подтвердят сбой.
Пишем, только когда сервис упал и когда снова заработал. Отписаться в один клик.
10 настроек телефона, которые заметно усложняют взлом
Без программ и без денег. Три первых пункта прямо здесь, остальные пришлём с путями в меню iPhone и Android.
- Автообновления системы и приложений
- Код из 6 цифр вместо 4 и рисунка
- Поиск телефона и удалённое стирание
+ ещё 7 пунктов с путями в меню
Чек-лист придёт после подтверждения адреса. Отписаться в один клик.