# Phantom Protocol Extended - Архитектура доменной системы и exit-нодов ## Обзор расширенной архитектуры Phantom Protocol Extended превращает базовую анонимную сеть в полноценную интернет-инфраструктуру с поддержкой: 1. **Phantom DNS** - Децентрализованная доменная система 2. **Hidden Services** - Анонимные веб-сервисы (.phantom домены) 3. **Exit Nodes** - Шлюзы для доступа к обычному интернету 4. **Service Discovery** - Автоматическое обнаружение сервисов 5. **Load Balancing** - Распределение нагрузки между узлами ## Компоненты расширенной системы ### 1. Phantom DNS (PDNS) #### Архитектура PDNS ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ DNS Client │───▶│ PDNS Resolver │───▶│ PDNS Registry │ │ │ │ │ │ │ │ phantom-browser │ │ phantom-dns │ │ Kademlia DHT │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` #### Типы доменов: - **.phantom** - Hidden services (аналог .onion) - **.exit** - Exit node routing - **.local** - Локальные сервисы в сети #### Структура DNS записи: ```c struct phantom_dns_record { char domain[256]; // Доменное имя uint8_t phantom_address[32]; // Phantom адрес сервиса uint8_t service_key[32]; // Открытый ключ сервиса uint16_t port; // Порт сервиса uint32_t ttl; // Время жизни записи uint8_t service_type; // Тип сервиса (HTTP, HTTPS, etc.) uint8_t signature[64]; // Цифровая подпись uint32_t timestamp; // Время создания }; ``` ### 2. Hidden Services (.phantom домены) #### Архитектура Hidden Service ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Client │───▶│ Introduction│───▶│ Rendezvous │───▶│ Service │ │ │ │ Point │ │ Point │ │ │ │ phantom-cli │ │ │ │ │ │ web-server │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ ``` #### Процесс создания Hidden Service: 1. **Генерация ключей** - Ed25519 keypair для сервиса 2. **Регистрация в PDNS** - Публикация .phantom домена 3. **Introduction Points** - Выбор узлов для входа 4. **Service Descriptor** - Создание описания сервиса #### Структура Service Descriptor: ```c struct phantom_service_descriptor { uint8_t service_id[32]; // Идентификатор сервиса uint8_t public_key[32]; // Открытый ключ сервиса char domain_name[256]; // .phantom доменное имя // Introduction Points struct introduction_point { uint8_t node_id[20]; // ID узла uint8_t phantom_addr[32]; // Phantom адрес uint16_t port; // Порт uint8_t link_key[32]; // Ключ для связи } intro_points[3]; // До 3 точек входа uint32_t timestamp; // Время создания uint32_t expiry; // Время истечения uint8_t signature[64]; // Подпись дескриптора }; ``` ### 3. Exit Nodes #### Архитектура Exit Node ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Client │───▶│ Phantom Net │───▶│ Exit Node │───▶│ Internet │ │ │ │ │ │ │ │ │ │ phantom-cli │ │ Encrypted │ │ Decryption │ │ google.com │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ ``` #### Типы Exit Nodes: 1. **HTTP Exit** - Для веб-трафика 2. **HTTPS Exit** - Для защищенного веб-трафика 3. **DNS Exit** - Для DNS запросов 4. **General Exit** - Для любого TCP/UDP трафика #### Конфигурация Exit Policy: ```c struct exit_policy { bool allow_http; // Разрешить HTTP bool allow_https; // Разрешить HTTPS bool allow_dns; // Разрешить DNS bool allow_smtp; // Разрешить SMTP bool allow_ftp; // Разрешить FTP // Списки разрешенных/запрещенных адресов struct ip_range allowed_ranges[64]; struct ip_range blocked_ranges[64]; // Ограничения по портам uint16_t allowed_ports[256]; uint16_t blocked_ports[256]; // Ограничения пропускной способности uint64_t bandwidth_limit; // Байт/сек uint64_t daily_limit; // Байт/день }; ``` ### 4. Service Discovery #### Протокол обнаружения сервисов: ```c // Запрос на поиск сервисов struct service_discovery_query { uint8_t query_id[16]; // ID запроса char service_type[64]; // Тип сервиса (http, ftp, etc.) char keywords[256]; // Ключевые слова uint8_t max_results; // Максимум результатов uint32_t timestamp; // Время запроса }; // Ответ с найденными сервисами struct service_discovery_response { uint8_t query_id[16]; // ID запроса uint8_t result_count; // Количество результатов struct service_info { char domain[256]; // Доменное имя char description[512]; // Описание сервиса uint8_t phantom_addr[32]; // Phantom адрес uint16_t port; // Порт float rating; // Рейтинг (0.0-5.0) uint32_t uptime; // Время работы } services[32]; uint32_t timestamp; // Время ответа uint8_t signature[64]; // Подпись ответа }; ``` ## Протоколы взаимодействия ### 1. Phantom DNS Protocol (PDNSP) #### Типы сообщений: ```c enum pdns_message_type { PDNS_QUERY = 1, // DNS запрос PDNS_RESPONSE = 2, // DNS ответ PDNS_REGISTER = 3, // Регистрация домена PDNS_UPDATE = 4, // Обновление записи PDNS_DELETE = 5 // Удаление записи }; struct pdns_message { uint16_t message_id; // ID сообщения uint8_t message_type; // Тип сообщения uint8_t flags; // Флаги uint16_t question_count; // Количество вопросов uint16_t answer_count; // Количество ответов // Переменная часть с вопросами и ответами uint8_t data[]; }; ``` ### 2. Hidden Service Protocol (HSP) #### Установка соединения с Hidden Service: 1. **DNS Resolution** - Получение Service Descriptor 2. **Introduction** - Соединение с Introduction Point 3. **Rendezvous Setup** - Установка точки встречи 4. **Circuit Building** - Построение анонимного канала 5. **Service Connection** - Соединение с сервисом #### Сообщения протокола: ```c enum hsp_message_type { HSP_INTRODUCE = 1, // Представление клиента HSP_RENDEZVOUS = 2, // Установка встречи HSP_CONNECT = 3, // Соединение с сервисом HSP_DATA = 4, // Передача данных HSP_CLOSE = 5 // Закрытие соединения }; ``` ### 3. Exit Node Protocol (ENP) #### Типы запросов к Exit Node: ```c enum exit_request_type { EXIT_HTTP = 1, // HTTP запрос EXIT_HTTPS = 2, // HTTPS запрос EXIT_DNS = 3, // DNS запрос EXIT_TCP = 4, // Произвольный TCP EXIT_UDP = 5 // Произвольный UDP }; struct exit_request { uint8_t request_id[16]; // ID запроса uint8_t request_type; // Тип запроса char target_host[256]; // Целевой хост uint16_t target_port; // Целевой порт uint32_t data_length; // Длина данных uint8_t data[]; // Данные запроса }; ``` ## Криптографическая архитектура ### 1. Ключи и сертификаты #### Иерархия ключей: ``` Root CA (Phantom Network) ├── Service CA (Hidden Services) │ ├── Service Key 1 (.phantom domain) │ ├── Service Key 2 (.phantom domain) │ └── ... ├── Exit Node CA │ ├── Exit Node Key 1 │ ├── Exit Node Key 2 │ └── ... └── DNS CA (PDNS) ├── DNS Server Key 1 ├── DNS Server Key 2 └── ... ``` #### Структура сертификата: ```c struct phantom_certificate { uint8_t version; // Версия сертификата uint8_t cert_type; // Тип (Service/Exit/DNS) uint8_t subject_id[32]; // ID субъекта uint8_t issuer_id[32]; // ID издателя uint8_t public_key[32]; // Открытый ключ uint32_t not_before; // Действителен с uint32_t not_after; // Действителен до // Расширения struct cert_extension { uint16_t type; // Тип расширения uint16_t length; // Длина данных uint8_t data[]; // Данные расширения } extensions[]; uint8_t signature[64]; // Подпись сертификата }; ``` ### 2. Протоколы шифрования #### Для Hidden Services: - **Handshake:** X25519 + Ed25519 - **Symmetric:** ChaCha20-Poly1305 - **Authentication:** Ed25519 signatures #### Для Exit Nodes: - **Client-Exit:** AES-256-GCM - **Exit-Internet:** TLS 1.3 (для HTTPS) ## Сетевая архитектура ### 1. Топология сети ``` ┌─────────────────┐ │ Phantom DHT │ │ (Kademlia) │ └─────────────────┘ │ ┌───────────────────┼───────────────────┐ │ │ │ ┌───────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐ │ DNS Servers │ │ Hidden Services │ │ Exit Nodes │ │ │ │ │ │ │ │ .phantom DNS │ │ .phantom sites │ │ Internet Access │ └────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ └───────────────────┼───────────────────┘ │ ┌───────▼────────┐ │ Clients │ │ │ │ phantom-browser│ └────────────────┘ ``` ### 2. Маршрутизация #### Типы маршрутов: 1. **Internal Route** - Внутри Phantom сети 2. **Hidden Service Route** - К .phantom сервисам 3. **Exit Route** - Через Exit Node к интернету #### Алгоритм выбора маршрута: ```c enum route_type select_route(const char *destination) { if (ends_with(destination, ".phantom")) { return ROUTE_HIDDEN_SERVICE; } else if (ends_with(destination, ".exit")) { return ROUTE_EXIT_NODE; } else if (is_phantom_address(destination)) { return ROUTE_INTERNAL; } else { return ROUTE_EXIT_NODE; // Обычный интернет } } ``` ## Компоненты реализации ### 1. phantom-dns (DNS Server) - Обработка DNS запросов для .phantom доменов - Интеграция с Kademlia DHT - Кэширование DNS записей - Валидация цифровых подписей ### 2. phantom-service (Hidden Service Host) - Хостинг .phantom веб-сайтов - Управление Introduction Points - Обработка Rendezvous соединений - Интеграция с веб-серверами ### 3. phantom-exit (Exit Node) - Проксирование трафика в интернет - Применение Exit Policy - Мониторинг пропускной способности - Логирование (с соблюдением приватности) ### 4. phantom-browser (Client) - Браузер для Phantom сети - Поддержка .phantom доменов - Автоматическое построение маршрутов - Интегрированный SOCKS5 прокси ### 5. phantom-registry (Service Registry) - Каталог доступных сервисов - Поиск по категориям - Рейтинговая система - Модерация контента ## Безопасность и анонимность ### 1. Защита Hidden Services - **End-to-end encryption** между клиентом и сервисом - **Multiple introduction points** для отказоустойчивости - **Rotating keys** для forward secrecy - **Traffic padding** против анализа трафика ### 2. Защита Exit Nodes - **Exit policy enforcement** для предотвращения злоупотреблений - **Rate limiting** для защиты от DDoS - **Geolocation diversity** для устойчивости - **Legal compliance** в соответствии с юрисдикцией ### 3. Защита DNS - **DNSSEC-like signatures** для валидации записей - **Distributed storage** в Kademlia DHT - **Cache poisoning protection** через криптографию - **Censorship resistance** через децентрализацию ## Производительность и масштабируемость ### 1. Оптимизации - **Connection pooling** для Exit Nodes - **Circuit reuse** для Hidden Services - **Predictive caching** для DNS - **Load balancing** между узлами ### 2. Метрики - **Latency:** < 500ms для .phantom сайтов - **Throughput:** > 10 Mbps через Exit Nodes - **Availability:** > 99% для популярных сервисов - **Scalability:** До 100,000 узлов в сети Эта архитектура превращает Phantom Protocol в полноценную анонимную интернет-инфраструктуру, сопоставимую с Tor, но с улучшенными возможностями и производительностью.