Naivní myšlenka stvořit decentralizovaný internet

Featured Image

Zdravím čtenáře D-FENS blogu. Hned na začátku uvedu shrnutí o čem je řeč, na základě kterého se může každý rozhodnout, jestli má zájem o detaily nebo ne.

Vzhledem k utahujícím se šroubům, narůstajícímu fízlování a cenzuře na poslední svobodné platformě (internetu) jsem se rozhodl, že zkusím stvořit jeho decentralizovanou verzi, odolnou proti cenzuře a zásahům vyšší moci. Spíše dříve než později dojde ke globální snaze podmínit přístup na internet unikátním ID ovčana – samozřejmě ve jménu boje proti dezinformacím, deepfakům nebo libovolnému jinému strašidlu. Moje myšlenka je taková, že člověk si k počítači připojí bezdrátový vysílač, spustí příslušný software a spolu se svými sousedy (kteří budou mít stejné zařízení), vytvoří pomocí již existujících technologií síť nikoliv plně nahrazující všechny vlastnosti internetu, ale poskytující svobodnou alternativu k němu.

Tím končí stručné shrnutí. Protože vyrobit takové technické řešení je problematika velice komplexní, na některé vaše dotazy a námitky budu mít odpověď a na jiné ji mít nebudu. Jakkoliv si mohu považovat svých znalostí IT, tak programátor i matematik jsem prachbídný a snaha vytvořit alespoň základy tohohle řešení mě učinila velmi pokorným, při zjištění jak málo toho vím.

Fáze první – simulační platforma

Než dojde k čemukoliv praktickému, první moje snaha je vytvoření simulační platformy. V ní musím vyzkoušet všechny myslitelné scénáře – od prvního ideálního, kdy každý desátý v Praze (nebo jiném městě) má takové zařízení doma, přes reálnější, kdy má zařízení sotva každý tisíctý člověk a na síť se snaží útočit různé zájmové skupiny, až po případy takřka nereálné, jako že by třeba bylo zařízení na celou síť až moc. Bez provedení potřebných simulací, vytvoření vhodného routovacího protokolu a definice bezdrátových (a ostatních technických) vlastností nemá vůbec smysl uvažovat nad výrobou zařízení. Samozřejmě je i nezbytné v rámci simulací jasně prokázat, že zvolené řešení bude fungovat jak je zamýšleno.

V takové simulační platformě bude (kromě jiného) nutné:

  1. Ručně vytvořit, nebo podle zadaných parametrů vygenerovat 3D model města
  2. Vytvořit věrný model bezdrátových vysílačů a simulaci bezdrátového signálu v 3D prostoru
  3. Na výše uvedené aplikovat funkční vrstvu systému, tedy např. modifikovatelný routovací protokol který bude řídit provoz v síti, nebo datové přenosy mezi vysílači
  4. Umožnit zásahy do sítě vnějšími vlivy – cílené útoky na síť, výpadky proudu…
  5. Optimalizovat běh simulace aby poskytovala správné výstupy až do úrovně 100 tisíc zařízení tvořících síť

Nyní uvedu jako příklad pár nejobvyklejších otázek a námitek:

Otázka: Nic podobného (simulační platforma) ještě neexistuje?

Existuje, podobného, například omnetpp nebo ns2/ns3 jsou simulační platformy pro testování síťových infrastruktur a jejich protokolů. Ačkoliv pro ně existují i nadstavby (např. NetSimulyzer pro ns3) pro 3D vizualizaci, tak použití uvedených platforem je velmi obecné a počítá spíše s menšími sítěmi a použitím existujících protokolů, než se simulací 100 tisíc bezdrátových vysílačů používajících unikátní routovací protokol, do toho simulaci útoků, měření hodnot signálu a simulaci a měření hodnot datových přenosů v takovém měřítku. Pokud je někdo na uvedené nástroje odborník a je si jistý, že to co popisuji lze v těchto nástrojích provést (bez přepsání 80% daného softwaru), rád se nechám přesvědčit.

Otázka: Nic podobného (celé popisované řešení) ještě neexistuje?

Existuje, podobného. Jedná se o komunitní bezdrátové sítě, např. Freifunk, Netsukuku, AWMN a mnoho dalších po světě. Mají zásadní problém – ty největší mají maximálně pár tisíc uživatelů a nikdy nebudou mít víc.

Otázka: Proč by ta síť co vymýšlíš měla mít víc uživatelů?

Zde se obávám, že si znepřátelím všechny skalní fanoušky Linuxu, Raspberry a Mikrotiku (ačkoliv vše uvedené používám sám) :-) Ta síť co vymýšlím, by mohla mít víc uživatelů, protože to nebude typický open-source clusterfuck rozbité složitosti a hrabání se v příkazové řadce. Ačkoliv bude celý systém samozřejmě open-source, tak bude plug&play. Zapojí se do počítače, zapnete ovládací software a vše bude automaticky fungovat. Aby to mohl používat běžný Franta uživatel. Jakkoliv miluji se hrabat v linuxím terminálu (a většinou mi to i platí účty), tak běžný Franta uživatel to neumí, nechce to umět, nezajímá ho to a jakýkoliv systém kde je používání složitější než „zapoj a zmáčkni tlačítko zapnout“ nebude z principu používat. Proti argumentu, že běžný Franta uživatel by o takovou věc beztak nestál namítnu, že osobně znám několik lidí, co by o danou věc zájem měli, ale jsou to obchodníci, advokáti, účetní, grafici a další, pro které není vrtání se v terminálu přínosem a nikdy nebude.

Otázka: Co když to celý vyrobíš a nikdo si to nikdo nepořídí?

Tak já budu furt mít radost, že jsem se alespoň pokusil vyřešit problém cenzury internetu místo toho abych si na ní jen stěžoval. A hlavně se za tu dobu naučím hromadu nových věcí, které bych jinak neuměl :-)

Otázka: Jak jsi s tím daleko?

Na začátku. Jak jsem popisoval, vytvořit celý takový systém (pořádně) je zcela mimo můj stávající rozsah znalostí. Nemluvě o simulační platformě, k vytvoření popsaného zařízení a celého systému který ho bude ovládat jsou potřeba odborné znalosti MANET protokolů, bezdrátových vysílačů, šifrování, komprese, programování na všech úrovních, matematiky… O všech těch tématech něco vím, ale zdaleka ne dost, aby mi potřebné studium nezabralo aspoň dalších 10 let. Jakožto důkaz o mých směšných programátorských znalostech stačí fakt, že aktuální stav simulační platformy je malý terminálový „program“ v Pythonu, který umí jen vykreslit zadané routery do statického 2D rastru a spočítat vzdálenost mezi nimi + pár drobností navíc.

Otázka: Nebude to strašně pomalý, s latencí jako kráva?

Ne, když se to navrhne správně. Internetu se to samozřejmě výkonem nevyrovná, ale na svobodnou komunikaci a sdílení dat (pokud nepůjde o terabajty přes celé město) to bude s přehledem stačit. Pro sdílení dat bude kritickým prvkem systému P2P protokol. Pokud například bude jeden člověk sdílet video na které se bude chtít podívat polovina města a všichni se k němu připojí najednou, nepodívá se nikdo. Pokud bude součástí systému protokol podobný např. IPFS, lze velmi snadno replikovat sdílená data i s ověřením jejich shody s originálem a značně tak ulevit vytížení sítě pomocí distribuce sdíleného obsahu.

Otázka: Jak bude fungovat routování?

Protože nepůjde o statickou síť, bude nutné použít jeden z MANET protokolů, případně automatizovanou, zjednodušenou verzi BGP. Z mého dosavadního studia MANET protokolů mi vyplývá, že bude potřeba hybridní protokol, tedy takový který routy hledá proaktivně i reaktivně. Takové protokoly jsou například ZRP nebo varianty ZHLS. Když přeložím fungování např. ZRP (Zone Routing Protocolu) do lidské řeči a velmi ho zjednoduším, tak Router A si vytvoří pomyslnou zónu, kterou tvoří jeho sousedi do vzdálenosti dvou „hopů“ – tedy routery, se kterými si může Router A povídat napřímo a jejich sousedi – tedy routery, se kterými si mohou přímí sousedi Routeru A povídat napřímo – z těch se pro Router A stanou periferní sousedi. Když se Router A bude chtít spojit s Routerem X, nejdřív prohledá svojí zónu, jestli se v ní Router X nachází. Pokud ne, tak se Router A zeptá svých periferních sousedů – těch vzdálených 2 hopy, jestli se Router X nenachází v jejich zóně. Pokud se Router X nenachází ani v jejich zónách, tak se první periferní routery zeptají svých vlastních periferních routerů a celý proces se opakuje, dokud se Router X nenajde. Jakmile k Routeru X dorazí požadavek na spojení, je v něm (požadavku) uložena i zpětná cesta, kudy Routeru A odpovědět. Tento proces samozřejmě může být značně urychlen tím, pokud kterýkoliv router po cestě již zná cestu k Routeru X.

Otázka: Jak to bude se zařízením? Každý si ho složí sám? Budeš ho prodávat?

Sám ještě nevím, ale přímý prodej s poskytnutním technických specifikací zařízení mi přijde nejsmysluplnější. Každý skládat sám = nepořídí si to nikdo, protože opět, nikdo z pracujících co se neživí technikou se ničím takovým zabývat nebude.

Otázka: Co právní aspekty?

Využívání rádiových frekvencí je definováno v opatřeních obecné povahy vydávaných Českým Telekomunikačním Úřadem. Obvyklá pásma pro dálkonosné spoje jsou 60 GHz a 24 GHz, méně obvyklé jsou 17 GHz, 5 GHz a 2,4 GHz. Všechna jsou bezlicenční, tedy volně k použití při dodržení stanovených hodnot vyzařování. Provozovat takové zařízení je tedy zcela stejně legální jako mít obyčejný Wi-Fi router. Napadení systému ze strany hostování nelegálního obsahu bude vyřešené point-to-point šifrováním mezi nody. Komu dáte přístup, ten uvidí váš obsah. Podle stávající judikatury zodpovídá za hostování nelegálního obsahu provozovatel hostingu (tedy majitel hardwaru, na kterém data jsou) – v případě navrhovaného systému tedy půjde pouze o lidi, kteří daný obsah sdílejí z vlastní vůle. Zákon se nevztahuje na síť jako takovou a z technického hlediska ani nemůže – navrhované řešení bude pouze vytvářet síťovou infrastrukturu. Trestat kohokoliv za provozování popsaného zařízení by bylo stejné, jako trestat Vodafone nebo Cetin za to, že jejich sítě někdo využívá k nelegální aktivitě – nesmysl. Konkrétně toto řeší 3. paragraf článku 2 směrnice č. 2000/31/ES , aneb část téhož definující odpovědnost Poskytovatelů služeb spočívajících v přenosu informací poskytnutých uživatelem. Další právní věci k vyřešení jsou např. jestli zařízení a software patentovat a co to přinese, nebo jakou open-source licenci zvolit.

„Otázka“: Celý je to nesmysl/To nikdy nemůže fungovat/Nikdo to nebude chtít/Ztrácíš čas…

To je určitě možný, ale neodradí mě to :-)

Otázka: Proč to dáváš na D-FENS?

Protože komunitu kolem D-FENS považuju za ideologicky sobě nejbližší v celé ČR a tahle moje myšlenka, ač jde o technologický projekt, má svoje základy v osobním přesvědčení o nedoknutelnosti svobody projevu a práva na soukromí. Věřím, že většina zdejších čtenařů to vidí podobně – a chci slyšet jejich názory. Hlavně taky věřím tomu, že tu najdu lidi, co vědí o sítích, programování a matematice mnohonásobně víc než já a obzvlášť o jejich postřehy, nápady a kritiku mám zájem. Tím, že dostanu tenhle nápad na veřejnost doufám docílím toho, že se pár podobných naivních bláznů přidá a spolu celou věc dotáhneme ke zdárnému konci – protože dřív než bych to stihnul sám už budou provideři nuceni pro přístup k internetu vyžadovat po všech uživatelích jejich státem vydaný průkaz ovčana, a to už bude pozdě.

Fáze druhá – vývoj

  1. Vytvoření finální podoby použitého MANET protokolu a přenosových/P2P protokolů a jejich rozšíření, např.:
    1. Systém pro anonymizaci routování (pokud bude technicky smysluplně proveditelný)
    2. Šifrování a komprese datových přenosů
    3. Integrace s existujícími síťovými protokoly, např. FTP, IRC, HTTP/S, SSH…
  2. Vytvoření prototypu routeru
  3. Vytvoření finální podoby uživatelské nadstavby – tj. softwaru na straně počítače ke kterému bude zařízení připojené – pro Windows, Linux i Mac, a potřebné doplňky:
    1. Ovladače zařízení
    2. Grafické rozhraní

Fáze třetí – testování / proof of concept

  1. Porovnání simulací s realitou při použití několika desítek prototypů zařízení
  2. Finální úpravy systému

Fáze čtvrtá – komerční

Zde ještě sám netuším, jak by měla vypadat… Každopádně je do ní dost daleko :-)

Jsem si jistý, že čtenáře napadne mnoho otázek, které jsem tu nevypsal – pokusím se na ně odpovídat v komentářích, samozřejmě pokud budu znát odpověď. Technicky zdatné čtenáře, vývojáře, adminy, síťaře a ostatní určitě napadne řada technických otázek, např. jak je řešená identita routeru, nebo jestli chci používat beamforming a pokud ano, tak jak chci řešit odrazy signálu mezi budovami. Na většinu těhle otázek mám alespoň koncept řešení, založený na existujících technologiích. Správnost mých řešení už ale otestuje jen čas, případně (ideálně) větší machři na dané problémy než já.

Myslím, že největším problémem navrhovaného systému bude množství uživatelů. To sice nelze nijak najisto vyřešit, ale lze si zvýšit šance. Například tím, že systém bude opravdu plug&play a fungovat na první dobrou, zacházení s grafickým rozhraním bude snadné a intuitivní a veškerý marketing bude co nejsrozumitelnější, aby každý pochopil, co mu to může přinést.

Děkuji za pozornost

Tomáš Blažíček

www.netgine.cz

12345 (147x známkováno, průměr: 1,61 z 5)
13 186x přečteno
Updatováno: 19.2.2023 — 21:35
D-FENS © 2017