- PVSM.RU - https://www.pvsm.ru -

Экосистема Hyper. Полный пиринг и шифрование

Экосистема Hyper. Полный пиринг и шифрование - 1 [1]

В настоящее время резко выросла потребность людей в защищённых коммуникациях. А с ней и популярность сервисов для защиты связи и шифрования. Это VPN, mesh-сети и пиринговые приложения для прямого обмена зашифрованными сообщениями, файлами и т. д. Один из самых продвинутых наборов такого рода — экосистема Hyper [2]. Есть и другие (о них ниже).

▍ Набор модулей Hyper

Hyper — это набор маленьких JavaScript-модулей, которые можно комбинировать для создания неограниченного количества P2P-приложений, от VPN до коммуникационных инструментов типа P2P-мессенджера Keet [3]. На сегодняшний день Keet — это практически единственное реальное приложение, построенное на Hyper, своего рода демонстрация возможностей платформы.

Экосистема Hyper. Полный пиринг и шифрование - 2

Теоретически, все модули можно сочетать и смешивать на своё усмотрение. Поскольку это всего лишь JavaScript, разработка приложений так же проста, как и создание веб-приложения.

В набор Hyper входят следующие основные компоненты:

  • Hypercore [4] — защищённый распределённый журнал. Создан для обмена большими массивами данных и потоками данных в реальном времени. Из особенностей — разреженная репликация, простая плоская файловая структура для максимальной производительности ввода-вывода, безопасность (подписанные деревья Меркла для проверки целостности журнала в реальном времени), модульность.
  • Hyperdrive [5] — безопасная распределённая файловая система, работающая в реальном времени. Другие модели для работы с файлами: Localdrive [6] и Mirrordrive [7].
  • Hyperswarm [8] — распределённый сетевой стек для P2P-коммуникации.
  • Hyperbeam [9] — сквозное шифрование в канале между двумя пирами на основе Hyperswarm.
  • HyperDHT [10] — Hyperswarm с поддержкой DHT (распределённое обнаружение пиров — distributed holepunching, как в торрентах).

    Экосистема Hyper. Полный пиринг и шифрование - 3

  • Hyperbee [11] — B-дерево на базе Hypercore. Позволяет выполнять итерации с сортировкой и многое другое.
  • Hypershell [12] — спаунит терминал (оболочку) в любом месте. Полностью одноранговый, аутентифицированный и зашифрованный. Поддерживает все базовые команды:
    # Создание ключей
    hypershell-keygen [-f keyfile] [-c comment]
    
    # Создание P2P-сервера
    hypershell-server [-f keyfile] [--firewall filename] [--disable-firewall] [--protocol name]
    
    # Подключение к P2P-шеллу
    hypershell <server key or name> [-f keyfile]
    
    # Локальный тоннель с перенаправлением на удалённый хост
    hypershell <server key or name> -L [address:]port:host:hostport
    
    # Копирование файлов (скачивание и отправка)
    hypershell-copy <[@host:]source> <[@host:]target> [-f keyfile]

    Это в каком-то смысле демоверсия остальных модулей Hyper.

  • Autobase [13] — автоматическое преобразование нескольких причинно-связанных журналов Hypercore в один линеаризованный журнал. На выходе Autobase представляет собой простой Hypercore, что означает возможность его использования для преобразования структур данных более высокого уровня (например, Hyperbee) в структуры данных с множественной записью с минимальными дополнительными затратами.

В совокупности эти модули составляют полноценный фреймворк для построения P2P-приложений с шифрованием. Весь код открыт и опубликован на Github [14].

Разработкой занимается организация Holepunch [15]. Но это не обычная, а «пиринговая» организация, у которой «нет публичных представителей». Только вступив в это сообщество, можно увидеть других его участников, да и то в анонимном виде. В общем, максимальная приватность на грани паранойи. В данный момент у «пиринговой организации» 97 репозиториев [16].

Как уже упоминалось, единственным реальным приложением на модулях Hyper является P2P-мессенджер Keet [3].

Keet поддерживает сквозное шифрование и P2P-микроплатежи USDT/Bitcoin Lightning. Клиент выпускается в версиях для Windows, Linux, MacOS, iOS [17] и Android [18]. За счёт пиринговых коммуникаций он обеспечивает максимальное качество видео и передачу файлов любого размера (она ограничена только размером накопителя на стороне получателя и лимитами файловой системы).

▍ VPN по пирингу. Как работают mesh-сети с нулевым доверием

Вышеупомянутый Hyper — это фундаментальная разработка, которая может стать основой для многих приложений. Например, есть целый класс полезных приложений, которые можно назвать «mesh-сети с нулевым доверием» (Zero-Trust Mesh VPN [19]).

Такие системы объединяют три концепции:

  1. VPN, обеспечивающая полностью зашифрованную и аутентифицированную связь и стабильные IP-адреса;
  2. mesh-сеть [20], в которой устройства автоматически находят оптимальные пути для связи друг с другом;
  3. сетевую модель с нулевым доверием [21], в которой не требуется доверие ни к каким элементам базовой сети, поскольку весь трафик использует защищённые системы из пунктов 1 и 2.

Приложения типа mesh VPN тоже бывают разные. Например, полностью децентрализованные сети с автоматической маршрутизацией, такие как Yggdrasil [22] и Tinc [23]. С другой стороны, есть P2P-системы с выделенными серверами для централизованного контроля, как Tailscale [24], Zerotier [25], Nebula [26], Netmaker [27]. В связи с бумом на рынке безопасности в последнее время появляется всё больше подобных решений, например, NordVPN Meshnet [28].

▍ Mesh-сети на радиопротоколе

Есть несколько протоколов, разработанных специально для Интернета вещей и связи маломощных устройств, сенсоров, раций, объединённых в распределённую сеть на большой территории. Эти сети работают по радиопротоколам типа LoRa RF и не нуждаются в центральных узлах. Есть мнение, что в случае глобальной катастрофы на планете такие сети смогут продолжить своё функционирование и станут единственным средством связи между разрозненными лагерями выживших.

Экосистема Hyper. Полный пиринг и шифрование - 4

В условиях катастрофы или стихийного бедствия самыми надёжными являются наиболее простые технологии и протоколы. Например, Meshtastic [29] — сервис дальней радиосвязи для устройств малой мощности на протоколе LoRa RF. Передача осуществляется на десятки километров, а иногда больше 100 км. Это также подходящий вариант для самоорганизации и связи больших групп людей, которые оказались примерно в одном месте: например, на фестивале или другом массовом мероприятии, а сотовая связь не работает.

Экосистема Hyper. Полный пиринг и шифрование - 5
Плата для разработки ESP32 с поддержкой LoRa на Aliexpress

Кроме радиопередатчика с антенной [30] можно купить, например, специальный корпус для телефона PinePhone [31] с антенной LoRa или недорогой КПК на LoRa/WiFi [32].

Настройки канала [33] Meshtastic варьируются от коротковолновой передачи на скорости до 6,8 Кбит/с (самый быстрый режим) до длинных волн со скоростью максимум 0,09 Кбит/с, то есть 90 бит/с.

Наряду с Meshtastic можно упомянуть Nomad Network [34], прототип устойчивой mesh-сети на протоколах LXMF [35] и Reticulum [36]. В свою очередь, Reticulum — это отдельная от интернета mesh-сеть с сильным шифрованием.

Экосистема Hyper. Полный пиринг и шифрование - 6
Радиопередатчики для сети Nomad Network по протоколу Reticulum

«Reticulum — это попытка создать альтернативный протокол базового уровня для сетей передачи данных, — говорит [37] Марк Квист, разработчик сетевого стека. — По сути, это не одна сеть, а инструмент для построения сетей. Его можно сравнить с IP, стеком интернет-протокола, на котором работает 99,99% сетей на Земле. Он решает те же проблемы, что и IP, обеспечивая передачу цифровых данных из точки А в точку Б, но делает это совершенно иначе и с совершенно другими предположениями. Реальная сила протокола заключается в том, что он может использовать все виды различных средств связи и соединять их в единую сеть. Может использовать [дальние] приёмопередатчики, модемы, радиосвязь, Ethernet, Wi-Fi или даже моток старой медной проволоки, если у вас есть такая возможность».

▍ E2E-шифрование для распределённых приложений

Специально для шифрования трафика между распределёнными веб-приложениями разработан протокол Shelter [38] (Укрытие). Это оригинальная разработка, которая основана на цепочках смарт-контрактов [39]. Такие цепочки используются для создания и определения концепций в программах подобно тому, как используются классы и объекты в объектно-ориентированном программировании, за исключением того, что эти классы и объекты могут быть совместно использованы на многих устройствах, сохраняя своё состояние даже при сквозном шифровании.

В основе протокола Shelter лежат зашифрованные сообщения SPMessage, которые определяют контракты и их действия. Каждое SPMessage используется для отправки одного из опкодов [40] в цепочку контрактов.

Экосистема Hyper. Полный пиринг и шифрование - 7
Пример цепочки контрактов в Shelter

Самое первое SPMessage в цепочке контрактов определяет создаваемый контракт и задаёт его начальные данные. Его можно представить себе как конструктор из ООП, используемый для инстанцирования класса.

Все последующие сообщения используются для обновления состояния этой цепочки. Эти сообщения обычно называются «действиями», и их можно представить как вызовы методов в ООП.

Вместе эти сообщения образуют цепочку событий, которая используется для формирования состояния данной цепочки контрактов.

Все действия в Shelter подписываются приватным ключом, который является производным от пароля [41]. Поэтому очень важно использовать соли паролей для защиты от брутфорса. Для получения и хранения солей в Shelter используется подпротокол нулевого знания (Zero-knowledge Password Protocol, ZKPP [42]). Пользователь может доказать серверу, что он знает свой пароль, и таким образом получить соль, необходимую для вычисления закрытого ключа.

На базе Hyper, Shelter и других пиринговых протоколов создаются пиринговые приложения нового поколения, которые эффективно заменяют централизованные сервисы старого поколения. Для этих же целей создан протокол NOSTR [43] (Notes and Other Stuff Transmitted by Relays), который разработчики называют «самым простым P2P-протоколом из существующих». Открытый и простой протокол работает на серверах WebSocket (рилеи), которые обрабатывают и обмениваются очень простыми инструкциями (событиями) такого вида:

{
"id": <32-bytes sha256 of the serialized event data>
"pubkey": <32-bytes hex-encoded public key of the event creator>,
"created_at": <unix timestamp in seconds>,
"kind": <integer>,
"tags": [
["e", <32-bytes hex of the id of another event>, <recommended relay URL>],
["p", <32-bytes hex of the key>, <recommended relay URL>],
... // other kinds of tags may be included later
]
"content": <arbitrary string>,
"sig": <64-bytes signature of the sha256 hash of the serialized event data, which is the same as the "id" field>,
}

Это основа транспорта NOSTR. Теоретически, на его основе без особенных усилий можно построить децентрализованный аналог Twitter и другие сервисы, причём с надёжным сквозным шифрованием мирового уровня. NOSTR также рассматривается как более децентрализованная альтернатива, лучшая версия Mastodon. Кстати, и NOSTR, и Shelter позаимствовали для своих протоколов некоторые технологии Bitcoin.

На этой странице [44] перечислены приложения, сделанные на протоколе NOSTR. Это веб-, десктопные и консольные клиенты, мобильные приложения под iOS и Android, десятки реализаций для узлов (рилеев [45], мостов, гейтов) и многочисленные библиотеки, чтобы интегрировать NOSTR в сторонние приложения, плюс вспомогательные инструменты для обслуживания узлов и клиентов, сервисы верификации NIP-05 [46] и др.

Экосистема Hyper. Полный пиринг и шифрование - 8
Damus [47], твиттероподобный клиент для iOS на протоколе NOSTR, со встроенным шифрованием

Похоже, наступает эпоха децентрализованных зашифрованных сетей. Как уже стало понятно, без специальных мер защиты коммуникаций в наше время не обойтись. Между свободой и безопасностью общество во всём мире выбирает безопасность, поэтому везде устанавливают видеокамеры наблюдения, системы распознавания лиц и прослушку.

Автор:
ru_vds

Источник [48]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/nebula/386536

Ссылки в тексте:

[1] Image: https://habr.com/ru/companies/ruvds/articles/753262/

[2] экосистема Hyper: https://docs.holepunch.to/

[3] Keet: https://keet.io/

[4] Hypercore: https://github.com/holepunchto/hypercore

[5] Hyperdrive: https://github.com/holepunchto/hyperdrive

[6] Localdrive: https://github.com/holepunchto/localdrive

[7] Mirrordrive: https://github.com/holepunchto/mirror-drive

[8] Hyperswarm: https://github.com/holepunchto/hyperswarm

[9] Hyperbeam: https://github.com/holepunchto/hyperbeam

[10] HyperDHT: https://github.com/holepunchto/hyperdht

[11] Hyperbee: https://github.com/holepunchto/hyperbee

[12] Hypershell: https://github.com/holepunchto/hypershell

[13] Autobase: https://github.com/holepunchto/autobase

[14] опубликован на Github: https://github.com/orgs/holepunchto/repositories

[15] Holepunch: https://holepunch.to/

[16] 97 репозиториев: https://github.com/orgs/holepunchto/repositories?q=&type=all&language=&sort=stargazers

[17] iOS: https://apps.apple.com/us/app/keet-by-holepunch/id6443880549

[18] Android: https://play.google.com/store/apps/details?id=io.keet.app

[19] Zero-Trust Mesh VPN: https://www.complete.org/easily-accessing-all-your-stuff-with-a-zero-trust-mesh-vpn/

[20] mesh-сеть: https://en.wikipedia.org/wiki/Mesh_networking

[21] сетевую модель с нулевым доверием: https://en.wikipedia.org/wiki/Zero_trust_security_model

[22] Yggdrasil: https://yggdrasil-network.github.io/

[23] Tinc: https://www.tinc-vpn.org/

[24] Tailscale: https://tailscale.com/

[25] Zerotier: https://www.zerotier.com/

[26] Nebula: https://github.com/slackhq/nebula

[27] Netmaker: https://www.netmaker.io/

[28] NordVPN Meshnet: https://nordvpn.com/meshnet/

[29] Meshtastic: https://meshtastic.org/docs/about

[30] радиопередатчика с антенной: https://learn.adafruit.com/adafruit-feather/lora-radio-feathers

[31] специальный корпус для телефона PinePhone: https://pine64.com/product/pinephone-pinephone-pro-pindio-lora-add-on-case/

[32] недорогой КПК на LoRa/WiFi: https://shop.popcorncomputer.com/products/pocket-pc-w-lora

[33] Настройки канала: https://meshtastic.org/docs/introduction

[34] Nomad Network: https://github.com/markqvist/NomadNet

[35] LXMF: https://github.com/markqvist/LXMF

[36] Reticulum: https://github.com/markqvist/Reticulum

[37] говорит: https://www.vice.com/en/article/88g7pb/this-prepper-is-building-a-post-apocalyptic-internet

[38] Shelter: https://shelterprotocol.net/

[39] цепочках смарт-контрактов: https://shelterprotocol.net/en/key-concepts/

[40] опкодов: https://shelterprotocol.net/en/key-concepts/#opcodes

[41] производным от пароля: https://shelterprotocol.net/en/multi-device

[42] ZKPP: https://github.com/okTurtles/group-income/blob/e2e-protocol/shared/zkpp.js

[43] NOSTR: https://nostr.how/en/what-is-nostr

[44] этой странице: https://github.com/aljazceru/awesome-nostr

[45] рилеев: https://nostr.info/relays

[46] NIP-05: https://nostr.how/en/guides/get-verified

[47] Damus: https://damus.io/

[48] Источник: https://habr.com/ru/companies/ruvds/articles/753262/?utm_source=habrahabr&utm_medium=rss&utm_campaign=753262