VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STAVEBNÍ
MIROSLAV MENŠÍK
INFORMATIKA MODUL 4 BEZPEČNOST OPERAČNÍHO SYSTÉMU A SÍŤOVÉ KOMUNIKACE
STUDIJNÍ OPORY PRO STUDIJNÍ PROGRAMY S KOMBINOVANOU FORMOU STUDIA
c Miroslav Menšík, Brno 2004
Obsah Vstupní informace k modulu
5
Cíle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Požadované znalosti . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Doba potřebná ke studiu . . . . . . . . . . . . . . . . . . . . . . . . .
5
Klíčová slova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1. Autentizace
7
1.1. Charakteristika a význam autentizace . . . . . . . . . . . . . . .
7
1.2. Interaktivní přihlašování ve Windows . . . . . . . . . . . . . . .
8
1.3. Neinteraktivní přihlašování ve Windows . . . . . . . . . . . . . .
9
1.4. Síťová autentizace . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2. Autentizační protokoly
11
2.1. Protokol LM a NTLM . . . . . . . . . . . . . . . . . . . . . . . 11 2.2. Protokol Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3. Správa hesel ve Windows
14
4. Autorizace
15
5. Kódování a šifrování
17
5.1. Klasické kryptografické metody . . . . . . . . . . . . . . . . . . 18 5.2. Modulární aritmetika, faktorizace . . . . . . . . . . . . . . . . . 23 5.3. Současné kryptografické metody . . . . . . . . . . . . . . . . . . 24 5.3.1. Symetrické metody, algoritmus DES . . . . . . . . . . . . 25 5.3.2. Výměna klíčů, algoritmus Diffie–Hellman . . . . . . . . . 27 5.3.3. Asymetrické metody, algoritmus RSA . . . . . . . . . . . 28 5.3.4. Hybridní kryptografické metody . . . . . . . . . . . . . . 30 5.3.5. Funkce obsahu zprávy (hash funkce) . . . . . . . . . . . 30 5.4. Šifrování souborů – EFS . . . . . . . . . . . . . . . . . . . . . . 31 6. Elektronický podpis
32
6.1. Schéma vytvoření elektronického podpisu . . . . . . . . . . . . . 32 6.2. Právní aspekty elektronického podpisu . . . . . . . . . . . . . . 32
3
6.3. Časové razítko . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 7. Důvěryhodnost veřejného klíče
35
7.1. Certifikát . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 7.2. Certifikační autorita . . . . . . . . . . . . . . . . . . . . . . . . 37 8. Zabezpečení síťové komunikace
38
8.1. Síťové filtry a firewally ve Windows . . . . . . . . . . . . . . . . 38 8.2. Protokol SSL/TLS . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.3. Protokol IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 8.4. Elektronická pošta a soukromí . . . . . . . . . . . . . . . . . . . 43 8.5. S/MIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 9. Autotest
47
Závěr
49
Shrnutí
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Studijní prameny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Klíč k autotestu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4
Bezpečnost operačního systému a počítačové komunikace
Vstupní informace k modulu Cíle Základním cílem modulu je poskytnout přehled o bezpečnostních technologiích, protokolech, algoritmech a normách používaných pro zajištění počítačové bezpečnosti. Modul se snaží ukázat, jak jsou tyto prostředky integrovány do operačních systémů a jak se využívají v digitální komunikaci. V následujících odstavcích jsou vysvětleny obecné principy autentizace a autorizace. Pro podrobnější popis těchto mechanismů a protokolů byl vybrán operační systém Windows. V další části modulu se nachází úvod do kryptologie, historický přehled kryptografických metod, rozdělení a popis nejznámějších současných kryptografických algoritmů, metod a jejich uplatnění v různých oblastech operačního systému. Poslední tematická oblast modulu se týká zabezpečení síťové komunikace s využitím standardních protokolů.
Požadované znalosti Pro pochopení textu je nutné nejdříve prostudovat moduly „Operační systémyÿ, „Počítačové sítě a Internet, služby internetuÿ. S ohledem na rozsah textu nebylo vždy možné rozvést potřebné souvislosti. V těchto případech je nutné doplnit znalosti prostudováním doporučených zdrojů. Příslušné odkazy jsou vždy uvedeny v jednotlivých odstavcích.
Doba potřebná ke studiu Čas potřebný pro pochopení textu je úměrný úrovni znalostí z tématiky uvedené v odstavci „Požadované znalostiÿ. Čtenář, který se s uvedenou problematikou setkává poprvé, se ocitá v odlišné situaci než ten, kdo má např. praktické zkušenosti s internetovou komunikací, s konfigurací programů pro zpracování elektronické pošty, s aktivním používáním www prohlížeče, případně s instalací operačního systému. Ale i v případě prakticky zkušenějšího uživatele, jehož znalosti jsou spíše intuitivní, může studium modulu zabrat více času. Poznámka: Pro snazší pochopení některých informací je vhodné popisovaný postup prakticky vyzkoušet.
Klíčová slova Autentizace, autentizační protokol, autorizace, výzva–odpověď, NTLM, Kerberos, autentikátor, lístek, substituce, transpozice, permutace, modulus, prvočíslo, faktorizace, šifrovat, dešifrovat, klíč, výtah, otisk, hash, zpráva, otevřený text, symetrický, asymetrický, DES, Triple DES, AES, RSA, Diffie–Hellman,
5
Informatika
elektronický podpis, certifikát, kvalifikovaný certifikát, certifikační autorita, SSL/TLS, IPSec.
6
Bezpečnost operačního systému a počítačové komunikace
1.
Autentizace
Moderní operační systém představuje základní programovou vrstvu, se kterou komunikují všechny aplikace. Předpokládají, že jim operační systém poskytne dostatečně spolehlivý přístup k dílčím hardwarovým podsystémům – k paměti, procesoru, sběrnici, vstupním a výstupním zařízením. K atributu spolehlivost se dnes stále častěji připojuje další přívlastek – bezpečnost. Chceme, aby operační systém poskytl aplikacím nezávislost, např. oddělený paměťový prostor, a zajistil jim dostatečnou důvěrnost, případně utajení. Tento požadavek předkládá stále širší skupiny aplikací a přirozeně sílí se vzrůstající cenou spravovaných informací. Prvky zabezpečení, které budou dále uvedeny, postupem času opustily rovinu nadstaveb operačního systému a staly se jeho přímou součástí. Z této úrovně mohou být uživateli a aplikacemi snadněji využívány.
1.1.
Charakteristika a význam autentizace
Autentizace je proces, při kterém je ověřována identita určitého subjektu. Je základním bezpečnostním krokem, který předchází získání přístupu k nejrůznějším prostředkům a informacím. I v běžném životě ji denně podstupujeme. Nejběžnější autentizaci provádíme při výběru hotovosti z bankomatu nebo při platbě bankovní kartou. Autentizace zpravidla neprobíhá izolovaně a formálně, ale představuje první krok pro získání určitého neveřejného oprávnění, např. přístup k bankovnímu účtu. V kontextu operačního systému nemusí být autentizující se entitou pouze uživatel. Svou identitu může prokazovat také aplikace, proces nebo služba operačního systému. Autentizační mechanismus obvykle využívá: • utajenou znalost (autentizující se subjekt něco zná, např. heslo nebo jiný osobní identifikátor PIN), • jedinečnou informaci uloženou na bezpečném zařízení, např. na čipové kartě nebo generovanou autentizačním kalkulátorem (autentizující se subjekt něco má), • jedinečnou vlastnost autentizujícího se subjektu, např. jedinečné biomechanické vlastnost (otisky prstů, struktura duhovky, hlas), • důvěryhodného prostředníka. Nejjednodušší autentizace probíhá prostřednictvím uživatelského účtu a hesla. Tato metoda je však nejslabší a nejvíce zranitelná. Jejím největším problémem je bezpečné a utajené sdělení hesla. Protože se při ní používá jediný tajný parametr, označuje se také jako jednofaktorová. Autentizace prostřednictvím hardwarových autentizačních předmětů – čipových karet, USB klíčů, autentizačních kalkulátorů – kombinuje mechanismus „autentizovaný subjekt něco víÿ a „autentizovaný subjekt něco máÿ. Utajenou znalostí je kód PIN,
7
Informatika
který chrání přístup k jedinečné informaci uložené na hardwarovém zařízení. Taková autentizace se označuje jako silná, také dvoufaktorová. Příklad 1: Kód PIN zabezpečuje přístup k certifikátu a soukromému klíči, který je uložen na hardwarovém zařízení, např. na čipové kartě. Autentizační informace ověřuje bezpečnostní služba (server). Součástí bezpečnostního podsystému operačního systému je bezpečné uložení uživatelských informací (zejména hesel) a bezpečná výměna informací mezi autentizujícím se klientem a autentizační autoritou. K tomuto účelu se zpravidla používají kryptografické algoritmy.
1.2.
Interaktivní přihlašování ve Windows
Základní autentizační úroveň v operačním systému Windows představuje interaktivní přihlašování, při kterém uživatel aktivně zadává identifikační údaje. Ty jsou následně porovnávány s parametry místního nebo doménového účtu. Proces interaktivního přihlašování je zajišťován systémovým procesem Winlogon (winlogon.exe). V jeho bezpečnostním kontextu1 je zavedena knihovna msgina.dll, která reprezentuje systémový modul označovaný jako Microsoft Graphical Identification and Authentication (MS GINA). Jeho úkolem je zachytit vznik událostí třídy Secure Attention Sequence (SAS), do které náleží např. žádost o přihlášení, odhlášení nebo uzamčení sezení, a informovat o těchto stavech řídící proces Winlogon. Příklad 2: Interaktivní přihlašování uživatele začíná současným stiskem tří kláves Ctrl+Alt+Del. Tato akce vyvolá systémovou událost třídy SAS žádost o přihlášení, která je zachycena modulem MS GINA. O vzniklé události informuje MS GINA proces Winlogon prostřednictvím funkce WlxSasNotify. Pokud proces Winlogon rozhodne, že je možné provést přihlášení, signalizuje stav modulu MS GINA zpětným voláním funkce WlxLoggedOutSAS. Výsledkem je zobrazení autentizačního formuláře. Modul MS GINA je zaměnitelná komponenta operačního systému Windows. To znamená, že může být nahrazena modulem třetí strany, který např. rozšiřuje množinu zařízení, ze kterých je možné autentizaci provádět, např. o čtečky čipových karet. Modularita operačního systému není pouze výhodou. Otevřenost operačního systému přináší i určitá rizika. Zaměnitelnost modulu MS GINA byla zneužita trojským koněm FakeGina, který bez zjevných funkčních změn nahrazoval původní systémovou knihovnu, navíc však zachycoval hesla uživatelů, kteří se přihlašovali do systému.
1
má stejná oprávnění
8
Bezpečnost operačního systému a počítačové komunikace
Při interaktivním přihlašování MS GINA autentizuje uživatele prostřednictvím lokálního podsystému zabezpečení Local Security Autority (LSA). Autentizace probíhá voláním funkce LSA s názvem LsaLogonUser. Parametry funkce jsou zadané autentizační údaje a požadavek na konkrétní autentizační mechanismus, který je realizován formou autentizačního balíčku (authenticaObrázek 1: Lokální autentizace ton package). Zvolený autentizační (msdn.microsoft.com) balíček ověří identitu uživatele a o výsledku informuje podsystém LSA, který informaci předává zpět modulu MS GINA. Konkrétní autentizační mechanismus je realizován pomocí autentizačních balíčků. Jejich úkolem je provést analýzu autentizačních údajů a pomocí určitého protokolu provést ověření. Pokud je autentizace úspěšná, vzniká nová relace přihlášení reprezentovaná jedinečným identifikátorem relace. Tuto informaci předává autentizační balíček zpět podsystému LSA, která ji používá při sestavování datové struktury označované jako bezpečnostní záznam (security token). Základní autentizační balíček ve Windows má název MSV1 0 a je určen pro autentizaci pomocí protokolu NTLM. Autentizaci provádí pomocí účtu a otisku hesla (hash) uživatele. Zadané údaje ověřuje přístupem do lokální databáze účtů SAM (Security Accounts Manager Database) nebo se obrací na řadič domény. V případě úspěšnosti autentizace se účet a hash hesla stávají součástí relace přihlášení a operační systém je používá při neinteraktivní autentizaci. Modularita operačního systému Windows umožňuje operačnímu systému poskytovat aplikacím různé autentizační mechanismy zavedením více autentizačních balíčků. Standardně systém Windows zavádí zmíněný balíček MSV1 0 a od verze Windows 2000 také balíček Kerberos SSP/AP, který se uplatňuje při síťové autentizaci prostřednictvím protokolu Kerberos.
1.3.
Neinteraktivní přihlašování ve Windows
Pokud se uživatel úspěšně autentizoval a používá aplikaci, která požaduje přístup k neveřejným informacím, využívá operační systém Windows neinteraktivní autentizaci. Ověřování se provádí pomocí dříve zadaných a úspěšně ověřených autentizačních údajů. Ty jsou součástí datové struktury, která doprovází relaci přihlášení. Neinteraktivní autentizace je proces, který nastává pouze po úspěšné interaktivní autentizaci.
9
Informatika
1.4.
Síťová autentizace
Pro autentizaci doménového účtu využívá lokální autentizační balíček MSV1 0 službu NetLogon pro spojení s řadičem domény. Ověřování zadaných autentizačních údajů se opírá o databázi SAM spravovanou službou LSA na řadiči domény. Komunikace probíhá prostřednictvím autentizačních protokolů, které budou popsány v dalším odstavci.
Obrázek 2: Síťová autentizace (msdn.microsoft.com) Architektura Windows poskytuje službám a aplikacím transparentní prostředí, které zobecňuje přístup ke konkrétnímu autentizačnímu mechanismu. Vrstva, se kterou aplikace komunikují, se nazývá Security Support Provider Interface (SSPI). Jednotlivé autentizační protokoly jsou implementovány formou poskytovatelů zabezpečení Security Support Providers (SSP). Aplikace ve Windows při požadavku o autentizaci komunikují výhradně s vrstvou SSPI. Mohou specifikovat konkrétní autentizační metodu nebo „požádatÿ operační systém o její vyjednání. Tento přístup se doporučuje, protože umožňuje zvolit nejbezpečnější metodu odpovídající schopnostem komunikujících stran a současně respektovat nastavené bezpečnostní zásady. Další výhodou otevřeného vyjednání autentizační metody je, že neuzavírá aplikace před novými bezpečnostními standardy, které poskytují nové verze operačního systému.
Obrázek 3: SSPI rozhraní ve Windows
10
Bezpečnost operačního systému a počítačové komunikace
2.
Autentizační protokoly
Autentizační protokol určuje komunikační pravidla mezi klientem a serverem a formát předávaných informací. Poskytuje mechanismy, které umožňují provedení autentizace a současně zajišťuje bezpečný přenos autentizačních informací v síťovém prostředí. Volba konkrétního protokolu, případně jeho parametrů, je výsledkem vyjednávání (negotiation) mezi klientem a serverem. Použitý protokol je vyjádřením shody schopností komunikujících stran a měl by reprezentovat vždy tu nejvíce bezpečnou možnost akceptovatelnou oběma stranami.
2.1.
Protokol LM a NTLM
Původní autentizační protokoly Windows mají označení LAN Manager a NT LAN Manager. Jsou založeny na principu výzva–odpověď (challenge–response). V aktuálních verzích operačního systému přetrvávají z důvodu kompatibility. Umožňují autentizaci v prostředí s různými verzemi operačního systému Windows. Princip autentizace výzva–odpověď přiblížíme na příkladu interaktivní autentizace v doménovém prostředí. Proces interaktivní autentizace má dva účastníky – operační systém na stanici autentizujícího se uživatele (dále jen klient) a doménový řadič, který hraje roli autentizačního serveru. Uživatel zadává uživatelské jméno, heslo a doménu, ve které autentizaci provádí. Jak již bylo uvedeno, autentizaci zastřešuje systémový proces Winlogon, v jehož kontextu běží další důležité procesy podílející se na autentizaci, zejména procesy MS GINA a LSA. Modulární skladba komponent umožňuje operačnímu systému snadnou implementaci různých autentizačních mechanismů. Operační systém získává heslo uživatele v otevřené nechráněné podobě. Jeho obsah následně zpracuje pomocí kryptografické metody a vytvoří z něj jedinečný otisk (hash). Dále následuje výměna informací mezi klientem a doménovým řadičem, kterou lze stručně vyjádřit následujícími body: • Klient odesílá serveru uživatelské jméno jako součást žádosti o autentizaci. Tato informace je odesílána serveru v otevřené nechráněné podobě (plain– text). • Server generuje náhodnou informaci, které se označuje jako výzva (challenge) a vrací ji zpět klientu. Současně si uchovává kopii výzvy. • Klient obdrženou výzvu šifruje a odesílá zpět serveru. Jako klíč používá výtah vytvořený z hesla uživatele. Odpověď klienta se označuje jako response. • Server má přístup do databáze SAM, ve které se nachází hash hesla uživatele. Protože ví, které entita se autentizuje, vyhledá v SAM uložený hash hesla a provede identické zpracování odeslané výzvy jako klient. Výsledek porovná s odpovědí, kterou obdrží od klienta.
11
Informatika
Při neinteraktivní autentizaci je mechanismus podobný, ale autentizace se účastní tři strany – klient, server (služba), ke které je požadován přístup a doménový řadič. Jak již bylo uvedeno, neinteraktivní autentizace probíhá s užitím informací uchovaných z procesu interaktivní autentizace na straně klienta (hash hesla uživatele). Předpokládejme, že se uživatel pokouší získat přístup ke sdílené složce. Komunikace mezi serverem a klientem probíhá dle popsaného scénáře. Server generuje výzvu a klient odesílá odpověď. Přijatou odpověď server přeposílá doménovému řadiči. Současně musí odeslat také doplňující informace nutné k provedení autentizace – uživatelské jméno a odeslanou výzvu. Z popisu je patrné, že při každé NTLM autentizaci je opakovaně dotazován doménový řadič.
2.2.
Protokol Kerberos
Autentizační možnosti Windows byly ve verzi Windows 2000 rozšířeny o další autentizační protokol, kterým je uznávaný internetový standard Kerberos (RFC 1510, 1964). Bohužel, tento protokol se uplatňuje pouze v sítích založených na Windows 2000, XP a 2003. V ostatních případech se stále uplatňují méně bezpečné protokoly NTLM, případně LM. Kerberos autentizace je založena na kryptografických metodách. Komunikující entity používají krátkodobý (dočasný) klíč relace, kterým symetricky šifrují předávanou informaci. Autentizace je založena na schopnosti dešifrovat zaslanou informaci, tedy na předpokladu, že ten, kdo dešifrování úspěšně provádí, zná klíč relace.
Obrázek 4: Kerberos – základní schéma (msdn.microsoft.com) Autentizaci protokolem Kerberos ve Windows zajišťuje služba s názvem Key Distribution Center (KDC), která je spuštěna na každém doménovém řadiči2 Windows 2000, XP nebo 2003. Podivný název služby KDC vyjadřuje další důležitou funkci služby. Služba KDC zajišťuje nejen autentizaci (Authentication Service), ale současně je službou pro distribuci lístků (Tiket–Granting Service). Lístky představují v protokolu Kerberos základní datovou strukturu, 2
Doménové řadiče spravují databázi Active Directory, ve které se rovněž nacházejí bezpečnou formou uložené kopie hesel.
12
Bezpečnost operačního systému a počítačové komunikace
která kromě jiných informací obsahuje již zmíněné klíče relací. Pomocí lístku prokazuje klient svou identitu nejrůznějším službám. Služba KDC hraje roli důvěryhodného prostředníka mezi klientem a serverem. Pro vysvětlení třístranné struktury autentizace klient–KDC–server se často používá podobenství vyplývající z názvu Kerberos (mytický trojhlavý pes). KDC centralizuje informaci o hlavních (dlouhodobých) klíčích entit (master key), které se používají pro zabezpečenou distribuci jednotlivých klíčů relací (session key).
Obrázek 5: Kerberos – výměna lístků (msdn.microsoft.com) Průběh autentizace prostřednictvím protokolu Kerberos opět popíšeme na příkladu. Předpokládejme prostředí klient–server, ve kterém klient (program, služba nebo proces), který je aktivní v relaci přihlášení konkrétního uživatele, požaduje přístup k určité službě. Může se jednat např. o otevření složky nebo souboru, zařazení tiskové úlohy do fronty nebo zpracování určitého databázového dotazu. V bezpečnostním modelu protokolu Kerberos každé takové akci předchází autentizace. Poznámka: Autentizace nemusí být jednosměrná. Také klient může požadovat, aby server prokázal svou identitu. Takový případ se označuje jako vzájemná autentizace. Schéma Kerberos autentizace lze stručně shrnout do následujících bodů: • Autentizační proces (operační systém) získá heslo uživatele v otevřené nechráněné podobě. Obsah hesla převede na hlavní klíč (dlouhodobý) pro pozdější šifrování. • Autentizační klient odesílá serveru požadavek, který je vpodstatě žádostí o lístek pro přidělování lístků (Ticket–Granting Ticket, TGT). Součástí požadavku jsou identifikátor uživatele a tzv. autentikátor, které prokazují
13
Informatika
jeho identitu. Autentikátor obsahuje časovou značku a je šifrován hlavním klíčem klienta odvozeným ze zadaného hesla. • Server po obdržení požadavku dešifruje autentikátor, protože má přístup k informacím, ze kterých je schopen odvodit hlavní klíč klienta (má přístup k zašifrované podobě hesla uložené v Active Directory). • Pokud je dešifrovaný obsah autentikátoru relevantní, generuje KDC lístek TGT. Po úspěšném přihlášení klient obdrží lístek pro přidělování lístků TGT. V něm se nachází klíč relace, který je určen pouze pro komunikaci mezi klientem a KDC. Je platný po celou dobu trvání relace přihlášení. Lístek TGT je zašifrován hlavním klíčem KDC. Klient získává od KDC rovněž svou kopii klíče relace šifrovanou jeho hlavním klíčem. Pouze on je schopen dešifrovat jeho obsah. Dále již není nutné, aby klient při komunikaci s KDC používal svůj hlavní klíč. Tímto mechanismem je minimalizováno použití nejcitlivější informace, kterou je dlouhodobý hlavní klíč klienta. Z popisu je patrná další výhoda protokolu Kerberos. Služba KDC ani žádná jiná služba nemusí uchovávat kopie klíčů relací. Tyto kopie služby získávají od klientů formou lístků – KDC prostřednictvím TGT a ostatní služby formou lístků relací (Session Tiket). Lístek TGT klient používá, chce-li získat přístup k dalším službám. Současně se žádostí odesílá také TGT. Služba KDC generuje nový klíč relace, který šifruje klíčem obsaženým v TGT a současně vytváří odpovídající lístek relace. Ten podobně jako TGT obsahuje kopii klíče relace určenou pro službu, ke které klient požaduje přístup a je šifrovanou jejím hlavním klíčem. Klient od KDC vždy získává svou kopii klíče relace a lístek relace určený pro zvolenou službu. Pomocí autentikátoru a vystaveného lístku relace se následně klient prokazuje při navazování spojení se službou.
3.
Správa hesel ve Windows
Součástí bezpečnostní politiky operačního systému je správa uživatelských účtů, ke které náleží zejména bezpečné uložení kopií hesel. Hesla zpravidla nejsou uložena v otevřené podobě, ale uchovávají se jejich šifrované obrazy. K tomuto účelu používají operační systémy různé kryptografické algoritmy. V odlišných variantách operačního systému Windows má zabezpečení hesel různou úroveň. Nejslabší ochranu poskytují verze Windows 9X a Windows Me. Tyto verze dovolují sestavit heslo s maximální délkou 14 znaků. I když tato délka teoreticky umožňuje sestavit dostatečně složité heslo, operační systém Windows provádí určitá zjednodušení, která tento prostor omezují. Prvním nepříznivým krokem je case insenzitivní zpracování hesla. Operační systém aplikuje na řetězec funkci UpCase(). Tento krok negativně omezuje konečný tvar hesla a umožňuje při útoku významně redukovat množinu testovaných znaků. Heslo je dále doplněno znaky NUL tak, aby mělo výslednou délku 14 znaků. Takto upravený řetězec se před uložením do SAM kryptograficky zpracuje. Rozdělí se
14
Bezpečnost operačního systému a počítačové komunikace
na dvě části, které se použijí jako klíče pro algoritmus DES. Výstupem je 128ti bitový řetězec, který je uložen do systémové databáze. Původní 14 znaková délka hesla je procesem zpracování degradována na 7. LM hash je nejslabší formou zabezpečení hesel v operačním systému Windows. Ve verzi Windows NT byla délka hesla prodloužena na 128 znaků. Dále bylo odstraněno UpCase() zpracování řetězce před kryptografickým zpracováním a uložením do databáze SAM. Rovněž byl odstraněn rozklad hesla na dvě části před jeho kryptografickým zpracováním. Pro utajení obsahu hesla operační systém používá algoritmus Message Digest MD-4. Jedná se o tzv. funkci obsahu (hash funkce), která se používá pro generování jedinečné číselné reprezentace zprávy. V tomto případě je zprávou řetězec tvořící heslo. Důležitou vlastností funkce je jednosměrnost, která neumožňuje rekonstruovat obsah zprávy z výtahu. Zdálo by se, že těmito změnami zanikají všechny bezpečnostní nedostatky původního zpracování hesla. Nicméně i tyto verze operačního systému obsahují slabinu. Ohrožení bezpečnosti spočívá ve snaze zachovat zpětnou kompatibilitu k verzím Windows 9X a Me. Aby byla ponechána možnost autentizace klientům starších verzích Windows, vytváří podsystém zabezpečení kopii hesla také dle původní méně bezpečné strategie. Nedílnou součástí bezpečnostní politiky je nastavení takových požadavků na tvar hesla, aby uživatelé maximálně využili nabízených možností systému a nedegradovali jeho bezpečnostní potenciál. Tato pravidla jsou součástí strategie, která se ve Windows souhrnně označuje jako bezpečnostní zásady. Patří mezi ně rozsáhlá množina nastavení určených pro uživatele a počítače. Zásady lze uplatňovat lokálně, ale vhodnější je jejich prosazování z úrovně správních jednotek, kterými se v sítích založených na operačním systému Windows označují jako domény. Mezi těmito pravidly se nachází také možnost potlačit zpětnou kompatibilitu, zejména ukládání kopií LM hesel, použití méně bezpečného šifrování algoritmem DES nebo dokonce uložení kopií hesel v otevřené podobě.
4.
Autorizace
Termín autorizace označuje proces ověřování oprávnění subjektu k provedení určité akce. Tento proces obvykle navazuje na autentizaci, např. po úspěšné autentizaci přidělí souborový server uživateli specifická oprávnění ke sdíleným síťovým prostředkům. Základní informace, na kterých je založena autorizace ve Windows, se nacházejí v datových strukturách přístupový záznam (access token) a deskriptor zabezpečení objektů (složek, tiskáren, procesů atd.). Přístupový záznam vytváří podsystém LSA po úspěšné autentizaci objektu. Oprávnění, která záznam definuje, dědí všechny procesy a aplikace spuštěné v relaci přihlášení. Záznam obsahuje informaci o identitě uživatele a jeho privilegiích – SID účtu uživatele, SID skupin, jejichž je členem, SID relace přihlášení, seznam privilegií uživatele a skupin, atd. Deskriptor zabezpečení objektu (složky, souboru, tiskárny, tiskové úlohy nebo fronty, procesu, služby atd.) ob-
15
Informatika
sahuje informace, které určují oprávnění pro získání přístupu k jeho vlastnostem3 . Obsahuje zejména seznam oprávnění pro řízení přístupu DACL (Access Kontrol List, ACL), který definuje požadavky pro získání přístupu nebo pro uskutečnění určité operace. Seznam je tvořen jednotlivými položkami (Access Control Entry, ACE), které povolují (access–allowed) nebo zakazují (access– denied) provedení určité operace. Z následujícího obrázku je patrný mechanismus autorizace. Příklad zobrazuje dva různé procesy Thread A a Thread B. Proces Thread B získává oprávnění pro přístup k objektu, jelikož jeho přístupový záznam obsahuje informaci o členství ve skupině Group A. Ta je uvedena v seznamu ACL objektu s oprávněním, které umožňuje zápis (Write). Naopak procesu Thread A je přístup zamítnut. Důvodem je existence první položky typu access–denied v DACL objektu spojená s uživatelem Andrew. Z výsledku je patrné, že zakazující položky seznamu přístupových oprávnění ACL mají při vyhodnocování oprávnění přístupu přednost.
Obrázek 6: Vyhodnocení oprávnění přístupu (msdn.microsoft.com) Názorným příkladem autorizace je ověřování přístup k souborům a složkám souborového systému NTFS. V následujícím příkladu je zobrazen seznam přístupových oprávnění, který je součástí deskriptoru zabezpečení souboru boot.ini.
Obrázek 7: Oprávnění pro přístup k souboru boot.ini
3
obsah je jednou z vlastností objektu
16
Bezpečnost operačního systému a počítačové komunikace
5.
Kódování a šifrování
V předchozí kapitole byl několikrát použit termín šifrovat, klíč, kryptografický algoritmus nebo metoda, kryptografický kontrolní součet a další. Bezpečnostní prvky operačního systému se opírají o obecnější algoritmy a metody, které nevznikly samoúčelně pro potřebu počítačů, ale existovaly daleko dříve, než byl zkonstruován ENIAC nebo vytvořen první operační systém. Současné prostředky zabezpečení jsou výsledkem vývoje lidské komunikace, ve které nastávají okamžiky, kdy odesilatel vyžaduje, aby obsah zprávy zůstal maximálně utajen. Tento požadavek byl motivací pro vznik mnoha metod, které hůře či lépe splňovaly požadovaný úkol. Vývoj vyústil v současné moderní kryptografické metody, které se opírají o rozvinutý matematický aparát a splňují nejvyšší požadavky kladené na bezpečnost informací: • zajišťují důvěrnost (přístup k obsahu mají pouze oprávněné osoby), • zajišťují integritu (zabezpečení správnosti, kompletnosti a neporušenosti informací), • zajišťují dostupnosti, • zajišťují nepopiratelnosti (prokazatelnost původu informace). Předpokládejme, že existuje výchozí konečná množina symbolů (znaků), ze kterých jsou tvořeny základní prvky komunikace (slova). Množinu symbolů označíme jako abecedu A = a1 , a2 , a3 , a4 , . . . , an . V běžném lidském pohledu je všem jasné, co si pod abecedou představíme. V počítačovém měřítku může být abecedou např. tabulka ASCII nebo Unicode. Výchozím komunikačním prvkem je slovo, které je složeno z konečného počtu znaků. Zřejmě existuje konečná množina slov, která lze ze znaků konečné abecedy vytvořit. Označme ji jako prostor zpráv S(A). Kódování je vzájemně jednoznačné zobrazení z jednoho prostoru zpráv do druhého F : S(A) → S(B). (1) Z obecnějšího pohledu nepředstavuje kódování prostředek jak skrýt skutečný obsah původní zprávy. Snahou kódování je naopak převedení zprávy do formátu, který je přijatelný pro určitý komunikační kanál (Morseova abeceda), umožňuje digitální zpracování (ASCII, Unicode) nebo zjednodušuje identifikaci objektu (kód ISBN, rodné číslo). Pokud bychom chtěli kódování použít pro utajení informace, musíme utajit algoritmus změny obsahu. Naopak šifrování, jak dále uvidíme, používá obecně známé metody a neznámým parametrem zabezpečení konkrétní informace je šifrovací klíč. Poznámka: Speciální kódy používané v počítačové komunikaci jsou vybaveny mechanismy pro opravu obsahu informace.
17
Informatika
Označíme-li původní otevřenou podobu zprávy jako OZ, vzniká kódováním skrytá informace ST (skrytý text) ST = F (OT ).
(2)
Současně existuje inverzní postup dekódování, který umožňuje rekonstrukci původního obsahu OT = F −1 (ST ). (3) Při kódování je zobrazení F pouze funkcí obsahu zprávy. Není závislé na žádném dalším parametru. Pokud se tento předpoklad změní a do procesu utajení vstupuje parametr, pak mluvíme o šifrování. Parametr šifrování se obvykle označuje jako klíč. Výše uvedené vztahy lze pro šifrování formálně upravit ST = F (K1 , OT ),
(4)
OT = F −1 (K2 , ST ).
(5)
a dešifrování
Pokud jsou klíče K1 , K2 ve dvou předchozích rovnicích shodné, označuje se šifrování jako symetrické. Jsou-li klíče různé, hovoříme o asymetrickém šifrování. Konstrukcí kryptografických algoritmů, protokolů a jejich implementací se zabývá kryptografie. Analýzou algoritmů, hledáním slabin a prověřováním zranitelnosti je předmětem kryptoanalýzy. Cílem kryptoanalýzy může být zlepšení vlastností algoritmu nebo naopak pouze jeho prolomení. Kryptografie a kryptoanalýza představují dvě disciplíny vědního odvětví, které má název kryptologie. Současná kryptologie se opírá o silné matematické zázemí. Steganografie se zabývá skrýváním informace. V klasickém pojetí může být jako příklad uveden neviditelný inkoust nebo skrývání zprávy do okolního textu. Digitálně uložené informace poskytuje daleko širší prostor pro takové ukrývání a umožňuje do sebe přidávanou zprávu snadněji rozprostřít. Steganografie využívá nedokonalosti lidských smyslů. Poznámka: Luštění šifer má tři fáze – identifikace šifry, prolomení a nastavení algoritmu. První fáze představuje zjištění o jaký šifrovací algoritmus se jedná. Ve druhé fázi se odhalují jednotlivé prvky algoritmu.
5.1.
Klasické kryptografické metody
Klasické kryptografické metody se rozdělují do těchto skupin: • transpoziční šifry, • substituční šifry, • kombinace transpozičních a substitučních algoritmů, • kódovací knihy.
18
Bezpečnost operačního systému a počítačové komunikace
Přes uvedené rozdělení lze algoritmy v řadě případů zařadit do více kategorií. Transpoziční algoritmy jsou založeny na změně pořadí písmen původní zprávy. Původní znaky zprávy se zachovávají, ale mění se typické digramové vazby4 jazyka. Šifrovaná zpráva je určitou permutací zprávy původní. Transpoziční šifra si ponechává původní četnost písmen otevřeného textu. Tato vlastnost je významným vodítkem kryptologa při odhalování způsobu šifrování. Substituční algoritmy nahrazují znaky původní zprávy výběrem znaků ze zamíchané abecedy. Pokud je míchání provedeno pouze jednou (používá se jediná permutace abecedy), označuje se substituce jako monoalfabetická. Pokud je abeceda zamíchána pro každý znak, mluvíme o polyalfabetické substituci. Kódová kniha představuje šifrování zprávy pomocí kódových skupin. Jsou to smluvené kombinace čísel a znaků definované délky, které zastupují obvyklé termíny nebo fráze. Nejfrekventovanější termíny mohou mít několik kódů, aby byla identifikace ztížena. Je zřejmé, že kódová kniha představuje slovník, který je klíčem pro dešifrování. Obvykle uváděným klasickým příkladem monoalfabetické substituční šifry je Caesarova šifra. Údajně ji Caesar používal nejen pro válečné účely, ale také při soukromé korespondenci s Kleopatrou. Každé písmeno zprávy je nahrazeno jiným písmenem, které je vzdáleno o zvolený počet pozic. Pro příklad použijeme latinskou abecedu a předpokládáme posunutí 3 znaky, které používal Caesar: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Pomocí této transpozice zakódujme zprávu: ROZDELENI KRYPTOGRAFICKYCH METOD URCGHOHQL NUBSWRJUDILFNBFK PHWRG Šifra je poměrně jednoduchá. Existuje pouze 25 variant, které lze snadno vyzkoušet i bez použití počítačů. Její dešifrování se mírně komplikuje pouze rozšířením abecedy. Pomocí modulární aritmetiky lze tuto šifru vyjádřit: c = E(m) = (m − p) mod 26,
(6)
m = D(c) = (m + p) mod 26,
(7)
kde m je kód znaku zprávy M, p představuje posunutí zvolené při náhradě znaků a symbol E vyjadřuje proces šifrování (encrypting), jehož výsledkem je šifrovaný znak c (cypher). Druhá rovnice reprezentuje inverzní operaci, ve které symbol označuje D proces dešifrování (decrypting). Příklad 3: Pro názornost budeme kódem znaku rozumět jeho pořadí (index) v abecedě. Při modulárním součtu je výsledkem zbytek po dělení příslušným 4
víceznakových spojení
19
Informatika
modulem. Je-li modulus N číslo 26 a posunutí p je rovno 3, pak záměna znaku Y, který je 24–tým znakem původní abecedy, lze zapsat jako (24+3) mod 26. Výsledek modulo operace je roven 1. Tento index (kód) náleží znaku B. Upozornění: Kód prvního znaku abecedy je roven 0. Účinnost Caesarovy šifry lze zvýšit větším počtem variant, které by bylo nutné vyzkoušet při dešifrování zprávy hrubou silou. Lze toho docílit tím, že posun při šifrování znaků nebude konstantní, ale bude se měnit dle smluveného klíče, např. 10 − 17 − 24 − 15 − 19. 5 různých posunutí představuje 255 teoretických možností: A K R Y P T
B L S Z Q U
C M T A R V
D N U B S W
E O V C T X
F P W D U Y
G Q X E V Z
H R Y F W A
I S Z G X B
J T A H Y C
K U B I Z D
L V C J A E
M W D K B F
N X E L C G
O Y F M D H
P Z G N E I
Q A H O F J
R B I P G K
S C J Q H L
T D K R I M
U E L S J N
V F M T K O
W G N U L P
X H O V M Q
Y I P W N R
Z J Q X O S
Poslední slovo v našem příkladu METOD bude zašifrováno do tvaru USWAI. Uvedený způsob šifrování se označuje jako Viegenerovy šifry nebo jako šifrování periodickým klíčem. Číselný klíč lze snadno nahradit klíčovým slovem, jehož písmena vyjadřují jednotlivá posunutí. V našem případě je heslem slovo KRYPT. Ve Viegnerově šifře může být každý znak původní abecedy nahrazen znakem z jiné tabulky monoalfabetického šifrovače. Monoalfabetická substituce vychází z určité permutace původní abecedy. Každé písmeno původní abecedy se nahrazuje znakem ze stejné pozice v permutované abecedě: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Y M I H B A W C X V D N O J K U Q P R T F E L G Z S Naše zpráva zpracovaná jednoduchou záměnou vypadá následovně: ROZDELENI KRYPTOGRAFICKYCH METOD PKSHBNBJX DPZUTKWPYAXIDZIC OBTKH Dešifrování zprávy již není tak snadné jako v případě Caesarovy šifry. Počet permutací 26 znakové abecedy lze vypočítat jako faktoriál počtu znaků, tj. 26 ! = 26 . 25 .24 . . . 3 . 2 .1. Výsledná hodnota je větší než číslo 4 . 1026 . Postupné zkoušení všech možností v tomto případě příliš praktické není. Lze však využít vlastností, které má zašifrovaná informace. Předně se algoritmem nemění frekvence a rozmístění jednotlivých hlásek přirozeného jazyka. Zachování mezer v šifrované zprávě usnadňuje kryptoanalýzu, proto se před šifrováním odstraňují nebo nahrazují znakem, který má v přirozeném jazyce malou frekvenci výskytu. Možné je rovněž rozšířit abecedu o speciální znak.
20
Bezpečnost operačního systému a počítačové komunikace
Základním krokem kryptoanalýzy je odhalit oddělovače slov. To je nutným předpokladem dalšího úspěchu při luštění šifry. Kryptoanalýza se opírá o výsledky statistického zpracování běžného textu. Jedním z důležitých pojmů statistické analýzy je index koincidence. Vyjadřuje pravděpodobnost, že u dvou textů v daném jazyce lze očekávat výskyt stejných písmen na stejném místě. Následující příklad naznačuje výpočet indexu koincidence pro dvě zprávy A, B. Nechť A = a0 a1 a2 . . . an , B = b0 b1 b2 . . . bn jsou zprávy obsahující n + 1 znaků. Index koincidence je vyjádřen výrazem n 1 X IC(A, B) = δ(ai , bi ) n + 1 i=0
(8)
ve kterém člen δ(ai , bi ) představuje Kroneckerovo delta, které nabývá hodnoty 1 při rovnosti znaků ai = bi , v opačném případě je rovno 0. Další statistické testy se zaměřují na typické gramatické prvky jazyka. Následující tabulky jsou příkladem takových informací. Luštění zprávy postupuje od kratších slov k delším. Zaměřuje se na odhalení počátečních písmen jednotlivých slov, na výskyt nejčastějších dvouznakových (bigramů), víceznakových spojení a dalších významných gramatických prvků jazyka. Samohláska a e i o u
En Fr Ger Cz Sk 7,96 7,68 5,52 8,99 9,49 12,86 17,76 19,18 10,13 9,16 7,77 7,23 8,21 6,92 6,81 6,62 5,34 2,14 8,39 9,34 2,48 6,05 4,22 3,94 3,70
Tabulka 1: Pravděpodobnost výskytu samohlásek v některých jazycích [%]
E T A I N R S
En Fr Ger Cz Sk 12,86 E 17,76 E 19,18 E 10,13 A 9,49 9,72 S 8,23 N 10,20 A 8,99 O 9,34 7,96 A 7,68 I 8,21 O 8,39 E 9,16 7,77 N 7,61 S 7,07 I 6,92 I 6,81 7,51 T 7,30 R 7,01 N 6,64 N 6,34 6,83 I 7,23 T 5,86 S 5,74 S 5,94 52,65 S 55,81 S 57,53 S 46,81 S 47,08
Tabulka 2: Písmena národních abeced s největší pravděpodobností výskytu Příklad 4: Šifra s názvem SKYTALA je historicky dokumentovaná např. ve Spartě (500 př.n.l.). Zpráva byla napsána na pruh pergamenu, který byl namotán na dřevěný válec dohodnutého průměru. Nenavinutý pergamen poskytoval zašifrovanou zprávu. Klíčem k dešifrování byla hůl určitého průměru. Mezi nejjednodušší klasické substituční šifry se řadí Polybiův čtverec. Znaky původní abecedy seřazené do tabulky se nahrazují znakovou dvojicí, která
21
Informatika
představuje řádkový a sloupcový index znaku v tabulce. Tajným klíčem je indexová tabulka, která může mít různou konstrukci: 1 1 A 2 F 3 K 4 P 5 U 6 Z
2 B G L Q V
3 4 5 C D E H I J M N O R S T W X Y
a a A b F c K d P e U f Z
b B G L Q V
c d e C D E H I J M N O R S T W X Y
˚ a ˚ a A æ F ø K ß P § U ¶ Z
æ B G L Q V
ø ß § C D E H I J M N O R S T W X Y
Tabulka 3: Varianty Polybiova čtverce Výsledkem šifrování prvního slova z našeho příkladu mohou být řetězce: ROZDELENI ≡ 433561141532153424, ROZDELENI ≡ dccefaadaecbaecdbd, ROZDELENI ≡ ßøø§¶˚ a˚ aß˚ a§øæ˚ a§øßæß. První nevýhodou substituce je dvojnásobná délka šifrované zprávy vůči otevřenému textu, která je významná zejména v okamžiku přenosu zprávy. Další slabinou je, že šifrovaná zpráva obsahuje pouze omezenou množinou znaků. Tato vlastnost usnadňuje odhad použité šifrovací metody. Algoritmus rovněž nemění vzájemnou vazbu znaků otevřené zprávy. Všechny uvedené nevýhody lze eliminovat. Nejdříve zamícháme abecedu uvnitř tabulky, resp. vytvoříme její permutaci. Můžeme například první řádek obsadit nějakým klíčovým slovem a do dalších buněk zapíšeme zbývající písmena abecedy: a a H b A c G d N e U
b c d E S L B C D I J K P Q R V W X
e O F M T Y
Tabulka 4: Varianty Polybiova čtverce Pomocí tabulky č. 4 zašifrujeme slovo KRYPTO. Výsledkem je řetězec cdddeddbdeae, který rozdělíme do tří 4 znakových bloků cddd, eddb, deae. Rozdělenou zprávu zapíšeme do nové tabulky a provedeme transpozici dle zvoleného transpozičního klíče, např. 3–1–2–4. Klíč vyjadřuje pořadí sloupců, ve kterém bude provedeno další uspořádání znaků zprávy. Po záměně sloupců vypadá zpráva následovně: ddacedddedbe. Původní tabulku, která byla použita pro substituci monogram–bigram, použijeme pro zpětnou náhradu znaků bigram–monogram. Tímto krokem se zruší omezená skupina znaků v šifře. Výsledná hodnota zprávy je DYNMPF. Popsaný postup se označuje termínem MBTM (monogram–bigram–transpozice–monogram) a používal se ve 2. světové válce.
22
Bezpečnost operačního systému a počítačové komunikace
1↓ c e d
2↓ d d e
3↓ 4↓ d d d b a e
Tabulka 5: Transpoziční tabulka
5.2.
Modulární aritmetika, faktorizace
Modulární aritmetika je upravená aritmetika nad celými čísly, kterou na přelomu 19. století formuloval K.F.Gauss (1801). V základní podobě se často označuje názvem aritmetika hodin. Výsledky operací v modulární aritmetice jsou prvky konečné množiny celých čísel, pro kterou se také používá označení okruh. Omezující hodnota okruhu se nazývá modulus. Obvykle se jako základní příklad uvádí hodinový ciferník rozdělený na 12 dílů, který však popisuje 24 hodinový (denní) cyklus. Po překročení poledne se obvykle vracíme k označení času 1 h, 2 h, 3 h atd. Modulem je v tomto případě číslo 12 a odpolední hodiny podvědomě určujeme jako zbytek celočíselného dělení. Modulární aritmetika definuje tzv. kongruentní třídy celých čísel. Dvě čísla a, b jsou modulo N kongruentní, jestliže existuje takové q, že platí (a − b) = q ∗ N . Tento vztah se také zapsat výrazem a ≡ b (mod N ).
(9)
Příkladem kongruentní třídy jsou čísla 2, 14, 26, 38, 50, . . . . Libovolná dvě čísla splňují požadavek definice z předchozí věty pro N = 12. Jsou tedy kongruentní modulo 12, resp. říkáme, že čísla náleží do kongruentní třídy modulo 12, např. (26 − 2) = 2 ∗ 12 nebo (50 − 2) = 4 ∗ 12. Kongruenci může vyjádřit také pomocí zbytku po dělení modulem. Všechna čísla z uvedeného příkladu mají tu vlastnost, že zbytek po dělení 12 je číslo 2.
Poznámka: V programovacích jazycích se pro operaci modulo obvykle používá operátor %. Jednou z nejdůležitějších vět modulární aritmetiky je věta označovaná jako malá Fermatova věta. Jsou-li a, p nesoudělná celá čísla, pak platí ap−1 ≡ 1 mod p.
(10)
Je-li p prvočíslo, pak existuje právě p − 1 nesoudělných čísel s p. Tuto hodnotu vyjadřuje Eulerova funkce ϕ(p) = p−1. Zobecnění Fermatovy věty se označuje jako Euler-Fermatova věta, kterou vyjadřuje následující výraz ap−1 ≡ 1 mod p.
23
(11)
Informatika
Modulární aritmetika poskytuje tzv. jednosměrné funkce, tj. takové funkce, ke kterým nelze vytvořit funkci inverzní. Právě jednosměrné funkce se používají při vytváření kryptografických algoritmů. Pro následné úvahy spojené s asymetrickými šifrovacími algoritmy je vhodné uvést základní operace v modulo aritmetice: (a mod N ) + (b mod N ) = (a + b) mod N (a mod N ) ∗ (b mod N ) = (a ∗ b) mod N (a mod N )b = ab mod N (ab )c mod N = ab∗c mod ϕ(N ) mod N
(12)
Moderní asymetrické kryptografické algoritmy se opírají ještě o jeden důležitý předpoklad. Jejich síla závisí na skutečnosti, že v současnosti není známý dostatečně rychlý algoritmus, kterým by bylo možné provádět rozklad velkých čísel na součin prvočísel, tzv. problém faktorizace. Známe-li dvě prvočísla, např. 15733 a 17053, je snadné je vynásobit. Pokud však známe pouze hodnotu výsledného součinu 268294849, je obtížné provést provočíselný rozklad. Poznámka: Připomeňme si, že prvočísla jsou přirozená čísla dělitelná pouze 1 a sama sebou, a že každé přirozené číslo, které není prvočíslo, lze zapsat jako součin prvočísel m = pa11 ∗ pa22 ∗ pa33 ∗ . . . ∗ pann , (13) kde p1 , p2 , p3 , . . . , pn jsou vzájemně různá prvočísla a a1 , a2 , a3 , . . . , an jsou přirozená čísla. Výše uvedený výraz se označuje jako kanonický tvar.
5.3.
Současné kryptografické metody
Moderní kryptografické metody jsou veřejně známé standardy. Jejich algoritmy jsou stále pod drobnohledem kryptoanalytiků, kteří je neustále prověřují, zdokonalují a sledují jejich vlastnosti. Jak již bylo uvedeno v odstavci, který byl věnován kódování, součástí šifrovacího algoritmu je parametr, který se označuje termínem šifrovací klíč. Ten je předmětem utajení a představuje jedinou neznámou v procesu dešifrování. Je pojistkou proti odhalení obsahu zprávy. Moderní algoritmy jsou založeny na tzv. výpočetní bezpečnosti. Nepředpokládá se, že jsou teoreticky absolutně bezpečné, ale že jejich výpočetní složitost je tak veliká, že přesahuje současné možnosti počítačů při útoku hrubou silou5 . Sílu šifrovacích algoritmů vytváří délka klíče, která je sledována a korigována (resp. prodlužována) v závislosti na rostoucím výkonu výpočetní techniky. Současné kryptografické metody se rozdělují do následujících tříd: • symetrické metody, • asymetrické metody, 5
opakované dešifrování s použitím všech možných klíčů
24
Bezpečnost operačního systému a počítačové komunikace
• hybridní metody, • kryptografické kontrolní součty. V dalším textu budeme označovat původní obsah zprávy jako otevřený text. Je-li zpracován algoritmem šifrovací metody, vzniká šifrovaný text. Inverzní operace se označuje jako dešifrování. 5.3.1.
Symetrické metody, algoritmus DES
Symetrické metody používají stejný klíč pro šifrování i dešifrování. Odesilatel a příjemce sdílejí společné tajemství, které jim zpřístupňuje obsah zpráv. Předností symetrických šifrovacích metod je rychlost. Nevýhodou je požadavek na bezpečný kanál pro distribuci sdíleného klíče. Další negativní vlastností je vysoký počet klíčů. Pokud existuje N účastníků, musí být vytvořeno a distribuováno N ∗ (N − 1)/2 klíčů pro zajištění soukromí. Další nepříjemnou skutečností je nutnost uchovávat klíč na dvou místech – na straně odesilatele a příjemce, což zvyšuje pravděpodobnost prozrazení klíč. Symetrické šifrovací metody se dělí na proudové a blokové. Proudové šifry zpracovávají zprávu po znacích. Známou proudovou šifrou je algoritmus RC4, který používají např. internetové standardy SSL/TLS nebo S/MIME. Algoritmus sestavil Donald Rivest (1987). Šifra používá klíč v maximální délce 256 bitů. Blokové algoritmy šifrují zprávu po jednotlivých blocích zpravidla v délce klíče. Symetrické šifrování nezajišťuje integritu zpráv. Pozmění-li se úmyslně či neúmyslně zašifrovaná zpráva, změní se i její původní obsah. Nejznámějšími symetrickými algoritmy jsou šifry DES, Triple DES, IDEA a BlowFish.
Obrázek 8: Schéma symetrické šifry
Data Encryption Standard (DES) Standardem symetrického šifrování se stal algoritmu DES, který byl v roce 1976 oficiálně přijat jako šifrovací standard
25
Informatika
v USA. Autorem algoritmu je německý matematik Horst Feistel, který algoritmus s původním názvem Lucifer vyvinul ve pro společnosti IBM. Zajímavé okolnosti s přijetím DES uvádí S. Singh v knize „Kniha kódů a šiferÿ. Zarážející je zejména informace o aktivitě bezpečnostní agentury National Security Agency (NSA), která ovlivnila (rozuměj omezila) sílu přijatého standardu tak, aby neztratila kontrolu nad šifrou. Algoritmus DES byl standardizován s délkou klíče 56 bitů, který NSA považovala za svými prostředky dešifrovatelný. DES je blokový symetrický algoritmus s délkou klíče 64 bitů. Jelikož je však každý osmý bit klíče paritní, snižuje se jeho efektivní délka na 56 bitů. Tato délka vytváří prostor klíčů v rozsahu 256 , který již není při současném výkonu počítačů považována za bezpečný. Zpracování zprávy při blokovém šifrování DES vyjadřuje následující algoritmus. Šifrovaná zpráva se zpracovává po 128 bitových blocích pomocí transpozičních i substitučních operací. Nejdříve se provede úvodní permutace, po které se 128 bitový blok rozdělí na levou Li a pravou Ri 64 bitovou část. Následuje 16 identických bloků (rund) operací, ve kterých probíhá jak substituce pomocí předdefinovaných tabulek (S–boxů), tak transpozice pomocí pevně stanovených permutací6 (P–boxů). V každé rundě se modifikuje pravý blok Ri , který současně nezměněný vstupuje jako levá strana do následující rundy Li = Ri−1 . Naopak levá část bloku v rundě změnami neprochází, ale v konečné fázi se podílí na modifikaci pravého bloku Ri−1 = Li−1 xor f (Ri−1 , Ki−1 ). V průběhu šifrování bloku dat se z DES klíče vytvoří 16 pracovních (rundovních) 48 bitových klíčů, které se používají v jednotlivých cyklech. Schéma jedné rundy je znázorněno na následujícím obrázku:
Obrázek 9: Schéma jedné rundy algoritmu DES V roce 1998 dosáhl výkon počítačů takové úrovně, že se podařilo sestrojit specializovaný hardware nazvaný DES–Cracker, který umožnil prolomit DES šifru hrubou silou za 9 dní. DES přestal splňovat představy o bezpečném algoritmu. Pro zvýšení bezpečnosti bylo doporučeno používání varianty Triple DES. Ta je založena na opakovaném použití algoritmu DES se dvěma nebo třemi klíči, čímž se zvyšuje efektivní délka klíče až na 168 bitů. Současně byla vypsána 6
změn pozic bitů v šifrovaném bloku
26
Bezpečnost operačního systému a počítačové komunikace
v USA veřejná soutěž na nový standard vyhovující současnému stavu výpočetního výkonu počítačů. V roce 2002 byl vybrán algoritmus Rijndael, jehož autory jsou belgičané Vincent Rijmen a John Daemen. Standardizován však byl pod názvem Advanced Encryption Standard (AES). Pro algoritmus je charakteristický 128 bitový blok a klíč v délce 128, 256 nebo 512 bitů. Zpracování bloku opět probíhá podobně jako v případě DES v rundách, jejichž počet se však mění s délkou klíče. 5.3.2.
Výměna klíčů, algoritmus Diffie–Hellman
Problém distribuce klíče se stal klíčovým problémem symetrického šifrování a základním úkolem moderní kryptografie. Bez jeho vyřešení nebylo možné masově používat symetrické šifrovací algoritmy v počítačové komunikaci. Hledáním způsobu, jak provést bezpečnou výměnu klíče otevřenou cestou, se zabývali vědci Whitfield Diffie a Martin Hellman. Této dvojici se po několikaletém snažení podařilo řešení najít. Jejich algoritmus opět vychází z principů modulární aritmetiky. Předpokládejme, že dvě strany A a B si chtějí vyměnit otevřenou cestou klíč, který jim umožní šifrovat a dešifrovat následnou komunikaci. Nejdříve si vymění veřejnou informaci, s jejíž pomocí vygenerují stejný symetrický klíč. Následující popis objasňuje podstatu algoritmu Diffie–Hellman: • odesilatel a příjemce se dohodnou na dvou veřejných parametrech M a N ; M je prvočíslo a N (generátor) a platí N < M , • odesilatel generuje náhodné privátní číslo x a vypočítá veřejnou hodnotu O = N x mod M , kterou odešle příjemci, • příjemce generuje náhodné privátní číslo y a vypočítá veřejnou hodnotu P = N y mod M , kterou odešle odesilateli, • odesilatel obdrží od příjemce hodnotu P , ze které vypočte klíč KP O = (P )x mod M , • příjemce obdrží od odesilatele hodnotu O, ze které vypočte klíč KOP = (O)y mod M , • protože platí KP O = KOP = K, mohou další komunikaci odesilatel i příjemce šifrovat tímto klíčem. Příklad 5: Příjemce se s odesilatelem dohodli na veřejných hodnotách N = 5, M = 563. Odesilatel generuje náhodné prvočíslo 9 jako své soukromé číslo x a vypočítá hodnotu N x mod M = 59 mod 563 = 78. Podobně postupuje i příjemce. Náhodně si zvolí např. 14 jako své soukromé číslo y a vyčíslí stejně jako odesilatel hodnotu N x mod M = 514 mod 563 = 534. Vypočtené hodnoty 78 a 534 si komunikující strany vymění a pomocí svých soukromých hodnot vypočtou shodný klíč – 5349 mod 563 = 117, 7814 mod 563 = 117. Výše uvedený princip má jeden nedostatek. Vyžaduje aktivní účast obou stran, která např. v poštovní komunikaci není možná. Z úvah spojených se vznikem
27
Informatika
výše popsaného algoritmu však vytvořil W. Diffie také koncepci asymetrické kryptografie opírající se o veřejný a soukromý klíč. Vlastní algoritmus však vznikl v roce 1977. Vytvořili jej trojice vědců Ronald Rivest, Adi Shamir a Leonard Adleman a nazvala jej RSA. 5.3.3.
Asymetrické metody, algoritmus RSA
Narozdíl od symetrických metod jsou asymetrické šifrovací algoritmy závislé na dvou klíčích – veřejném a soukromém. Ze znalosti jednoho klíče není nemožné (resp. je velmi obtížné) odvodit klíč druhý. Asymetrické metody jsou výpočetně náročnější než symetrické metody. Otevřený text je šifrován veřejným klíčem příjemce, který zprávu dešifruje svým tajným soukromým klíčem. Veřejný klíč je k dispozici všem uživatelům, kteří jej mohou pro zabezpečenou komunikaci využít. Není nutné generovat a distribuovat dočasné klíče relací, složitě vytvářet zabezpečené úložiště klíčů jako v případě symetrického šifrování. Významně se také snižuje počet klíčů. V případě N účastníků je počet klíčů 2*N. Otázka distribuce klíčů však není zcela vyřešena. Snadno si lze představit co způsobí podvržený veřejný klíč. Každý, kdo se pokusí o zabezpečenou komunikaci s takovým „falzifikátemÿ, umožní osobě, která klíč podvrhla, dešifrovat obsah zpráv. V případě asymetrického šifrování je nutné zaručit veřejným klíčům pravost. Tato úloha se svěřuje důvěryhodné třetí straně označované jako certifikační autorita. Pravost veřejného klíče je garantována certifikátem. Tato otázka bude podrobněji rozebrána v dalším odstavci. Typickým zástupcem asymetrické šifry je algoritmus RSA.
Obrázek 10: Schéma asymetrické šifry
RSA Nejznámější asymetrická šifra je výsledkem úsilí pracovní skupiny, kterou tvořila trojice matematiků Donald Rivest, Adi Shamir a Leonard Adleman.
28
Bezpečnost operačního systému a počítačové komunikace
Inspirováni koncepcí asymetrického šifrování, kterou zveřejnil W.Diffie, vytvořili dnes zřejmě nejpopulárnější a nejznámější algoritmus. Jeho síla je založena na velmi obtížné faktorizaci velkých prvočísel, tj. na v současnosti neznámé rychlé metodě umožňující rozklad velkých čísel na součin prvočísel. Postup přípravy klíčů pro algoritmus RSA lze rozepsat do následujících kroků: • Zvolíme dvě dostatečně velká prvočísla p, q a určíme jejich součin N . • Určíme přirozené číslo s nesoudělné s (p − 1) ∗ (q − 1). • Dvojice čísel {s, N } představuje veřejný klíč. • Určíme číslo t takové, že t ∗ s = 1 mod (p − 1) ∗ (q − 1). Protože stejný požadavek je kladen i na veřejné číslo s, existuje právě jedno řešení úlohy. • Dvojice čísel {t, N } představuje soukromý klíč. • Čísla p, q nejsou dále potřebná. Prostředky modulární aritmetiky lze algoritmus RSA vyjádřit následující větou: Jsou-li s, p a N parametry algoritmu RSA, pak pro každé číslo x z intervalu < 1; N ) platí x = xst mod N . Šifrování zprávy se provádí pomocí veřejného klíče a schématu (nebo také kongruence) SZ = OT s mod N . Pro dešifrování informace se naopak použije klíč soukromý OT = SZ t mod N . Postup však lze i obrátit, tj. šifrovat soukromým klíčem a dešifrovat klíčem veřejným. Příklad 6: Pomocí RSA algoritmu zašifrujeme zprávu BUTFCE. Nejdříve je nutné najít číselnou reprezentaci pro jednotlivé znaky zprávy. Ty nám poskytne např. tabulka ASCII – 0x42 0x55 0x54 0x46 0x43 0x45. Uvedené hodnoty představují hexadecimální 7 vyjádření kódu znaku. Zprávu rozdělíme do čtyř 12-ti bitových bloků – 0x425 0x554 0x464 0x345. Pro sestavení klíčů musíme najít dvě dostatečně velká prvočísla a provést jejich součin. V příkladu vystačíme s čísly p=37 a q=41, která by v reálném případě nebyla vhodná. Uvědomme si, že 512-bitový klíč reprezentuje 155-ti ciferné dekadické číslo. Ze zvolených prvočísel uděláme součin a získáme hodnotu N=p*q=1517. Pro sestavení veřejného klíče zvolíme číslo s=7, které musí být nesoudělné s (p-1)*(q-1), tj. s číslem (37-1)*(41-1)=1440. Dvojice {7, 1517} bude náš veřejný klíč. Soukromý tajný klíč musíme určit z rovnice s*t=1 mod (p-1)*(q-1). Tomuto požadavku vyhovuje prvočíslo t=823. Nyní máme i soukromý klíč {823, 1517} a můžeme začít šifrovat. Pro sjednocení číselné soustavy, ve které jsou vyjádřeny kódy znaků, převedeme klíče také do hexadecimální soustavy. Veřejným klíčem {0x7, 0x5ED} zašifrujeme zprávu dle výše uvedeného schématu: 7
číselný kód znaku v 16-vé soustavě
29
Informatika • (0x425)7 mod 0x5ED=0x1D8 • (0x554)7 mod 0x5ED=0x56C • (0x464)7 mod 0x5ED=0x36A • (0x345)7 mod 0x5ED=0x489 Zašifrované bloky opět spojíme a převedeme zpět do znakové reprezentace. Pomocí ASCII tabulky obdržíme z kódů 0x1D 0x85 0x6C 0x36 0xA4 0x89 řetězec -ůl6Ľ. Dešifrování musí probíhat nad blokem stejné délky. Pomocí soukromého klíče {0x337, 0x5ED} dešifrujeme první blok pomocí výrazu • (0x1D8)0x337 mod 0x5ED=0x425. 5.3.4.
Hybridní kryptografické metody
Symetrické šifrování je rychlé, ale vyžaduje existenci bezpečné cesty pro transport klíčů. Asymetrické šifrování nevyžaduje předávání sdíleného tajemství, ale je výpočetně náročnější a pro šifrování rozsáhlejších informací nevhodné. Spojením výhod obou kategorií algoritmů vzniká třída označovaná jako hybridní kryptografické metody. Hybridní metody mají následující schéma. Pro šifrování obsahu zprávy se používají symetrické algoritmy. Předání sdíleného symetrického klíče se řeší pomocí asymetrické šifry. Symetrický klíč, pro který se v určitých případech používá termín klíč relace, je šifrován veřejným klíčem příjemce a připojen ke zprávě. Toto schéma přijaly např. aplikace pro zabezpečení elektronické pošty PGP a S/MIME. 5.3.5.
Funkce obsahu zprávy (hash funkce)
Často se pro jejich označení používá původní termín hash funkce. Jedná se o algoritmy, které slouží k vytvoření relativně krátké číselné reprezentace obsahu zprávy, tzv. výtahu nebo také hash. Obvyklá délka výtahu je 128, 160, 256 nebo 512 bitů. Toto číslo jednoznačně reprezentuje informaci, pro kterou bylo generováno. Znamená to, že dvě identické zprávy mají rovněž identický výtah zprávy. Pokud se obsah zprávy nepatrně změní (třeba o 1 bit), změní se rovněž generovaný výtah. Tato důležitá vlastnost funkcí obsahu se nazývá bezkoliznost. Je nezbytná pro zajištění identity výtahu. Další podstatnou vlastností funkcí obsahu je jednosměrnost. Vypočtený výtah zprávy nesmí umožnit rekonstrukci obsahu. Mezi nejznámější a nejčastěji používané algoritmy patří funkce MD-5 a SHA-1. Funkce obsahu zprávy se využívají při zajišťování integrity 8 elektronických dokumentů, jako součást elektronického podpisu, při ukládání uživatelských hesel do systémových struktur operačního systému, dále např. pro vytváření kontrolních součtů přenášených zpráv (Hashed Message Authentication Code, HMAC) při zabezpečené komunikaci. 8
kontrolní mechanismus pro zajištění původního obsahu zprávy
30
Bezpečnost operačního systému a počítačové komunikace
5.4.
Šifrování souborů – EFS
Souborový systém NTFS poskytuje ochranu datům v podobě souborových oprávnění. Tyto atributy vymezují přístup uživatelů k souborům a složkám a chrání informace před neoprávněným přístupem. Uplatňují se v procesu autorizace. Je nutné si uvědomit, že oprávnění souborového systému se uplatní pouze jako součást operačního systému. Hrozí-li nebezpečí, že je možné obejít tuto úroveň a data jsou velmi citlivá, je nutné provést další krok v zabezpečení a informace chránit pomocí šifrovacích algoritmů. Šifrování převádí data do formátu, ve kterém jsou pro ostatní uživatele nečitelná a poskytuje ochranu i v případě, kdy se útočníkovi podaří zavést alternativní operační systém, případně jinou cestou získat fyzický přístup k souborům. V operačním systému Windows 2000 byl rozšířen souborový systém NTFS o kryptografickou ochranu v podobě systému souborů Encrypted File System (EFS). EFS umožňuje používat ochranu dat symetrickým šifrováním na úrovní souborů a složek. Opírá se o kryptografické rozhraní CryptoAPI, které je součástí operačního sytému Windows. Pro ochranu souborů a složek se používá symetrické šifrování ve spojení s veřejným klíčem. Pro každý soubor se generuje náhodný klíč, tzv. File Encryption Key (FEK), pomocí kterého je soubor zašifrován, a který se rovněž používá pro dešifrování. Tento klíč je zašifrován pomocí veřejného klíče uživatele a je uložen do EFS atributu souboru s názvem Data Decryption Field (DDF). Privátní klíč uživatele se používá při dešifrování klíče FEK. Z tohoto schématu vyplývá jedinečný přístup vlastníka souboru k jeho obsahu. Aby bylo možné dešifrovat obsah souboru i v situacích, kdy vlastník souboru o klíč přijde, zavádí operační systém roli agent pro obnovení zašifrovaných dat (AO), který má rovněž přístup ke klíči FEK. Soubor nebo složku lze zašifrovat volbou příslušného atributu, ke kterému má uživatel stejný přístup jako ke standardním atributům, např. skrytý soubor (hidden). Šifrování je možné provést také pomocí řádkového příkazu cipher.exe. Vše pak již probíhá transparentně. Pro šifrování souborů používá EFS ve výchozím nastavení algoritmus DESX, který je modifikací algoritmu Data Encryption Standard (DES). Ve Windows XP je možné prostřednictvím zásad zabezpečení nastavení změnit a zvolit algoritmus Triple DES, který nabízí silnější ochranu 128 nebo 168 bitovým klíčem. Ve Windows 2000 je nejdříve nutné do systému Windows nainstalovat podporu pro 128 bitové šifrování.
Obrázek 11: Atributy souborového systému NTFS pro kompresi a šifrování
31
Informatika
6.
Elektronický podpis
Většina článků, které se zabývají tématikou elektronického podpisu (EP), obsahuje úvod, ve kterém se zdůrazňuje odlišnost elektronického a vlastnoručního podpisu. Možná autoři v dalších generacích budou mít opačný problém a v podobných tématech se budou muset zaměřit na vysvětlení podstaty vlastnoručního podpisu. Elektronický podpis tedy opravdu není digitalizovaný vlastnoruční podpis, ale jedná se o proměnné číslo, které je výsledkem určitých matematických operací provedených nad obsahem podepisované elektronické informace. Těchto operací se účastní soukromý klíč tvůrce elektronického podpisu. Bez něj podpis nelze realizovat. Soukromý klíč spojuje elektronický podpis s konkrétní osobou. Ve srovnání s metodami pro ověřování pravosti vlastnoručního podpisu je proces prokazování identity elektronického podpisu přímočařejší a poskytuje vyšší průkaznost pravosti.
6.1.
Schéma vytvoření elektronického podpisu
Vraťme se ke schématu asymetrické šifrovací metody. Jejím základem jsou dva klíče. Veřejný klíč příjemce slouží k šifrování zprávy, která je dešifrovatelná pouze pomocí jeho soukromého klíče. Schéma můžeme obrátit a šifrování provést soukromým klíčem odesilatele. Tento postup má jeden problém. Dešifrovat obsah zprávy je pak možné pomocí veřejného klíče odesilatele. Může to tedy provést kdokoli. Má naznačený postup nějaký smysl? Z hlediska utajení zprávy žádný, ale umožňuje jednoznačně prokázat spojení veřejného a soukromého klíče. Právě tuto vlastnost využívá elektronický (lépe digitální) podpis. Předpokládejme, že odesilatel A chce doručit příjemci B zprávu, která nemusí být zašifrována, ale chce chránit zprávu před změnou obsahu a prokázat své autorství. Uživatel A je vlastníkem soukromého klíče SKA = {d, N } a veřejného klíče V KA = {e, N }. Odesilatel A vytvoří výtah obsahu (otisk) své zprávy M prostřednictvím funkce obsahu HA = HASH(M ). V elektronické komunikaci se nejčastěji používají algoritmy MD-5 a SHA-1. Otisk zašifruje svým soukromým klíčem. Schéma šifry lze vyjádřit zápisem SA = HA d mod N . Zašifrovaný otisk se připojí ke zprávě M = M + SA . Příjemci B je dostupný veřejný klíč odesilatele, s jehož pomocí dešifruje výtah odeslané zprávy HA = SA e mod N . Z přijaté zprávy dále vytvoří rovněž otisk. Je zřejmé, že musí použít stejnou funkci obsahu zprávy. HB = HASH(M ). Pokud je dešifrovaný otisk HA shodný s vytvořeným otiskem HB , pak v průběhu přenosu nedošlo ke změně obsahu zprávy.
6.2.
Právní aspekty elektronického podpisu
V legislativě ČR byl elektronický podpis přijat zákonem 227/2000 Sb. ze dne 29.června 2000 s účinností od 1. října 2000. Cílem zákona je zrovnoprávnit elektronický a vlastnoruční podpis. Přijetí zákona ovlivnilo řadu existujících před-
32
Bezpečnost operačního systému a počítačové komunikace
Obrázek 12: Schéma vytvoření elektronicky podpisaného dokumentu pisů, např. občanský zákoník (40/1964 Sb.), zákon o správě daní a poplatků (337/1992 Sb.), zákon o správních poplatcích (368/1992 Sb.), o ochraně osobních údajů (101/2000 Sb.) a další, které musely být novelizovány. Změny se týkají doplňků, které formulují roli elektronického podpisu v kontextu příslušných předpisů. Následující příklad zachycuje změnu v § 40 odst. 3 občanského zákoníku:
Příklad 7: § 40 odst. 3: „Je-li právní úkon učiněn elektronickými prostředky, může být podepsán elektronicky podle zvláštních předpisů.ÿ Zákon 227/2000 Sb. rozlišuje následující formy elektronického podpisu – elektronický podpis (EP), zaručený EP, zaručený EP založený na kvalifikovaném certifikátu, zaručený EP založený na kvalifikovaném certifikátu vydaném akreditovaným poskytovatelem certifikačních služeb. Elektronický podpis je v zákonu obecně definován jako „ke zprávě připojený elektronický údaj, který umožňuje ověření totožnosti podepsané osoby ve vztahu k datové části zprávyÿ. V této souvislosti nejsou blíže předepsány žádné technologie, metody nebo postupy. Zaručený elektronický podpis již předpokládá, že pro jeho vytvoření budou použity kryptografické metody, které mu poskytují identitu (jednoznačnou identifikaci podepsané entity), nepopiratelnost (podepsaný nemůže zapřít, že zprávu podepsal), schopnost zajistit podepsané zprávě integritu (neumožní modifikovat obsah zprávy třetí stranou) a konečně neumožní realizovat podpis bez parametru, který je ve výhradním vlastnictví podepisující entity (soukromý klíč). Zákon rovněž definuje tři úrovně poskytovatelů certifikační služeb (PCS) – běžný PCS, PCS vydávající kvalifikovaný certifikát a akreditovaný PCS. Zákon 227/2000 Sb. vymezuje elektronický podpis v obecnější rovině. Technické detaily a podmínky pro jeho využívání rozvádí prováděcí vyhláška č. 366/2001 vypracovaná Úřadem pro ochranu osobních údajů. Vyhláška se zabývá zejména konkrétními požadavky kladenými na poskytovatele certifikačních služeb, kteří chtějí vydávat kvalifikované certifikáty, požadavky na nástroje (CA) a prostředky (uživatel) využívané při elektronickém podpisu. Účinností vyhlášky vznikly podmínky pro činnost poskytovatelů akreditovaných certifikačních služeb vydávajících kvalifikované certifikáty. Jako první a doposud jediná byla v březnu roku 2002 akreditována I. CA. Zajímavý údaj představuje odhadovaný
33
Informatika
náklad, který se uvádí v souvislosti s vybudováním a akreditaci certifikační autority. Uváděná částka dosahuje výše 70 milionů korun. Závratná cena je možným důvodem, proč nejeví o akreditaci zájem další subjekty. Bohužel, monopol I. CA určuje i poměrně vysokou cenu za vydání certifikátu. Spektrum nabídky I. CA obsahuje testovací certifikát, komerční a kvalifikovaný. V ceníku z května roku 2004 lze nalézt tyto poplatky za zřízení certifikátů: Kvalifikovaný certifikát platnost 12 měsíců, délka klíče 1024 b v Kč včetně DPH standard 752, − comfort 1728, − + čipová karta a ovládací SW Tabulka 6: Cena kvalifikovaného certifikátu Dalším významným dokumentem se stalo vládní nařízení č. 304/2001 zabývající se problematikou využívání elektronických podpisů při komunikaci občana s orgány veřejné moci. Obousměrná elektronická komunikace se ukázala v dané chvíli právně nepřijatelná z důvodu silné závislosti mnoha stávajících právních norem na tradičních formách doručování. Při přípravě zákona bylo shledáno, že musí být provedena postupná novelizace všech souvisejících právních předpisů, která je časově náročná. Proto se zmíněné nařízení vlády omezilo pouze na jednosměrnou komunikaci občan – orgány veřejné správy. Vyhláška ukládá orgánům veřejné správy jako povinnost zřídit elektronické podatelny (EP) umožňující nepřetržitou komunikaci. Zákon 226/2002 sb. ze dne 9.5.2002 upravuje použití EP v některých našich zákonech. Současnou aktivní úlohu v této oblasti zákonů v ČR sehrává ministerstvo pro informatiku, které vzniklo v roce 1993.
Obrázek 13: Elektronický formulář pro přiznání k DPH Poslední novela zákona 227/2000 Sb. byla provedena v březnu 2004 a řeší zejména návaznost na vstup ČR do Evropské unie. Jedná se zejména o otázky uznávání kvalifikovaných certifikátů v zemích EU, udělování akreditací CA se sídlem mimo území ČR, prohlubuje vazbu zákona na směrnici Evropského
34
Bezpečnost operačního systému a počítačové komunikace
parlamentu 1999/93/ES, právně zavádí časové razítko a elektronickou značku, rozšiřuje požadavky na poskytovatele certifikátů.
6.3.
Časové razítko
Elektronický podpis nemusí být vždy dostačujícím atributem, který prokazuje věrohodnost dokumentu. Stejně jako průkaznost původu je často vyžadována časová autentičnost vytvoření dokumentu, resp. časová autentičnost elektronického podpisu. Pro tento účel byl v elektronické komunikaci zaveden pojem časové razítko. Postup vytvoření časového razítka zachycuje následující obrázek. Pomocí funkce obsahu je generován výtah zprávy, který je odeslán autoritě Time Stamp Authority. Ta vydává časová razítka. Výtah zprávy spojí s časovou značkou a následně elektronicky podepíše. Je důležité, aby se TSA opírala o důvěryhodný časový zdroj. Časové razítko je rovněž zakotveno v zákoně o elektronickém podpisu, který definuje požadavky na poskytovatele časových razítek a zavádí pojem kvalifikované časové razítko.
Obrázek 14: Časové razítko
7. 7.1.
Důvěryhodnost veřejného klíče Certifikát
Certifikát je digitální dokument, který zajišťuje důvěryhodnost veřejnému klíči. Pravost klíče je stvrzena elektronickým podpisem vydavatele certifikátu, kterým je určitá certifikační autorita. Ta ručí za vydaný certifikát po celou dobu jeho platnosti. Ověření veřejného klíče důvěryhodnou stranou je mechanismus, kterým se brání podvržení klíče. Certifikát stejně jako certifikační autorita je součástí rozsáhlejší infrastruktury nazývané infrastruktura veřejného klíče (Public Key Infrastructure). Certifikát je samozřejmě definován normou. V operačním systému Windows je používán internetový standard X.509 v3.
35
Informatika
Certifikát je využíván v různých situacích – při autentizaci, elektronickém podpisu zpráv, elektronickém podpisu programového kódu, elektronických platbách, ale také při zabezpečené síťové komunikaci pomocí protokolů SSL/TLS a IPSec. Předchozí věta uvádí několik možných účelů, pro které je certifikát určen, resp. vydáván. Jedná se o tzv. omezení certifikátu. Obsahem certifikátu není pouze veřejný klíč vlastníka, ale řada dalších informací, které lze rozdělit do následujících kategorií: • atributy certifikátu (verze a sériové číslo certifikátu, časový údaj o platnosti certifikátu, účel pro který je certifikát vydáván, identifikace vydávající certifikační autority, typ algoritmu použitého pro podpis), • identifikační údaje vlastníka certifikátu, • veřejný klíč vlastníka, • elektronický podpis vydávající CA.
Dalším důležitým atributem certifikátu je jeho bezpečnostní třída. Do nejnižší třídy se řadí osobní certifikáty vydávané pro testovací účely. V jejich případě neprovádí CA ověřování identifikačních údajů. Takové certifikáty mají omezený účel a jsou vydávány s velmi krátkou dobou platnosti. Pro získání komerčního certifikátu ve třetí bezpečnostní třídě je nezbytná osobní účast žadatele a doložení požadovaných dokladů, které stvrzují jeho identifikační údaje. Obrázek 15: Certifikát Speciální formou komerčního certifikátu je certifikát kvalifikovaný. Jedná se o jediný typ certifikátu, který je dle zákona č. 227/2000 Sb. akceptován při elektronické komunikaci občana s institucemi státní správy ČR. Kvalifikovaný certifikát má oprávnění vydat pouze akreditovaná CA. Akreditaci v České republice provádí Úřad pro ochranu osobních údajů. Požadavky pro vydání kvalifikovaného certifikátu jsou podobné jako v případě komerčního certifikátu. Navíc tento dokument musí obsahovat zákonem definovaný jedinečný identifikátor osoby, která certifikát užívá. Příklad 8: „Pokud je zaručený elektronický podpis založený na kvalifikovaném certifikátu užíván v oblasti orgánů veřejné moci, musí kvalifikovaný certifikát obsahovat takové údaje, aby osoba byla jednoznačně identifikovatelná.ÿ
36
Bezpečnost operačního systému a počítačové komunikace
7.2.
Certifikační autorita
Jak lze certifikát získat? Nejdříve je nutné mít jasno, k čemu má certifikát sloužit, tj. je nutné znát jeho účel. Certifikát nemůže být používán k jinému účelu. než byl vydán. Dále je třeba se rozhodnout, kterou instituci zabývající se distribucí certifikátů oslovíme. Tato služba se nazývá certifikační autorita (CA) a provozuje ji řada subjektů. Na území České republiky se jedná např. o společnosti CA Globe Internet, CA Czechia, CA České pošty (PostSignum), CA Cesnet, CA VUT Brno, I. Certifikační autorita, a.s. Tyto instituce obvykle nabízejí různé typy certifikátů, v různých bezpečnostních třídách, pro různé délky klíčů a za různé ceny. Každá CA poskytuje testovací certifikát, který umožňuje komukoliv vyzkoušet si asymetrické šifrování v praxi. CA vydává certifikáty na základě žádosti. Sestavení žádosti předchází vytvoření dvojice soukromý–veřejný klíč. Generování klíčů se často odehrává skrytě jako součást žádosti. K identifikačním údajům žadatele o certifikát se připojí veřejný klíč a celá žádost se elektronicky podepíše soukromým klíčem. Elektronický podpis stvrzuje spojení veřejného a soukromého klíče žadatele. Takto připravená žádost může být před odesláním zašifrována pomocí veřejného klíče CA. V případě testovacího certifikátu, kdy CA identifikační údaje neověřuje, se pro vytváření žádosti obvykle používá webovské rozhraní. Pomocí elektronického formuláře žadatel vyplní identifikační údaje a upřesní některé parametry certifikátu. Jedná-li se o certifikát vydávaný ve vyšší třídě, např. o kvalifikovaný certifikát, provádí CA ověření udaných informací. V tomto případě CA požaduje osobní účast žadatele, doložení identifikačních údajů a podepsání smlouvy.
Obrázek 16: Žádost o certifikát - parametry certifikátu Z výše uvedeného textu vyplývá, že k základním funkcím CA patří příjem žádostí o certifikáty, ověřování identifikačních údajů a vydávání certifikátů. Protože základní devizou CA je její důvěryhodnost, je neméně významnou činností CA dohled nad platností vydaných certifikátů. S touto činností souvisí zneplat-
37
Informatika
ňování certifikátů ať již z důvodu prošlého data platnosti nebo žádosti samotného uživatele. CA vydávání tzv. seznamy zneplatněných certifikátů (CRL), o které se opírají algoritmy ověřující pravost veřejných klíčů. Seznamy obsahují certifikáty s prošlým datem platnosti. V současnosti je snaha přejít od systému CRL k přímějším formám sdělování platnosti certifikátu. Jedná se např. o protokol Online Certificate Status Protocol (OSCP), kterým lze okamžité ověřit stav certifikátu. Certifikační autorita zajišťuje důvěryhodnost certifikátům, které vydala. Kdo však ověří veřejný klíč certifikační autority? Tento problém řeší hierarchické uspořádání certifikačních autorit. Na nejvyšší úrovni se nacházejí kořenové CA, které mají oprávnění vydávat nejen certifikáty pro běžné objekty (uživatele, počítače, některé služby), ale rovněž certifikáty pro CA na nižších úrovních. CA z vyšší úrovně zajišťují důvěryhodnost níže zařazeným CA na nižší úrovni. Mezi jednotlivými CA lze vytvořit tranzitivní vztah důvěry (CA považuje za důvěryhodné certifikáty vydané jinou CA).
Obrázek 17: Hierarchická vazba CA
8.
Zabezpečení síťové komunikace
Síťové prostředí je v současnosti přirozeným způsobem integrace počítačů. Všichni okamžitě vnímají především jeho výhody, zejména rychlý přístup k informacím. Nicméně připojením do sítě ztrácí počítač své soukromí, které mu zajišťovalo i určitou míru bezpečnosti. Jeho dostupností prostřednictvím sítě se zvyšuje počet osob, které k němu mohou získat oprávněný nebo neoprávněný přístup. Dalším rizikem je síť jako přenosový kanál. Ohrožení neveřejných informací spočívá v tom, že síť je obecně nezabezpečené sdílené přenosové prostředí. V následujících odstavcích budou stručně popsány základní prostředky operačního systému, kterými lze bezpečnostní rizika v síťovém prostředí snížit.
8.1.
Síťové filtry a firewally ve Windows
Ochranu počítače připojeného do sítě lze zajistit pomocí určitých praxí ově-
38
Bezpečnost operačního systému a počítačové komunikace
řených bezpečnostních pravidel. Jedná se zejména o metody, které eliminují snahu o získání neoprávněného přístupu k počítači prostřednictvím sítě, vzdálený útok na známé chyby v operačním systému a další. Útoky se obvykle vedou směrem na porty známých síťových služeb operačního systému. Následující informace se budou věnovat převážně problematice bezpečnosti protokolu TCP/IP, který je nejvíce využívaným protokolem ve sdílených datových sítích. Nicméně obsah odstavců lze zobecnit pro všechny protokoly síťové vrstvy. Síťové filtry umožňují kontrolovat vnější spojení s počítačem na základě pevně definovaných pravidel. Z pohledu síťového modelu ISO/OSI pracují na třetí síťové vrstvě a vystačí pouze s informací, která je obsažena v hlavičce paketu. Operační systém Windows umožňuje definovat síťové filtry ve verzích vycházejících z Windows NT. Ve výchozím nastavení operačního systému Windows nejsou vnější připojení omezena. Tato konfigurace není v otevřeném síťovém prostředí bezpečná a je vhodné ji změnit. Pro jednotlivé protokoly TCP, UDP a IP je možné připojení omezit pomocí seznamů explicitně definovaných portů, případně komunikaci zcela zakázat. Proces vytvoření takového seznamu je patrný z následujícího obrázku. Předně je třeba si všimnout, že filtrování síťové komunikace se vztahuje na všechny síťové adaptéry. Jednotlivé množiny – TCP ports, UDP ports a IP ports – slouží k explicitní definici přípustných portů v rámci protokolu. Pokud je přepínač v poloze Permit Only a seznam je prázdný, je výsledek stejný jako úplný zákaz protokolu UDP.
Obrázek 18: Konfigurace síťových filtrů ve Windows 2000 Softwarová služba nebo specializované zařízení, které ovlivňuje síťovou komunikaci na základě informací z vyšších vrstev modelu ISO/OSI, se nazývá bezpečnostní brána. Častěji se označuje původním anglickým termínem firewall. Bezpečnostní brány můžeme rozdělit podle toho, v jaké vrstvě síťového modelu informaci analyzují. Okruhové brány monitorují proces navázání TCP/IP spojení a z této úrovně rozhodují o oprávněnosti dalšího síťového přenosu. Pracují na úrovni spojové vrstvy modelu OSI. Aplikační brány pracují na nejvyšší aplikační vrstvě. Říká se, že zosobňují nebo zastupují klienty v síťové komunikaci. Umožňují formulovat pravidla pro přípustná spojení na uživatelské úrovni – pro konkrétní uživatele. Stavové brány využívají informace ze všech vrstev
39
Informatika
síťového modelu. Dříve byla služba typu bezpečnostní brána určena výhradně pro serverové verze operačních systémů nebo byla dodávána jako úzce specializované hardwarové zařízení. Důvodem byl zejména nezanedbatelným požadavek na výkon takového systému, který mohly splnit pouze specializované počítače. V současné době se však brány zabezpečení běžně používají i v jednodušší formě na úrovni jednotlivých osobních počítačů. Příkladem takové služby je firewall Internet Connection Firewall (ICF), která je součástí operačního systému Windows XP nebo ZoneAlarm od Zone Labs, Inc. Důsledek hlubší analýzy paketu, kterou bezpečnostní brány provádějí, je patrný z konfiguračních možností programu. Níže uvedená tabulka obsahuje seznam důvěryhodných sítí vytvořených při konfiguraci programu ZoneAlarm. Omezující pravidla je možné vyjádřit pomocí sítí a masek:
Obrázek 19: Konfigurační parametry bezpečnostní brány Windows XP
Moderní bezpečnostní politiky používané v současných počítačových sítích zpravidla kombinují zabezpečení prováděné na centrální bezpečnostní bráně sítě s distribuovaným zabezpečením pomocí lokálních prostředků zabezpečení na úrovni operačních systémů jednotlivých počítačů.
8.2.
Protokol SSL/TLS
Síťový model protokolu TCP/IP neobsahuje ve své struktuře vrstvu zabezpečení. Tato skutečnost je důkazem, že bezpečnost nebyla při zrodu Internetu
40
Bezpečnost operačního systému a počítačové komunikace
považována za prioritní atribut síťové komunikace. S narůstajícím počtem aplikací požadujících přístup k neveřejným informacím prostřednictvím sdílené veřejné sítě stále více absentovala možnost zabezpečení přenášených dat. Tento nedostatek byl řešen integrací kryptografických metod do aplikační úrovně. Jako příklad může být uveden protokol ssh používaný pro vzdálenou správu počítačů v prostředí operačního systému Unix, který je bezpečnou variantou protokolu telnet. Úspěšný pokus pro zobecnění vrstvy, kterou by mohly aplikace sdílet a obracet se na ni s požadavky pro zabezpečení, se zdařil společnosti Netscape. Řešení má název Secure Sockets Layer (SSL), a stalo se základem pozdějšího internetového standardu s označením Transport Layer Security Protokol (TLS). Zařazení SSL do síťového modelu mezi aplikační a transportní vrstvu je patrné z následujícího obrázku. Skutečnost je samozřejmě složitější a SSL/TLS je v podstatě seskupením několika protokolů: • protokol SSL Handshake Protocol vytváří bezpečné spojení mezi klientem a serverem, • protokol SSL Record Protocol přebírá a šifruje data aplikační vrstvy, • protokol SSL Change Cipher Spec Protocol slouží k oznamování změn bezpečnostních parametrů, • protokol SSL Alert Protocol kontroluje stav spojení a signalizuje chyby.
Obrázek 20: SSL/TLS a síťový model TCP/IP Protokol SSL/TLS využívá pro zabezpečení dat symetrické šifrování. Umožňuje vyjednání šifrovací metody (DEC, 3DES, RC4). Pro zabezpečení symetrického klíče využívá asymetrické šifrovací algoritmy (RSA). Protokol SSL/TLS je rovněž vybaven prostředky pro autentizaci a zajištění integrity zpráv. Vždy provádí autentizaci serveru a umožňuje autentizaci klienta. Proces vyjednání klíčů se označuje termínem handshake. Jeho průběh je zobrazen na obrázku. Obdrží-li server žádost klienta o zabezpečený přístup, odešle mu svůj certifikát. Klient certifikát ověří, vygeneruje tajnou informaci pro další generování klíčů, zašifruje ji veřejným klíčem serveru a odešle na stranu serveru.
8.3.
Protokol IPSec
Nevýhodou protokolu SSL/TLS je jeho pozice v síťovém modelu TCP/IP. Zvolené umístění předpokládá, že aplikace jsou vybaveny funkcionalitou pro
41
Informatika
Obrázek 21: SSL handshake komunikaci s vrstvou SSL/TLS. Jinými slovy se předpokládá, že i v případě, kdy operační systém disponuje podporou zabezpečení dle standardu SSL/TLS, aplikace musí být schopna tuto vrstvu použít. Snahou dalšího vývoje bylo najít řešení, které by poskytlo aplikacím zabezpečení méně závislé na jejich vlastnostech. Ukázalo se, že jednou z cest je přemístění funkce pro zabezpečení do nižší vrstvy síťového modelu TCP/IP. Standard, který byl z těchto úvah formulován se nazývá Internet Protocol Security (IPSec) a představuje rozšíření síťové vrstvy modelu TCP/IP o kryptografické zabezpečení. Protokol IPSec je založen podobně jako SSL/TLS na modelu koncového zabezpečení. To znamená, že zabezpečení provádí pouze odesílatel a příjemce. Může se jednat jak o koncové počítače, tak i o vstupní body sítí (směrovač, server pro vzdálený přístup). Protokol IPSec je možné používat ve dvou módech – v transportním a tunelovém. Transportní mód chrání pouze datovou část IP paketů. Původní hlavička IP protokolu zůstává nezměněna. Tunelový mód zapouzdří celý paket včetně hlavičky IP protokolu a přidává své vlastní řídící informace. V obou módech umožňuje protokol IPSec zajistit důvěrnost šifrováním, zabezpečit integritu pomocí kryptografického kontrolního součtu a prokázat autenticitu (digitální podpis). V transportním i tunelovém módu lze zvolit dva režimy protokolu IPSec.
Obrázek 22: IPSec a režim AH Protokol IPSec v režimu Authentication Header (AH) zajišťuje integritu předávané informace. Každý paket je doplněn kryptografickým kontrolním součtem, vytvářeným pomocí funkcí obsahu MD-5 a SHA-1, ale specifikace IPSec umož-
42
Bezpečnost operačního systému a počítačové komunikace
ňuje použít i jiné algoritmy. Důvěrnost síťové komunikaci zajišťuje IPSec šifrováním v režimu Encapsulating Security Payload (ESP). Pro utajení informací se používá symetrické šifrování, např. algoritmy DES, Triple DES, AES, IDEA a další. Výměna klíčů a dalších parametrů spojení je realizována pomocí protokolu Internet Key Exchange (IKE), který se opírá o algoritmus Diffie–Hellman. Protokol IPSec rovněž podporuje autentizaci (RSA) a použití certifikátů. Mezi nevýhody protokolu IPSec patří zejména složitější konfigurace. V operačním systému Windows se nastavení provádí prostřednictvím zásad zabezpečení.
Obrázek 23: IPSec a režim ESP
8.4.
Elektronická pošta a soukromí
Aplikaci pro kryptografické zabezpečení poštovní komunikace vytvořil v roce 1991 Philip Zimmermann. Program nazval Pretty Good Privacy a bezplatně jej poskytl uživatelům Internetu. Prakticky v něm realizoval řadu myšlenek, které formulovali Diffie a Hellman. V programu spojil rychlost symetrického šifrování (IDEA) a sílu asymetrického algoritmu (RSA). Nabídl široké veřejnosti nástroj poskytující jejich komunikaci „docela dobré soukromíÿ. PGP se stal velmi oblíbeným nástrojem, který však neměl snadný osud. P. Zimmermann se rozhodl šířit PGP bez licence na algoritmus RSA, který v té době již byl patentován společností RSA Data Security, Inc. Ta byla založena, aby komerčně zhodnotila práci na RSA. Prodávala program MailSafe, který umožňoval šifrování, dešifrování a digitální podpis elektronické pošty. Program MailSafe byl především určen pro komerční a vládní sféru a P. Zimmermann předpokládal, že nebude považován za konkurenci a že licenci na RSA dodatečně získá. Dalším ohrožením pro používání PGP byly návrhy na změnu trestního zákona, které usilovaly o získání kontroly vládních orgánů nad elektronickou komunikací zejména pro potřeby orgánů činných v trestním řízení. P. Zimmermann se rozhodl, že i přes výše uvedené nevyjasněné otázky systém PGP zveřejní. Výsledkem bylo obvinění z nelegálního exportu zbraní. Proč? Šifrovací programy byly totiž vládou USA zahrnuty do kategorie zbraní a jejich export byl vázán na souhlas ministerstva zahraničí. Žaloba byla po třech letech stažena a PGP bylo možné legálně používat. P. Zimmermann licenci na RSA skutečně získal a mohl svůj produkt komercionalizovat. Pro soukromé účely však PGP zůstává volně dostupným programem. Co PGP umí? Šifrovat a dešifrovat soubory, vytvářet a spravovat klíče, šifrovat, dešifrovat a digitálně podepisovat elektronické zprávy. Následující obrázek
43
Informatika
vyjadřuje, jak zabezpečení elektronické zprávy probíhá. Odesilatel vygeneruje náhodný 128 bitový symetrický klíč relace pro šifrování zprávy. Šifrování je provedeno algoritmem IDEA. Klíč relace je zašifrován algoritmem RSA a připojen ke zprávě. Jako klíč je použit veřejný klíč příjemce.
Obrázek 24: Schéma sestavení zprávy PGP PGP není centralizovaný systém. Je založen na tom, že kdokoli si může klíč vytvořit a vystavit nebo odeslat příjemci zprávy. Předpokládá, že k vystaveným klíčům, resp. k jejich vystavitelům máme plnou důvěru. Rovněž existují specializované servery, jejichž prostřednictvím lze klíče šířit.
8.5.
S/MIME
Jedním z prvních pokusů o skutečnou standardizaci zabezpečení elektronické komunikace se stala norma s názvem Privacy Enhanced Mail (PEM). Ta je na rozdíl od PGP založena na centrální správě veřejných klíčů. Současným standardem pro zabezpečení elektronické pošty je však protokol S/MIME, který je opět integrován z několik standardů. Zejména se jedná o standard pro formát zpráv s názvem Cryptographic Message Standard (CMS) a o rozšíření standardu MIME.
Poznámka: Standard MIME definuje strukturu elektronických zpráv, které mohou obsahovat různá multimediální data. Vznikl pro potřeby elektronické pošty, ale byl převzat i dalšími internetovými službami, např. službou WWW. MIME zavádí popisnou část zprávy, tzv. hlavičku, která umožňuje přesně deklarovat typ přenášených dat a tím usnadnit jejich další zpracování. Jedná se zejména o označení typu a podtypu přenášených dat. Syntakticky je hlavička tvořena seznamem klíčových slovy, kterým jsou přiřazeny normou definované hodnoty. Jako příklad můžeme uvést identifikátor typu s názvem Content–type, který může na základě obsahu zprávy nabývat např. hodnot application/msword, image/jpeg, audio/wav, atd.
44
Bezpečnost operačního systému a počítačové komunikace
CMS je protokol určený pro zpracování zabezpečených zpráv (RFC 2630), který vznikl z původní normy PKCS#7 zavedenou firmou RSA Inc. CMS rozlišuje tři typy zpráv – nešifrovaná data (Data), podepsaná data (SignedData) a data v elektronické obálce (EnvelopedData). Sestavení poštovní zprávy dle požadavků S/MIME zachycuje dále uvedený obrázek. Zpráva je nejdříve zabezpečena a zformátována dle normy CMS, kóObrázek 25: Struktura zprávy CMS dována algoritmem Base64 a finálně doplněna záhlavím S/MIME.
Obrázek 26: Schéma sestavení zprávy dle S/MIME
Aby bylo možné použít standard MIME také pro šifrované a podepsané zprávy, musela být rozšířena množina existujících typů MIME o nové hodnoty. Tento identifikátor má hodnotu application/pkcs7–smime v případě šifrované zprávy, resp. ve smyslu CMS zpráva vložená do obálky. Uvedený typ může mít další zpřesňující parametry. Jednak je nutné klientu sdělit, jakou formu zabezpečení má očekávat. Tato informace je sdělována pomocí parametru smime–type. Informace o obsahu zprávy může nabýt hodnot enveloped–data pro šifrovanou zprávu, signed–data pro podepsanou zprávu a certs–only pro případ, kdy je ve zprávě odeslán pouze certifikát. V našem příkladu se tedy jedná o šifrovanou zprávu.
45
Informatika
Obrázek 27: Hlavička šifrované zprávy S/MIME V případě, že má být zpráva pouze elektronicky podepsána, je možné ji odeslat formou, která umožňuje číst její obsah nezávisle na elektronickém podpisu. Za tímto účelem zavádí standard S/MIME identifikátor typu multipart/signed, který umožňuje rozdělit elektronický podpis a zprávu na dvě samostatné části. Parametr micalg specifikuje funkci obsahu použitou při generování elektronického podpisu.
Obrázek 28: Hlavička podepsané zprávy S/MIME
46
Bezpečnost operačního systému a počítačové komunikace
9.
Autotest
V následujících otázkách je vždy právě jedna odpověď správná. 1. Šifrovací metoda RSA patří mezi: (a) symetrické šifrovací algoritmy. (b) asymetrické šifrovací algoritmy. (c) algoritmy pro výpočet kryptografických kontrolních součtů. 2. Šifrovací metoda DES patří mezi: (a) symetrické šifrovací algoritmy. (b) asymetrické šifrovací algoritmy. (c) algoritmy pro výpočet kryptografických kontrolních součtů. 3. Šifrovací algoritmus MD-5 patří mezi: (a) asymetrické šifrovací algoritmy. (b) symetrické šifrovací algoritmy. (c) algoritmy pro výpočet kryptografických kontrolních součtů. 4. Při elektronickém podpisu se výtah zprávy šifruje pomocí: (a) veřejného klíče příjemce. (b) veřejného klíče odesilatele. (c) soukromého klíče odesilatele. 5. Z hlediska bezpečnosti je nejslabším autentizačním protokolem Windows: (a) Kerberos. (b) LAN Manager. (c) NT LAN Manager. 6. Autentizační mechanismus protokolu Kerberos neobsahuje: (a) Autentikátor. (b) LM hash. (c) lístek relace. 7. Lístek relace, který obsahuje klíč relace šifrovaný hlavním klíčem serveru poskytuje KDC serveru: (a) přímo. (b) nepřímo prostřednictvím klienta. (c) server tuto informaci generuje samostatně automaticky při startu. 8. EFS je:
47
Informatika
(a) rozšíření souborového systému NTFS o kryptografickou ochranu souborů. (b) rozšíření souborového systému HPFS o souborová oprávnění. (c) kryptografická síťová vrstva. 9. Šifrování a kódování v kontextu kryptografie se liší: (a) složitostí zobrazení. (b) velikostí prostoru zpráv. (c) přítomností klíče v zobrazení. 10. Certifikát veřejného klíče: (a) obsahuje soukromý klíč vlastníka certifikátu. (b) veřejný klíč vydávající certifikační autority. (c) veřejný klíč vlastníka certifikátu. 11. Délka klíče 64 resp. 56 bitů používaná algoritmem DES je nedostačující protože: (a) algoritmus obsahuje chybu, která znehodnocuje délku klíče. (b) současná úroveň výpočetní techniky umožňuje úspěšně použít útok hrubou silou při uvedené délce klíče. (c) uvedená délka klíče je obecně nedostačující. 12. Výtah zprávy o velikosti 2kB generovaný jednosměrnou funkcí SHA-1: (a) je delší než vlastní zpráva. (b) je kratší než 1/10 zprávy. (c) je srovnatelný s délkou zprávy. 13. Kvalifikovaný certifikát vydává: (a) každá akreditovaná certifikační autorita a kořenová CA, která jí vydala certifikát. (b) každá akreditovaná certifikační autorita a jí hierarchicky podřízené CA. (c) pouze akreditovaná certifikační autorita. 14. Současný internetový standard v zabezpečení poštovní komunikace prostřednictvím má označení: (a) IPSec. (b) PGP. (c) S/MIME. 15. Zabezpečení přenosu informací v prostředí veřejných datových sítí kryptografickými prostředky poskytuje protokol:
48
Bezpečnost operačního systému a počítačové komunikace
(a) SSL/TLS. (b) TCP. (c) UDP. 16. Při asymetrickém šifrování se zpráva šifruje pomocí: (a) soukromého klíče odesilatele. (b) veřejného klíče příjemce zprávy. (c) veřejného klíče odesilatele. 17. Hybridní kryptografické metody spojují výhody symetrických a asymetrických algoritmů: (a) zprávu šifrují generickým klíčem, který následně šifrují veřejným klíčem příjemce a připojují ke zprávě. (b) zprávu šifrují generickým klíčem, který druhé straně nesdělují. (c) zprávu šifrují veřejným klíčem příjemce. 18. Termínem „handshakeÿ se v protokolu SSL/TLS označuje: (a) veřejný klíč serveru. (b) symetrický klíč relace. (c) proces vyjednání parametrů komunikace. 19. Výsledek operace 11 mod 5 je roven: (a) 1. (b) 6. (c) 5.
Závěr Shrnutí Text modulu se pokouší o přehled základních informací z oblasti bezpečnosti počítačové komunikace. Jeho cílem je objasnit nejdůležitější pojmy této oblasti – autentizace, autorizace, oprávnění a řízení přístupu – v kontextu operačního systému. Více informací je věnováno konkrétní implementaci mechanismů v operačním systému Windows. Dále se modul pokouší o přehled kryptografických metod. Historický přehled má sloužit k pochopení principů, na kterých jsou založeny algoritmy použité v moderních metodách. Podrobnější informace jsou vždy věnovány jednomu zástupci v popisovaných kategoriích. Poslední téma textu se týká zabezpečení síťové komunikace. V textu jsou uvedeny základní informace o síťových filtrech, bezpečnostních branách a o protokolech SSL/TLS a IPSec.
49
Informatika
Studijní prameny Seznam základní literatury [1] Doseděl, T.: Počítačová bezpečnost a ochrana dat. Computer Press, 2004. [2] Berka, M. a kol.: Bezpečná počítačová síť. Verlag Dashöfer, 2004. [3] Singh, S.: Kniha kódů a šifer. Dokořán, Argo, 2003. [4] Grošek, 0., Porubský, Š.: Šifrovanie. Grada, 1992. Seznam doplňkové studijní literatury [5] Bott, E., Siechert, C.: Windows Security. Microsoft Press, 2003. [6] Dostálek, L.: Velký průvodce protokoly TCP/IP. Computer Press, 2001. [7] Garfinkel, S.: Pretty Good Privacy. O’Reily, 1994. Odkazy na elektronické studijní zdroje a prameny [8] http://www.ha.cz/a spionaz/1kryptoslovnik.htm (malý slovník kryptografických pojmů) [9] http://msdn.microsoft.com/ (MSDN home)
Klíč k autotestu Správné odpovědi 1b, 2a, 3c, 4c, 5b, 6b, 7b, 8a, 9c, 10c, 11b, 12b, 13c, 14c, 15a, 16b, 17a, 18c, 19a
50