123 lines
4.9 KiB
Markdown
123 lines
4.9 KiB
Markdown
|
|
# Montana iOS — Юнона везде
|
|||
|
|
|
|||
|
|
**Все приложения = диалог с Юноной**
|
|||
|
|
|
|||
|
|
## Навигация (4 вкладки)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[ Контакты ] [ Папки ] [ Юнона ] [ Настройки ]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Уровни приватности
|
|||
|
|
|
|||
|
|
| Уровень | Шифрование | По умолчанию |
|
|||
|
|
|---------|------------|--------------|
|
|||
|
|
| **Интимное** | ML-KEM-768 + ChaCha20 (постквантовое) | ✅ ДА |
|
|||
|
|
| Приватное | E2E шифрование | |
|
|||
|
|
| Публичное | Без шифрования | |
|
|||
|
|
|
|||
|
|
## Приложения
|
|||
|
|
|
|||
|
|
### Junona VPN (App Store)
|
|||
|
|
| Файл | Описание |
|
|||
|
|
|------|----------|
|
|||
|
|
| [JunonaAIApp.swift](Apps/JunonaAI/JunonaAI/JunonaAIApp.swift) | MainTabView + 4 вкладки |
|
|||
|
|
| [FoldersView.swift](Apps/JunonaAI/JunonaAI/Views/FoldersView.swift) | Папки с уровнями приватности |
|
|||
|
|
| [ContactsView.swift](Apps/JunonaAI/JunonaAI/Views/ContactsView.swift) | Контакты Montana |
|
|||
|
|
| [SettingsView.swift](Apps/JunonaAI/JunonaAI/Views/SettingsView.swift) | Настройки + VPN |
|
|||
|
|
| [VPNView.swift](Apps/JunonaAI/JunonaAI/Views/VPNView.swift) | UI для VPN |
|
|||
|
|
| [MontanaVPN.swift](Apps/JunonaAI/JunonaAI/VPN/MontanaVPN.swift) | VPN Manager, присутствие по времени |
|
|||
|
|
| [InstallOtherAppsView.swift](Apps/JunonaAI/JunonaAI/Views/InstallOtherAppsView.swift) | Ссылки на Wallet/Contracts |
|
|||
|
|
| [PacketTunnelProvider.swift](Apps/JunonaAI/JunonaVPNExtension/PacketTunnelProvider.swift) | Network Extension |
|
|||
|
|
| [PostQuantumTunnel.swift](Apps/JunonaAI/JunonaVPNExtension/PostQuantumTunnel.swift) | ML-KEM-768 + ChaCha20 |
|
|||
|
|
|
|||
|
|
### Junona Wallet (Сертификаты)
|
|||
|
|
| Файл | Описание |
|
|||
|
|
|------|----------|
|
|||
|
|
| [MontanaWalletApp.swift](Apps/MontanaWallet/MontanaWallet/MontanaWalletApp.swift) | Диалог Юнона + Кошелёк Ɉ |
|
|||
|
|
|
|||
|
|
### Junona Contracts (Сертификаты)
|
|||
|
|
| Файл | Описание |
|
|||
|
|
|------|----------|
|
|||
|
|
| [MontanaContractsApp.swift](Apps/MontanaContracts/MontanaContracts/MontanaContractsApp.swift) | Диалог Юнона + Контракты |
|
|||
|
|
|
|||
|
|
## MontanaCore (SPM)
|
|||
|
|
|
|||
|
|
| Файл | Описание |
|
|||
|
|
|------|----------|
|
|||
|
|
| [Package.swift](MontanaCore/Package.swift) | SPM manifest |
|
|||
|
|
| [MontanaCore.swift](MontanaCore/Sources/MontanaCore/MontanaCore.swift) | Theme, Keychain, Links, Address, **PrivacyLevel**, **Folder**, **Contact** |
|
|||
|
|
| [AppStoreGuard.swift](MontanaCore/Sources/MontanaCore/AppStoreGuard.swift) | Мониторинг удаления из App Store |
|
|||
|
|
|
|||
|
|
### Модели данных (MontanaCore.swift)
|
|||
|
|
|
|||
|
|
| Модель | Описание |
|
|||
|
|
|--------|----------|
|
|||
|
|
| `PrivacyLevel` | Интимное (default), Приватное, Публичное |
|
|||
|
|
| `MontanaFolder` | Папка с уровнем приватности |
|
|||
|
|
| `MontanaFolderItem` | Элемент в папке (note, photo, video, audio, file) |
|
|||
|
|
| `MontanaContact` | Контакт с адресом mt... |
|
|||
|
|
| `MontanaFolderStorage` | Менеджер хранения папок |
|
|||
|
|
| `MontanaContactStorage` | Менеджер контактов |
|
|||
|
|
|
|||
|
|
## Distribution
|
|||
|
|
|
|||
|
|
| Файл | Описание |
|
|||
|
|
|------|----------|
|
|||
|
|
| [server.py](Distribution/MontanaSign/server.py) | LazyShop-style Flask API |
|
|||
|
|
|
|||
|
|
## Документация
|
|||
|
|
|
|||
|
|
| Файл | Описание |
|
|||
|
|
|------|----------|
|
|||
|
|
| [README.md](README.md) | Обзор iOS проекта |
|
|||
|
|
| [ARCHITECTURE.md](ARCHITECTURE.md) | Архитектура 3 приложений |
|
|||
|
|
| [DISTRIBUTION_STRATEGY.md](DISTRIBUTION_STRATEGY.md) | App Store + Сертификаты |
|
|||
|
|
| [VPN_ARCHITECTURE.md](VPN_ARCHITECTURE.md) | Постквантовый VPN |
|
|||
|
|
|
|||
|
|
## Криптография
|
|||
|
|
|
|||
|
|
| Алгоритм | Назначение | Стандарт |
|
|||
|
|
|----------|------------|----------|
|
|||
|
|
| ML-KEM-768 | Ключевой обмен VPN | FIPS 203 |
|
|||
|
|
| ML-DSA-65 | Подписи кошелька | FIPS 204 |
|
|||
|
|
| ChaCha20-Poly1305 | Симметричное шифрование | RFC 8439 |
|
|||
|
|
| HKDF-SHA256 | Деривация ключей | RFC 5869 |
|
|||
|
|
|
|||
|
|
## Bundle IDs
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
network.montana.junona # App Store
|
|||
|
|
network.montana.junona.vpn # VPN Extension
|
|||
|
|
network.montana.wallet # Сертификаты
|
|||
|
|
network.montana.contracts # Сертификаты
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## URL Schemes
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
montana-wallet:// # Открыть кошелёк
|
|||
|
|
montana-junona:// # Открыть Юнону
|
|||
|
|
montana-contracts:// # Открыть контракты
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## VPN Узлы
|
|||
|
|
|
|||
|
|
| Узел | IP | Регион | Ping |
|
|||
|
|
|------|-----|--------|------|
|
|||
|
|
| Amsterdam | 72.56.102.240 | Европа | ~40ms |
|
|||
|
|
| Almaty | 91.200.148.93 | Азия | ~80ms |
|
|||
|
|
|
|||
|
|
## Присутствие = Время VPN
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
1 секунда VPN = 1 Ɉ
|
|||
|
|
|
|||
|
|
НЕ трафик! Только время подключения.
|
|||
|
|
VPN включён 1 час = 3600 Ɉ
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
*11 Swift файлов • 3 приложения Юноны • Постквантовая криптография*
|