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/cgitaf/DynaPage.taf?file=/nature/journal/v412/n6850/full/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é.