Перед установкой APK сопоставление хеша SHA-256 может показать, что ваш файл совпадает с версией, для которой у вас есть достоверный хеш. Эта проверка полезна, но сама по себе не доказывает отсутствие уязвимостей или вредоносного кода в приложении.
Для безопасной загрузки важны три отдельных вопроса: откуда взят файл, изменялся ли он в пути и какие свидетельства есть о коде внутри него? Ни один хеш сам по себе не отвечает на все три.
Что делает хеш файла?
SHA-256 создаёт из содержимого файла значение фиксированной длины. Если файл изменится, ожидается изменение его хеша. Поэтому сравнение двух хешей — практический способ проверки совпадения байтов файла.
Надёжность результата ограничена надёжностью эталона сравнения. Если злоумышленник может заменить и APK, и указанный рядом хеш, совпадение значений не выявит проблему. Модель угроз Livara также объясняет это ограничение проверки файлов.
Как проверить файл перед установкой
Определите нужную версию. Сравните название продукта, номер версии и тип пакета со страницей выпуска. У файлов двух разных версий обычно разные хеши.
Получите ожидаемый хеш из доверенного источника. Не ограничивайтесь анонимным сообщением, в котором вместе прислали файл и хеш. Независимо проверьте адрес официального сайта.
Вычислите хеш загруженного файла. Proof Lab Livara предоставляет инструмент сравнения хешей APK. Не путайте этот инструмент с полной проверкой безопасности приложения.
Сравните значение целиком. Первых или последних нескольких символов недостаточно. Также проверьте, нет ли ошибки в названии версии или выборе файла.
При несовпадении остановите установку. Причиной может быть другая версия, неполная загрузка или изменение файла; само по себе несовпадение не доказывает наличие вредоносного кода. Не устанавливайте файл до выяснения причины и проверьте его повторно через официальный канал.
В этом руководстве не приводится образец хеша «безопасной версии», поскольку правильное значение зависит от конкретного файла выпуска.
Чем отличаются хеш, подпись и воспроизводимая сборка?
| Проверка | Какой вывод она может поддержать | Чего она сама по себе не доказывает |
|---|---|---|
| Хеш SHA-256 | Файл совпадает с эталоном сравнения | Код безопасен или издатель заслуживает доверия |
| Подпись APK | Файл подписан определённым ключом, и проверка подписи успешна | Владелец ключа никогда не выпускает вредоносный код |
| Воспроизводимая сборка | С заданными исходниками, окружением и инструкциями можно получить те же байты | В исходном коде нет недостатков безопасности |
| Проверка безопасности кода | В рассмотренной области и версии обнаружены или оценены проблемы | Не осталось ни одного неизвестного недостатка |
Официальный инструмент Android apksigner используется для проверки подписей APK и сведений о сертификатах. Новая установка и обновление уже установленного приложения также не одно и то же: при обновлении Android проверяет совместимость подписанта. Действительная подпись неизвестного издателя — недостаточное основание для доверия.
Определение воспроизводимой сборки также требует заданных исходников и окружения сборки. Сопоставление хеша загруженного файла не заменяет этот процесс.
Каковы границы возможностей Proof Lab?
Помимо хеша файлов, страница Proof Lab содержит криптографическую демонстрацию в браузере. Успешная демонстрация криптографической операции не является полным аудитом установленного приложения или полным выполнением протоколов мессенджера. Инструмент также должен работать в доверенной среде: заражённое устройство или страница могут показать вводящий в заблуждение результат.
После установки обновления, разрешения приложения и безопасность устройства остаются важными. Проверка сегодняшнего файла не означает автоматическую проверку будущей версии.
Сопоставление хеша — конкретная проверка в цепочке доверия; она ценнее, когда вы также знаете источник выпуска, подписанта и ограничения результата.



