Užiteční paraziti na Internetu - nepracuje váš stroj pro někoho jiného?

1. 4. 2002

Sdílet

Víte, co všechno se děje s vaším počítačem připojeným k internetu? Neboobráceně: Proč spotřebovávat vlastní zdroje, pokud lze použít zdroje někoho jiného? Novým fenoménem, o n

Víte, co všechno se děje s vaším počítačem připojeným k internetu? Nebo
obráceně: Proč spotřebovávat vlastní zdroje, pokud lze použít zdroje někoho

jiného? Novým fenoménem, o němž se diskutuje, zda patří spíše do zneužití nebo

do šikovného využití internetu, se stalo tzv. parasitic computing. Podívejme

se, co umí, jak vůbec vzniklo, a jak se na ně dívá svět.



Parazitující výpočetní systémy, tak by se snad dal nejlépe přeložit nový termín

parasitic computing, který se objevil v oblasti využití (nebo zneužití?)

internetu. Čtyři výzkumníci na University of Notre Dame v Indianě, USA

(Albert-Laslo Barabasi, Vincent Freeh, Hawoong Jeong a Jay Brockman), v létě

2001 zveřejnili, jak účinně přesvědčit webové servery připojené k internetu,

aby za ně vyřešily část složitého výpočetního problému. Toto využití webových

serverů není narušením jejich bezpečnosti a nejedná se tedy přímo o zločinné

praktiky na internetu, i když se tak děje bez vědomí jejich vlastníků a

správců. Ve skutečnosti má parasitic computing dopad na výkonnost webových

serverů to může mít za následek problematický útok na bezpečnost v podobě

odmítnutí služby (DoS, Denial of Service).





Parasitic computing není grid computing



Zatím je parasitic computing jedním z příkladů nových technologií, které lze

současně považovat za nebezpečí, stejně jako za možné užitečné využití

globálního síťového propojení. Na rozdíl od tzv. mřížkového výpočetního systému

(grid computing nebo cluster computing), kdy vlastníci systému připojených k

internetu nabízejí volné kapacity svých síťových zdrojů pro složité

distribuované výpočty (např. projekt SETI@home, Search for Extraterrestrial

Intelligence), parasitic computing funguje tajně a nekontrolovaně, bez svolení

a vědomí majitelů využívaných počítačů, tedy formou krádeže. První experiment

autorů tohoto mechanismu byl mnohem složitější a časově náročnější než využití

pouze síťových kapacit jejich univerzity, ale poukázal na obrovské možnosti,

které v sobě ještě internet skrývá. Autoři sami nazývají svůj počin zjištěním a

nikoli vynálezem. Tato možnost na internetu existovala vždy a někdo ji stejně

nakonec musel objevit.





Jak parasitic computing funguje



Spolehlivá webová komunikace po internetu probíhá na základě transportního

protokolu TCP (Transmission Control Protocol) a aplikačního protokolu HTTP

(HyperText Transport Protocol). Protokoly webové komunikace lze využít pro

výpočty, a tím změnit celý internet na distribuovaný počítačový systém

virtuální superpočítač. V něm pak webové servery neuvědoměle vykonávají

operace. Vzdálený parazitující uzel jinými slovy nutí cílové systémy řešit část

komplexního problému pouze tak, že s nimi naváže běžnou komunikaci. Cílové

systémy ve skutečnosti nespolupracují na řešení problému, pouze provádějí dílčí

výpočet, který je nezávislou a vyhodnotitelnou součástí rozsáhlého problému.



Všechny zprávy, jejichž kontrolní součet se pro parasitic computing používá,

jsou běžné TCP segmenty posílané na server HTTP. Jedná se o neplatné požadavky

protokolu HTTP nebo neplatné segmenty TCP. Webové servery podobné zprávy

dostávají od prohlížečů zcela běžně, proto tento mechanismus nenarušuje

integritu webového serveru víc než běžný webový prohlížeč. Mimochodem využití

TCP je pouze jednou z možností, jak provádět parasitic computing. Podobně by se

dalo využít i komunikace na úrovni IP, kdy by se výpočty přesunuly z koncových

uzlů na směrovače na cestě mezi koncovými systémy; to by však mohlo zvýšit

zátěž směrovačů a zapříčinit vznik úzkých míst v síti. Využití výhradně

koncových systémů pro parazitující výpočty je umožněno teprve od transportní

vrstvy, kde již pracují koncové protokoly: transportní TCP (experimentálně

vyzkoušeno), nebo protokoly HTTP či šifrování (SSL, Secure Socket Layer).

Poslední dvě možnosti jsou zatím neprozkoumané a mohou být potenciálně

efektivnější než experimentální využití TCP.



Jedinou obranou proti parazitujícímu zneužívání připojeného počítače k

internetu je odpojit ho od Sítě. Autoři nezveřejnili svůj vypracovaný program,

protože upozorňují, že by jej šlo upravit s cílem provádět skutečné pirátství

zneužívat k internetu připojených webových serverů.



Parasitic computing dnes vyvolává otázky kolem využití zdrojů internetu, jejich

vlastnictví a distribuované spolupráce. Nejedná se tedy pouze o možnou změnu k

využití distribuovaných výpočetních kapacit přístupných prostřednictvím

internetu, ale o další a složitější otázky z oblasti práva, etiky a vědy.

Parasitic computing by mohlo snadno nabídnout téměř neomezené výpočetní

kapacity na Síti (i když v současné době náklady a náročnost tohoto využití

dílčích zdrojů jsou velmi vysoké). Ale palčivou otázkou pro nás všechny

zůstává, jak s touto možností naložit. Má být umožněna? Za jakých podmínek? Kdo

ji bude řídit?







Komunikace po http pod drobnohledem



Webová komunikace je složitý proces vyžadující spolupráci všech vrstev síťové

architektury TCP/IP: když uživatel zadá svému webovému prohlížeči identifikátor

stránky (URL, Universal Resource Locator), kterou chce stáhnout, tak jeho

systém musí nejprve navázat spojení s daným cílovým systémem pomocí

transportního protokolu TCP (Transmission Control Protocol). Na základě

navázaného spojení a otevřené komunikační cesty internetem vyšle lokální systém

požadavek protokolu HTTP (HyperText Transport Protocol) po existujícím spojení

TCP. Transportní zpráva TCP je následně předána lokální vrstvě IP (Internet

Protocol), která může tuto zprávu rozdělit do více datagramů IP, pokud je

zpráva delší, než umožňuje přenést připojená síť. Tyto datagramy jsou pak

nezávisle na sobě přenášeny sítí přes směrovače na cestě mezi lokálním

(zdrojovým) počítačem uživatele a cílovým webovým (HTTP) serverem.



Cílový HTTP server si sestaví přijatý požadavek postupně na základě obdržených

datagramů IP a s využitím kontrolních mechanismů kontrolního součtu transportní

vrstvy, konkrétně protokolu TCP. Pokud by některý ze segmentů byl přenesen s

chybou (některé bity by nesouhlasily s původní zprávou), musel by si protokol

TCP vyžádat opětovné vyslání segmentu. Pokud jsou všechny segmenty obdrženy

bezchybně, celý původní požadavek TCP předá protokolu HTTP v aplikační vrstvě.

Tento požadavek je cílovým serverem zpracován a odezva je podobným způsobem

(přes jednotlivé vrstvy TCP/IP a po síti) odeslána uživateli v rámci otevřeného

spojení TCP.



Zdánlivě triviální úkol jako stažení webové stránky vyžaduje spolupráci všech

vrstev architektury TCP/IP u koncových systémů, tedy lokálního uživatele a

vzdáleného webového serveru. Jednoduchý požadavek znamená řadu výpočtů přepočtů

kontrolního součtu každého přeneseného segmentu TCP. Právě výpočet kontrolního

součtu segmentů TCP zakládá možnost provádět vyžádané matematické operace

kontrolované vzdáleně, a to bez svolení vlastníka daného systému.





Zdroje:



Parasitic computing http://www.nd.edu/~parasite/

Nature 412, 894 897 (2001), Macmillan Publishers Ltd.

http://www.nature.com/cgi­taf/DynaPage.taf?file=/na­ture/journal/v412/n6850/fu­ll/4

12894a0_fs.html







Parasitic computing



Samostatný parazitující uzel (zelený) vzdáleně koordinuje výpočty prováděné v

internetových protokolech. Zasílá speciálně sestavené zprávy na cílové uzly

(modré skříňky), což jsou webové servery, jež mají v sobě zabudovánu

aritmetickou a logickou jednotku (ALU) a síťové rozhraní (NIF).



Parazitující uzel rozesílá zprávu pro každé možné řešení (černé šipky v obrázku

a), ale přijímá odpovědi pouze pro každé platné řešení (červená šipka v obrázku

a).



Funkce komunikačních vrstev při komunikaci parazitujícího uzlu a cílových

webových serverů



Paket nesoucí problém, který má být vyřešen, vstupuje do sítě na IP úrovni

obchází TCP vrstvu parazitního uzlu. Zpráva je sestavena tak, že neplatné

řešení způsobí chybu v TCP kontrolním součtu, a je odhozeno, což je zobrazeno

černou šipkou „neúspěšná komunikace“. Pouze platná řešení pokračují nahoru přes

TCP vrstvu do HTTP, což je zobrazeno červenou šipkou, označenou „úspěšná

komunikace“. Cílové webové servery odpovídají na všechny požadavky, jež

dosáhnou HTTP, a to dokonce i na neplatné.