Инструкция Запуск анонимного мессенджера HLM в сети «Hidden Lake»


number571

Пользователь
Форумчанин
Регистрация
05.08.2023
Сообщения
4
Репутация
8

Анонимная сеть Hidden Lake

hl_logo.png

Анонимная сеть Hidden Lake (HL) - это децентрализованная F2F (friend-to-friend) анонимная сеть с теоретической доказуемостью на базе очередей (QB-задача). В отличие от известных анонимных сетей, подобия Tor, I2P, Mixminion, Crowds и т.п., сеть HL способна противостоять атакам глобального наблюдателя. Сети Hidden Lake для анонимизации своего трафика не важны такие критерии как: 1) уровень сетевой централизации, 2) количество узлов, 3) расположение узлов и 4) связь между узлами в сети, что делает её уникальной.
Исходный код анонимной сети Hidden Lake находится в открытом доступе на странице репозитория GitHub:


Задача на базе очередей

Анонимность сети HL сводится к скрытию факта существования какой-либо коммуникации за счёт использования задачи на базе очередей (QB-задачи). Иными словами, стороннему наблюдателю, включая, в том числе и глобального наблюдателя, становится сложно определить состояние субъекта: 1) отправляет ли он в текущий момент времени какое-либо сообщение? 2) получает ли он в текущий момент времени какое-либо сообщение? 3) бездействует ли он в текущий момент времени? Алгоритм QB-задачи может описан следующим образом:

c735646b381c284cf8d3889c799fdc63.png

  1. Каждое сообщение m шифруется ключом получателя k: c = E(k,m),
  2. Шифртекст c отправляется в период = T всем участникам сети,
  3. Период T одного участника независим от периодов T1, T2, ..., Tn других участников,
  4. Если на период T сообщения не существует, то в сеть отправляется ложное сообщение v без получателя (со случайным ключом r): c = E(r,v),
  5. Каждый участник пытается расшифровать принятый им шифртекст из сети: m = D(k,c).


Более подробный анализ безопасности сети Hidden Lake, и в частности QB-задачи, можно найти в исследовательской работе по или в прикреплённом ниже файле.

Анонимный мессенджер HLM

Поверх анонимной сети HL можно разрабатывать собственные приложения на любом языке программирования
hlm_logo.png
или технологии, если таковые способны взаимодействовать с HTTP-протоколом. Данный способ разработки становится возможным за счёт использования микросервисной архитектуры, где каждая новая логика добавляется посредством написания нового сервиса. Это позволяет: 1) децентрализовать разработку и не зависеть от применяемых технологий; 2) не зависеть от работы других модулей программы; 3) не усложнять логику уже написанных сервисов. На базе такой архитектуры был написан анонимный мессенджер HLM, а также ряд других прикладных приложений по типу HLF (файлообменника) и HLR (программы удалённого доступа). В данной теме мы будем уделять внимание только мессенджеру.

Для запуска мессенджера HLM потребуется скачать приложение HLC (композит). Это приложение позволяет запускать сразу несколько сервисов (как пример, HLS - сервис анонимизации трафика и HLM - сервис мессенджера) посредством одной программы, а не нескольких, что крайне удобно при обычном локальном включении. Данный композит может быть найден в на странице GitHub под названием hlc_amd64_windows.exe, где amd64 - это 64-битная архитектура, windows - платформа. Также существуют релизы для архитектур arm64 и платформ linux, darwin (macOS).

Приложение HLC также можно запустить из исходников - для этого потребуется скачать и установить компилятор языка Go, т.к. именно на нём (в массе своей) пишутся сервисы для Hidden Lake. После корректной установки компилятора нужно будет лишь запустить следующие команды:
Установка и запуск HLC:
$ go install github.com/number571/hidden-lake/cmd/hlc@latest
$ hlc

1730056076868.png

После успешного скачивания нужно лишь запустить HLC следующим образом:
Bash:
$ hlc_amd64_windows.exe -network=8Jkl93Mdk93md1bz
Параметр network - это сеть ретрансляторов, к которой вы будете подключаться. Список всех доступных сетей можно посмотреть в файле репозитория number571/hidden-lake.

P.S. В линуксе и макоси перед запуском может потребоваться дополнительно выдача прав на исполнение как пример:
Bash:
chmod +x hlc_amd64_linux

После первого запуска HLC, будет запущено три сервиса по умолчанию: HLS (сервис анонимизации), HLM (сервис мессенджера), HLF (сервис файлообменника). Т.к. файлообменник нам не нужен - мы отключаем HLC и далее удаляем строку hidden-lake-filesharer в автоматически созданном файле hlc.yml. Далее просто перезапускаем HLC. После этого открываем браузер и вводим адрес localhost:9591 - это есть HTTP адрес графического интерфейса HLM.

1730057092665.png

Чтобы начать общаться хоть с кем-то в этом мессенджере - необходимо обменяться публичными ключами, т.к. анонимная сеть Hidden Lake является F2F-сетью и потому требует для успешного установления коммуникации взаимной договорённости её абонентов. Такой обмен позволяет избежать некоторых деанонимизирующих наблюдений, а также возможный спектр других атак, если в HL будут найдены уязвимости. Для эмуляции друга можно запустить параллельно ещё раз приложение HLC, но перед этим необходимо изменить порты в конфигах hls.yml и hlm.yml, чтобы они не пересекались с другим запущенным HLC. Можно просто поменять все порты, начинающиеся с цифры 9 на цифру 8. В таком случае коллизия исчезнет, а приложение запустится.

Чтобы получить свой публичный ключ, который впоследствии вы будете передавать своему собеседнику (по другим каналам связи), необходимо зайти во вкладку Settings и далее нажать на кнопку Key. После этого в буфер обмена скопируется ваш публичный ключ. Его вы можете сохранить в файле и отправить собеседнику. Как только вы получите публичный ключ собеседника - вам необходимо будет перейти во вкладку Friends и далее, в первом поле написать никнейм вашего собеседника, во втором поле - вставить его публичный ключ. После того как ваш собеседник сделает то же самое - вы сможете начать процедуру общения.

P.S. Стоит сказать, что публичный ключ весит достаточно много, а именно - 6280 байт (~6KiB). Такой размер ключа обусловлен постквантовыми алгоритмами (ML-DSA и ML-KEM), которые применяет HL. Вследствие этого, HLM можно считать не только анонимным мессенджером, но и одним из первых мессенджеров со стойкостью к постквантовой криптографии.

Сравнение HLM с другими мессенджерами

Для сравнения я выбрал следующие мессенджеры: Telegram, Signal, Bitmessage, DeltaChat, SimpleX.
Использовал сравнительные характеристики со следующих источников: , , .

МессенджерДецентрализацияАнонимностьСквозное (E2E)шифрованиеПостквантовая стойкостьГрупповые чатыОткрытый исходный кодАудио / видео чатыОбмен файламиИдентификация без номера телефона
HLM++ (qb-задача)+++/- (только с общим приватным ключом)+-+/- (ограничен размером генерируемого шифртекста QB-задачей)+
Bitmessage++/- (слепая маршрутизация)+-++-+/- (ограничен константно размером в 220KiB от максимального PoW)+
Signal--++++++-
Telegram--+/- (только в секретных чатах)-++/- (только клиентской части)++-
DeltaChat+/- (гибридный)-+-++-++
SimpleX+/- (гибридный)+ (onion-маршрутизация)+++++++
 

Вложения

  • hidden_lake_anonymous_network.pdf
    664.5 КБ · Просмотры: 2
Верх Низ