Zdravá paranoia aneb nepřítel stále naslouchá

V odborných kruzích je v poslední době často diskutována otázka bezpečnosti a ochrany soukromí uživatelů na Interne...


V odborných kruzích je v poslední době často diskutována otázka bezpečnosti a
ochrany soukromí uživatelů na Internetu. Objevila se celá řada nových postupů,
technologií a standardů. Cílem tohoto článku je seznámit čtenáře s některými
pojmy v této oblasti.
Bezpečnostní mechanismy
Snaha o zajištění vyšší bezpečnosti přenášených dat není sama o sobě nikterak
nová. Již ve starověku se používalo nejrůznějších šifrovacích postupů k tomu,
aby byla zajištěna důvěrnost přenášené zprávy, aby se její obsah dostal pouze k
adresátovi. Notoricky známé jsou starověké metody navíjení proužků pergamenu s
vojenskými zprávami na hůlky o různých tloušťkách, nebo středověké šifrování
pomocí otočné mřížky. Moderní šifrovací algoritmy (DES, IDEA, RC4) pracují sice
složitěji, jejich hlavním úkolem však stále zůstává zabránit nepovolanému
přečíst si obsah přenášené zprávy.
Dalším důležitým úkolem, týkajícím se zajištění přenosu zprávy, je zabezpečení
její integrity. Lze si představit situace, kdy není nezbytně nutné ochránit
zprávu před nepovolanýma očima, bylo by však záhodno zaručit, že zpráva bude
doručena nepoškozena. Příkladem z reálného života budiž zaslání dopisu vašemu
nadřízenému jistě by nebylo vhodné, aby zlovolný vetřelec připsal za váš dopis
šťavnatý odstavec o tom, co si o šéfovi ve skutečnosti myslíte. Integritu
zprávy je možno ověřit pomocí více či méně složitých funkcí kontrolních součtů
znaků zprávy známé jsou metody CRC (cyclic redundancy check), SHA--1, MD2 či
MD5 (hashing).
Konečně, třetím úkolem, který mají bezpečnostní mechanismy splnit, je ověření
totožnosti odesílatele zprávy. Při přijetí kódované zprávy můžeme porovnat
použitou šifru s údajem v adresáři lidí a ověřit, zda je zpráva skutečně
zakódována tou šifrou, kterou používá náš partner. Shoduje-li se archivní a
použitá šifra, můžeme si být jisti též osobou odesílatele. Této metody se
používá zejména při šifrování pomocí veřejných klíčů, a mluvíme pak o
elektronických či digitálních podpisech.
Šifrovací algoritmy
Algoritmy pro šifrování můžeme rozdělit do 2 kategorií: na konvenční a na
algoritmy s veřejnými klíči.
Algoritmy používané v konvenční kryptografii jsou též často nazývány
symetrické. To proto, že pro zakódování i rozkódování zprávy je použito
stejného postupu a stejného klíče. To samozřejmě vyžaduje, aby tento klíč
(neboli heslo) znal jak odesílatel, tak příjemce; jeho volba a bezpečné předání
mezi odesílatelem a příjemcem před zahájením komunikace může být poměrně
obtížný problém. Nicméně, v dřívějších dobách byly při šifrování používány
především symetrické algoritmy, zejména pro svou jednoduchost a mnohem menší
výpočetní náročnost.
Kryptografie veřejných klíčů, neboli asymetrická kryptografie, používá na
rozdíl od své starší předchůdkyně klíče dva. Je-li jeden klíč použit pro
zakódování zprávy, je třeba pro její rozkódování použít druhý klíč. Pomocí této
dvojice klíčů je možno odstranit problém spojený s předáváním hesla u
symetrických klíčů tak, že příjemce zveřejní jeden z klíčů coby svůj oficiální,
veřejný klíč. Zprávy zakódované tímto klíčem pak přečte pomocí svého druhého,
privátního klíče.
PGP, certifikáty
První obecně používanou implementací kódování s veřejnými klíči byl program PGP
(Pretty Good Privacy) od Phila Zimmermana. Používal se především při komunikaci
elektronickou poštou, a nabízel šifrování, digitální podpisy a realizaci
adresáře známých klíčů. Vystavené veřejné klíče uživatelů bylo možné dále
podepsat klíčem "notářské" instituce, která se mohla zaručit za správnost
osobních údajů uvedených s klíčem, a vznikl tak zárodek certifikátu.
Certifikáty jsou tedy v principu veřejné klíče uživatelů, doplněné jejich
osobními údaji a podepsány privátním klíčem "certifikační autority", tedy
klíčem důvěryhodné instituce, která certifikát vydala. Díky tomu může každý
majitel certifikátu (a jemu odpovídajícího privátního klíče) šifrovat svá data
a prokazovat svou totožnost v elektronické poště či v on-line komunikaci, a
jeho partneři si mohou ověřit platnost certifikátu u certifikační autority.
Formální náležitosti certifikátů jsou popsány v normách X.509 a RFC 1421 až
1424.
Prokazování totožnosti pomocí certifikátů a šifrovaný komunikační kanál pak byl
specifikován v normě SSL (Secure Socket Layer). Jedná se o protokol realizující
přenosový kanál podobně jako protokol TCP (který je mu de facto podřízen) tak,
že žádná data neputují sítí v nezašifrované formě. Díky podobnosti rozhraní SSL
a TCP je možné poměrně snadno převádět stávající aplikace na bezpečnou metodu
komunikace pomocí SSL.
Co na to Internet?
Udělejme nyní krátkou odbočku a podívejme se ve stručnosti na některé základní
internetové služby a na zajištění dat, které je s nimi možné dosáhnout. Začneme
elektronickou poštou, podíváme se na terminálovou emulaci a skončíme u WWW.
Elektronická pošta, realizovaná přenosovým protokolem SMTP (a dále POP3 nebo
IMAP), pochází z hlubokého počítačového dávnověku, a jako taková v sobě
neobsahuje žádné nástroje pro zajištění ochrany dat. Dopisy jsou přenášeny po
Internetu v otevřené formě kdokoliv, kdo má přístup k přenosovým trasám, tak
může s použitím patřičného technického vybavení odposlechnout libovolný dopis.
Starost o zajištění obsahu dopisů je zcela dána do rukou koncovým uživatelským
programům, klientům (v poštovní terminologii User-Agents) chtějí-li, mohou si
přenášená data zašifrovat či jinak ochránit. Je zřejmé, že pokud odesílatel
nějakým způsobem zakóduje přenášená data, musí mít příjemce zprávy natolik
schopného klienta, aby dokázal zprávy rozluštit zpět do čitelné podoby. To jde
bohužel trochu proti filozofii elektronické pošty, její nezávislosti na
koncových klientech, nicméně s prosazováním standardu S/MIME (Secure MIME),
který formalizuje šifrovací náležitosti, se klientské programy na jednotlivých
platformách sjednocují.
Telnet, protokol pro přístup ke vzdálenému počítači prostřednictvím terminálové
emulace, je též velmi starý a zcela nezabezpečený. Stejně jako v případě
elektronické pošty, i zde jsou data přenášena v otevřené formě; zvýšené
nebezpečí terminálové emulace spočívá navíc v tom, že typicky je třeba na
začátku každého spojení zadat na vzdáleném počítači přístupové jméno a heslo.
Riziko odposlechu jména a hesla tak prakticky znemožňuje použití Telnetu na
větší vzdálenosti.
Jeho bezpečnou novodobou náhradou je SSH (Secure Shell), protokol a sada
programů pro vzdálený přístup prostřednictvím zakódovaného komunikačního
kanálu. Pro zašifrování přenášených dat se zde používá algoritmů s veřejnými
klíči RSA a IDEA, které jsou považovány za velmi bezpečné, a principem své
činnosti velmi podobné výše popsané metodě SSL.
Služba WWW, realizovaná přenosovým protokolem HTTP, též neoplývá přehnanými
bezpečnostními mechanismy. Přístupové jméno a heslo, kterými lze chránit
přístup k některým stránkám, se zde sice nepřenáší v otevřeném tvaru, jejich
rozkódování je však až směšně jednoduché. Samotný obsah WWW stránek je pak
přenášen opět otevřeně.
Rozvoj WWW a jeho nasazení v komerční sféře si proto vynutilo nasazení
komunikačního protokolu zajištěného proti odposlechu, s možností prokázání
identity uživatele i serveru, HTTPS (Secure HTTP). Ve své podstatě je HTTPS
kombinací původního protokolu HTTP a přepravního kanálu SSL. Na základě HTTPS
pak vznikly nové koncepce internetových služeb, jakými jsou např. bezpečné
elektronické transakce (SET, Secure Electronic Transactions), Internetbanking,
bezhotovostní platby po Internetu atd.
Firemní infrastruktura veřejných klíčů
Jak tedy vypadá základní kostra struktury bezpečného "Intranetu", používajícího
výše popsané metody a protokoly? Obsahuje 4 základní součásti: certifikační
server, adresářový server, server pro zálohování klíčů a zabezpečené aplikace.
Certifikační server je prvotní součástí Intranetu vydává certifikáty a ověřuje
fyzickou totožnost žadatelů. Důkladné a důsledné prověření žadatelů při
udělování certifikátů určuje stupeň důvěryhodnosti certifikátů samotných.
Nedílnou součástí úkolů certifikačního serveru je evidence ztracených,
prozrazených či propadlých certifikátů a vyřizování dotazů na ověření jejich
platnosti.
Adresářový server funguje jako kartotéka lidí, jejich osobních údajů,
elektronických adres a veřejných klíčů. Klienti mohou
pokládat dotazy prostřednictvím databázového protokolu nebo WWW. Vhodným
kandidátem na databázový protokol je LDAP (Lightweight Directory Access
Protocol), zjednodušený následník protokolu X.500.
Server pro zálohování klíčů umožňuje uživatelům zálohovat a obnovovat veřejné a
privátní klíče. To je vhodné nejen pro případ havárií systémů a následné ztráty
klíčů, ale i pro ukládání zabezpečených dokumentů (bezpečné archivy). Je
zřejmé, že díky ukládání veřejných i privátních klíčů hrozí v případě napadení
tohoto serveru vetřelcem prozrazení všech šifrovacích klíčů v Intranetu. Je
proto třeba zajistit důkladné zabezpečení klíčů uvnitř tohoto serveru tak, aby
ani případný průnik neumožnil neoprávněně získat cizí klíče.
Konečně následují nejrůznější aplikace: WWW server pracující s HTTPS,
zabezpečený WWW prohlížeč, S/MIME e-mail klient, apod. Všechny tyto aplikace
používají udělené certifikáty a privátní klíče k šifrování komunikace. Protože
s aplikacemi zpravidla pracují koncoví uživatelé, je třeba klást velký důraz na
bezpečnou manipulaci s klíči na jejich pracovních stanicích např. vynuceným
používáním identifikačních karet uživatelů, obsahujích všechna bezpečnostně
citlivá data.
Implementace, aneb obrněný Indián
Existuje řada implementací
popisovaných šifrovacích algoritmů, ať se již jedná pouze
o knihovny šifrovacích funkcí, nebo kompletní systémy bezpečné komunikace v
Intranetu. Některé jsou volně šiřitelné, jiné volné pro nekomerční použití,
další jsou silně komerční. Popis všech přesahuje rozsah tohoto článku; v
následujícím odstavci bych chtěl pouze zmínit volně šiřitelný programový balík
SSLeay a způsob, jak si pro testovací účely vytvořit zabezpečený WWW server.
SSLeay je nekomerční knihovna realizující protokol SSL (2.0 i 3.0),
certifikační autoritu a další nástroje pro práci s certifikáty. V kombinaci se
všeobecně známým WWW serverem Apache a SSL záplatou tak můžeme vytvořit tzv.
"Apache Stronghold", neboli HTTPS Apache; návod k instalaci je součástí
distribučních balíků. Po přidání skriptovacího modulu PHP3,
modulu pro kódování češtiny mod_czech a SQL databáze (třeba Postgres) tak
získáme WWW server, jehož schopnosti jsou vskutku impresivní. Vašim
experimentům v oblasti zabezpečené komunikace pak již nebude nic ležet v cestě.
8 1106 / pah









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.