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