čtvrtek 28. února 2008

Jemný úvod do šifrované komunikace (I.)

Odborníci prominou, psáno pro laickou veřejnost na seznámení. Za věcné chyby se omlouvám, opravte mě..

Víte, co je to šifrovaná komunikace? A znáte NSA? Slyšeli jste už něco o těch zlých hackerech nebo crackerech? A posíláte e-maily? Pár základních otázek, na které jdeme hledat odpovědi…

Posíláte e-maily? Bez váhání odpovídám ano... V dnešní době je to komunikace naprosto normální i přes to, že do ní není tak moc vidět: Mnoho lidí si stále myslí, že kliknou-li na kouzelné tlačítko odeslat, zpráva se zničehonic nebo také zčistajasna či jako mávnutím-kouzelného-proutku objeví u příjemce. Není tomu tak. Vámi odeslaný e-mail cestuje od serveru k serveru, od počítače k počítači, a hledá ten správný, kde by se usídlil. Teprve pak se (s velkou pompou) ukáže příjemci. Ta cesta je dlouhá, plná tmavých a nebezpečných zákoutí.. A Váš e-mail je jako nevinná panna. Naivní, předvídatelný, čitelný…

Další otázka a odpověď na ni: Hacker, cracker - tyto pojmy se dost pletou. Hackery se začali nazývat odborníci na počátku počítačových věků, kteří opravdu dobře rozuměli počítačům, operačním systémům, sítím,... To byli ti hodní, maximálně pozlobili jen sebe navzájem. Naproti tomu byl cracker (snad odpadnuvší hacker?), který také počítačům rozuměl, ale používal to jen pro to, aby se mohl někam "nabourat", dostat, nebo odposlechnout komunikaci. To byl ten zlej. Slyšíte tam to ošklivý "krek"?! Jako prd...! V dnešní době (masmédií, jak se píše na wikipedii) se hacker zaměňuje za crackera a tak se to mezi lidmi zabydlelo..budiž, my jsme si to ujasnili a víme "vo co gou", musíme se těm zlým bránit.

Druhá otázka se týkala NSA, neboli National Security Agency. NSA je jedna z amerických (myšleno USA) tajných služeb, jen není tak známá jako třeba FBI nebo CIA. Agentura se zabývá ochranou tajných státních dat a získáváním tajných informací z jiných států (stojí za zmínku, že první zabitý Američan ve Vietnamské válce byl právě agent NSA). Sídlo agentury NSA by se dalo nazvat sídlem světové kryptologie (věda zabývající se šifrováním neboli kryptografií, a dešifrováním, jinak kryptoanalýzou). Jejich vybavením jsou nejmodernější a nejvýkonnější počítače, které kdo kdy vyrobil a jejich rozpočet se odhaduje zhruba jako rozpočet ČR.
A teď si představte, že se v březnu 2006 objevil člověk - Mark Klein, hlavní technik společnosti AT&T, toho času spolupracující s NSA - s tvrzením, že NSA odposlouchává nezanedbatelný internetový provoz (nezanedbatelný dejme jako téměř vše co putovalo přes USA). Jak tato aféra skončila se mi nepodařilo vypátrat (zde prosím zasvěcené o pomoc), ale tipl bych, že ostudou pro AT&T a NSA a problémem pro vládu Spojených států (takže bohužel nic hrozného a nic většího bych v tom nehledal…). Odkaz na práci Marka Klaina je dole ve zdrojích.

A konečně k úplně první otázce, neboli víte co je to šifrovaná komunikace?
Ten dlouhý úvod je jen kvůli této otázce. Snad jsem výše jasně naznačil, že komunikace po síti je nebezpečná. Ale občas je i přes to nutné zajistit důvěrnost zprávy, tj. ujistit se, že je zpráva opravdu v bezpečí. Veškerá internetová komunikace je lehce sledovatelná, lze ji odposlouchávat, zachytávat a bez problému číst (netýká se jen e-mailů, ale i komunikace přes icq, prohlížení webových stránek a vyplňování formulářů, telefonování přes voip, ...). To pak pakety, ty malé částečky nesoucí Váš e-mail napříč světem (nebo jen místní sítí), neletí jen tam, kam mají, ale zachytávají se i v náručí cizinců. Obrana proti tomuto je těžká, vždyť odchytávat pakety na místní síti může kde kdo (tzv. script kiddies, kteří sami sebe nazývají hackery a internet se jimi jen hemží) běžně dostupnými programy (tcpdump, Ethereal, Dsniff, ..). V případě velkých firem a institucí nebo "zajímavých" lidí to už ovšem mohou být i odborníci a konkurence.. Máte stále chuť odeslat přihlašovací informace k internetovému bankovnictví svému kolegovi "mejlem"?

Aby byla komunikace bezpečnější, existuje šifrování (šifrovací algoritmy). Je to jakási přeměna (např.) e-mailu na nečitelný sled znaků, který si do čitelné podoby může změnit pouze příjemce. Tato přeměna dnes většinou probíhá pomocí tzv. klíčů. Pro představu dejme příklad:
Snad nejznámější šifra je šifra Julia Caesara, kdy se posouvaly písmena abecedy o 3 místa. Pak ze slova MASO dostaneme PDVR. Algoritmem je zde posunutí písmene a klíčem hodnota 3.

Je jasné, že v dnešní době by s tímto algoritmem neuspěli ani organizátoři hry Tmou!, natož vojenští experti. Ale pro představu, jak má šifrování fungovat to snad stačí..

V dnešní době se používají dva druhy šifrovacích algoritmů:

  • symetrické
  • asymetrické

Symetrické jsou ty, kdy mají účastníci komunikace stejný šifrovací a dešifrovací klíč. To znamená, že když chce Alice poslat zprávu Bobovi o jeho stavu na kontě, vezme klíč, pomocí něj zprávu ve svém počítači přemění na nečitelnou a odešle. Bob ji přijme, pomocí stejného(!) klíče dešifruje a přečte (…a zapláče). Je zde ovšem riziko, že jedna komunikující strana nebude střežit klíč tak, jak by měla a ten bude vyzrazen..
U asymetrického algoritmu se používají dva druhy klíčů: privátní a veřejný. Na příkladu: Alice napíše tajnou zprávu, zašifruje ji Bobovým veřejným klíčem a odešle. Teď ji už nemůže přečíst nikdo kromě držitele klíče privátního – Bob. Zde je problém s předáváním veřejného klíče (k zamyšlení: je předání veřejného klíče e-mailem bezpečné?). Nejlepší je mít stoprocentní jistotu, že veřejný klíč je té určité osoby (osobní předání, telefon,…).

Dále se budu věnovat pouze asymetrickým algoritmům, které se v dnešní době využívají pro komunikaci nejvíce.

Teoretický postup (a konec konců i ten praktický) je jednoduchý. Pomocí vhodného programu si vygenerujete svůj privátní a veřejný klíč. Privátní ukryjete někam hodně hluboko (ale nedoporučuji zakopávat CD na zahradě) a veřejný naopak vystavíte na obdiv celému světu. Veřejný klíč obsahuje Váš jedinečný identifikátor (e-mailovou adresu), měl by obsahovat jméno, může fotografii, datum vypršení platnosti,… Veřejné klíče je také dobré nechat si „podepsat“ jinými lidmi (podrobnosti v příštím dílu), kteří ví, že je klíč opravdu Váš a kteří Vám věří.


Je šifrování vždy nutné? Co podpis?

Samozřejmě, že šifrovat nemusíme vždy. Posíláte-li zprávu kamarádovi o tom, že jste včera na diskotéce potkali perfektní holku (kluka), pak je celkem jedno, když si ji přečte někdo navíc (neodposlouchává-li zrovna tuto komunikaci Váš partner..), stejně tak, když se registrujete na seznamku, chat nebo fórum…. Neboli, není vždy nutné zajistit důvěrnost.

Častěji je třeba ujistit příjemce, že je zpráva opravdu od Vás, tzn. je třeba zajistit důvěryhodnost. Tu obstarává tzv. digitální podpis. Má stejnou funkci jako podpis vlastnoruční - podepíšete dokument a od té doby za něj ručíte (dokud se nezmění). K podpisu se opět používá asymetrická šifra. Ovšem opačně než u šifrování: Vy dokument (soubor) podepíšete svým privátním klíčem a druhá strana (komunikující partner) si pomocí Vašeho veřejného klíče ověří, že se jedná opravdu o Váš podpis.

Protože podepsat např. binární soubor by bylo značně obtížné (nastala by změna kódu, tj. poškození programu), vytváří se při podpisu hash, neboli „zhuštěná“ verze souboru (podle určitého matematického algoritmu). Hash se k originálu přiloží (většinou má příponu .sig) a při kontrole podpisu se podle něj kontrolují rozdíly v souboru (dokumentu). Proto musí být hash pro každou (byť sebemenší) změnu původního souboru jiný - pak můžeme ručit za námi podepsaný dokument. Podpis už ale neprojde u souboru pozměněného, byť jen o jediný znak. Tímto se digitální podpis liší od našeho vlastnoručního, kdy chceme, aby vlastnoruční byl vždy stejný, nezaměnitelný.

Toť teorie ve zkratce. Pro detailnější porozumění problému použij Google a nebo vyčkej až se zas rozepíšu.


A prakticky…

K šifrování a podepisování asymetrickou šifrou nejčastěji slouží program PGP (Pretty Good Privacy, v dnešní době již bohužel z části placený), GnuPG (podoba PGP volně šiřitelná), OpenPGP a jiné.

Praktické použití na linuxu (v mém případě Ubuntu) s GUI programem seahorse a na windows s programem WinPT někdy příště.

Dočetli-li jste se až sem, pak Vás prosím v komentářích o zpětnou vazbu a kritiku, abych věděl jakým směrem se ubírat dále, děkuji.

Zdroje:

0 komentářů: