GNUnet - GNUnet
tento článek potřebuje další citace pro ověření.Dubna 2019) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Tento článek musí být aktualizováno.Dubna 2019) ( |
GNUnet s GTK + uživatelské rozhraní | |
Vývojáři | GNUnet e.V.[1] |
---|---|
První vydání | 5. listopadu 2001 |
Stabilní uvolnění | 0.14.0[2] / 14. listopadu 2020 |
Úložiště | |
Napsáno | C[3] |
Operační systém | oficiální: Svobodný software operační systémy (GNU / Linux, FreeBSD, NetBSD, OpenBSD ); neoficiální: Jiné operační systémy (OS X, Okna ) |
K dispozici v | Španělsky, anglicky, rusky, německy, francouzsky |
Typ | Anonymní P2P, Přítel-přítel |
Licence | GNU AGPLv3 nebo novější[4] (Svobodný software ) |
webová stránka | gnunet |
Část série na |
Sdílení souborů |
---|
Technologie |
Weby pro sdílení videa |
Stránky BitTorrent |
Akademický |
Sítě pro sdílení souborů |
Klienti P2P |
Streamování programů |
Anonymní sdílení souborů |
Rozvoj a společenské aspekty |
Podle země nebo regionu |
Srovnání |
GNUnet je softwarový rámec pro decentralizovaný, peer-to-peer síťování a úředník GNU balík. Rámec nabízí šifrování odkazu, vzájemný objev, přidělení zdrojů, komunikace přes mnoho transportů (např TCP, UDP, HTTP, HTTPS, WLAN a Bluetooth ) a různé základní peer-to-peer algoritmy pro směrování, vícesměrové vysílání a odhad velikosti sítě.[5][6]
Základní topologie sítě GNUnetu je a síťová síť. GNUnet obsahuje a distribuovaná hash tabulka (DHT), což je a náhodně varianta Kademlia které lze stále efektivně směrovat dovnitř sítě malého světa. GNUnet nabízí „Topologie F2F "možnost omezit připojení pouze na důvěryhodné přátele uživatelů. Vlastní přátelé přátel" uživatelů "(atd.) si pak mohou nepřímo vyměňovat soubory s počítačem uživatelů, aniž by přímo používali jeho IP adresu.
GNUnet používá Jednotné identifikátory prostředků (neschváleno IANA, ačkoli byla podána žádost).[když? ] GNUnet URI se skládají ze dvou hlavních částí: modulu a specifického identifikátoru modulu. GNUnet URI má formu gnunet: // modul / identifikátor
kde modul je název modulu a identifikátor je řetězec specifický pro modul.
Primární základ kódu je napsán v C, ale existují vazby v jiných jazycích k vytvoření API pro vývoj rozšíření v těchto jazycích. GNUnet je součástí Projekt GNU. Získal zájem o hackerská komunita po HRANOL odhalení.[7]
GNUnet se skládá z několika subsystémů, z nichž nejdůležitější jsou subsystémy Transport a Core.[8] Transportní subsystém poskytuje nezabezpečenou komunikaci na linkové vrstvě, zatímco Core zajišťuje vzájemné zjišťování a šifrování.[9] Na jádru subsystému jsou postaveny různé aplikace.
GNUnet zahrnuje různé aplikace P2P v hlavní distribuci rámce, včetně sdílení souborů, chatu a VPN; dále několik externích projektů (např secushare ) také rozšiřují infrastrukturu GNUnet.
GNUnet nesouvisí se staršími Gnutella Protokol P2P. Gnutella není oficiálním projektem GNU, zatímco GNUnet ano.[10]
Doprava
Původně byl použit GNUnet UDP pro podkladový transport.[11] Transportní subsystém GNUnet nyní nabízí více možností, například TCP a SMTP.[12]
Komunikační port, oficiálně registrovaný na IANA, je 2086 (tcp + udp ).[13]
Systém důvěryhodnosti
GNUnet poskytuje důvěryhodný systém založený na nadměrně založeném ekonomickém modelu.[14] Myšlenka zaměstnávat ekonomický systém je převzata z MojoNation síť.[15]
Síť GNUnet nemá žádné důvěryhodné entity, takže je nemožné udržovat globální pověst. Místo toho si každý peer udržuje svůj vlastní důvěra pro každý z jeho místních odkazů.
Když jsou prostředky, jako je šířka pásma a čas CPU, nadměrné, peer je poskytuje všem sousedům, kteří žádají, aniž by to snížilo důvěru nebo je jinak zpoplatnilo. Když je uzel ve stresu, zruší požadavky ze svých sousedních uzlů, které mají nižší hodnotu vnitřní důvěryhodnosti. Pokud však má peer méně zdrojů než dost na splnění požadavků všech, popírá požadavky sousedů, kterým důvěřuje méně, a účtuje ostatním snížením jejich důvěry.
Sdílení souborů
Primární aplikace v tomto okamžiku je anonymní, cenzura -odporující sdílení souborů, které umožňuje uživatelům anonymně publikovat nebo načítat informace všeho druhu. Protokol GNUnet, který poskytuje anonymitu, se nazývá GAP (GNUnet anonymity protocol).[16] GNUnet FS může navíc využívat GNU libextractor automaticky přidávat poznámky ke sdíleným souborům pomocí metadata.
Kódování souborů
Soubory sdílené s GNUnet jsou kódovány ECRS (An Encoding for Censorship-Resistant Sharing).[17]
Veškerý obsah je reprezentován jako GBlocks. Každý GBlock obsahuje 1024 bajtů. Existuje několik typů GBlocků, každý z nich slouží určitému účelu. Libovolný GBlock je jednoznačně identifikován jeho RIPEMD-160 hash .
DBlocks ukládají skutečný obsah souboru a nic jiného. Soubor je rozdělen na hranice 1024 bajtů a výsledné bloky jsou uloženy v DBlocks. Bloky jsou spojeny dohromady do Merkle strom pomocí IBlocků, které ukládají identifikátory DBlock.
Bloky jsou šifrovány pomocí symetrického klíče odvozeného z když jsou uloženy v síti.
Dotazy a odpovědi
GNUnet Anonymity Protocol se skládá z dotazů a odpovědí. V závislosti na zatížení předávacího uzlu jsou zprávy předávány na nulu nebo více uzlů.
Dotazy se používají k hledání obsahu a vyžádání datových bloků.
Dotaz obsahuje identifikátor zdroje, adresu odpovědi, prioritu a TTL (Time-to-Live).
Identifikátor zdroje datumu je trojitý hash .[18] Peer, který odpovídá na dotaz poskytuje prokázat, že skutečně má požadovaný zdroj bez poskytnutí na mezilehlé uzly, takže mezilehlé uzly nelze dešifrovat .
Adresa pro odpověď je hlavní rozdíl ve srovnání s adresou Freenet protokol. Zatímco ve Freenetu se odpověď šíří vždy stejnou cestou jako dotaz, v GNUnetu může být cesta kratší. Partner, který obdrží dotaz, jej může zrušit, vpřed bez přepsání adresy odpovědi nebo nepřímý nahrazením adresy odpovědi svou vlastní adresou. Nepřímými dotazy poskytuje peer pokrýt provoz pro své vlastní dotazy, zatímco jejich předáváním se peer vyhne tomu, aby byl odkazem v šíření odpovědí, a zachová jeho šířku pásma. Tato funkce umožňuje uživateli obchodovat s anonymitou kvůli efektivitě. Uživatel může určit úroveň anonymity pro každou operaci publikování, vyhledávání a stahování. Úroveň anonymity je nula lze použít k výběru neanonymního sdílení souborů. GNUnet DHT infrastruktura se používá pouze v případě, že je určeno neanonymní sdílení souborů. Úroveň anonymity určuje, kolik pokrytí musí mít peer, aby skryl vlastní akce uživatele.
Priorita určuje, kolik chce uživatel důvěryhodnosti utratit v případě nedostatku zdrojů.
TTL se používá k zabránění tomu, aby dotazy zůstaly v síti příliš dlouho.
URI pro sdílení souborů
The fs modul identifikátor sestává z jednoho chk, sks, ksk nebo loc následuje lomítko a hodnota pro konkrétní kategorii. Většina identifikátorů URI obsahuje hodnoty hash, které jsou zakódovány base32hex.[19]
- chk identifikuje soubory, obvykle:
gnunet: // fs / chk / [hash souboru]. [hash dotazu]. [velikost souboru v bajtech]
- Soubor hash je hash souboru prostého textu, který umožňuje dešifrování po stažení. Hash dotazu je hash nejvyššího GBlocku, který umožňuje stahování celého stromu GBlocků, které obsahují šifrovaný soubor. K určení tvaru stromu je nutná velikost souboru.
- sks identifikuje soubory v prostorech jmen, obvykle:
gnunet: // fs / sks / NAMESPACE / IDENTIFIKÁTOR
- ksk identifikuje vyhledávací dotazy, obvykle:
gnunet: // fs / ksk / KEYWORD [+ KEYWORD] *
- loc identifikuje vztažný bod na konkrétním stroji, obvykle:
gnunet: //fs/loc/PEER/QUERY.TYPE.KEY.SIZE
Příklady
Typ URI sdílení souborů GNUnet ukazující na konkrétní kopii GNU GPL text licence:GNUnet: //fs/chk/9E4MDN4VULE8KJG6U1C8FKH5HA8C5CHSJTILRTTPGK8MJ6VHORERHE68JU8Q0FDTOH1DGLUJ3NLE99N0ML0N9PIBAGKG7MNPBTT6UKG.1I823C58O3LKS24LLI9KB384LH82LGF9GUQRJHACCUINSCQH36SI4NF88CMAET3T3BHI93D4S0M5CC6MVDL1K8GFKVBN69Q6T307U6O.17992
Jiný typ URI sdílení souborů GNUnet, ukazující na výsledky hledání vyhledávání pomocí klíčového slova „gpl“:gnunet: // fs / ksk / gpl
Systém jmen GNU
GNUnet zahrnuje implementaci GNU Name System (GNS), decentralizovanou a cenzurně odolnou náhradu za DNS. V GNS si každý uživatel spravuje svůj vlastní zóny a může delegovat subdomény do zón spravovaných jinými uživateli. Vyhledávání záznamů definovaných jinými uživateli se provádí pomocí DHT GNUnetu.[20]
Překlad protokolu
GNUnet může tunelovat provoz IP přes síť peer-to-peer. V případě potřeby může GNUnet provádět IPv4-IPv6 překlad protokolu v průběhu. GNUnet poskytuje a Brána DNS na úrovni aplikace podle potřeby proxy DNS požadavky a mapovat adresy na požadovanou rodinu adres. Tímto způsobem GNUnet nabízí možnou technologii, která by se měla usnadnit Přechod IPv6. Kromě toho lze v kombinaci s GNS použít překladový systém protokolu GNUnet pro přístup ke skrytým službám - službám založeným na IP, které běží lokálně u některých vrstevníků v síti a ke kterým lze přistupovat pouze po vyřešení názvu GNS.
Sociální API
Gabor X Toth na začátku září 2013 zveřejnila diplomovou práci[21] představit design a sociální zprávy služba pro peer-to-peer framework GNUnet, která nabízí škálovatelnost, rozšiřitelnost a end-to-end šifrovanou komunikaci. Vlastnosti škálovatelnosti je dosaženo prostřednictvím doručování zpráv vícesměrového vysílání, zatímco rozšiřitelnost je umožněna použitím PSYC (Protocol for SYnchronous Conferencing), který poskytuje rozšiřitelnost RPC (Remote Procedure Call) syntaxe, která se může časem vyvíjet, aniž byste museli upgradovat software na všech uzlech v síti. Další klíčovou funkcí poskytovanou vrstvou PSYC jsou stavové kanály vícesměrového vysílání, které se používají k ukládání např. uživatelské profily. End-to-end šifrovanou komunikaci zajišťuje síťová služba GNUnet, na které jsou postaveny kanály vícesměrového vysílání. Pseudonymní uživatelé a sociální místa v systému mají kryptografické identity - identifikované podle veřejného klíče - jsou mapovány na lidská zapamatovatelná jména pomocí GNS (Systém jmen GNU ), kde každý pseudonym má zónu směřující na svá místa.
To je požadovaný stavební blok pro plné proměnění rámce GNUnet sociální sítě typu peer-to-peer plošina.
Povídat si
V modulu CADET byl implementován chat,[22] pro které třetí strany GTK rozhraní pro GNOME existuje,[23] speciálně navržen pro nově vznikající telefony GNU / Linux (např Librem 5 nebo PinePhone ).[24]
Viz také
Poznámky
- ^ GNUnet.org - O GNUnet e.V.
- ^ https://gnunet.org/en/news/2020-11-0.14.0.html; pracovní jazyk nebo název: americká angličtina; datum zveřejnění: 14. listopadu 2020.
- ^ Zdrojový kód GNUnet
- ^ „licenční oznámení umístěné nahoře v jednom ze zdrojových souborů úložiště projektu, pravděpodobně v každém ze zdrojových souborů“. Citováno 8. června 2018.
GNUnet je svobodný software: můžete jej dále šířit a / nebo upravovat podle podmínek veřejné licence GNU Affero General Public License zveřejněné nadací Free Software Foundation, buď verze 3 licence, nebo (dle vašeho uvážení) jakékoli pozdější verze.
- ^ EvansPolotGrothoff 2012.
- ^ Grothoff, Christian (10. 10. 2017). Systém GNUnet (habilitační práce). Université de Rennes 1.
- ^ Grothoff 2013.
- ^ FerreiraGrothoffRuth 2003, Obrázek 1.
- ^ FerreiraGrothoffRuth 2003, II. GNUNET A TRANSPORTNÍ VRSTVA: „Jádro je zodpovědné za šifrování mezi linkami, vazbu identit uzlů na směrovatelné adresy a vzájemné zjišťování.“
- ^ „Software GNU“. Software - GNU Project - Free Software Foundation. Free Software Foundation, Inc.. Citováno 25. ledna 2020.
- ^ GrothoffPatrascuBennettStef 2002, 3.1.1 UDP.
- ^ FerreiraGrothoffRuth 2003.
- ^ Název služby a registr čísla portu transportního protokolu, str. 37
- ^ Grothoff 2003.
- ^ GrothoffPatrascuBennettStef 2002, 2.4 Mojo Nation.
- ^ BennettGrothoff 2003.
- ^ BennettGrothoffHorozovPatrascu 2002.
- ^ GrothoffPatrascuBennettStef 2002, 5.5 Více informací o dotazech.
- ^ Grothoff, Christian. „URI sdílení souborů“. www.gnunet.org. Citováno 15. července 2016.
- ^ Wachs 2014.
- ^ Toth, Gabor X (05.09.2013), Návrh systému sociálních zpráv využívající stavové vícesměrové vysílání Archivováno 2014-02-22 na Wayback Machine - Citováno 2013-09-28
- ^ Dokumentace GNUnet.org (14.11.2019) Chatování s (jednoduchým) klientem - Citováno 2019-11-14
- ^ Cadet-GTK na GitLab
- ^ GNUnet CADET pro mobilní Linux - Reddit
Reference
- Grothoff, Christian; Patrascu, Ioana; Bennett, Krista; Stef, Tiberiu; Horozov, Tzvetan (13. 6. 2002). Dokument GNet (PDF) (Technická zpráva). Purdue University.CS1 maint: ref = harv (odkaz)
- Bennett, Krista; Grothoff, Christian; Horozov, Tzvetan; Patrascu, Ioana (03.07.2002). Batten, Lynn; Seberry, Jennifer (eds.). Efektivní sdílení šifrovaných dat. Přednášky z informatiky. 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 (odkaz)
- Ferreira, Ronaldo; Grothoff, Christian; Ruth, Paul (01.05.2003). „Abstrakce transportní vrstvy pro sítě typu peer-to-peer“ (PDF). CCGrid 2003. 3. IEEE / ACM International Symposium on Cluster Computing and the Grid, 2003. Sborník. 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 (odkaz)
- Grothoff, Dipl-Math Christian (01.06.2003). "Přidělování zdrojů v sítích typu peer-to-peer". Wirtschaftsinformatik. 45 (3): 285–292. doi:10.1007 / BF03254946. ISSN 0937-6429. S2CID 4479637.CS1 maint: ref = harv (odkaz)
- Wachs, Matthias; Schanzenbach, Martin; Grothoff, Christian (2014). „Systém cenzury odolný a plně decentralizovaný systém jmen, který zvyšuje soukromí“ (PDF). 13. mezinárodní konference o kryptologii a bezpečnosti sítí (CANS 2014). Přednášky z informatiky. 8813 (13): 127–142. doi:10.1007/978-3-319-12280-9_9. ISBN 978-3-319-12279-3.
- Bennett, Krista; Grothoff, Christian (2003-03-26). Dingledine, Roger (ed.). gap - praktické anonymní vytváření sítí. Přednášky z informatiky. Springer Berlin Heidelberg. 141–160. CiteSeerX 10.1.1.125.9673. doi:10.1007/978-3-540-40956-4_10. ISBN 9783540206101.CS1 maint: ref = harv (odkaz)
- Evans, Nathan; Polot, Bartlomiej; Grothoff, Christian (2012-05-21). Bestak, Robert; Kencl, Lukas; Li, Li Erran; Widmer, Joerg; Yin, Hao (eds.). Efektivní a bezpečný odhad velikosti decentralizované sítě. Přednášky z informatiky. Springer Berlin Heidelberg. 304–317. doi:10.1007/978-3-642-30045-5_23. ISBN 9783642300448.CS1 maint: ref = harv (odkaz)
- Grothoff, Christian (01.08.2013). „Video: Prolomili jste internet. Děláme ze sebe GNU“. gnunet.org. Pirátská strana Německo, Berlín. Citováno 4. října 2013.CS1 maint: ref = harv (odkaz)
- Grothoff, Christian (2015). „Architektura GNUnet: 45 subsystémů za 45 minut“ (PDF). Citováno 2016-07-14.