Vyšlo na Lupě, 20.8.2007
Vytištěno z adresy: http://www.earchiv.cz/b07/b0820001.php3

Stalo se: Skype padl na ústa

Oblíbená služba Skype  minulý týden zkolabovala. Od čtvrtka do sobotního poledne měli uživatelé po celém světě problémy už s přihlášením se ke službě. Co přesně se stalo, se dosud neví. Oznámeno to má být dnes, předběžně prý jde o softwarovou chybu. Neoficiálně se spekuluje o rozpadu celé soustavy superuzlů a nutnosti postavit vše znovu od základu.

Minulý týden přinesl uživatelům oblíbené služby Skype velké zklamání: služba, na kterou většina z nich nenechala dopustit, nefungovala tak jak měla. A jak celou dobu, plné čtyři roky od svého spuštění v srpnu 2003, fungovala. Typickým příznakem byla nemožnost přihlásit se ke službě, případně rychlé „oscilování“ mezi přihlášeným a  nepřihlášeným stavem. A následně nemožnost používat služby, které Skype poskytuje. Zejména hlasové hovory.

Na českém Internetu se první zprávy o problémech Skypu začaly objevovat ve čtvrtek 16.8.2007 v odpoledních hodinách.  Zde na Lupě se první zprávička objevila v 15:50 a vycházela z informací několika čtenářů, kteří si stěžovali  na potíže trvající již několik hodin. S obdobnými zprávami přicházela i zahraniční média, podle nich měl Skype vážné problémy již od čtvrtečního rána po celé Evropě.

Na následujícím grafu, který ukazuje počet aktivních (on-line, přihlášených) uživatelů služby Skype (červeně) a počet stáhnutí Skype klienta (modře),  je vše vidět velmi názorně: v určitém okamžiku, kdy počet aktivních uživatelů překročil hranici 6 milionů, začal náhle velmi strmě padat. To, že se podle grafu měl tento pád zastavit na úrovni 1 milionu a po  určitou dobu být konstantní, jde nejspíše na vrub způsobu snímání a tvorby tohoto grafu, než realitě.

zdroj

Problémem je bohužel také přesné načasování, protože u grafu chybí údaj o časovém pásmu, ke kterému je vztažen. Pochází z Japonska, kde mají oproti našemu letnímu času plus 7 hodin, ale zařazení „bodu zlomu“ ještě do středy 15.8.2007 (někam do odpoledních hodin) dává tušit, že ve skutečnosti je vztažen spíše k časovým pásmům daleko na západ o nás, a nikoli směrem na východ. Ostatně, i podobné grafy na Skype Journalu mají v časových pásmech pěkný zmatek. 

Kdy a jak reagoval Skype?

Nejde-li určit přesný začátek potíží z grafů (kvůli nejasnému časovému pásmu), vezměme za bernou minci alespoň hlášení našich i zahraničních uživatelů o tom, že Skype měl vážné problémy už od čtvrtečního rána (tj. 16.8.2007). Jak a kdy na ně poprvé zareagoval Skype jako takový, resp. jeho představitelé?

První oficiální reakce (na oficiálním blogu Skype) přichází cca ve 14 hodin GMT (tj. v 16 hod. našeho letního času). Hovoří o tom, že

někteří uživatelé služby Skype mohou mít problémy s přihlašováním do sítě …
naši technici zjistili, že jde o softwarovou záležitost …
očekáváme odstranění potíží do 12 až 24 hodin ….
nechte své klienty zapnuté,  jakmile bude závada odstraněna, budete přihlášeni …
omlouváme se za nepříjemnost (inconvenience)

Soudě podle průběhu grafu (hlavně rychlosti jeho pádu, po „bodu zlomu“) už ale muselo být i provozovatelům Skype jasné, že nejde jen o „některé uživatele“, ale o jejich velmi podstatnou část.

V každém případě ale Skype reagoval poměrně pozdě, až řadu hodin poté, co uživatelé začali zaznamenávat a hlásit problémy (nejméně od čtvrtečního rána v Evropě). Přitom včasnější reakce Skypu a informace o tom, že „závada je na jejich straně“, mohla ušetřit řadě uživatelů čas a námahu s hledáním příčiny na vlastní straně. Dokazuje to i následující detailní graf, na kterém je patrné jak s prvními problémy začal narůstat počet stažených verzí klienta SKype. Lidé nejspíše zkoušeli řešit problém instalací novějšího klienta.

zdroj

Povšimněte si na  tomto grafu (ze Skype  Journalu), že je vztažen k jinému časovému pásmu, než předchozí (celkový) graf, neboť jeho datování „bodu zlomu“ je jiné.  Možná je vztažen k časovým pásmům Evropy, což by odpovídalo  tomu že problémy začaly někdy kolem půlnoci ze středy na čtvrtek našeho času – a ráno uživatelé zjistili, že se přes Skype nedovolají.

Není to útok ani krach!

O osm hodin po prvním vyjádření (v 10pm GMT, resp. o půlnoci našeho času) přichází další reakce:

Tvrdě pracujeme na odstranění problémů, a rádi bychom rozptýlili případné pochybnosti ….
Systém Skypu se nezhroutil ani nebyl napaden. Máme své zákazníky natolik rádi, že bychom nic takového nedopustili.
K problému došlo kvůli chybě v jednom algoritmu v rámci síťového softwaru Skype, který ovládá interakci mezi klientem Skype a zbytkem sítě Skype .
Můžeme všechny ujistit, že všichni ve Skypu pracujeme naplno – od Tallinnu, přes Lucemburk po San José – na co nejrychlejším obnovení normálního provozu.

Žádné upřesnění doby, kdy bude stav vrácen do normálu, však v tomto vyjádření nezaznívá. Přitom z původně slibovaných 12 až 24 hodin uplynulo již 8.

Za další čtyři hodiny, a tedy s vypršením původně slibované spodní hranice (již v pátek 17.8.2007, nad ránem), přichází další vyjádření:

Děláme pokroky. Cítíme, že jsme na správné cestě k navrácení služeb do normálu.

Opět ale žádný nový odhad termínu obnovení služeb, ani nic bližšího ohledně příčin. Obdobně nic neříkající byla i další dvě vyjádření (zde a zde), následující s odstupem jen několik málo hodin. Tipuji, že v mezidobí už nastoupil nějaký manažer krizového řízení, který radil  pravidelně vydávat alespoň nějaké sdělení, byť i fakticky prázdné, a udržovat tak kontakt s uživatelskou veřejností.

V 11 hodin (GMT), stále ještě v pátek 17.8., přichází další ujištění, že vše je na nejlepší cestě k obnově,  že celý systém se začíná stabilizovat. A také konstatování, že na vině problémů nebyla předem plánovaná údržba platebních mechanismů, které u Skypu proběhla těsně před pádem, 15.8.2007 (kolem 7 hod. GMT). A opakované ujištění, že za problémy nestojí žádné napadení Skypu a jeho systémů.

V noci z pátku 17.8. na sobotu 18.8. přichází další ujištění, že se situace dále zlepšuje, a také doporučení pro „menšinu těch, kteří ještě zaznamenávají problémy“:

Nemusíte dělat nic se svým počítačem, ani ho restartovat. Začne fungovat už brzy ….

No a v sobotu 18.8. dopoledne, konkrétně v 11 hodin GMT (tj. ve 13 hod. našeho času) přichází konstatování:

Skype je zpět v normálu….

Tedy až po 44 hodinách od prvního oficiálního přiznání problémů (16.8.2007 ve 14 hod. GMT).

Kdy se dozvíme podrobnosti?

Zatím poslední oficiální vyjádření, ze sobotního poledne (11 hod. GMT 18.8.2007) obsahuje také příslib zveřejnění  podrobnějších informací o tom, co a jak se vlastně stalo. Ovšem až v pondělí 20.8.2007, a tedy až poté, co tento článek vyjde.

Jako autora tohoto článku mne to staví do složité pozice, protože  mohu pracovat jen s dostupnými dohady a spekulacemi, zatímco při čtení tohoto článku už může být vše jinak, a vy už můžete mít v ruce oficiální vyjádření společnosti Skype. Mějte to prosím na paměti, až budete číst dále.

K samotnému vyjádření, které Skype slibuje na pondělí, si dovolím dopředu vyjádřit názor, že jeho sestavení určitě nebude jednoduché. A to nejen z „marketingových“ důvodů, tak aby to pro samotnou společnost Skype vyznělo co možná nejméně negativně. Vždyť celkový image služby Skype, pečlivě (a úspěšně) budovaný po celou dobu provozu od roku 2003, utrpěl v posledních několika dnech pořádnou ránu. Řada lidí, která si zvykla na bezproblémovou dostupnost této služby, a třeba i díky ní přestala používat klasickou pevnou telefonní síť, může přehodnotit své preference a volby.

V neposlední řadě bude sestavení výsledné zprávy těžké i kvůli tomu, že důvody mohou být i „dosti technické“. Naopak jejich vysvětlení by mělo být dobře srozumitelné i úplným laikům, a to může být také pořádným oříškem. A hlavně: celý Skype je uzavřené proprietární řešení. O tom, jak je koncipováno a jak funguje, se sice v hrubých obrysech tuší, ale konkrétní detaily nejsou známy. A třeba v rámci kódu samotného klienta Skype jsou detaily pečlivě ukrývány, s aktivními nástrahami vůči těm, kteří by se snažili přijít věcem na kloub, například skrze trasování (podrobněji pro opravdu hodně technicky laděné čtenáře). Přitom právě takovéto detaily, které Skype bude nejspíše dále tajit, mohou být všemu na vině.

Běžný zákazník, kterého technické detaily naopak nemusí vůbec zajímat, se určitě bude ptát i na to, proč opětovné postavení Skypu „na nohy“ trvalo tak dlouho. A také zda se takovéto případy budou opakovat, či zda je možné je zcela vyloučit atd. A  vysvětlujte někomu takovéto věci, bez zabíhání do technických detailů. Navíc ve světě velkého (a tvrdého) byznysu, kde jde o nemalé peníze, a kde Skype sice má velmi silné postavení, ale na druhé straně rozhodně není bez konkurentů, kteří nynější příležitost určitě nenechají ležet ladem.

Co se tedy stalo?

Znovu si dovolím připomenout, že v době psaní tohoto článku byly k dispozici jen různé spekulace a dohady o tom, co a jak se službě Skype vlastně přihodilo. Přesto snad neuškodí, když si je alespoň stručně nastíníme.  Připomeňme si, že dosavadní vyjádření společnosti Skype vylučují napadení (např. útok DDOS) či souvislost s údržbou platebních mechanismů, a hovoří o „chybě v algoritmu“

Mezi nejodvážnější asi patří spekulace o tom, že problémy Skypu způsobilo zapojení systému, který umožní monitorování všech hovorů a další komunikace ze strany CIA (zdroj). I přes oficiální dementi pak stále kolují spekulace o tom, že přeci jen šlo o napadení. Exploit pro napadení autentizačních serverů Skype prý je znám a dostupný již delší dobu (zdroj). Jenže proč by při těchto příčinách trvala náprava tak fatálně dlouho? Zde by určitě šlo nové zařízení odpojit, či aspoň restartovat, vrátit se k předchozímu backupu, postavit či jen spustit nějakou u obranu proti distribuovanému útoku DOS atd.

Přitom Skype je hodně decentralizovaný systém na bázi P2P, který by měl být vůči útokům typu DOS ze své podstaty velmi odolný. Pravdou ale je, že jedna jeho část, konkrétně ta, co má na starosti autentizaci uživatelů (v rámci  jejich přihlašování do sítě), je koncipována centralizovaně. A tak by se právě ona mohla stát cílem napadení, a způsobit  i vyřazení celého systému. Jenže: logicky je autentizace uživatelů skutečně centralizovaná, fyzicky jsou ale příslušné servery replikovány, a je jich prý na 50 (zdroj). A nechce se mi věřit, že by provozovatelé Skype nemysleli dopředu na nějakou jejich ochranu proti útoků typu DDOS.  

Další ze spekulací je vliv série záplat, které Microsoft uvolnil pro své produkty těsně před výskytem problémů. K tomu se společnost Skype sama nevyjádřila (jejím dementováním). Přesto ji asi lze snadno vyloučit, protože stejné problémy měli klienti na jiných platformách, a také uživatelé kteří záplaty vědomě neinstalovali. Navíc sám Skype sice během řešení problémů vydal novou verzi svého klienta pro Windows, ale víceméně v tichosti, „bez vazby na výpadek“, a nijak neagitoval za její co nejrychlejší nainstalování. To naznačuje, že chyba skutečně nebyla na straně klienta Skype.

Skype a jeho superuzly

Zdaleka nejvíce spekulací a dohadů se nakonec točí kolem toho, že Skypu se doslova „rozpadla pod rukama“ jeho síť superuzlů, a kvůli tomu musel znovu „stavět“ celou svou síť, prakticky od základů. A právě to mu trvalo tak dlouho. Přitom prvotním podnětem, který vyvolal příslušnou řetězovou reakci, prý mohl vyvolat nepovedený softwarový update, provedený 15.8. v rámci údržby platebních mechanismů. Ale třeba také něco jiného.

Pro docenění této varianty si ale nejprve musíme říci něco více o tom, jak Skype doopravdy funguje. Tedy v rámci toho, co se o něm ví, protože jinak jde o uzavřený proprietární systém, jehož detaily jsou záměrně udržovány v tajnosti.

U všech systémů IP telefonie musí být nějak vyřešeno to, aby se vědělo o umístění všech koncových uzlů (telefonů), a díky tomu se k nim mohly směrovat příchozí hovory. Plus další potřebné informace, včetně mechanismů umožňujících převod mezi adresami vyšší úrovně (ať již to jsou Skype loginy, SIP adresy, či telefonní čísla) na síťové adresy (IP adresy), kde je připojeno zařízení volaného. U otevřených řešení, jako například u systému na bázi H.323 či na bázi protokolu SIP, zajišťují takovéto věci specializované servery (tzv. gatekeepery u H.323, či location servery a další u SIPu), které nejsou nijak skrývány, ale jsou naopak „plně viditelné“. A také většinou „fixní“ a trvalé v čase. Obvykle je provozují poskytovatelé VOIP služeb, ale mohou si je provozovat i sami uživatelé (například ve firmách). Pokud mají tyto servery nějaký výpadek, jimi „obsluhované“ telefony mohou mít problémy, ale zbytek sítě by to nemělo ovlivnit.

Jenže u služby Skype to funguje jinak – a jak přesně, není známo. Ví se pouze to, že určitou obdobu gatekeeperů (location serverů atd.) zde jsou tzv. superuzly (supernodes), které si mezi sebou určitým způsobem distribuují všechny potřebné informace o celé síti. Jak přesně to dělají, se tají, ale nejspíše vznikají dynamicky, podle momentální potřeby. Potřebné informace o topologii a struktuře sítě si zřejmě uchovávají v jakési distribuované hašovací tabulce (DHT, Distributed Hash Table). Navíc plní ještě jednu roli, kterou mohou plnit i gatekeepery v H.323: zprostředkovávají vedení samotných hovorů těm uzlům, které z nějakého důvodu nejsou schopny komunikovat přímo. Nejčastěji proto, že jsou schovány za nějakým firewallem, či alespoň za NATem. Příslušná volání, a případně i samotné hovory mezi takovýmito dvěma uzly, pak prochází nikoli přímo, ale přes superuzel.

Samotné superuzly přitom nesmí být umístěny za firewally ani NATy, musí mít veřejné IP adresy a být přímo dostupné z Internetu (podrobněji např. zde). Jeden superuzel by přitom měl připadat na 300 aktivních koncových uzlů (telefonů).

Kdo ale tyto superuzly provozuje? Odpověď je velmi důležitá: sami uživatelé!! Provozovatelé služby Skype zřejmě také sami zajišťují provoz několika superuzlů (super-superuzlů), ale o většinu superuzlů  se starají sami uživatelé, resp. jejich počítače. Přes ně pak prochází i provoz, který s jejich telefonováním a aktivitami nemá nic společného. Samozřejmě to je podchyceno ve smluvních podmínkách služby Skype (zde, odstavec 4.1), ale zdaleka ne každý uživatel to ví a počítá s tím. Nehledě na to, že takovéto „cizí toky dat“ přes vlastní počítač něco stojí na konektivitě, a také „něco znamenají„  z pohledu bezpečnosti. Navíc při způsobu fungování, do kterého „není vidět“ a je záměrně utajován.

Ne každý si také hned uvědomí, že Skype může poskytovat své služby zcela zdarma (volání v rámci Skype) i díky tomu, že jeho uživatelé sami nesou náklady na provoz všech potřebných superuzlů. Přitom znalejší uživatelé se obvykle aktivně brání tomu, aby se z jejich počítače superuzly staly (jejich schováváním za NATem či firewally), takže hlavní tíže asi leží na méně zkušených a znalých uživatelích. A jejich uzly jsou asi nejvíce zranitelné nejrůznějšími nástrahami. A na takto „nepredikovatelných základech“ (diplomaticky řečeno) je postavena celá služba Skype, od které se naopak očekává naprosto spolehlivé fungování?

Nebo jiná úvaha: pro každých cca 300 aktivních (online) uživatelů by měl být zřízen jeden superuzel. Ovšem stále větší procento uživatelů si své počítače chrání, právě jejich schováváním za NATem či firewally. Možností pro zřízení superuzlů je tak čím dál tím méně, ale uživatelů služby Skype je čím dál tím více, a počet potřebných superuzlů tak naopak roste. Není toto časovaná bomba, která může jednou vybuchnout?

Rozpad struktury superuzlů?

Zpět ale k možnému vysvětlení nynějších problémů: tento zdroj, který se zdá být velmi dobře informovaný, naznačuje  že středeční softwarový update platebních mechanismů mohl obsahovat nějakou chybu, která způsobila řetězovou reakci. V jejím důsledku se rozpadla distribuovaná hašovací tabulka (DHT), ve které je „rozprostřena“ informace o celé síti Skype, a v důsledku toho se rozpadla i celá soustava superuzlů. Centrální autentizace uživatelů sice nadále fungovala, ale uzel který jí úspěšně projde si musí rychle najít nejbližší superuzel, ke kterému by se logicky připojil (asocioval). A jelikož takový superuzel nenašel, musel se hned zase odpojit a vše zkoušet znovu, skrze autentizaci. Odsud ono „oscilování“ stavu, které pozorovali mnozí uživatelé.

Provozovatelé Skypu přitom museli zajistit, aby se celá struktura superuzlů vybudovala znovu, vlastně „na zelené louce“. K tomu určitě potřebovali, aby lidé nechávali své počítače zapnuté, navíc s puštěnými klienty Skype (aby tyto mohly začít plnit roli superuzlů).  S tím pak koresponduje obsah výše citovaných vyjádření společnosti Skype, kde se několikrát objevuje apel na ponechání spuštěných klientů, které se zapojí samy, jakmile to půjde. A také apel na to, aby lidé nerestartovali své počítače, což by samozřejmě nabouralo postupné „stavění na nohy“ celé sítě superuzlů.

Pokud je toto vysvětlení pravdivé, pak jej docela zajímavě dokresluje i graf, který byl uvedený již na začátku článku (a zde je pro názornost znovu). Všimněte si na něm dvou zeleně vyznačených špiček. Tipuji, že odpovídají neúspěšným pokusům o rekonstrukci systému superuzlů, neboli jakémusi nechtěnému zhroucení části dosud zrekonstruované stavby. Možná následovanému změnou strategie stavby, resp. obnovy.  

Na závěr ale znovu připomínám, že jde jen o spekulace, a že oficiální popis událostí od společnosti Skype je slíben na dnes, tj. na pondělí 20.8.2007.