Jump to content

GNUnet

(Перенаправлено из системы имен GNU )
GNUnet
Разработчик(и) GNUnet эВ [ 1 ]
Первоначальный выпуск 5 ноября 2001 г .; 22 года назад ( 05.11.2001 )
Стабильная версия 0.19.4 (1 апреля 2023 г .; 16 месяцев назад ( 01.04.2023 ) [ 2 ] ) [±]
Репозиторий
Написано в С [ 3 ]
Операционная система официальные: Свободное программное обеспечение операционных систем ( Linux , FreeBSD , NetBSD , OpenBSD );
неофициально: Другие операционные системы ( OS X , Windows )
Доступно в на испанском, на английском, на русском, на немецком, на французском
Тип Анонимный P2P , Друг-другу
Лицензия 2018: AGPL-3.0 или более поздняя версия [ а ] [ 4 ]
2007: GPL-3.0 или новее [ б ]
2001: GPL-2.0 или новее [ с ]
Веб-сайт гнунет .org
Кристиан Гротхофф, сопровождающий GNUnet, в Берлине 1 августа 2013 года на мероприятии « #youbroketheinternet. Мы сделаем себя частью GNU ».

GNUnet это программная платформа для децентрализованных одноранговых сетей и официальный пакет GNU . Платформа предлагает шифрование каналов , обнаружение одноранговых узлов , распределение ресурсов , связь по множеству транспортных средств (таких как TCP , UDP , HTTP , HTTPS , WLAN и Bluetooth ) и различные базовые одноранговые алгоритмы для маршрутизации , многоадресной рассылки и оценки размера сети. [ 5 ] [ 6 ]

Базовая топология сети GNUnet представляет собой ячеистую сеть . GNUnet включает в себя распределенную хеш-таблицу (DHT), которая представляет собой рандомизированный вариант Kademlia , который по-прежнему может эффективно маршрутизировать данные в сетях малого мира . GNUnet предлагает опцию « топологии F2F », позволяющую ограничить соединения только доверенными друзьями пользователей. Друзья друзей пользователей (и так далее) могут затем косвенно обмениваться файлами с компьютером пользователя, никогда не используя его IP-адрес напрямую.

GNUnet использует унифицированные идентификаторы ресурсов (не одобренные IANA , хотя заявка была подана). [ когда? ] URI GNUnet состоят из двух основных частей: модуля и идентификатора модуля. URI GNUnet имеет форму
gnunet://module/identifier где модуль — это имя модуля, а идентификатор — это строка, специфичная для модуля.

Основная кодовая база написана на C , но существуют привязки на других языках для создания API для разработки расширений на этих языках. GNUnet является частью проекта GNU . он вызвал интерес в хакерском сообществе После разоблачения PRISM . [ 7 ]

GNUnet состоит из нескольких подсистем, наиболее важными из которых являются транспортная и базовая подсистемы. [ 8 ] Транспортная подсистема обеспечивает небезопасную связь на канальном уровне, а ядро ​​обеспечивает обнаружение и шифрование одноранговых узлов. [ 9 ] На основе базовой подсистемы создаются различные приложения.

GNUnet включает в себя различные P2P-приложения в основной дистрибутив платформы, включая обмен файлами, чат и VPN; кроме того, несколько внешних проектов (таких как secushare) также расширяют инфраструктуру GNUnet.

GNUnet не имеет отношения к более старому протоколу Gnutella P2P. Gnutella не является официальным проектом GNU, в отличие от GNUnet. [ 10 ]

Транспорт

[ редактировать ]

Первоначально GNUnet использовал UDP в качестве основного транспорта. [ 11 ] Теперь транспортная подсистема GNUnet предоставляет несколько вариантов, таких как TCP и SMTP. [ 12 ]

Порт связи, официально зарегистрированный в IANA , — 2086 ( tcp + udp ). [ 13 ]

Трастовая система

[ редактировать ]

GNUnet предоставляет систему доверия, основанную на экономической модели, основанной на избытке. [ 14 ] Идея использования экономической системы взята из сети MojoNation . [ 15 ]

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

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

Обмен файлами

[ редактировать ]

Основным приложением на данный момент является анонимный , устойчивый к цензуре обмен файлами, позволяющий пользователям анонимно публиковать или получать информацию любого рода. Протокол GNUnet, обеспечивающий анонимность, называется GAP (протокол анонимности GNUnet). [ 16 ] GNUnet FS может дополнительно использовать GNU libextractor для автоматического аннотирования общих файлов метаданными .

Кодировка файла

[ редактировать ]

Файлы, совместно используемые с GNUnet, закодированы ECRS (кодирование для совместного использования без цензуры). [ 17 ]

Весь контент представлен в виде GBlocks. Каждый GBlock содержит 1024 байта. Существует несколько типов GBlocks, каждый из которых служит определенной цели. Любой ГБблок однозначно идентифицируется по хешу RIPEMD-160. .

DBlocks хранит фактическое содержимое файла и ничего больше. Файл разбивается по границе 1024 байта, а полученные фрагменты сохраняются в DBlocks. Блоки DBlock связаны в дерево Меркла с помощью блоков IBlock, в которых хранятся идентификаторы DBlock.

Блоки шифруются симметричным ключом, полученным из когда они хранятся в сети.

Вопросы и ответы

[ редактировать ]

Протокол анонимности GNUnet состоит из запросов и ответов. В зависимости от загрузки узла пересылки сообщения пересылаются на ноль или более узлов.

Запросы используются для поиска контента и запроса блоков данных.

Запрос содержит идентификатор ресурса, адрес ответа, приоритет и TTL (время жизни).

Идентификатор ресурса данных это тройной хеш . [ 18 ] Узел, который отвечает на запрос, предоставляет чтобы доказать, что он действительно имеет запрошенный ресурс, не предоставляя к промежуточным узлам, поэтому промежуточные узлы не могут расшифровать .

Адрес ответа является основным отличием от протокола Freenet . В то время как во Freenet ответ всегда распространяется обратно по тому же пути, что и запрос, в GNUnet этот путь может быть короче. Узел, получивший запрос, может отбросить его, переслать без перезаписи адреса ответа или использовать косвенный адрес, заменив адрес ответа собственным адресом. Косвенно направляя запросы, одноранговый узел обеспечивает прикрытие трафика для своих собственных запросов, а пересылая их, одноранговый узел избегает быть ссылкой при распространении ответа и сохраняет свою пропускную способность. Эта функция позволяет пользователю пожертвовать анонимностью ради эффективности. Пользователь может указать уровень анонимности для каждой операции публикации, поиска и загрузки. уровень анонимности Нулевой может использоваться для выбора неанонимного обмена файлами. Инфраструктура DHT GNUnet используется только в том случае, если указан неанонимный общий доступ к файлам. Уровень анонимности определяет, какой объем прикрывающего трафика должен иметь узел, чтобы скрыть собственные действия пользователя.

Приоритет определяет, какую часть своего доверия пользователь хочет потратить в случае нехватки ресурсов.

TTL используется для предотвращения слишком длительного пребывания запросов в сети.

URI обмена файлами

[ редактировать ]

Идентификатор fs модуля за которыми следует косая черта и значение, специфичное для состоит из chk , sks , ksk или loc, категории. Большинство URI содержат хеши, закодированные в base32hex . [ 19 ]

  • chk идентифицирует файлы, обычно: gnunet://fs/chk/[file hash].[query hash].[file size in bytes]
Хэш файла — это хэш открытого текстового файла, который позволяет расшифровать его после загрузки. Хэш запроса — это хэш самого верхнего GBlock, который позволяет загрузить все дерево GBlocks, содержащее зашифрованный файл. Размер файла необходим для определения формы дерева.
  • sks идентифицирует файлы в пространствах имен, обычно: gnunet://fs/sks/NAMESPACE/IDENTIFIER
  • ksk идентифицирует поисковые запросы, обычно: gnunet://fs/ksk/KEYWORD[+KEYWORD]*
  • loc идентифицирует данные на конкретной машине, обычно: gnunet://fs/loc/PEER/QUERY.TYPE.KEY.SIZE

Тип URI общего доступа к файлам GNUnet, указывающий на конкретную копию текста лицензии GNU GPL : gnunet://fs/chk/9E4MDN4VULE8KJG6U1C8FKH5HA8C5CHSJTILRTTPGK8MJ6VHORERHE68JU8Q0FDTOH1DGLUJ3NLE99N0ML0N9PIBAGKG7MNPBTT6UKG.1I823C58O3LKS24LLI9KB384LH82LGF9GUQRJHACCUINSCQH36SI4NF88CMAET3T3BHI93D4S0M5CC6MVDL1K8GFKVBN69Q6T307U6O.17992

Другой тип URI общего доступа к файлам GNUnet, указывающий на результаты поиска по ключевому слову «gpl»: gnunet://fs/ksk/gpl

Система имен GNU

[ редактировать ]

GNUnet включает в себя реализацию системы имен GNU (GNS), децентрализованную и устойчивую к цензуре замену DNS . В GNS каждый пользователь управляет своими собственными зонами и может делегировать субдомены зонам, управляемым другими пользователями. Поиск записей, определенных другими пользователями, выполняется с использованием DHT GNUnet. [ 20 ] GNS была стандартизирована в РФК   9498 . Реестр GANA управляет доменом верхнего уровня «.alt» в GNS. [ 21 ]

Трансляция протокола

[ редактировать ]

GNUnet может туннелировать IP-трафик через одноранговую сеть. При необходимости GNUnet может выполнить трансляцию протокола в процессе IPv4-IPv6. GNUnet предоставляет DNS-шлюз прикладного уровня для прокси-запросов DNS и при необходимости сопоставляет адреса с желаемым семейством адресов. Таким образом, GNUnet предлагает возможную технологию, облегчающую переход на IPv6 . Более того, в сочетании с GNS система трансляции протоколов GNUnet может использоваться для доступа к скрытым службам — службам на основе IP, которые работают локально на каком-то узле в сети и к которым можно получить доступ только путем разрешения имени GNS.

Социальный API

[ редактировать ]

Габор X Тот опубликовал в начале сентября 2013 года диссертацию. [ 22 ] представить проект службы социальных сообщений для одноранговой инфраструктуры GNUnet, которая обеспечивает масштабируемость, расширяемость и сквозное зашифрованное соединение. Свойство масштабируемости достигается за счет многоадресной доставки сообщений, а расширяемость становится возможной благодаря использованию PSYC (протокола для синхронных конференций), который обеспечивает расширяемый синтаксис RPC (вызов удаленных процедур), который может развиваться со временем без необходимости обновления программного обеспечения на всех узлах. в сети. Еще одной ключевой функцией, обеспечиваемой уровнем PSYC, являются каналы многоадресной рассылки с отслеживанием состояния, которые используются, например, для хранения профилей пользователей. Сквозное зашифрованное соединение обеспечивается ячеистой службой GNUnet, на которой построены каналы многоадресной рассылки. Псевдонимные пользователи и социальные места в системе имеют криптографические идентификаторы, идентифицируемые их открытым ключом. Они сопоставляются с запоминающимися человеческими именами с помощью GNS ( система имен GNU ), где каждый псевдоним имеет зону, указывающую на его места.

Это необходимый строительный блок для превращения инфраструктуры GNUnet в полностью одноранговую платформу социальных сетей.

В модуле CADET реализован чат, [ 23 ] для которого интерфейс GTK для GNOME , существует [ 24 ] специально разработан для новых телефонов Linux (таких как Librem 5 или PinePhone ). [ 25 ]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ AGPL-3.0 или более поздняя версия с 5 июня 2018 г.
  2. ^ GPL-3.0 или более поздняя версия со 2 июля 2007 г. по 5 июня 2018 г.
  3. ^ GPL-2.0 или более поздняя версия с 2001 г. по 02 июля 2007 г.
  1. ^ GNUnet.org - О GNUnet eV
  2. ^ Шанценбах, Мартин (01 апреля 2023 г.). «GNUnet 0.19.4» . gnunet.org . Проверено 03 апреля 2023 г.
  3. ^ Исходный код GNUnet
  4. ^ «уведомление о лицензии размещено вверху в одном из исходных файлов репозитория проекта, возможно, в каждом из его исходных файлов» . Проверено 8 июня 2018 г. GNUnet является свободным программным обеспечением: вы можете распространять его и/или изменять в соответствии с условиями Стандартной общественной лицензии GNU Affero, опубликованной Фондом свободного программного обеспечения, либо версии 3 Лицензии, либо (по вашему выбору) любой более поздней версии.
  5. ^ ЭвансПолотГротофф 2012 .
  6. ^ Гротхофф, Кристиан (10 октября 2017 г.). Система GNUnet (кандидатская диссертация). Университет Ренна 1.
  7. ^ Гротхофф 2013 .
  8. ^ FerreiraGrothoffRuth 2003 , Рисунок 1.
  9. ^ ФеррейраГротоффРут 2003 , II. GNUNET И ТРАНСПОРТНЫЙ УРОВЕНЬ: «Ядро отвечает за межканальное шифрование, привязку идентификаторов узлов к маршрутизируемым адресам и обнаружение одноранговых узлов».
  10. ^ «Программное обеспечение GNU» . Программное обеспечение — Проект GNU — Фонд свободного программного обеспечения . Фонд свободного программного обеспечения, Inc. Проверено 25 января 2020 г.
  11. ^ GrothoffPatrascuBennettStef 2002 , 3.1.1 UDP.
  12. ^ ФеррейраГротоффРут 2003 .
  13. ^ Имя службы и реестр номеров портов транспортного протокола, стр. 38
  14. ^ Гротхофф 2003 .
  15. ^ GrothoffPatrascuBennettStef 2002 , 2.4 Mojo Nation.
  16. ^ Беннет Гротофф 2003 .
  17. ^ БеннеттГротоффГорозовПатраску 2002 .
  18. ^ GrothoffPatrascuBennettStef 2002 , 5.5 Подробнее о запросах.
  19. ^ Гротгоф, Кристиан. «URI общего доступа к файлам» . www.gnunet.org . Архивировано из оригинала 17 августа 2016 года . Проверено 15 июля 2016 г.
  20. ^ Вакс, Шанценбах и Гротхофф, 2014 .
  21. ^ «RFC 9498: Система имен GNU [LWN.net]» . lwn.net .
  22. ^ Тот, Габор X (05 сентября 2013 г.), Проектирование системы социальных сообщений с использованием многоадресной рассылки с отслеживанием состояния. Архивировано 22 февраля 2014 г. на Wayback Machine - Проверено 28 сентября 2013 г.
  23. ^ Документация GNUnet.org (14 ноября 2019 г.) Общение с (простым) клиентом - Проверено 14 ноября 2019 г.
  24. ^ кадет-gtk на GitLab
  25. ^ GNUnet CADET для мобильного Linux – Reddit

Дальнейшие ссылки

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 510ee1ae62e012c342ad38356e1416b7__1710143940
URL1:https://arc.ask3.ru/arc/aa/51/b7/510ee1ae62e012c342ad38356e1416b7.html
Заголовок, (Title) документа по адресу, URL1:
GNUnet - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)