montana/Android/Внешний-аудит/README.md
2026-05-18 22:11:45 +03:00

5.3 KiB
Raw Blame History

Аудиторский пакет — Montana Android-приложение

Версия приложения: 6.6.0 (versionCode = 60600) — закрыта Phase 2 (см. 11-Phase2-Integration.md) Платформа: Android API 24+ (minSdk=24, targetSdk=34) Подпись: Genesis-keystore, SHA-256 fingerprint 305bc99b40e6106f28c6fcc5dce4772761d2630d5aca9fee076dc0691913ce4d Дата выпуска пакета: 2026-05-18


Назначение пакета

Документация для независимого внешнего аудита Android-приложения Montana: криптография кошелька, сетевой слой VPN, защита состояния, поверхность атаки на стороне клиента.

Это не документация по протоколу TimeChain Montana — она находится в отдельных файлах Montana Protocol vX.Y.Z.md и Montana-Protocol/Code/. Связь между приложением и протокольным слоем явно ограничена (см. документ 04-Сетевой-слой.md).


Структура пакета

Файл Назначение
01-Архитектура.md Высокоуровневая схема компонентов, потоков данных, границ доверия
02-Угрозы-и-модель.md Threat model: что защищаем, от кого, какие предположения принимаем
03-Криптография.md Все криптографические примитивы с обоснованием выбора параметров
04-Сетевой-слой.md VPN-каскад: Reality, haproxy stick-on-src, три exit-узла
05-Состояние-и-хранилище.md Где живёт кошелёк, баланс, как защищены
06-Восстановление.md BIP39-процедура, тест-векторы воспроизводимости
07-Известные-ограничения.md Findings tracker — все известные проблемы со статусами
08-Воспроизводимая-сборка.md Точные инструкции получить тот же APK байт-в-байт
09-Инвентаризация-кода.md Файл-за-файлом разбор реализации
10-Покрытие-тестами.md Что покрыто проверками, что нет
приложения/ Тест-векторы, ключи узлов, API

Scope аудита

Входит:

  • Android-приложение quest.montana.vpn версии 6.5.0
  • Backend /opt/montana-vpn-balance/app.py на узле Moscow (Flask)
  • Helsinki haproxy + xray-pinned конфиги
  • Использование внешней криптографии (WebCrypto SubtleCrypto в WebView)

Не входит:

  • Протокол TimeChain Montana (отдельный аудит — спецификация Montana Protocol v35.25.0.md)
  • Reference implementation на Rust (отдельный аудит — Montana-Protocol/Code/)
  • Веб-сайт montana.quest (документация в Montana/Russian/Site/)

Статус готовности

Часть production-fixes применена в v6.5.0 (см. 07-Известные-ограничения.md секция «Phase 1 закрытие»). Часть классов проблем — открытые с явным closure path и оценкой scope (Phase 2/3, см. конец файла 07-Известные-ограничения.md).

Этот пакет не утверждает что приложение готово к production-mainnet. Он фиксирует текущее состояние, явно перечисляет известные ограничения и closure paths.


Точки контакта

  • Спецификация протокола: /Users/kh./Python/Ничто/Montana/Montana Protocol v35.25.0.md
  • Реализация протокола: /Users/kh./Python/Ничто/Montana/Montana-Protocol/Code/
  • Исходники приложения: /Users/kh./Python/Ничто/Montana/Android/MontanaApp/
  • Сборка APK: /Users/kh./Python/Ничто/Montana/Android/build/montana-6.5.0.apk
  • Хаб Montana: https://hub.montana.quest/efir369999/montana

Принципы документации

  1. Без хеджирования. Утверждение либо доказуемо, либо помечено как (гипотеза) / (предполагается) / (не верифицировано).
  2. Все константы с derivation. Магических чисел нет. Каждая константа имеет цель, обоснование, sensitivity к изменению.
  3. Честное раскрытие open findings. Все известные слабости — в 07-Известные-ограничения.md с severity и closure path.
  4. Reproducibility. Каждое утверждение можно проверить выполнив указанные команды.