Сканирование на стороне клиента анализирует содержимое на устройстве пользователя, где оно уже может быть читаемым до отправки или после получения. Поэтому оно может создать путь раскрытия данных вне зашифрованного канала доставки. Сравнение контрольной суммы APK не доказывает, что в приложении нет кода сканирования. Оно отвечает на более узкий вопрос: соответствуют ли выбранные байты определённому хеш-значению.
Разделение этих утверждений делает полезнее и шифрование, и проверку программ.
Почему сканирование на устройстве меняет границы конфиденциальности
Приложению необходимо обрабатывать открытые данные, чтобы показать сообщение или подготовить фотографию к отправке. Функция сканирования может работать на этом этапе, даже если последующее сетевое сообщение защищено сквозным шифрованием. То, что покидает устройство, зависит от конструкции сканера: он может сообщить о совпадении, загрузить выбранное содержимое или отправить другую производную информацию.
Исследовательская работа Bugs in our Pockets рассматривает риски, включая злоупотребления, ложные срабатывания и дополнительную поверхность атаки. Это основания изучить потоки данных и управление предлагаемой системой сканирования. Они не доказывают, что любая функция на устройстве — слежка или что определённый закон ввёл всеобщее требование сканирования.
Локальная функция под контролем пользователя не равнозначна автоматически обязательной передаче отчётов. Спросите, кто выбирает анализ, что его запускает, кто может обновлять его правила и какие данные могут покидать устройство.
Четыре разных вида свидетельств о программе
| Проверка | Что она может установить | Чего она сама по себе установить не может |
|---|---|---|
| Контрольная сумма SHA-256 | Файл соответствует доверенному эталонному хеш-значению | Что эталонная программа безопасна или соответствует исходному коду |
| Проверка подписи APK | Подпись пакета проходит проверку и определяет сертификат подписания | Что подписант заслуживает доверия или код не содержит нежелательного поведения |
| Воспроизводимая сборка | Указанные исходники и входные данные сборки могут дать ожидаемые артефакты | Что исходники не содержат уязвимостей или вредоносной логики |
| Независимая проверка и испытания | Выводы об определённой версии в определённых рамках | Постоянную гарантию для всех будущих обновлений |
Документация apksigner Android объясняет проверку пакетов и вывод сведений о сертификатах. Определение Reproducible Builds объясняет, почему при воспроизведении артефакта важны и исходники, и среда сборки, и инструкции.
Архив исходников и напечатанная рядом контрольная сумма сами по себе не являются результатом воспроизводимой сборки. Точно так же действительная подпись вредоносного выпуска остаётся действительной подписью.
Как проверить загрузку, не преувеличивая значение результата
Сначала определите нужный выпуск и получите его APK и ожидаемое хеш-значение через заслуживающий доверия канал распространения. Вычислите хеш локально. Если он отличается, не устанавливайте файл, пока расхождение не объяснено: другой выпуск, неполная загрузка или подмена — всё это может вызвать несовпадение.
Если он совпадает, запишите выпуск и результат. Вы установили побайтовое равенство этому эталону, а не отсутствие сканирования на стороне клиента. Если один и тот же злоумышленник может заменить и загружаемый файл, и отображаемую контрольную сумму, сравнение всё равно может пройти. Независимые эталоны, преемственность ключа подписания и прозрачность выпусков помогают решать разные части этой проблемы доверия.
Для утверждения о соответствии исходников бинарному файлу ищите документированные инструкции сборки и независимо воспроизведённые результаты для конкретного выпуска. Не делайте такой вывод из слов «открытый исходный код».
Обновления остаются важными
Распространение программ может подвергаться атакам, но бессрочный отказ от обновлений безопасности — не разумная общая защита. Обновления также исправляют уязвимости, которыми можно воспользоваться. Используйте доверенный канал обновлений, изучайте существенные уведомления безопасности и проверяйте свидетельства о выпуске, когда это оправдано вашим риском. Старая версия с известной уязвимостью не становится безопаснее лишь потому, что когда-то её контрольная сумма совпала.
Что устанавливает Proof Lab Livara
Proof Lab Livara предлагает локальное сравнение хеша APK и криптографические демонстрации в браузере. На странице указано, что она не выполняет полные механизмы ratchet LVR1/LGS1 и не является аудитом протокола. Её модель угроз также объясняет ограничение, возникающее, когда злоумышленник может заменить и файл, и его ожидаемое хеш-значение.
Эти проверки полезны в своих рамках. Они не доказывают, что на телефоне с установленным приложением нет вредоносного ПО, что Livara имеет независимо воспроизводимые выпуски или что её приложение не может содержать нераскрытое поведение. Отдельно прочитайте документацию по безопасности, чтобы узнать заявленные границы защиты сообщений.
Правильный вопрос не в том, написано ли на значке «проверено». Вопрос в том, какое утверждение проверяли, относительно какого доверенного эталона и для какого именно выпуска.



