Серия «Кибербезопасность»

Анонимность onion-сервисов: почему нельзя определить IP-адрес и как устроена распределенная сеть Tor

Серия Кибербезопасность

Когда речь заходит об анонимности в интернете, первое, что приходит на ум — сеть Tor и её загадочные .onion-сайты. Многие уверены, что за каждым таким сайтом стоит сервер, IP-адрес которого можно каким-то образом вычислить. В этой статье мы развеем этот миф и глубоко погрузимся в архитектуру Tor, чтобы понять, почему определение IP-адреса onion-сервиса технически невозможно.

1. Базовые принципы: чем Tor отличается от обычного интернета

Обычный интернет:

Пользователь → DNS-запрос → IP-адрес → Подключение к серверу

Tor Network:

Пользователь → Цепочка узлов → Onion-адрес → Скрытый сервис

Ключевое отличие: В Tor не используется DNS и нет преобразования доменных имен в IP-адреса.

2. Архитектура скрытых сервисов: тройная защита

Onion-сервисы используют многоуровневую систему безопасности:

Компоненты подключения:

  • Introduction Points (Входные точки) - 3 случайных узла, знающие как связаться с сервисом

  • Rendezvous Points (Точки встречи) - промежуточные узлы для установки соединения

  • Сервис - собственно onion-сайт

Клиент → Цепочка Tor → RP ↔ Introduction Points ↔ Onion-сервис

Криптографическая защита:

  • Многослойное шифрование (принцип "луковицы")

  • Каждый узел знает только предыдущий и следующий

  • Ни один узел не знает полного пути

3. DHT Tor: распределенная база данных вместо DNS

Что такое DHT (Distributed Hash Table?

# Псевдокод работы DHT

class TorDHT:

def store_descriptor(self, onion_address, descriptor):

# Дескриптор хранится на нескольких HSDir узлах

positions = self.calculate_positions(onion_address) for position in positions:

hsdir = self.find_responsible_node(position) hsdir.store(descriptor)

def find_descriptor(self, onion_address): positions = self.calculate_positions(onion_address) for position in positions:

hsdir = self.find_responsible_node(position) descriptor = hsdir.retrieve(onion_address) if descriptor:

return descriptor

return None

Onion-адрес — это публичный ключ

Формат v3 onion-адреса: 56-символов.onion

Это не случайный набор символов, а хеш от:

  • Публичного ключа сервиса

  • Версии протокола

  • Дополнительных параметров

4. HSDir узлы: хранители тайн сети

Кто может быть HSDir?

Не каждый узел Tor может стать HSDir. Требуются строгие критерии:

def can_be_hsdir(router):

return (router.uptime > 96 * 3600 and # 4+ дней стабильной работы router.bandwidth > MIN_BANDWIDTH and # Достаточная скорость

router.version >= SUPPORTED_VERSION and # Актуальная версия

'Stable' in router.flags and # Стабильное соединение

'Fast' in router.flags) # Высокая скорость

Статистика сети:

  • Всего узлов Tor: ~6,000-8,000

  • HSDir узлов: ~2,000-3,000 (30-40%)

  • Только лучшие узлы получают эту привилегию

Что хранят HSDir узлы:

HSDir_Storage = {

'descriptors': [ {

'service_id': 'abc123...onion', 'intro_points': ['ip1:port1', 'ip2:port2'], # Через Tor!

'timestamp': '2024-01-15 10:30:00', 'expires': '2024-01-16 10:30:00'

} ],

'no_content': True, # НЕ хранит контент сайтов

'no_user_data': True, # НЕ хранит данные пользователей }

5. Почему определение IP технически невозможно

Архитектурные причины:

  • Нет прямого соединения между клиентом и сервером

  • Introduction Points знают только как связаться с сервисом, но не его IP

  • Шифрование на каждом этапе

  • Распределенность информации

Что видят участники сети:

  • Клиент: знает только onion-адрес и точки встречи

  • RP-узлы: знают только клиента и introduction points

  • Introduction Points: знают только сервис и RP

  • HSDir узлы: знают только дескрипторы, но не могут подключиться к сервису

  • Сервис: не знает IP клиента

Даже при компрометации нескольких узлов:

# Максимум что можно узнать при контроле 1-2 узлов

compromised_knowledge = {

'rp_node': ['client_ip', 'intro_points_ip'], 'intro_point': ['service_ip', 'rp_node_ip'], 'hsdir_node': ['descriptor_data'] }

# Но никогда не будет полной картины: full_picture = {

'client_ip': '...',

'service_ip': '...',

'full_communication': '...'

}

6. Распространенные заблуждения

"WebRTC может раскрыть IP сервиса"

  • НЕТ: WebRTC работает на клиентской стороне

  • Onion-сервис не может инициировать WebRTC соединение

  • В Tor Browser WebRTC полностью отключен

"Можно отследить трафик до сервера"

  • НЕТ: Трафик проходит через минимум 6 узлов (3 от клиента, 3 к сервису)

  • Каждый узел знает только соседей

  • Шифрование перестраивается на каждом узле

"HSDir узлы знают IP сервисов"

  • НЕТ: Они хранят только дескрипторы с информацией об introduction points

  • Introduction Points сами являются Tor-узлами, а не конечным сервисом

7. Реальные случаи провалов анонимности

Исторически большинство раскрытий onion-сервисов происходили из-за:

  • Ошибок конфигурации (80% случаев)

  • Человеческого фактора

  • Эксплойтов нулевого дня (крайне редко)

8. Как обеспечивается отказоустойчивость

Репликация дескрипторов:

# Каждый дескриптор хранится на 3+ HSDir узлах

replica_positions = [

H(descriptor_id | period | 0), H(descriptor_id | period | 1), H(descriptor_id | period | 2)

]

Ротация узлов:

  • HSDir узлы меняются каждые 24 часа

  • Introduction Points ротируются регулярно

  • Автоматическое восстановление при сбоях

9. Практические выводы

Для пользователей:

  • Onion-сервисы анонимны по дизайну

  • Можно безопасно посещать .onion сайты

  • IP-адрес сервиса невозможно определить

Для исследователей:

  • Архитектура Tor обеспечивает математическую стойкость

  • Атаки требуют контроля над значительной частью сети

  • Существующие методы обнаружения неэффективны против правильно настроенных сервисов

Для администраторов:

  • Следуйте best practices настройки

  • Изолируйте сервисы от внешнего мира

  • Регулярно проводите аудиты безопасности

Заключение

Сеть Tor представляет собой тщательно продуманную систему, где анонимность обеспечивается на архитектурном уровне. Невозможность определения IP-адреса onion-сервиса — это не следствие недостатка инструментов, а фундаментальное свойство системы, основанное на криптографии и распределенных вычислениях.

DHT и HSDir узлы создают устойчивую к цензуре и отказоустойчивую инфраструктуру, где каждый компонент знает ровно столько информации, сколько необходимо для выполнения его функции, но недостаточно для компрометации системы в целом.

Технически при правильной настройке определить IP onion-сервиса невозможно — это особенность архитектуры, а не уязвимость.

Источник: https://def-expert.ru/anonimnost-onion-servisov-pochemu-nel-zya-opredelit-ip-adres-i-kak-ustroena-raspredelennaya-set-tor

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества