Počítače a sítě
Směrování v sítích
Pojmem směrování (routing) je označováno hledání cest v počítačových sítích. Jeho úkolem je dopravit datový paket určenému adresátovi, pokud možno co nejefektivnější cestou. Směrování je základním úkolem síťové vrstvy (L3) referenčního modelu OSI. Prakticky jej zajišťují routery (směrovače) v rámci WAN sítě (Internet).
Stavový firewall
Firewall
Firewall je síťové zařízení, které slouží k řízení a zabezpečování síťového provozu mezi sítěmi s různou úrovní důvěryhodnosti a zabezpečení. Zjednodušeně se dá říct, že slouží jako kontrolní bod, který definuje pravidla pro komunikaci mezi sítěmi, které od sebe odděluje. Tato pravidla historicky vždy zahrnovala identifikaci zdroje a cíle dat (zdrojovou a cílovou IP adresu) a zdrojový a cílový port, což je však pro dnešní firewally už poměrně nedostatečné – modernější firewally se opírají přinejmenším o informace o stavu spojení, znalost kontrolovaných protokolů a případně prvky IDS. Firewally se během svého vývoje řadily zhruba do následujících kategorií:
- Paketové filtry
- Aplikační brány
- Stavové paketové filtry
- Stavové paketové filtry s kontrolou známých protokolů a popř. kombinované s IDS
Paketové filtry
Nejjednodušší a nejstarší forma firewallování, která spočívá v tom, že pravidla přesně uvádějí, z jaké adresy a portu na jakou adresu a port může být doručen procházející paket, tj. kontrola se provádí na třetí a čtvrté vrstvě modelu síťové komunikace OSI.
Výhodou tohoto řešení je vysoká rychlost zpracování, proto se ještě i dnes používají na místech, kde není potřebná přesnost nebo důkladnější analýza procházejících dat, ale spíš jde o vysokorychlostní přenosy velkých množství dat.
Nevýhodou je nízká úroveň kontroly procházejících spojení, která zejména u složitějších protokolů (např. FTP, video/audio streaming, RPC apod.) nejen nedostačuje ke kontrole vlastního spojení, ale pro umožnění takového spojení vyžaduje otevřít i porty a směry spojení, které mohou být využity jinými protokoly, než bezpečnostní správce zamýšlel povolit.
Mezi typické představitele paketových filtrů patří např. tzv. ACL (Access Control Lists) ve starších verzích operačního systému IOS na routerech spol. Cisco Systems, popř. JunOSspol. Juniper Networks, starší varianty firewallu v linuxovém jádře (ipchains).
Stavový firewall
Stavový firewall (též stavový paketový filtr, anglicky stateful firewall) je označení pro takový firewall, který podporuje SPI (anglicky Stateful packet inspection), což znamená, že je schopen sledovat a udržovat všechny navázané TCP/UDP relace. Stavový firewall pracuje na transportní vrstvě referenčního modelu ISO/OSI. Je schopen rozlišovat různé stavy paketů v rámci jednotlivých relací (spojení) a jeho úkolem je propustit pouze takové, které patří do již povolené relace (jiné jsou zamítnuty).
Obdobou stavového firewallu je nestavový firewall, který se rozhoduje pouze na základě informací obsažených v konkrétním paketu (pracuje na nižší síťové vrstvě ISO/OSI modelu) a aplikační firewall, který pracuje naopak na vyšší síťové vrstvě.
Klasický příklad, kdy může provoz sítě selhat s nestavovým firewallem, je FTP (File Transfer Protocol). Tento protokol dle návrhu může pracovat ve dvou režimech. V aktivním režimu klient odešle (na port 21) serveru číslo portu (větší než 1024) a server se na něj ze svého portu (20) připojí. V pasivním režimu to funguje přesně opačně – server pošle klientovi port (větší než 1024) a on se na něj připojí (z portu většího než 1024). Preferovanější režim je zpravidla pasivní, díky vyšší bezpečnosti. Problém spočívá v tom, že pracovní port se mění s každým připojením, takže není možné napsat bezpečné a jednoznačné statické filtrovací pravidlo, které by dokázalo FTP spojení rozpoznat. Stavové firewally tento problém řeší tím, že si udržují tabulku navázaných spojení a inteligentně asociují nové požadavky na připojení s existujícími v tabulce. Například v Linuxu modulip_conntrack_ftp
dokáže z navazovaného spojení „odposlechnout“ kombinaci portů. Dále pak zajistí, že stavový firewall tyto pakety označí RELATED – tedy povolené.
Adresování IP
Adresu sítě přiděluje oblastní správce (pro Evropu RIPE).
Adresu je 32bitová (8b.8b.8b.8b) a skládá se z adresy sítě + adresy uzlu v rámci sítě. Kolik bitů tvoří adresu sítě se dozvíme z masky (255.0.0.0 znamená že prvních 8b je adresa sítě). Soukromé sítě maji vyhrazené rozsahy adres (192.168.0.0 - 192.168.255.0, aj.) a nesmí být připojené na Internet přímo ale přes router, který přes proxy adresy přeloží.
IP adresy se dělí na:
- unicast - adresa jednoho konkrétního počítače
- multicast - adresa pro více počítačů najednou
- broadcast - adresa na všechny počítače. Šíří se jen v rámci segmentu počítače, dál není propuštěna (255.255.255.255)
- loopback - zpětnovazební adresa, pošle paket zpátky na vlastního počítač (127.0.0.1)
NAT (Network Address Translation)
Překlad zdrojové nebo cílové IP adresy na IP adresu sítě (nejčastěji v vnitřní s privátními adresami na síti vnější s veřejnými adresami). Probíhá na routrech, které k tomu využívá překladové tabulky.
- Dynamický NAT - používá se v případě kdy máme více počítačů než přidělených veřejných adres a chceme, aby měly všechny stroje přístup k veřejné síti. Pak veřejné adresy plavou v poolu a jsou přidělovaný dle potřeby.
- Statický NAT - mapuje konkrétní adresu vnitřní sítě na konkrétní adresu vnější sítě.
Sdílení přístup ke kanálu
Metody sdílení přenosového kanálu se dělí na :
- deterministické (bezkolizní) - řídí se algoritmem, který přesně definuje kdo kdy bude vysílat a ke klizím nedochází
- nedeterministické (kolizní) - algoritmus je založen dost na náhodě (náhodné časové prodlevy) a musí řešit kolize, tedy situace kdy chce naráz na kanálu vysílat více stanic
Šifrování a autentizace
Základní pojmy
Pojmem utajení (angl. confidentality) rozumíme přenos dat takovým způsobem, že cizí posluchač naslouchající na přenosovém kanále významu přenášených dat nerozumí.
Autentizace (angl. authentication) zdroje dat dává příjemci jistotu, že odesílatel dat je skutečně tím, za koho se vydává. Zajištěná integrita dat (data integrity) dává příjemci jistotu, že data nebyla na cestě nikým zmodifikována.
Kryptografickým systémem rozumíme systém, který na straně odesílatele dat šifruje zprávu, přenáší ji zašifrovanou (angl. cyphertext) a na straně příjemce původní zprávu dešifruje. Šifrování lze principiálně realizovat dvěma způsoby.
- Prvním z nich je vyvinout konkrétní šifrovací algoritmus a ten přede všemi mimo příjemce utajit. V případě prozrazení je však (možná i hardwarová) implementace takovéhoto systému k ničemu.
- Proto se zpravidla používá druhý způsob a to použít (i veřejně známý) algoritmus, jenž však bude parametrizován pomocí klíčů, které jediné musí zůstat utajeny. Podmínkou je pouze to, aby bylo dost možných klíčů, aby útočník nebyl schopen jednoduše vyzkoušet všechny z nich.
Slovem šifra nebo šifrování budeme označovat kryptografický algoritmus, který převádí čitelnou zprávu neboli prostý text na její nečitelnou podobu neboli šifrový text. Klíč je tajná informace, bez níž nelze šifrový text přečíst. Hašovací funkce (speciálně navržena pro kryptografii) je způsob, jak z celého textu vytvořit krátký řetězec, který s velmi velkou pravděpodobností identifikuje nezměněný text. Certifikáty a elektronický podpis jsou softwarové prostředky, které umožní šifrování textu.
Základní typy šifrování
S ohledem na způsob zacházení s klíči rozlišujeme v kryptografii 2 způsoby šifrování:
- Symetrická šifra je taková, která pro šifrování i dešifrování používá tentýž klíč a to jak na vysílači tak na příjmači.
- Asymetrická šifra používá veřejný klíč pro šifrování a soukromý klíč pro dešifrování, který zná pouze příjemce zprávy. Asymetrická šifra má narozdíl od symetrické tu výhodu, že ji odpadá problém s utajenou distribucí klíčů. Na druhou stranu používané algoritmy pro šifrování jsou mnohem složitější a náročnější na výpočty (např. RSA, Diffie-Hellman) a tudíž pomalejší. Uplatnění má např. u digitálního podpisu.
Na obrázku vpravo: Bob chce poslat Alici zašifrovanou zprávu - zašifruje ji veřejným klíčem Alice a ona už si ho rozšifruje svým soukromým.
Autentizace v symetrickém a asymetrickém systému
Šifrování v symetrickém i asymetrickém systému je realizováno konkrétním šifrovacím algoritmem. Podívejme se ale nyní, jak lze v obou těchto systémech prakticky zrealizovat autentizaci a na ní se vážící zabezpečení integrity dat.
V symetrickém systému založeném na sdíleném tajemství (hesle) mezi vysílačem a přijímačem můžeme uživatele autentizovat jednoduše tak, že jeho uživatelské jméno zašifrujeme klíčem a na přijímači je opět dešifrujeme a porovnáme se seznamem autorizovaných uživatelů.
Autentizace na základě symetrického šifrování (sdíleného klíče) a otisku (hashe)
Jestliže chceme pouze ověřit identitu odesílatele, aniž bychom k tomu potřebovali seznam uživatelských jmen na přijímači, můžeme postupovat tak, že na vysílači nejprve ke jménu uživatele připojíme jeho otisk (hash) a celou zprávu poté zašifrujeme. Přijímač, který zprávu jako celek dešifruje, pak může smysluplnost dešifrované informace ověřit tak, že z dešifrovaného uživatelského jména stejnou hash funkcí jako předtím (např. MD5) vysílač vypočte otisk a srovná jeho shodu s dešifrovaným otiskem .
Pro výpočet otisku používáme vhodnou jednosměrnou funkci (hash), která z velkého bloku dat vypočte tzv „otisk“ – blok několika bajtů, jenž blok dat charakterizuje. Hash funkce je volena tak, aby nebylo možné najít a podvrhnout jiný text zprávy, který bude mít stejný otisk jako zpráva původní.
Společně s autentizací odesílatele se zpravidla implementuje i zajištění integrity přenášených dat. Zajištění integrity mezi uživateli sdílejícími tajný klíč se realizuje tak, že odesílatel v paměti za zprávu připojí sdílený tajný klíč a z celého bloku [zpráva+sdílený tajný klíč] vypočte otisk. Poté vyšle původní zprávu a otisk celé dvojice. Přijímač pak za došlou zprávu v paměti připojí sdílený klíč a stejnou hash funkcí jako vysílač vypočte otisk. Ten poté srovná s otiskem, který spolu se zprávou vyslal vysílač.
Autentizace na základě asymetrického šifrování (sdíleného klíče) a otisku (hashe)
V asymetrickém systému se autentizuje poněkud odlišným způsobem, na kterém jsou mj. založeny i elektronické podpisy.
Princip je vidět z obrázku:
Uživatel Alice chce poslat zprávu uživateli Bob. Z dat nejprve vypočte otisk a ten zašifruje svým soukromým klíčem KA_PRIVATE. Data zprávy zašifruje veřejným klíčem Boba, který jako jediný může zprávu dešifrovat svým soukromým klíčem
KB_PRIVATE. Mimo to Bob prověří, zda zprávu vyslala Alice tak, si z dešifrované přijaté zprávy sám spočítá otisk a dešifrovaný otisk od Alice dešifruje všem dostupným veřejným klíčem Alice. Dešifrování proběhne úspěšně pouze v případě, že byl otisk zašifrován soukromým klíčem Alice, který vlastní jedině ona. A pouze v případě úspěšného dešifrování otisku se bude dešifrovaný otisk zprávy shodovat s otiskem vypočteným Bobem a Alice bude považována za autentizovaného odesílatele přijaté zprávy.
Zdrojem jsou skripta - Směrované a přepínané sítě (Petr Grygárek) a wikipedie
Protokolová rodina TCP/IP
TCP/IP je rodina protokolů pro komunikaci v síti a tedy i Internetu.