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

75 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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