Хеш, підпис, відтворювана збірка й аудит відповідають на різні запитання.
Відкритий код дає змогу вивчати програму, але сам по собі не доводить, що встановлений застосунок відповідає цьому коду або не має вразливостей. Оцінюючи месенджер, варто розділяти кілька видів свідчень: вихідний код, процес збирання, підпис файлу, тестування протоколу та звіт про аудит.
Що саме показує кожен вид свідчень?
| Свідчення | Основна користь | Чого саме по собі не доводить |
|---|---|---|
| Доступний для вивчення вихідний код | Можливість перевірити архітектуру й реалізацію | Відповідність установчому файлу чи відсутність усіх помилок |
| Відтворювана збірка | Можливість порівняти результат із визначених вихідних файлів у визначеному середовищі | Безпечність самого коду |
| Підпис 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, і показаний дайджест, збіг хешу сам по собі не доведе справжність. Це загальне обмеження перевірки хешу, а не особливість конкретного месенджера.
Про що запитати, читаючи звіт про аудит?
- Яка організація або які люди проводили перевірку й де оприлюднено звіт?
- Які версію та коміт перевірено?
- Які частини не входили до області перевірки?
- Як виправили важливі знахідки й повторно перевірили виправлення?
- Чи є встановлена у вас версія тією самою або чи містить вона відповідні виправлення?
Не робіть остаточних висновків зі слів на кшталт «схвалено» без відповідей на ці запитання. Використання стандартного алгоритму також не дорівнює сертифікації всього продукту за стандартом.
Висновок для вибору месенджера
Відкритий код і можливість перевірки не конкурують: це взаємодоповнювальні свідчення. Віддавайте перевагу продукту з точними, простежуваними твердженнями та чітко визначеною областю їх застосування. Потім проведіть таку саму перевірку для режиму, яким користуєтеся, — наприклад, груп, вебверсії, резервних копій і пов’язаних пристроїв, — замість робити висновок про абсолютну безпеку з одного успішного тесту.



