- PVSM.RU - https://www.pvsm.ru -
[1]
В настоящее время резко выросла потребность людей в защищённых коммуникациях. А с ней и популярность сервисов для защиты связи и шифрования. Это VPN, mesh-сети и пиринговые приложения для прямого обмена зашифрованными сообщениями, файлами и т. д. Один из самых продвинутых наборов такого рода — экосистема Hyper [2]. Есть и другие (о них ниже).
Hyper — это набор маленьких JavaScript-модулей, которые можно комбинировать для создания неограниченного количества P2P-приложений, от VPN до коммуникационных инструментов типа P2P-мессенджера Keet [3]. На сегодняшний день Keet — это практически единственное реальное приложение, построенное на Hyper, своего рода демонстрация возможностей платформы.

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

# Создание ключей
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.
В совокупности эти модули составляют полноценный фреймворк для построения P2P-приложений с шифрованием. Весь код открыт и опубликован на Github [14].
Разработкой занимается организация Holepunch [15]. Но это не обычная, а «пиринговая» организация, у которой «нет публичных представителей». Только вступив в это сообщество, можно увидеть других его участников, да и то в анонимном виде. В общем, максимальная приватность на грани паранойи. В данный момент у «пиринговой организации» 97 репозиториев [16].
Как уже упоминалось, единственным реальным приложением на модулях Hyper является P2P-мессенджер Keet [3].
Keet поддерживает сквозное шифрование и P2P-микроплатежи USDT/Bitcoin Lightning. Клиент выпускается в версиях для Windows, Linux, MacOS, iOS [17] и Android [18]. За счёт пиринговых коммуникаций он обеспечивает максимальное качество видео и передачу файлов любого размера (она ограничена только размером накопителя на стороне получателя и лимитами файловой системы).
Вышеупомянутый Hyper — это фундаментальная разработка, которая может стать основой для многих приложений. Например, есть целый класс полезных приложений, которые можно назвать «mesh-сети с нулевым доверием» (Zero-Trust Mesh VPN [19]).
Такие системы объединяют три концепции:
Приложения типа mesh VPN тоже бывают разные. Например, полностью децентрализованные сети с автоматической маршрутизацией, такие как Yggdrasil [22] и Tinc [23]. С другой стороны, есть P2P-системы с выделенными серверами для централизованного контроля, как Tailscale [24], Zerotier [25], Nebula [26], Netmaker [27]. В связи с бумом на рынке безопасности в последнее время появляется всё больше подобных решений, например, NordVPN Meshnet [28].
Есть несколько протоколов, разработанных специально для Интернета вещей и связи маломощных устройств, сенсоров, раций, объединённых в распределённую сеть на большой территории. Эти сети работают по радиопротоколам типа LoRa RF и не нуждаются в центральных узлах. Есть мнение, что в случае глобальной катастрофы на планете такие сети смогут продолжить своё функционирование и станут единственным средством связи между разрозненными лагерями выживших.

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

Плата для разработки 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-сеть с сильным шифрованием.

Радиопередатчики для сети Nomad Network по протоколу Reticulum
«Reticulum — это попытка создать альтернативный протокол базового уровня для сетей передачи данных, — говорит [37] Марк Квист, разработчик сетевого стека. — По сути, это не одна сеть, а инструмент для построения сетей. Его можно сравнить с IP, стеком интернет-протокола, на котором работает 99,99% сетей на Земле. Он решает те же проблемы, что и IP, обеспечивая передачу цифровых данных из точки А в точку Б, но делает это совершенно иначе и с совершенно другими предположениями. Реальная сила протокола заключается в том, что он может использовать все виды различных средств связи и соединять их в единую сеть. Может использовать [дальние] приёмопередатчики, модемы, радиосвязь, Ethernet, Wi-Fi или даже моток старой медной проволоки, если у вас есть такая возможность».
Специально для шифрования трафика между распределёнными веб-приложениями разработан протокол Shelter [38] (Укрытие). Это оригинальная разработка, которая основана на цепочках смарт-контрактов [39]. Такие цепочки используются для создания и определения концепций в программах подобно тому, как используются классы и объекты в объектно-ориентированном программировании, за исключением того, что эти классы и объекты могут быть совместно использованы на многих устройствах, сохраняя своё состояние даже при сквозном шифровании.
В основе протокола Shelter лежат зашифрованные сообщения SPMessage, которые определяют контракты и их действия. Каждое SPMessage используется для отправки одного из опкодов [40] в цепочку контрактов.

Пример цепочки контрактов в 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] и др.

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
Нажмите здесь для печати.