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



