# Аудиторский пакет — 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.** Каждое утверждение можно проверить выполнив указанные команды.