Jak działa Internet?

W 15. wieku swoistej rewolucji informacyjnej dokonała prasa drukarska, w 20. wieku dokonały tego radio i telewizja. Dziś natomiast rolę tę odgrywa internet. Czym jest i jak działa ta globalna sieć, bez której coraz trudniej wyobrazić sobie nam codzienne życie?

Internet rodził się w realiach zimnej wojny, która to zaczęła się raptem 2 lata po zakończeniu drugiej wojny światowej. Okres od 1947 do 1991 był czasem stanu napięć ideologicznych, politycznych i militarnych pomiędzy blokiem wschodnim, składającym się z ZSRR oraz sprzymierzonymi komunistycznymi krajami, a blokiem zachodnim pod przywództwem Stanów Zjednoczonych. Okres ten kojarzymy z ciągłym strachem, niepewnością jutra oraz wyścigiem zbrojeń pomiędzy dwoma mocarstwami. Internet, a właściwie jego przodek był jednym z elementów tego wyścigu.

W 1960 roku Joseph Licklider zaproponował koncepcję globalnej sieci komputerowej. Zaledwie dwa lata później Paul Baran, amerykański informatyk Polskiego pochodzenia opublikował obszerny projekt sieci komputerowej, pozbawionej punktów centralnych. Dzięki takiej architekturze potencjalne zniszczenie którejś części sieci nie spowodowałoby awarii całego systemu. Transmisja danych mogłaby zachodzić dalej. Było to zatem potencjalnie potężne narzędzie w rękach bloku zachodniego w wojnie z blokiem wschodnim.

Koncepcja Licklidera oraz projekt Barana zostały dostrzeżone przez Amerykańską agencję do spraw rozwoju technologii wojskowej ARPA. Organizacja zaangażowała się w finansowanie projektu połączenia Amerykańskich uniwersytetów eksperymentalną siecią. 29 października 1969 roku przesłano pierwszą wiadomość z Uniwersytetu Kalifornijskiego w Los Angeles do Uniwersytetu Stanforda w ramach eksperymentu ARPANET. Do sieci ARPANET z czasem dołączały kolejne uniwersytety. Termin „internet” ukazał się w latach 70, kiedy to akademiccy użytkownicy zaczęli tak nazywać ARPANET. W roku 1980 doszło do rozdziału sieci wojskowej ARPANET od sieci akademickiej zwanej już oficjalnie Internetem. Projekt ARPANET został porzucony w roku 1989 a internet pozostał do dyspozycji uniwersytetów i organizacji naukowych. W 1991 roku internet został ostatecznie udostępniony w celach komercyjnych.

Internet bardzo szybko zdobywał popularność. W latach 90 coraz więcej firm chciało się ogłaszać w internecie. Każda firma posiadająca własną stronę internetową była postrzegana jako bardzo nowoczesna. Inwestorzy bardzo chętnie kupowali akcje takich firm co powodowało szybki wzrost ich cen. W ciągu pięciu lat index Nasdaq wzrósł aż czterokrotnie. Był to okres tzw spekulacyjnej „bańki internetowej”. Gdy bańka pękł indeks Nasdaq spadł o 78% w ciągu dwóch lat. Na ponowny wzrost do dotychczasowego maksimum trzeba było czekać aż 11 lat. Był to największy dotychczasowy kryzys finansowy związany bezpośrednio z internetem.
Zatem jak duży jest internet dzisiaj? Według Internet World Stats w marcu 2021 roku aż 65.6% populacji miała dostęp do internetu. Niekwestionowanym liderem jest tutaj Ameryka Północna, w której aż 93.9% populacji miała dostęp do internetu. Europa stoi na drugim miejscu w tym zestawieniu z wynikiem 88.2%. W ramach Unii Europejskiej Polska stoi na 5 miejscu pod względem liczby obywateli korzystających z internetu. Jednakże pod względem udziału procentowego wynik 78.6% obywateli korzystających z internetu jest już znacznie mniej imponujący. Rekordzistami w ramach UE są tu Estonia, Luxembourg i Szwecja z wynikiem ponad 96%. Imponująca kariera internetu przyniosła mu niewyobrażany wzrost. Od roku 2000 do 2021 liczba użytkowników internetu wzrosła aż o 1330%. W czasie tym populacja ludzka zwiększyła się oczywiście, ale zaledwie o około 30%. Internet dociera do coraz dalszych zakamarków świata, więc bardzo prawdopodobne, że trend się utrzyma.
Internet, czyli sieć sieci lub sieć pomiędzy sieciami. Kiedy weźmiemy do ręki nasz domowy router, zobaczmy, że gniazda, jakie ma dla sieci kablowej, są oznaczone skrótami LAN, oraz WAN. Nieraz są to gniazda dokładnie tego samego typu. Skrót LAN pochodzi od Local Area Network co oznacza naszą sieć lokalną. Skrót WAN natomiast oznacza Wide Area Network. I co prawda WAN jest naszym wyjściem na świat, to wcale nie jest pewne, że drugi koniec kabla podłączanego do tego gniazda ma już wyjście na internet. Pewne jest natomiast, że drugi koniec tego kabla trafia do większej sieci, która skupia takie sieci jak ta nasza domowa. Opisana tutaj “większa sieć” może również być jednym z elementów jeszcze większej sieci i tak dalej, aż w końcu dochodzimy do internetu. Jak widać internet jest siecią zbudowaną z mniejszych, zagnieżdżonych sieci.

Aby zrozumieć jak urządzenia w sieci dokonują komunikacji, musimy poznać podstawy działania sieci. Celowo tutaj powiedziałem “sieci”, nie “internetu”, ponieważ ogólne zasady dotyczą zarówno tych mniejszych jak i tych większych, opisanych wcześniej sieci. Każde urządzenie działające w sieci dostaje unikalny numer zwany IP od “Internet Protocol”. Numer ten staje się identyfikatorem umożliwiającym rozpoznanie danego urządzenia. Tak samo jak telefony mają swoje numery, nadawcy oraz odbiorcy poczty mają swoje adresy, tak urządzenia działające w sieci mają numery IP.

Kiedy zachodzi potrzeba nawiązania połączenia z innym urządzeniem, nasz smartfon, tablet czy laptop wysyła w ramach sieci do której ma dostęp, jeden bądź wiele tzw “pakietów”. Pakiety są uporządkowanymi w ściśle określonej kolejności i strukturze zbiorami bitów, zawierającymi treść wiadomości, oraz nagłówek. To właśnie w nagłówku znajdują się wszelkie dane, które są wykorzystywane przez urządzenia sieciowe do odpowiedniego przekazywania pakietów w sieci. Dane takie jak choćby numer IP znajdują się właśnie w nagłówku pakietu. Urządzenia, które działają w infrastrukturze sieci takie jak na przykład przełączniki czy routery czytają każdy nagłówek, oraz na jego podstawie podejmują odpowiednie działania. Proszę tutaj zwrócić uwagę, że każda osoba, która ma odpowiedni dostęp do tych urządzeń w zasadzie byłaby w stanie przeczytać zarówno nagłówek, jak i treść wiadomości. Pomijam tutaj kwestię szyfrowania wiadomości.

Taki rodzaj podsłuchiwania komunikacji nazywamy “węszeniem” z angielskiego “sniffing”. Węszyć może praktycznie każdy, kto jest w stanie imitować urządzenie sieciowe pomiędzy naszym laptopem a serwerem docelowym, oraz posiada ogólnodostępne darmowe oprogramowanie.
Istnieje bardzo wiele typów pakietów. Jedne działają co do zasady szybciej, inne są przeznaczone do zadań, gdzie istotna jest wysoka niezawodność, jeszcze inne raczej służą do diagnostyki sieci. To, co je łączy to fakt, że ich nagłówki zawsze są możliwie jak najłatwiejsze do przeczytania. Gdyby tak nie było, nie wiadomo by było, dokąd taki pakiet przesłać dalej. Widzimy zatem, że nadawca i odbiorca wiadomości jest znany dla każdego, kto w którymś momencie będzie mógł przeczytać zawartość pakietu. Treść wiadomości można zaszyfrować, ale nagłówek pozostaje jawny.

Kiedy pakiety wychodzą poza naszą sieć domową, ich nagłówki ulegają modyfikacji. Nagłówek pakietu wychodzącego do WAN przez nasz domowy router zostaje zmodyfikowany w taki sposób, że nadawcą niniejszego pakietu nie jest już IP naszego komputera, tylko IP routera. A dokładnie rzecz ujmując IP, którym router się identyfikuje w tej “większej” sieci. Pakiet wędruje dalej do kolejnych sieci i za każdym razem, kiedy przeskoczy z jednej sieci do drugiej, jego nagłówek ulegnie zmianie. Kiedy serwer, z którym usiłujemy się skontaktować odpowie nam na naszą wiadomość, wyśle swój pakiet na adres z którego otrzymał nasz pakiet. Jest tutaj jeden problem. Skoro nagłówek pakietu wysłanego przez nas ulegał zmianie wiele razy, skąd wiadomo gdzie skierować pakiet wysłany w ramach odpowiedzi. Otóż ta funkcjonalność leży już w samych routerach. Każdy router nie tylko zmienia nagłówki, ale także śledzi stan połączenia i doskonale wie, które pakiety są wysłane w odpowiedzi, a które nie tak długo, jak połączenie jest otwarte. Taki mechanizm nazywamy mechanizmem “trasowania”.

Mechanizmy trasowania w sieci domowej są bardzo proste. Jeśli jednak przyjrzymy się budowie internetu w trochę większej skali, zobaczymy, że internet nie posiada żadnych punktów centralnych. Jest to sieć rozproszona. Oznacza to, że jeśli chcemy skontaktować się z jakąś stroną internetową, to wędrówka pakietów może przebiegać bardzo różnymi trasami, w zależności od obciążenia danych odcinków sieci globalnej. Jak to działa, że możliwości tras jest tak wiele, a mimo to pakiety nigdzie się nie gubią po drodze do celu?

Odpowiedzią jest podział internetu na Systemy Autonomiczne. System Autonomiczny to zazwyczaj duży ośrodek, który posiada jakąś pulę unikalnych adresów IP. Dostawcy internetu, centra danych, ośrodki naukowe, korporacje mogą zarejestrować się jako system autonomiczny. To właśnie systemy autonomiczne odpowiedzialne sią za nadzorowanie i optymalizowanie chuchu w internecie. Oczywiście robią to zazwyczaj w celu maksymalizacji korzyści z tego płynących. Systemy autonomiczne zestawiają połączenia między sobą. Każdy system może mieć wiele takich “sąsiadujących” systemów do których zna trasy oraz na bierząco monitoruje ruch, dzięki czemu jest w stanie go optymalizować. Zatem kiedy tylko wpiszemy w pasek URL naszej przeglądarki adres jakiejś strony, żądanie w formie kompletu pakietów zostaje wysłane do najbliższego systemu autonomicznego, jakim jest nasz dostawca internetu. Dostawca znając trasy do serwera docelowego dokonuje wyboru spośród swoich tras, którą przesłać nasze pakiety do kolejnego systemu. W kolejnym systemie procedura się powtarza aż do systemu do którego podłączony jest serwer docelowy. Na koniec pakiety trafiają do interfejsu sieciowego serwera i zostają zinterpretowane. Wędrówka pakietów przez internet prawie zawsze zachodzi za pośrednictwem kilku lub kilkunastu urządzeń pośredniczących.

Oczywiście sam podział internetu na Systemy Autonomiczne nie miałby sensu, gdyby nie specyfikacja połączeń między nimi. Border Gateway Protocol (w skrócie BGP) jest faktycznym fundamentem internetu. Dzięki temu protokołowi Systemy Autonomiczne na bierząco wymieniają się trasami i optymalizują ruch w internecie. Lista aktywnych systemów cały czas się zmienia. Nowe systemy zostają zarejestrowane, a niektóre kończą działanie. Nadzorowanie tylu tras bardzo dynamicznie się zmieniających byłby bardzo trudnym celem. BGP automatyzuje ten proces i optymalizuje ruch.
Oczywiście BGP, jak każdy inny protokół należy prawidłowi skonfigurować. Niestety w przypadku tego protokołu błędy w konfiguracji mogą przynieść poważne konsekwencje. W 2004 roku Turecki dostawca internetu przypadkiem dokonał wysłania błędnych tras do sąsiednich systemów autonomicznych. Sąsiednie systemy uznały, że rzeczony dostawca internetu stanowi najlepszą trasę dla wszystkich połączeń. Ta błędna wymiana tras później propagowała do kolejnych systemów autonomicznych czego następstwem było ogromne obciążenie sieci tureckiego dostawcy i ostatecznie jednodniowym odcięciem wielu użytkowników na całym świecie od internetu.

W 2008 roku natomiast Pakistański dostawca internetu, za pomocą BGP próbował odciąć obywateli Pakistanu od serwisu YouTube. W wyniku pomyłki wysłano trasy, które spowodowały, że wszyscy użytkownicy na świecie zostali odcięci od usługi. Kryzys został zażegnany po kilku godzinach.
Hakerzy również nie pozostają obojętni na BGP. Wielu z nich doskonale zdaje sobie sprawę z tego jak krytyczny element internetu stanowi ten protokół. W kwietniu 2018 roku w wyniku przechwycenia BGP, grupa hakerska przejęła kontrolę nad usługą DNS zarządzaną przez korporację Amazon. Hakerzy ukradli kryptowaluby o wartości około $100.000.

Morał tej opowieści jest dość prosty. Korzystanie z internetu powinno się wiązać z dużą ostrożnością pod wieloma względami. Czy się to nam podoba czy nie, fundamenty internetu stoją na zaufaniu. Ufamy administratorom Systemów Autonomicznych, ustawieniom bezpieczeństwa własnych systemów operacyjnych, czy nawet ludziom, którzy zarządzają routerem w kawiarni, w której piejmy poranną kawę. Szyfrowanie danych, wybieranie silnych haseł oraz zabezpieczonych połączeń, ograniczanie zaufania do innych użytkowników czy minimalizowanie naszych prywatnymi danymi w internecie powinno być dla nas standardem. Pamiętajmy, że jeśli nie padliśmy nigdy ofiarą ataku hakerskiego, nie oznacza to, że ktoś naszych danych nie zdobył stając kiedyś pomiędzy nami, a usługą, z której chcieliśmy kiedyś skorzystać. Dane raz pozyskane, mogą być przechowywane latami. Administratorzy zarządzający infrastrukturami w biurowcach, w których pracujemy stosują rozmaite zasady bezpieczeństwa, ale musimy pamiętać, że zawsze najsłabszym ogniwem w zabezpieczeniach systemów informatycznych nie jest oprogramowanie, urządzenia czy polityka bezpieczeństwa, tylko my – użytkownicy. My decydujemy o tym jak się łączymy z internetem, jakie dane wprowadzamy do internetu, oraz jak je zabezpieczamy. Robimy to na własne ryzyko.