Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Кристиан Гротхофф , сопровождающий GNUnet, в Берлине 1 августа 2013 года на мероприятии « #youbroketheinternet. Мы сделаем себя GNU one. ».

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

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

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

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

GNUnet состоит из нескольких подсистем, основными из которых являются подсистемы Transport и Core. [8] Транспортная подсистема обеспечивает небезопасную связь на канальном уровне, в то время как Core обеспечивает обнаружение и шифрование одноранговых узлов. [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]

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

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

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

Запросы и ответы [ править ]

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

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

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

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

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

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

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

URI общего доступа к файлам [ править ]

В фс модуль идентификатор состоит либо из CHK , SKS , КСК или LOC с последующим косой чертой и значением категории конкретным. Большинство URI содержат хэши, которые закодированы в base32hex . [19]

  • chk идентифицирует файлы, обычно:gnunet://fs/chk/[file hash].[query hash].[file size in bytes]
Хеш файла - это хеш файла с открытым текстом, который позволяет расшифровать его после загрузки. Хеш запроса - это хеш самого верхнего блока GBlock, который позволяет загружать все дерево блоков GB, содержащих зашифрованный файл. Размер файла необходим для определения формы дерева.
  • 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 каждый пользователь управляет своими собственными зонами и может делегировать поддомены зонам, управляемым другими пользователями. Поиск записей, определенных другими пользователями, выполняется с помощью GNUnet DHT. [20]

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

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

Социальный API [ править ]

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

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

Чат [ править ]

Чат реализован в модуле Cadet, [22] , для которых третья сторона GTK - интерфейс для GNOME существует, [23] , специально предназначенные для новых телефонов GNU / Linux (например, Librem 5 или PinePhone ). [24]

См. Также [ править ]

  • Межпланетная файловая система
  • Сравнение приложений для обмена файлами
  • Синхронная конференция

Заметки [ править ]

  1. ^ GNUnet.org - О GNUnet eV
  2. ^ https://gnunet.org/en/news/2020-11-0.14.0.html ; язык работы или имени: американский английский; дата публикации: 14 ноября 2020 г.
  3. ^ Исходный код GNUnet
  4. ^ "уведомление о лицензии, размещенное вверху в одном из исходных файлов репозитория проекта, возможно, в каждом из его исходных файлов" . Проверено 8 июня 2018 года . GNUnet - бесплатное программное обеспечение: вы можете распространять и / или изменять его в соответствии с условиями Стандартной общественной лицензии GNU Affero, опубликованной Free Software Foundation, либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
  5. ^ EvansPolotGrothoff 2012 .
  6. ^ Гротхофф, Кристиан (2017-10-10). Система GNUnet (кандидатская диссертация). Реннский университет 1.
  7. ^ Grothoff 2013 .
  8. ^ FerreiraGrothoffRuth 2003 , рисунок 1.
  9. Перейти ↑ FerreiraGrothoffRuth 2003 , II. GNUNET И ТРАНСПОРТНЫЙ УРОВЕНЬ: «Ядро отвечает за межканальное шифрование, привязку идентификаторов узлов к маршрутизируемым адресам и обнаружение одноранговых узлов».
  10. ^ «Программное обеспечение GNU» . Программное обеспечение - Проект GNU - Фонд свободного программного обеспечения . Фонд свободного программного обеспечения, Inc . Проверено 25 января 2020 года .
  11. ^ GrothoffPatrascuBennettStef 2002 , 3.1.1 UDP.
  12. Перейти ↑ FerreiraGrothoffRuth 2003 .
  13. ^ Реестр имени службы и номера порта транспортного протокола, стр. 37
  14. ^ Grothoff 2003 .
  15. ^ GrothoffPatrascuBennettStef 2002 , 2,4 Mojo Nation.
  16. ^ BennettGrothoff 2003 .
  17. ^ BennettGrothoffHorozovPatrascu 2002 .
  18. ^ GrothoffPatrascuBennettStef 2002 , 5.5 Подробнее о запросах.
  19. ^ Гротхофф, Кристиан. «URI обмена файлами» . www.gnunet.org . Проверено 15 июля 2016 года .
  20. ^ Wachs 2014 .
  21. ^ Toth, Габор X (2013-09-05) Проектирование системы социального обмена сообщениями с помощью Stateful Multicast в архив 2014-02-22 в Wayback Machine - Источник 2013-09-28
  22. ^ Документация GNUnet.org (14 ноября 2019 г.) Беседа с (простым) клиентом - Дата обращения 14 ноября 2019 г.
  23. ^ cadet-gtk в GitLab
  24. ^ GNUnet CADET для мобильной Linux - Reddit

Ссылки [ править ]

  • Гротхофф, Кристиан; Патраску, Иоана; Беннетт, Криста; Стеф, Тибериу; Хорозов, Цветан (13.06.2002). Технический документ GNet (PDF) (Технический отчет). Университет Пердью.CS1 maint: ref = harv ( ссылка )
  • Беннетт, Криста; Гротхофф, Кристиан; Хорозов, Цветан; Патраску, Иоана (03.07.2002). Баттен, Линн ; Seberry, Дженнифер (ред.). Эффективный обмен зашифрованными данными . Конспект лекций по информатике. Springer Berlin Heidelberg. С. 107–120. CiteSeerX  10.1.1.19.9837 . DOI : 10.1007 / 3-540-45450-0_8 . ISBN 9783540438618.CS1 maint: ref = harv ( ссылка )
  • Феррейра, Роналду; Гротхофф, Кристиан; Рут, Пол (01.05.2003). «Абстракция транспортного уровня для одноранговых сетей» (PDF) . CCGrid 2003. 3-й международный симпозиум IEEE / ACM по кластерным вычислениям и сетям, 2003. Труды . IEEE. С. 398–405. CiteSeerX  10.1.1.13.5086 . DOI : 10,1109 / CCGRID.2003.1199393 . ISBN 978-0-7695-1919-7. S2CID  1928711 .CS1 maint: ref = harv ( ссылка )
  • Гротхофф, дипломированный математик Кристиан (01.06.2003). «Распределение ресурсов в одноранговых сетях». Wirtschaftsinformatik . 45 (3): 285–292. DOI : 10.1007 / BF03254946 . ISSN  0937-6429 . S2CID  4479637 .CS1 maint: ref = harv ( ссылка )
  • Вакс, Матиас; Шанценбах, Мартин; Гротхофф, Кристиан (2014). «Устойчивая к цензуре, обеспечивающая конфиденциальность и полностью децентрализованная система имен» (PDF) . 13-я Международная конференция по криптологии и сетевой безопасности (CANS 2014) . Конспект лекций по информатике. 8813 (13): 127–142. DOI : 10.1007 / 978-3-319-12280-9_9 . ISBN 978-3-319-12279-3.
  • Беннетт, Криста; Гротхофф, Кристиан (26 марта 2003 г.). Дингледин, Роджер (ред.). пробел - Практическая анонимная сеть . Конспект лекций по информатике. Springer Berlin Heidelberg. С. 141–160. CiteSeerX  10.1.1.125.9673 . DOI : 10.1007 / 978-3-540-40956-4_10 . ISBN 9783540206101.
  • Эванс, Натан; Полот, Бартломей; Гротхофф, Кристиан (21.05.2012). Бестак, Роберт; Кенкл, Лукас; Ли, Ли Эрран; Видмер, Йорг; Инь, Хао (ред.). Эффективная и безопасная оценка размера децентрализованной сети . Конспект лекций по информатике. Springer Berlin Heidelberg. С. 304–317. DOI : 10.1007 / 978-3-642-30045-5_23 . ISBN 9783642300448.CS1 maint: ref = harv ( ссылка )
  • Гротхофф, Кристиан (2013-08-01). «Видео: Вы сломали Интернет. Мы делаем себя GNU» . gnunet.org . Пиратская партия Германии , Берлин . Проверено 4 октября 2013 года .CS1 maint: ref = harv ( ссылка )
  • Гротхофф, Кристиан (2015). «Архитектура GNUnet: 45 подсистем за 45 минут» (PDF) . Проверено 14 июля 2016 .

Внешние ссылки [ править ]

  • Официальный веб-сайт