Případ kolapsu sítě Skype zahýbal celým internetem a ovlivnil miliony uživatelů na celém světě. Protože za problémy stojí velmi zajímavá shoda náhod a celá kauza je z technického hlediska pozoruhodná, rozhodli jsme se o ní napsat i my.
Jak funguje Skype?
Pro pochopení celého problému je potřeba mít alespoň základní znalosti o principech, na kterých je Skype postaven. Jedná se o distribuovanou síť, velmi podobnou klasickým P2P sítím pro sdílení nejrůznějších souborů. V tomto případě je ovšem síť využívaná výhradně k jedinému účelu – přenosu hlasu případně videa mezi uživateli.
U klasických VoIP systémů, které používají například standard SIP, je k dispozici jeden centrální bod, ke kterému se všichni uživatelé přímo připojují. Těchto bodů pak může být samozřejmě více, všechny mají ale v rámci sítě výjimečný statut a pro klienty je jejich existence klíčová. Výpadek takového serveru způsobí nedostupnost všech klientů, kteří se k tomuto konkrétnímu serveru připojují.
Takové centrální body jsou každopádně v dnešním internetu naprostou nutností. Většina dnešních uživatelů totiž nemá svou vlastní veřejnou IP adresu a jejich počítače spolu proto nemohou komunikovat přímo. Je tedy potřeba zajistit uzel, který zprostředkuje směrování hovorů mezi těmito klienty.
Tento problém samozřejmě řeší i Skype, ale jde na to zcela jinak. U něj neexistují podobné centrální servery, ale síť se skládá z takzvaných supernodů. Ty ovšem nevytváří provozovatel sítě, ale rekrutují se z běžných počítačů uživatelů, které mají veřejnou IP adresu a jsou přímo dostupné z internetu.
Skype klient na takovém počítači se tak dle potřeby umí automaticky proměnit v supernod a zastat tak úlohu serveru. Jednotlivé uzly pak spolu komunikují, předávají si důležitá data o síti a směrují jednotlivé hovory. Uživatel samozřejmě do jejich činnosti nijak nezasahuje a vše probíhá na pozadí běžné komunikace.
Podle dostupných informací připadá na jeden supernod asi 300 běžných Skype klientů. Celá síť je tedy velmi dynamická a mění se jednak podle toho, jak uživatelé zapínají své počítače, ale také podle aktuální potřeby a zatížení sítě.
V principu je taková síť velmi odolná vůči vnějším vlivům a ani výpadek její velké části by neměl vést ke kolapsu celku. Bohužel i taková situace však může nastat.
Z pohledu uživatele
První problémy se objevily už ve čtvrtek 16. srpna 2007, kdy uživatelé po celém světě začali hlásit problémy se sítí. Problém nepostihl celou síť naráz, ale docházelo k jeho postupnému „šíření”, které trvalo několik hodin. Poté se už odmlčela celá síť.
Společnost Skype se k problému oficiálně vyjádřila:
Někteří z vás mají problémy se přihlásit ke Skype. Náš vývojový tým zjistil, že se jedná o softwarovou chybu. Předpokládáme, že se nám ji podaří odstranit za 12 až 24 hodin. Do té doby můžete nechat svého klienta běžet, jakmile bude problém vyřešen, klient se sám připojí.
Později se objevila další zpráva, která potvrdila, že se nejednalo o útok, ale o chybu.
Pracujeme na odstranění problému a chtěli bychom rozptýlit některé pochybnosti. Skype nehavaroval a nestal se obětí kyber útoku. Potíže se vyskytly v důsledku chyby v jednom z algoritmů sítě Skype. Ten zajišťuje komunikaci mezi klientem a zbytkem sítě.
O den později se začala situace zlepšovat a uživatelé byli informováni o tom, že se problém podařilo téměř vyřešit.
Jsme na dobré cestě k zotavení. Skype se stabilizuje, ale tento proces ještě může během dne probíhat. Mnoho uživatelů už zase může Skype používat. Je jasné, že ještě nejsme ze všeho venku, ale jsme na tom rozhodně lépe než včera.
Následující den, tedy dva dny poté, co se začaly objevovat první problémy, se konečně podařilo vše vyřešit.
Zhluboka se nadechněte. Skype je opět v normálu.
Zdá se tedy, že síť už pracuje jako dřív a všichni uživatelé by měli být schopni se opět připojit a využívat jejich služeb. Dlouhou dobu však nikdo netušil, k čemu vlastně došlo.
Spekulovalo se o útoku, problémech s napojením CIA do sítě, poškození autentizačních uzlů nebo problémy s novou aktualizací. Mnoho různých informací můžete najít například v článku Jiřího Peterky na Lupě.
Jak to bylo doopravdy?
V pondělí se objevilo poměrně stručné, ale zato oficiální vyjádření společnosti k celému případu. Nyní je tedy jasné, co přesně se stalo.
Podle těchto informací byl na vině restart mnoha klientů zároveň zapříčiněný příchodem nové aktualizace operačního systému MS Windows. To způsobilo rozpad celé sítě.
Ve čtvrtek 16. srpna 2007 se Skype peer-to-peer síť stala nestabilní a utrpěla kritické poškození. To bylo způsobeno masivním restartem uživatelských počítačů po celé Zemi během velmi krátké doby, kdy přijaly rutinní softwarovou záplatu skrze Windows Update.
Klienti tedy po obdržení update operačního systému automaticky restartovali. To způsobilo odpojení mnoha uzlů (supernodů) sítě a prudké snížení dostupných zdrojů. Samozřejmě nedošlo zdaleka k odpojení všech supernodů, ale ty, které zůstaly, byly rychle zavaleny ohromným množstvím požadavků, které je také postupně vyřadily z činnosti.
Ohromné množství restartů postihlo zdroje sítě Skype. To způsobilo příliv nových požadavků pro přihlášení, který, v kombinaci s nedostatkem zdrojů, vedl k řetězové reakci s kritickým dopadem.
S podobným scénářem se samozřejmě od začátku počítalo a síť by se s ním měla normálně vyrovnat a v krátké době obnovit svůj běžný provoz. Bohužel do celé věci ještě zasáhla chyba v síti, která zabránila rychlému zotavení.
Za normálních okolností má peer-to-peer síť Skype zabudovanou schopnost samoopravy, ale tato událost odhalila dříve neobjevenou chybu v síťovém alokačním algoritmu, který nepracoval dle očekávání. Bohužel důsledkem této chyby byla dvoudenní nedostupnost sítě.
Problém je v tuto chvíli již lokalizován a představitelé Skype ujistili všechny uživatele, že nedošlo k narušení jejich soukromí.
Problém byl objeven uvnitř Skype. Můžeme potvrdit, že se neobjevily žádné škodlivé aktivity a bezpečnost uživatelů nebyla v žádném případě ohrožena.
Společnost Skype přiznala, že se jednalo o problém zatím nevídaných rozměrů. Zároveň se ale hájí tím, že výpadky jsou i v jiných sítích běžnou záležitostí.
Jedná se o nebývalou poruchu co do rozsahu a dopadu. Chtěli bychom podotknout, že jen velmi málo technologií nebo komunikačních sítí garantuje svou funkci zcela bez výpadků.
Může za to Microsoft?
Spouštěcím mechanismem byla tedy updatovací služba MS Windows, která distribuuje své záplaty příliš nárazově. Za normálních okolností to nevadí, ale ve spojení s chybou uvnitř Skype to způsobilo kolaps celé komunikační sítě. A to jsme si do nedávna mysleli, že distribuovaná a decentralizovaná síť je v podstatě nesmrtelná…