\"/
\"/ \"/    

Bezpečnostní funkce v počítačových sítích

Petr Hanáček, UIVT FEI VUT
Ročník X - číslo 2, prosinec 1999
Citace: P. Hanáček. Bezpečnostní funkce v počítačových sítích. Zpravodaj ÚVT MU. ISSN 1212-0901, 1999, roč. X, č. 2, s. 5-9.
Tematické zařazení: Bezpečnost
 předchozí článek | následující článek 

1  Bezpečnostní funkce v počítačových sítích

Problémem, který se objevil v souvislosti s rozšířením Internetu, je zabezpečení přenášených informací. V dřívějších dobách, kdy byly všechny informace na Internetu poskytovány zdarma a jednalo se převážně o informace akademického charakteru, byla potřeba jejich zabezpečení minimální. Informace byly přístupné komukoli - nebylo tedy třeba je utajovat. Informace byly poskytovány zdarma a bez záruky - nebylo tedy třeba chránit jejich integritu.

Dnes, kdy se za poskytované informace platí a kdy se často jedná o důvěrné nebo citlivé informace, se objevila velká potřeba zabezpečení přenosu těchto informací. Především se jedná o potřebu autentizace, integrity, důvěrnosti a někdy nepopiratelnosti. Tyto služby se převážně implementují pomocí kryptografických mechanismů (šifrování).

1.1  Bezpečnostní služby v počítačových sítích

Nyní se pokusme zodpovědět otázku, které bezpečnostní služby by měla komunikační síť nabízet. Odpověď nalezneme například v mezinárodním standardu ISO 7498-2 ISO/OSI Security Architecture, který definuje základní bezpečnostní služby pro komunikační sítě. Bezpečnostní služby, popsané ve standardu, mohou být v praxi implementovány na různých vrstvách komunikačního protokolu. V souladu se standardem ISO/OSI budeme bezpečnostní služby dělit do následujících skupin: služby pro autentizaci, služby pro řízení přístupu, služby pro zajištění důvěrnosti, služby pro zajištění integrity a služby pro nepopiratelnost.

Autentizace
V počítačových sítích je mnoho typů subjektů, které musí nebo mohou být identifikovány a autentizovány. Jde především o fyzické subjekty (například uzly sítě, směšovače atd.), logické subjekty (typicky procesy) a lidské subjekty (např. uživatele a správce). Identifikací rozumíme určení jednoznačné identity subjektu bez jejího ověřování. Autentizací rozumíme ověření proklamované identity subjektu.

Služby pro autentizaci mají za úkol provádět autentizaci (ověření totožnosti) jedné nebo obou stran při komunikaci. Služby pro autentizaci se dělí na služby Autentizace odesílatele a služby Autentizace spojení. Služby Autentizace odesílatele autentizují pouze odesílatele zprávy a nemusí poskytovat ochranu před duplikováním zpráv útočníkem. Služby Autentizace spojení poskytují autentizaci platnou během celého navázaného spojení a zabraňují duplikování zpráv útočníkem.

Služby pro řízení přístupu (autorizace)
Služby, poskytující Řízení přístupu, zajišťují ochranu před neautorizovaným použitím prostředků, dostupných prostřednictvím distribuovaného systému. Tyto služby však bývají málokdy součástí síťových protokolů a často jsou implementovány až v operačním systému nebo aplikaci.

Služby pro zajištění důvěrnosti
Tato skupina služeb poskytuje ochranu přenášených dat před neautorizovaným odhalením. Služba pro Důvěrnost přenosu zpráv poskytuje ochranu před neautorizovaným odhalením bez ohledu na navázaná spojení. Proto je tato služba vhodná pro bezkontextové aplikace. Služba pro Důvěrnost spojení zajišťuje ochranu před neautorizovaným odhalením v rámci navázaného spojení. Tato služba vyžaduje navázání spojení. Služba Důvěrnost toku dat (Traffic Flow Confidentiality) má za úkol zabránit útočníkovi, aby ze znalosti toku dat (adresy přenášených zpráv, délky přenášených zpráv, časové intervaly mezi přenášenými zprávami atd.) dokázal odvodit důvěrné informace o přenášených datech. Služba Selektivní důvěrnost má za úkol zajistit důvěrnost pouze některých částí přenášené zprávy.

Služby pro zajištění integrity
Tato skupina služeb poskytuje ochranu přenášených dat před neautorizovanou modifikací. Služba Integrita přenosu zpráv poskytuje ochranu před neautorizovanou modifikací bez ohledu na navázaná spojení. Služba Integrita spojení zajišťuje ochranu před neautorizovanou modifikací v rámci navázaného spojení. Tato služba vyžaduje navázání spojení. Služby Selektivní integrita spojení a Selektivní integrita zpráv mají za úkol zajistit integritu pouze některých částí přenášené zprávy.

Služby pro nepopiratelnost
Služby Nepopiratelnost odesílatele a Nepopiratelnost doručení slouží k tomu, aby příjemce (odesílatel) mohl prokázat protistraně odeslání (přijetí) zprávy a tím zabránil pozdějšímu popření této akce protistranou.

2  Příklady bezpečnostních protokolů

Ukažme si krátký přehled alespoň nejdůležitějších bezpečnostních protokolů, používaných v síti Internet.

2.1  Bezpečná elektronická pošta

Pro bezpečnou elektronickou poštu se v síti Internet používají dva různé systémy - PEM a PGP.

PEM (Privacy Enhanced Mail - bezpečná elektronická pošta) je návrh standardu, definující procedury pro šifrování a autentizaci zpráv s cílem poskytnout služby pro přenos zpráv elektronické pošty při zlepšení bezpečnosti (zajištěním důvěrnosti a důvěryhodnosti) v rámci sítě Internet. Procedury by měly být slučitelné s širokou třídou přístupů správy klíčů, včetně symetrického (soukromý klíč) a asymetrického (veřejný klíč) šifrování dat. PEM je definována dokumenty RFC 1421 až 1424 a je souběžně vyvíjena na mnoha místech celého světa. Diskusi kolem vývoje je věnován mailing list pem-dev@tisteckacom. PEM existuje například v implementacích TIS/PEM (Privacy Enhanced Mail od firmy Trusted Information Systems) nebo RIPEM. PGP (Pretty Good Privacy) je aplikační software s kryptografickými vlastnostmi, vykazujícími vysoký stupeň bezpečnosti. Je určen pro celou škálu platforem a využívá kryptografických technik, používajících veřejný klíč. Uživatelům umožňuje pohodlnou výměnu zpráv nebo souborů při zajištění bezpečnosti (utajení) a autentizace. PGP verze 1 definoval a vyvinul Philip Zimmerman z Pretty Good Software. Verze 2 byla vyvinuta pod jeho vedením.

Na následujících dvou obrázcích je znázorněn proces kryptografického zabezpečení zprávy v systému PGP.

Zašifrování (utajení) zprávy v PGP
Obrázek 1: Zašifrování (utajení) zprávy v PGP

Na prvním obrázku je nakreslen proces zašifrování (utajení) zprávy. Nejdříve je vygenerován náhodný klíč relace, kterým je pomocí algoritmu IDEA zašifrována celá zpráva. Tento klíč relace je pak zašifrován pomocí algoritmu RSA veřejným klíčem příjemce a je zaslán příjemci spolu se zprávou. Příjemce svým soukromým klíčem dešifruje algoritmem RSA klíč relace a pomocí něj pak algoritmem IDEA dešifruje zprávu.

Podepsání zprávy v PGP elektronickým podpisem
Obrázek 2: Podepsání zprávy v PGP elektronickým podpisem

Na druhém obrázku je nakreslen proces podepsání zprávy elektronickým podpisem. Nejdříve odesílatel spočte kryptografický kontrolní součet zprávy algoritmem MD5. Tento kryptografický kontrolní součet pak zašifrován pomocí algoritmu RSA soukromým klíčem odesílatele a je zaslán jako elektronický podpis příjemci spolu se zprávou. Příjemce veřejným klíčem odesílatele dešifruje algoritmem RSA elektronický podpis a porovná jej s kryptografickým kontrolním součtem zprávy.

2.2  IPsec

Potřeba bezpečnějšího protokolu v síti Internet, než je protokol IP (Internet Protocol), byla známa už dávno a nový "bezpečný protokol", zvaný IPsec ([RFC 1825], [RFC 1826], [RFC 1827]), je vyvíjen už delší dobu. Jeho implementace se však objevily až v poslední době. IPsec se skládá ze dvou protokolů. Jeden z nich zajišťuje integritu dat a druhý zajišťuje důvěrnost. Některé rysy IPsec (především zajištění integrity) jsou také požadovány v nové verzi IP protokolu IPv6.

V protokolu IPsec jsou použity dva nové typy paketů. Zajištění integrity je provedeno pomocí autentizační hlavičky (Authentication Header, AH). Při použití AH každý paket obsahuje zvláštní hlavičku, která obsahuje autentizační informace, následované daty samotného protokolu. Autentizační informace se skládají z výsledku klíčovaného kryptografického kontrolního součtu (používá se algoritmus SHA nebo MD5), z bezpečnostních parametrů (Security Parameter Index, SPI) a z ukazatele na hlavičku samotného protokolu vyšší úrovně. Položky, které se v hlavičce protokolu vyšší úrovně během přenosu paketu mění, jako je např. položka TTL, jsou při výpočtu autentizačních informací ignorovány.

Důvěrnost přenášených dat je zajišťována pomocí protokolu ESP (Encapsulated Security Payload). Stejně jako u AH je k paketu protokolu IP připojena dodatečná hlavička, která obsahuje bezpečnostní parametry a pak následují zašifrovaná data. ESP používá dva režimy činnosti. V transportním režimu obsahuje ESP paket data některého z vyšších protokolů, jako je například TCP protokol nebo UDP protokol. V tunelovacím režimu obsahuje ESP paket pouze datagram na úrovni protokolu IP.

Stanice, používající IPsec, si musí spravovat bezpečnostní kontext, který je identifikován hodnotami SPI. Bezpečnostní kontext obsahuje informace o použitém kryptografickém algoritmu, inicializační vektory a kryptografické klíče. Pro IPsec je doporučováno, aby bezpečnostní kontext obsahoval také doby života klíčů a adresy komunikujících stran.

Protokol IPsec má několik nevýhod a problémů. IPsec neobsahuje žádné automatizované prostředky pro správu kryptografických klíčů. Kryptografické klíče jsou obvykle distribuovány manuálně, což nelze považovat za vyhovující. Při praktickém používání protokolu je třeba použít jak AH, tak ESP. Pokud je použit pouze jeden z těchto protokolů, je IPsec náchylný k některým typům kryptografických útoků. Přes tyto nedostatky je však tento protokol možno při zachování jistých bezpečnostních zásad bezpečně používat.

2.3  Secure Socket Layer (SSL)

Protokol SSL (Secure Socket Layer) se snaží řešit bezpečnost rodiny protokolů TCP/IP na transportní úrovni. Jeho cílem bylo poskytnout bezpečný komunikační kanál mezi dvěma stanicemi sítě Internet na úrovni spojení TCP/IP, který umožní bezpečnou implementaci všech běžných protokolů (např. telnet, ftp, http atd.). SSL může použít pro ustanovení klíče relace nejrůznější algoritmy s veřejným klíčem. Po ustanovení klíče relace je další komunikace zabezpečena zašifrováním některým z mnoha volitelných algoritmů s tajným klíčem. Asi nejznámějším protokolem, který byl implementován pomocí SSL, je protokol HTTPS, používaný například v produktu Netscape.

Protokol je navržen tak, aby zajišťoval vysokou míru bezpečnosti. Používá kombinaci kryptografie veřejným klíčem s kryptografií tajným klíčem. Kryptografie veřejným klíčem se používá pro ustavení klíčů relace. Těmito klíči relace je pak zabezpečena samotná komunikace pomocí některého blokového nebo proudového kryptografického algoritmu, jako je 3-DES nebo IDEA. Protokol také zajišťuje vzájemnou kryptografickou autentizaci obou komunikujících stran. Při návrhu SSL byla jako jeden z cílů brána v úvahu i interoperabilita a snadnost rozšiřování protokolu o nové kryptografické algoritmy.

SSL je protokol založený na záznamech, který obsahuje mnoho různých typů zpráv. Základním pojmem SSL je relace, která představuje alespoň jedno spojení mezi klientem a serverem na transportní úrovni. Při ustavení relace se může provádět autentizace uživatele a v rámci jedné relace může být současně otevřeno několik zabezpečených spojení mezi klientem a serverem (například HTTP spojení nebo FTP spojení). Každá relace obsahuje své stavové informace, včetně identifikátoru relace, informací o použité kompresi dat, informací o kryptografických algoritmech a o algoritmech použitých pro zajištění integrity dat. Je zde také uložen klíč relace, sekvenční čítače a inicializační vektory pro kryptografické algoritmy.

Pokud chce klient použít SSL, nejdříve kontaktuje server a dohodne si s ním parametry relace, jako jsou identifikace relace, verze protokolu a dostupné kompresní a kryptografické algoritmy. Každá ze stran také předá protistraně jedno náhodně vygenerované číslo. Obě strany si vzájemně vymění certifikáty svých veřejných klíčů, které jsou podepsány elektronickým podpisem. Klient vygeneruje klíč relace, zašifruje jej veřejným klíčem serveru a pošle jej serveru spolu s náhodnou výzvou. Server dešifruje klíč relace pomocí svého soukromého klíče a autentizuje se klientovi tím, že mu vrátí jeho náhodnou výzvu zašifrovanou klíčem relace. V současné době používá SSL certifikáty veřejných klíčů podle doporučení ITU X.509. Vzhledem k naprosto nedostatečnému rozšíření infrastruktury adresářových služeb podle X.500 to prozatím přináší jisté obtíže. Pro masové rozšíření SSL je třeba, aby existovalo celosvětové schéma distribuce klíčů. Jedna z možností, jak toto schéma implementovat v prostředí Internetu, je DNS (Domain Name Service). DNS se jeví být vhodnou možností, protože jde o jedinou globální adresářovou službu, která je v současné době masově využívána.

Zpět na začátek
ÚVT MU, poslední změna 14.11.2011