Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
Co jsou to ty šifry?
26. června 2006, 00.00 | Minule jsme si ukázali základní postupy, jak v Mac OS X šifrovat; slíbili jsme si také, že si něco málo řekneme k "teorii" – a tomu se právě budeme věnovat teď. Nebojte se, žádné hluboké matematické exkursy nebudou; koho zajímají, ten si je dokáže snadno najít; my si jen vysvětlíme základní principy a pojmy, potřebné k tomu, abychom pochopili co se to v tom počítači vlastně děje, proč to funguje tak, jak to funguje, a proč to po nás chce to, co to po nás chce :)
Minule jsme si ukázali základní postupy, jak v Mac OS X šifrovat; slíbili jsme si také, že si něco málo řekneme k "teorii" – a tomu se právě budeme věnovat teď. Nebojte se, žádné hluboké matematické exkursy nebudou; koho zajímají, ten si je dokáže snadno najít; my si jen vysvětlíme základní principy a pojmy, potřebné k tomu, abychom pochopili co se to v tom počítači vlastně děje, proč to funguje tak, jak to funguje, a proč to po nás chce to, co to po nás chce :)
Kdo je kdo a co je co
Nebudeme si ani poctivě formálně definovat pojem "šifrování", ponechávajíce jej s klidem na intuitivním pochopení. Namísto toho se však malinko zdržíme nad některými základními pojmy; obzvláště "heslo" a "klíč" se běžně užívají v řadě nejrůznějších (a mnohdy poněkud zmatených) smyslů. My zde budeme těchto pojmů užívat v následujícím významu, vhodném pro počítače:
- algoritmus je prostě postup, popisující kterak otevřená data zašifrovat, případně jak z dat šifrovaných opět získat ta původní. V nejjednodušším případě šifra nic jiného nežli algoritmus nemá, a utajení šifry je ekvivalentní utajení jejího algoritmu; kupříkladu je tomu tak u triviální šifry "psaní pozpátku";
- u mnoha šifer se z praktických důvodů užívá trochu odlišného postupu: jejich algoritmus je veřejně známý, avšak užívá se v něm nějaké konkrétní proměnné – a právě a pouze její hodnota je utajena. Tuto hodnotu pak nazýváme klíčem. Příkladem může být takzvaná Caesarova šifra, při níž se každé písmeno posune o nějaký počet dopředu (tedy např. namísto 'A' píšeme 'D', namísto 'B' píšeme 'E', a tak dále). Klíčem zde je počet míst, o něž písmena posunujeme;
- heslo pak je pouze jiným pojmem pro klíč. Tam, kde je obsahem klíče jednoduché číslo nebo krátký text, hovoříme častěji o "hesle"; je-li obsah klíče složitější (třeba CD plné dat, jak tomu je u jediné skutečně spolehlivé šifry na světě, totiž šifry Vernamovy), obvykle užíváme pojem "klíč" – pořád však jde o jedno a totéž.
Je zřejmé, že stanovení hranice mezi algoritmem a klíčem je do značné míry libovolné – můžeme třeba hovořit o Caesarově šifře bez klíče, jejímž algoritmem je "posun o tři místa". Nezřídka se s takovýmto spojováním algoritmu a klíče setkáváme u jednoduchých ručních šifer, jež známe kupříkladu ze skauta.
U počítačů naproti tomu bývá zvykem algoritmus a klíč jasně rozlišovat; to proto, že počítače, byť von Neumannovské, dosti zásadně rozlišují program a data; algoritmus samozřejmě musí být programem, avšak je výhodné moci se na klíč dívat jako na data (pro snadnou přenositelnost, pro možnost nezávislého ověření spolehlivosti šifry a podobně).
Šifry asymetrické a symetrické
Začneme sice obligátním a již mnohokrát formulovaným, ale přesto důležitým rozdělením šifer na dva základní typy: symetrické a asymetrické. Obvykle bývají definovány na základě počtu klíčů a podobně, ovšem ten skutečně důležitý fakt spočívá v následujících vlastnosti:
- Symetrická šifra je taková, již po sobě dokáži rozšifrovat.
Tedy, pokud naopak pro nějakou šifru platí, že (při znalosti vhodného algoritmu a klíče) mohu její pomocí zašifrovat nějaká data, avšak (při téže znalosti téhož algoritmu a téhož klíče) nemohu obsah, zašifrovaný její pomocí, dekódovat, pak jde o šifru asymetrickou. (Samozřejmě ovšem musí platit, že při znalosti obecně jiného algoritmu a jiného klíče tuto šifru dekódovat lze :))
Je celkem zřejmé, že asymetrické šifry jsou nesmírně výhodné pro bezpečnou komunikaci v prostředích typu Internetu: jestliže znalost algoritmu a klíče umožňuje šifrovat, ale nikoli číst, mohu oba veřejně publikovat (a utajím onen druhý algoritmus a druhý klíč, jež mi umožní dešifrování); kdokoli mi pak snadno může poslat libovolnou zprávu šifrovaně, a jen já ji dokáži přečíst.
Nevýhodou asymetrických šifer je to, že jsou založeny na poměrně komplikovaných matematických tricích (jež si zde nebudeme popisovat), a proto jsou výpočetně náročné a mnohdy také neefektivní: symetrické šifry sice vyžadují utajení klíče na obou stranách, ale zato jsou daleko rychlejší a efektivnější.
V praxi se proto "čistých" asymetrických šifer takřka neužívá; namísto toho se využívá jednoduchého triku: vlastní data se zašifrují rychlou a účinnou symetrickou šifrou, použije se náhodný klíč – a pouze ten je zašifrován asymetricky, a k šifře přiložen. A samozřejmě, tam, kde výhody asymetrických šifer nemají cenu (např. právě u šifrování souborů, o němž jsme se převážně bavili v minulém článku), se užívá důsledně šifer symetrických.
Asymetrické šifry navíc umožňují pomocí velmi jednoduchého triku zajistit elektronický podpis; to si ale vysvětlíme až příště, spolu s některými risiky, jež asymetrické šifrování přináší.
Veřejný a tajný klíč
Vraťme se ještě na chvíli k "definici" asymetrické šifry, již jsme uvedli v podobě "při znalosti vhodného algoritmu a klíče mohu zašifrovat nějaká data, pro jejich rozšifrování však potřebuji jiný, tajný algoritmus a klíč".
V praxi tomu obvykle bývá tak, že oba zmíněné algoritmy jsou zcela obecně známé – kupříkladu široce známá "šifra PGP" v podstatě není ničím jiným, než skupinou standardizovaných šifrovacích algoritmů (jak symetrických pro šifrování vlastních dat, tak i asymetrických pro šifrování náhodných klíčů), umožňujících asymetrické šifrování, spolu se standardizovanými formáty, jež umožňují programům na obou stranách se "domluvit".
Uživatel takové šifry pak má dvojici klíčů:
- veřejný klíč, který publikuje, a jenž spolu s informací o použitém algoritmu umožní komukoli zprávu zašifrovat;
- tajný klíč, jenž hlídá jako oko v hlavě, a jehož pomocí dokáže (jako jediný) přečíst cokoli, co někdo zašifroval s užitím klíče veřejného.
Tak tomu je ve všech systémech, založených na asymetrickém šifrování; v některých jsou klíče přímo viditelné a uživatel svůj tajný klíč ukládá a veřejný klíč publikuje přímo (PGP); jindy jsou klíče skryty pod nějakým pomocným rozhraním (např. ve standardu S/MIME, který máme k dispozici v Mac OS X, je veřejný klíč skryt v certifikátu, jímž podepisujeme zprávy – právě proto v něm platí, že kdokoli, komu pošleme podepsanou zprávu, pro nás hned může šifrovat – a tajný je automaticky uložen do Keychainu ve chvíli, kdy certifikát získáme).
Obsah seriálu (více o seriálu):
- Je to bezpečné?
- Základy zabezpečení Mac OS X
- Identifikace a autorizace
- Jak je to s administrátory
- Šifrování
- Co jsou to ty šifry?
- Černý vzadu, podpisy, a vůbec...
- Certifikáty
- Kde vzít certifikát?
- Certifikát Thawte
- Keychain
- Keychain Access
- Kolik keychainů máš, tolikrát jsi paranoikem
- Lepší konfigurace keychainů
- Jeden na neděli, jeden na všední den...
- WEP or weep
- AirPort a nastavení bezdrátové sítě
- WEP and weep...
- Externí router
- Slušný člověk nešifruje!
- Je ve vězení bezpečno
Tématické zařazení:
» Rubriky » Tipy a Triky
Poslat článek
Nyní máte možnost poslat odkaz článku svým přátelům: