Audit a kryptografie Seminární práce na 4SA425
25. března 2011
1
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
Obsah 1 Teoretické předpoklady
4
2 Audit 6 2.1 ISACA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 ISO/IEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 NIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 Právní normy v oblasti kryptografie 3.1 Elektronický podpis a algoritmy . . . . . . . . 3.2 Ochrana osobních údajů . . . . . . . . . . . . 3.3 HIPAA a SOX . . . . . . . . . . . . . . . . . 3.4 Export kryptografických prostředků . . . . . . 3.5 Import a použití kryptografických prostředků 3.6 Trestné činy v oblasti kryptografie . . . . . . 4 Software
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
11 11 12 13 13 15 17 17
5 Praktické příklady 18 5.1 Problém generování náhodných čísel . . . . . . . . . . . . . . . . . . . . . 18 5.2 Chybná implementace kryptosystému . . . . . . . . . . . . . . . . . . . . . 20 6 Závěr
21
A Obrázky
23
B Zdrojové kódy
27
C Použité zdroje
29
2
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
Seznam tabulek 1
Vynucené dešifrování dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Seznam obrázků 1 2 3 4 5 6 7 8 9 10 11
Ukázka zařízení s firemními daty . . . . Kvalita generátorů náhodných čísel . . . Chybná volba módu blokové šifry . . . . Dešifrování dat . . . . . . . . . . . . . . Public Key Infrastructure (PKI) . . . . Šifrování podle Shannona . . . . . . . . Kryptografie – omezení exportu . . . . . Kryptografie – omezení importu . . . . . Kryptografie – omezení použití . . . . . Mód blokové šifry electronic code book . Mód blokové šifry cipher block chaining
3
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
6 19 20 21 23 23 24 24 25 25 26
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
Audit a kryptografie V práci rozebírám vazbu mezi kryptografií a auditem informačních systémů, zejména pak auditem bezpečnosti. Nejdříve uvádím stručně některé teoretické předpoklady; následují vazba na různé metodiky auditu, zdroje standardů v ČR a ve světě, prameny práva a vybrané právní problémy, spojené s kryptografií a krátká zmínka automatizovaných nástrojích. Ve druhé části práce je ukázka některých problémů kryptografických metod v informačních systémech, které je třeba při auditu brát v potaz. V seminární práci naopak nerozebírám základní principy symetrických a asymetrických kryptosystémů (obecně například RSA a AES/3DES), pokud to není nezbytně nutné. Bližší technické podrobnosti lze získat z odkazovaných dokumentů v textu.
1
Teoretické předpoklady
Kryptografii je možné (podle Shannona) definovat jako způsob vytvoření bezpečné komunikace po nebezpečném (nezabezpečeném) kanálu s jedním předpokladem: existuje jiný, bezpečný kanál [1]; diagram viz obrázek 6, str. 23. V praxi dochází přes bezpečný kanál k výměně symetrického klíče; s vývojem kryptografie v posledních 50 letech došlo ke zjednodušení předpokladu z bezpečného kanálu na ověřitelný (Merkle; tj. je zřejmé, s kým komunikujeme, není nutné, aby komunikace byla tajná) a později přes DiffieHellman protokol dospěla praxe k použití kryptosystému s veřejným klíčem (RSA1 ), kde dochází k předání bezpečným kanálem pouze jednou; diagram viz str. 23, obrázek 5. Využití dvou kanálů je výhodné, protože obvykle bezpečný kanál má nižší přenosovou kapacitu (případně výrazné zpoždění). V práci používám obecnější definici kryptografie jako oboru, proto do ní zahrnuji i implementaci kryptosystémů, hashovací funkce a generování náhodných čísel. Použití určitých kryptosystémů závisí na požadované úrovni bezpečí, dostupném hardware (proto je obvyklé stanovení symetrického klíče přes kanál, zabezpečený asymetrickým kryptosystémem), mezinárodních normách (ať už přikazujících, nebo zakazujících použití určité úrovně zabezpečení - viz str. 11) a v neposlední řadě na stáří systému. Samotná bezpečnost výsledné implementace nemá s použitými algoritmy mnoho společného, protože závisí na obrovském množství dalších faktorů (viz str. 18). Kryptografie v rámci IS zajišťuje 3 základní vlastnosti: „důvěrnost“ (k datům nemá přístup třetí strana), „integritu“ (data nelze pozměnit) a „autentizaci“ (u dat je prokazatelné a zřejmé, kdo je jejich původcem)[3, str. 59]. Často se přidává i vlastnost nepopiratelnosti – „non-repudiation“ (tj. pokud je někdo autorem dat, nemůže své autorství popřít; základní princip elektronických podpisů). Teoreticky jedinou skutečně bezpečnou šifrou je šifra Vernamova (1926), definovaná v [2, str. 21] následujícím způsobem: • otevřený text X je řetězec n prvků xi , xi ∈ {0, 1}, Rivest-Shamir-Adleman, princip obtížnosti matematického řešení problémů v oblasti faktorizace čísel. Další (spíše teoretický) koncept je například problém skládání batohu. 1
4
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
• šifrovací klíč K je řetězec n prvků ki , ki ∈ {0, 1}, přičemž pro každý prvek ki klíče platí p0ki = 0.5 = p1ki (tj. entropie daného bitu je právě jedna), • zašifrovaný text C je řetězec n prvků ci takových, že ci = xi ⊕ki , kde ⊕ je exklusivní disjunkce. Šifra (většinou známá v při realizaci jako „one-time pad“ ) se v praxi používá minimálně2 , ale jako teoretický koncept je vhodná k uvažování nad jinými kryptosystémy. Zásadní je matematická prokazatelnost: šifra je prokazatelně bezpečná. Žádný jiný kryptosystém tuto vlastnost nemá, pouze se obecně spoléhá na jeho bezpečnost (obtížnou řešitelnost problému, na kterém je založený, obvykle výpočetní složitost) – což znamená, že každá šifra má omezenou použitelnost3 . Druhou poznámkou je náhodný klíč: v případě, že je použit znovu nebo v případě, že není zcela náhodný (například pseudonáhodný), přestává být šifra bezpečná4 . Problém náhodných dat (čísel) se často objevuje i u implementací moderních kryptosystémů, stejně tak opakování dat. Poslední zajímavost Vernamovy šifry je její integrita – případný útočník může změnit jednotlivé bity zprávy5 , aniž by to bylo při dešifrování zřejmé (řešením může být společně se zprávou zašifrovat hash zprávy). K bezpečnosti kryptosystémů patří ještě jeden požadavek: nový klíč by nikdy neměl být předáván stejným kanálem jako starý, protože pokud v řetězci takto předávaných klíčů útočník získá jeden klíč, bude schopný získat všechny po něm následující klíče6 . Na závěr 3 zákony[1], které ke kryptografii patří: Kerckhoffův princip (předpoklad): Kryptosystém by měl zůstat bezpečný, i pokud „nepřítel“ zná vše kromě klíče. Jde o princip všech moderních algoritmů (AES, RSA), v menší míře některých starších (DES s nejasným původem S-boxů); pro audit zde vyplývá požadavek: je rozumné spoléhat se na veřejné systémy a utajení algoritmu dodavatelem informačního systému brát jako předpoklad, že použité šifrovací funkce jsou zranitelné nebo nefunkční7 . Moorův zákon Empirické tvrzení, podle kterého se výkon počítačů zdvojnásobí zhruba každých 18 měsíců (což dává požadavky na odolnost zvoleného kryptosystému a velikosti klíče v delším časovém období). 2 Kvůli potřebě přenášet enormní množství klíčů velikosti předávané zprávy, složitosti uchování informací,... Reálné nasazení je možné – a finančně únosné – u klíčových vojenských systémů. 3 Viz příklad DES a teoretických (W. Diffie, M. Hellman: Exhaustive Cryptanalysis of the NBS Data Encryption Standard, Computer, vol 10, pp 74-84, 1977) a praktických útoků (distributed.net, DESCHALL project, EFF DES cracker) [4], [5]. 4 Viz projekt VERONA (kryptoanalýza sovětské komunikace v době 2. sv. v. a těsně po ní), stejně tak zranitelnost Enigmy, založená (při tehdejším stavu poznání a techniky) na opakování rutinních sdělení (zprávy o počasí, situaci na frontě) a frází. 5 Stejný problém je u proudových šifer při zvolení špatného módu – viz str. 18. 6 Tato chyba výrazně napomohla k likvidaci odboje na území Československa za 2. sv. v. [6] 7 Vychází z předpokladu, že pro vývoj vlastních bezpečných utajených kryptosystémů mají rozpočet pouze organizace velikosti a charakteru NSA, FSB (a možná několika málo dalších).
5
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
Murphyho zákon Pokud je v kryptosystému jediná zranitelnost, dříve nebo později ji někdo najde. I kdyby byl objevitel poctivý, dříve nebo později se zranitelnost dostane k případným útočníkům. V praxi: systém je tak bezpečný, jak je bezpečná jeho nejslabší část. Samotná kryptografická ochrana firemních dat se dnes postupně přenáší z pouhé ochrany datových sítí na ochranu veškeré techniky, která by se kdy mohla octnout mimo chráněný prostor pracoviště. Objem ohrožených dat je zřejmý z obrázku 1 a ze zprávy o auditu některých informačních systémů státem vlastněných organizací: z 56 vládních úřadů v Západní Austrálii byla za rok 2009 nahlášena [7] ztráta 750 laptopů (přičemž je předpoklad, že velká část z nich obsahovala citlivá data). Právě ochrana dat (a samozřejmě zvyšování výkonu hardware) stojí za rozšíření kryptografie do všech částí organizace. Obrázek 1: Ukázka zařízení s firemními daty
Zdroj: [7].
2
Audit
Cílem auditu bezpečnosti informačního systému (případně auditu „kryptografie“ ) je ověřit, zda zvolená opatření jsou adekvátní hrozbám [8]. Ke stanovení hrozeb, určení opatření a jejich kontrole je vhodné používat národní nebo mezinárodní normy; jejich přehled je v následující části práce.
2.1
ISACA
V obecné podobě v ČR neexistují stanovené normy pro audit informačního systému. Jako normy pro informační systémy veřejné správy mohou sloužit předpisy a doporučení 6
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
NBÚ8 . V mezinárodním měřítku jsou vhodným vodítkem dokumenty (doporučení pro audit IS) organizace ISACA, které kromě samotného auditu mají vazbu i na další, v organizacích používanou sadu norem (framework, „best practices“ ) CobiT (jeho použití často vychází z požadavků části 404 zákona SOX - viz str. 13. Dokumenty [8] samy o sobě neobsahují konkrétní kapitolu věnovanou kryptografii; ta je zmíněna samostatně v jednotlivých částech. Nejobecnější požadavky, které by mohly sloužit jako základ ověření správnosti používaných kryptografických metod, jsou v G40 Review of Security Management Practices, kde je bodě 3.9.2 definována povinnost auditora ověřit, zda má společnost zdokumentovanou a implementovanou politiku o použití kryptografických metod (kontrol) k ochraně informací (včetně správy klíčů). V bodě 3.11.1 „Shoda“ (Compliance) je dále uvedeno: Auditor by měl ověřit, zda organizace má (zdroj: [8]; číslování autor): 1. definované, zdokumentované a aktuální všechny (zákonné, regulační9 a smluvní) požadavky na organizaci a způsob plnění těchto požadavků v rámci organizace a v rámci informačního systému, 2. implementované odpovídající postupy k zajištění souladu se zákonnými, regulačními a smluvními požadavky (závazky) v případě použití materiálů, majících charakter duševního vlastnictví (podléhajících autorskému právu, materiály, které jsou součástí patentu, ochranné známky, zlepšovacího návrhu, průmyslového vzoru, topografie polovodičového výrobku, ...10 ) a v případě používání proprietárního software11 , 3. chráněné důležité záznamy před ztrátou, zničením a falzifikací v souladů se zákonnými, regulačními, smluvními a obchodními12 požadavky, 4. implementované kontroly na ochranu dat a zajištění důvěrnosti dat v souladu s právními normami, regulačními a případně smluvními požadavky, 5. implementované kontroly k odrazení uživatelů od využití prostředků na zpracování informací k nedovoleným účelům, 6. implementované kontroly, vyžadující, aby u veškerého software, používaného společností, s výjimkou open-source software13 , společnost vlastnila licenci, Národní bezpečnostní úřad regulatory 10 V rámci českého právního řádu je definice duševního vlastnictví jako takového trochu problémová. 11 Zde podle mého názoru chybí i soulad s licencemi open-source programů a knihoven, u kterých často existují například požadavky na poskytnutí zdrojových kódů nebo poskytnutí informací o licenci a původního zdrojového kódu (GNU/GPL). V tomto směru proběhlo již několik (pro autory kódu pod open-source licencí) úspěšných sporů hlavně v oblasti firmware pro síťové zařízení – viz BusyBox (náhrada GNU Core Utilities pro „embedded“ zařízení). 12 business 13 Viz předchozí poznámka. Navíc open-source ( „otevřený“ ) software neznamená free ( „svobodný“ ) – „free as in freedom“ (http://www.gnu.org/philosophy/free-sw.html) ani free (ve smyslu freeware, copyleft licence atd.) – „free as in free beer“ . U open-source software také není neobvyklá jiná licenční politika pro jednotlivé uživatele (a třeba akademické instituce) a pro komerční entity 8 9
7
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
7. implementované kryptografické kontroly v souladu se všemi dohodami, zákony a regulačními opatřeními. Přestože jde o velmi obecný popis požadavků, představuje velmi dobrý základ. Bod 3 předpokládá nejen zálohování, ale i uchování příslušných klíčů v případě zašifrovaných dat („ztráta“ ) a využití kryptografických prostředků na zajištění integrity digitálních dokumentů ( „falzifikace“ ; v praxi na nejnižší úrovni hashovací funkce, na vyšší PKI14 a obdobné technologie). Bod 4 dodává ochranu dat – přičemž „v souladu s (...)“ je možné vyložit dvěma způsoby (oba jsou rozebrány v části 3). Bod 7 z principu již pouze zdůrazňuje předchozí. Zajímavé je, že se v textu nikde nevyskytuje slovo „účinné kontroly“ , což v případě kryptografie může mít nečekané následky (viz část 5). Uvedený seznam (hlavně v 1, 2) odpovídá na vyšší úrovni požadavkům (případně vhodněji „vychází z“ požadavků) v ME3 CobiT 4.1 (respektive PO8.4 a dalších v CobiT 3), Ensure Compliance With External Requirements, kde se v ME3.1 až ME3.4 vyžaduje proces identifikace, optimalizace, zhodnocení a potvrzení souladu se všemi externími právními, regulačními a jinými požadavky. Další vazba je na DS5 Ensure Systems Security (zejména DS5.1 řízení bezpečnosti, DS5.2 plánování, DS5.5 testování bezpečnosti, DS5.7 ochrana technologie, zajišťující zabezpečení, DS5.8 správa kryptografických klíčů a DS5.11 výměna citlivých dat). Předpokladem je splnění PO2.3 Data Classification Scheme, tj. určení citlivosti dat, vlastníků, způsobu ochrany a kontroly. V rámci ITIL3 by položky odpovídaly bodům v knize Service Design (4.6 Information Security Management), stanovujícím priority důvěrnosti, integrity a dostupnosti, a „business“ cílů. Ve srovnání s CobiT 4.1 více zdůrazňuje potřebu sladit úroveň zabezpečení s potřebami organizace (subjektivně preferuje aktuální provoz na úkor bezpečnosti; zejména 4.6.3 Value to the business) – jde o nevyslovený předpoklad, že bezpečnost se řeší na nižší úrovní (v 4.6.4.1-3 Security framework vyžaduje zavedení ISMS). Samotné kryptografii se ITIL3 věnuje poměrně málo. Podrobněji jsou problémy v řízení bezpečnosti rozvedeny v dokumentech ISACA, zaměřujících se na jednotlivé problémové oblasti. V G24 Internet Banking doporučuje bod 7.2.5 při komunikaci (očekávatelně) použít VPN nebo obdobnou šifrovací techniku, v G25 Review of Virtual Private Networks jsou pak podrobněji rozebrána rizika, spojená s provozem VPN sítí (3.2 Security and Legal Risk ; zdroj [8]): • nedostatečné vyhodnocení bezpečnostních a právních rizik, plynoucích z použití VPN sítí, (...) • nedostatečná ochrana dat těsně před vstupem do VPN nebo těsně před opuštěním, • selhání při ochraně nešifrovaných informací v interní síti, • chybná implementace, která by mohla vést k porušení důvěrnosti, integrity, dostupnosti nebo nepopiratelnosti. Zároveň jsou v 3.4.1 vyjmenována rizika, která mohou vést nesplnění „business“ očekávání: 14
Private Key Infrastructure
8
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
• nedostatečná podpora firemní strategie (nasazená opatření jsou v rozporu s firemní strategií), • nevhodné úspory, • organizace nenaplní bezpečnostní požadavky, • zavedená opatření jsou příliš komplikovaná na používání, • opatření dostatečně neodpovídají požadavkům uživatelů, • opatření vedou k poklesu kvality služeb (procesů) v jiných částech organizace. Bod 3.6.1 dokumentu se věnuje rizikům při implementaci, jež by opět bylo možné obecně vztáhnout na jakákoliv kryptografická opatření v organizaci (nevhodná volba dodavatele, chybný návrh zabezpečení, chybná integrace, ...) Zajímavý je bod 8.3.1 (implementace), vyžadující ověření vybraného schématu bezpečnostní architektury a kryptografických technologií (na což navazuje 8.3.2, kde je doporučováno ověření, zda reálně implementovaná architektura a technologie odpovídají návrhu, včetně testů). V dnešní době stále aktuálnějším technologiím se věnuje G27 Mobile Computing, kde jsou v 4.2.2. zmiňována zásadní rizika, spojená s mobilními zařízeními15 : • (...) neoprávněný přístup k datům (stažení dat z vnitřní sítě organizace nebo zařízení v organizaci), • neoprávněné změny dat ve firemní síti, • neoprávněný přístup k datům (aplikacím) v samotném mobilním zařízení (díky omezenému zabezpečení zařízení)16 . Kryptografie se při auditu uplatní i v G28 Computer Forensics, v němž se používá elektronický podpis k potvrzení integrity zajištěných dat, obdobně v G33 General Considerations on the Use of the Internet (doporučení ohledně ochrany dat, přenášených v rámci sítě internet, zejména s ohledem na bezpečnost emailů17 ).
2.2
ISO/IEC
Na nižší úrovni (z hlediska detailu) mohou jako vazba mezi kryptografií a auditem sloužit vhodné ISO/IEC normy. V rámci ISO/IEC 27002 [9] (kromě obvyklých doporučení 15 Rizika jsou podle mého názoru spojená s libovolným zařízením, které si zaměstnanec odnáší mimo firmu – týká se hlavně všech typů přenosných počítačů. 16 Což se týká i běžně používaných desktopových operačních systémů. 17 Což je dodnes nevyřešený problém bezpečnosti, důvěrnosti, integrity a dostupnosti emailů je až na výjimky založena na dobré vůli všech „po cestě“ . V některých případech by dodržení nezpochybnitelnosti (non-repudiation) mohlo být i nežádoucí, protože by pro firmu mohlo vytvořit nechtěné právní závazky – obyčejný email je zcela neprůkazný.
9
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
šifrovat data přenášená po síti18 ) je zajímavý bod 12.3 Cryptographic controls, obsahující doporučení pro výběr a implementaci vhodných kryptografických opatření, včetně například ztráty šifrovacích klíčů ( d) ); bod 15.1.3 Protection of organizational records má vazbu jak na IT governance (CobiT), tak i na právní normy (viz str. 11): specifikuje doporučení na uložení a úschovu dat v organizaci v rámci delšího období (včetně potíží, spojených s uchováním kryptografických klíčů). Zcela zásadní je 15.1.6 Regulation of cryptographic controls, specifikující možné problémy s využitím kryptografie – obsahuje body, které je nutné zvážit: • omezení importu (exportu) software, obsahujícího kryptografické funkce, • omezení importu (exportu) software, u kterého mohou být dodatečně přidány kryptografické funkce, • omezení využití kryptografie, • povinný nebo diskreční přístup státních orgánů dané země k informacím, chráněným kryptografickým hardware nebo software. Dalšími prameny pro ověření jednotlivých částí kryptografických systémů jsou (například): ISO/IEC 979x (algoritmy elektronických podpisů, založené na problému diskrétního logaritmu – například ElGamal, DSA, faktorizace velkých čísel – RSA, mechanismy blokových šifer a hashovacích funkcí), ISO/IEC 1177x (blokové šifry a hashovací funkce), ISO/IEC 1011x (správa klíčů), ISO/IEC 14888 (nepopiratelnost), ISO/IEC 15408 (hodnotící kritéria pro IT bezpečnost), ISO/IEC 15946 (kryptografie eliptických křivek), ISO/IEC 18033 (šifrovací algoritmy) a další19 .
2.3
NIST
Velmi dobrý zdrojem jsou dokumenty NISTu20 typu Federal Information Processing Standards (FIPS), především: FIPS 200 (Minimum Security Requirements for Federal Information and Information Systems), FIPS 198-1 (The Keyed-Hash Message Authentication Code (HMAC)), FIPS 197 (definice standardu AES, z pohledu auditu aktuální bezpečná symetrická bloková šifra), FIPS 180-3 ( Secure Hash Standard (SHS), neboli – relativně – bezpečné způsoby použití hashovacích funkcí); z historického hlediska je důležitý FIPS 46-3 (Data Encryption Standard (DES), ve verzi -3 se specifikací 3DES). Zároveň stojí za zmínku i rozsáhlejší publikace NISTu v rámci 800 Series 21 – z pohledu auditu a kryptografie jsou zajímavé SP 800-131 A (přechod mezi kryptografickými algoritmy, doporučení pro délky klíčů), SP 800-115 (testování bezpečnosti IS), SP 800108 (odvození šifrovacích klíčů pomocí generátorů pseudonáhodných čísel), SP 800-107 A mimo velmi stručný bod 15.3 Information systems audit considerations, který se věnuje hlavně „read-only“ přístupu auditorů k datům. 19 Celý seznam viz http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_tc_browse. htm?commid=45306. 20 National Institude of Standards and Technology 21 http://csrc.nist.gov/publications/PubsSPs.html 18
10
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
(správné použití hashovacích algoritmů), SP 800-67 1.1 (doporučení k 3DES) a SP 80066 Rev 1 (implementace HIPAA). Obecně jsou publikace NISTu velmi dobrým zdrojem informací a standardů (k bezpečnosti jako takové například SP 800-12 An Introduction to Computer Security: The NIST Handbook ). Pro implementaci (a ověření implementace) se hodí RFC z http://www.ietf.org/ rfc/. RFC (Request For Comments) se spíše zaměřuje na reálnou implementaci, není závazné a prochází výrazně slabším procesem kontroly než FIPS standardy, vyhlašované NISTem (současně je ale většinou vhodnější použití RFC „standardu“ než interní pokus o vytvoření vlastního). V další části seminární práce rozebírám požadavky na kryptografii z pohledu zákona (jakožto podkladu pro ověřování soulad v organizaci a jakožto zásadního zdroje rizik pro organizaci).
3
Právní normy v oblasti kryptografie
Zaměřuji se především na český právní řád, v menší míře na EU jako celek a USA (což je dáno jak rozsahem práce, tak i pokročilostí legislativy a vlivem amerických softwarových firem na celosvětový trh). V pramenech práva lze normy rozdělit do tří oblastí: elektronický podpis, ochranu dat (nebo osobních údajů) v informačních systémech a při přenosu, a omezení manipulace s kryptografickými nástroji.
3.1
Elektronický podpis a algoritmy
Oblast elektronického podpisu v České republice pokrývá zákon č. 227/2000 Sb., vycházející ze směrnice EU 1999/93/EC o elektronickém podpisu22 , která je velmi „tržně“ orientovaná a spoléhá spíše na samoregulaci (s výjimkou certifikačních autorit, jejichž vydané certifikáty mohou být použity k podpisu závazných dokumentů); není stanoveno, do jaké míry musí být elektronický podpis srovnatelný s „klasickým“ . V rámci světa se zákony velmi liší (například úplně první zákon o elektronickém podpisu z roku 1995 pro americký stát Utah zcela zrovnoprávňuje elektronický podpis a přenáší veškerou odpovědnost na držitele podpisu, německý zákon naopak třeba nad rámec unijních předpisů přesně specifikuje požadavky na certifikační autority). V zákonech jsou obvykle stanoveny i požadavky na použité technologie (hashovací funkce, minimální velikosti certifikátů23 ). Důležitá je vyhláška 496/2004 Sb. o elektronických podatelnách, stanovující v příloze platné asymetrické algoritmy a hashovací funkce, použitelné pro ověření zaručeného elektronického podpisu a elektronické značky, včetně odkazu na mezinárodní a národní normy (ISO/IEC, FIPS, odpovídá výčtu na straně 9; obecně: RSA/DSA, SHA1/RIPEMD160). EU Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, http://eur-lex.europa.eu/LexUriServ/LexUriServ. do?uri=CELEX:31999L0093:en:HTML. 23 V ČR v poslední době stanoveno dohodou mezi třemi státem uznávanými CA na SHA-2 a 2048 bitů RSA; přechod na SHA-2 je povinný k 31.12.2010: http://www.mvcr.cz/soubor/ informace-k-prechodu-k-bezpecnejsim-kryptografickym-algoritmum-v-oblasti-elektronickeho-podpisu. aspx. 22
11
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
Podmínky pro provoz IS státní správy (včetně šifrování) jsou ve vyhlášce č. 523/2005 Sb. o bezpečnosti informačních a komunikačních systémů a dalších elektronických zařízení nakládajících s utajovanými informacemi a o certifikaci stínicích komor (hlavně § 3, § 7 až § 9: správa kryptografické ochrany, instalace kryptografických prostředků, obsluha). Dále jsou samozřejmě požadavky na kryptografické funkce v oblasti biometrických pasů (což je ale relativně mimo oblast auditu). K bezpečnosti algoritmů platí prohlášení NBÚ (vycházející opět ze zahraničních norem)24 , ve kterém se nedoporučuje používat hashovací funkce MD4, MD5, RIPEMD, HAVAL-12825 a od SHA-1 přejít postupně k funkcím rodiny SHA-2 (SHA-224, SHA-256, SHA-384 a SHA-51226 )
3.2
Ochrana osobních údajů
Nejběžnější využití27 kryptografických prostředků plyne v rámci českého práva z potřeby ochrany osobních údajů: na základě 95/46/EC Article 17 Security of processing implementovaný zákon č. 101/2000 Sb., ve němž se v § 6 stanovují požadavky na zpracování dat (smlouva mezi zpracovatelem a správcem osobních údajů musí výslovně obsahovat „záruky zpracovatele o technickém a organizačním zabezpečení ochrany osobních údajů“ ) a v § 13 povinnosti při zpracování – zejména odst. (1)28 , odst. (2) dokumentace opatření k zajištění ochrany osobních údajů a v odst. (3) povinnost posoudit rizika, spojená s přístupem k osobním údajům: • plnění pokynů pro zpracování osobních údajů osobami, které mají bezprostřední přístup k osobním údajům, • zabránění neoprávněným osobám přistupovat k osobním údajům a k prostředkům pro jejich zpracování, • zabránění neoprávněnému čtení, vytváření, kopírování, přenosu, úpravě či vymazání záznamů obsahujících osobní údaje a • opatření, která umožní určit a ověřit, komu byly osobní údaje předány. Nepřímo plynou požadavky na šifrování dat i z potřeby chránit „lékařské tajemství“ (zákon č. 20/1966 Sb. o péči o zdraví lidu § 55 d) [Každý zdravotnický pracovník je povinen zejména] „zachovávat mlčenlivost o skutečnostech, o nichž se dověděl v souvislosti 24
http://www.nbu.cz/cs/ochrana-utajovanych-informaci/kryptograficka-ochrana/informace/ V materiálu hashovací funkce s výstupem menším, než 160 bitů; velikost výstupu však nezaručuje bezpečnost: SHA-0 má výstup 160 bitů, přesto je již známo, že nemá vlastnosti kryptograficky bezpečné hashovací funkce. 26 V rámci NISTu již existuje draft FIPS 180-4, zavádějící určitých případech výpočetně efektivnější SHA-512/224, SHA-512/256. 27 Snad kromě bankovnictví. 28 „Správce a zpracovatel jsou povinni přijmout taková opatření, aby nemohlo dojít k neoprávněnému nebo nahodilému přístupu k osobním údajům, k jejich změně, zničení či ztrátě, neoprávněným přenosům, k jejich jinému neoprávněnému zpracování, jakož i k jinému zneužití osobních údajů. Tato povinnost platí i po ukončení zpracování osobních údajů.“ 25
12
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
s výkonem svého povolání, s výjimkou případů, kdy skutečnost sděluje se souhlasem ošetřované osoby nebo kdy byl této povinnosti zproštěn nadřízeným orgánem v důležitém státním zájmu“ 29 ).
3.3
HIPAA a SOX
V USA vychází požadavky na kryptografii z jednotlivých zákonů (neexistuje centralizovaný požadavek na ochranu osobních údajů). Nejzásadnější jsou zákony SOX (SarbanesOxley Act of 2002) a HIPAA (The Health Insurance Portability and Accountability Act of 1996). Zde se [14, Title 42, Chapter 7,Subchapter XI, Part C, § 1320d–2] uvádí30 povinnost chránit zdravotnická data (například i s oddělením dat v případě, že organizace zpracovává i jiná data); zároveň každá31 osoba32 , manipulující se zdravotnickými záznamy manipuluje, musí zajistit příslušná dostatečná administrativní, technická a fyzická opatření tak, aby: • byla zajištěna důvěrnost, dostupnost a integrita záznamů, • záznamy byly chráněny proti všem přiměřeně očekávatelným: – hrozbám bezpečnosti nebo integrity informací, – neoprávněnému použití dat nebo jejich zpřístupnění (třetím osobám), • byl zajištěn soulad s touto částí (part C) všech zaměstnanců a vedoucích pracovníků osoby (organizace) Dále zákon definuje požadavky na elektronický podpis při předání záznamů (a standardizaci lékařských záznamů). Druhým zásadním zákonem je SOX, v němž ze sekce 404 vyplývá požadavek na systém interní kontroly (mimo jiné; obvykle je [16] řešen zavedením COSO a COBIT frameworků).
3.4
Export kryptografických prostředků
Kryptografické prostředky jsou (nejspíš oprávněně) řazeny mezi vojenský materiál a jejich export je, jakožto prostředků s dvojím použitím, regulován ve Wassenaarském ujednání o vývozních kontrolách konvenčních zbraní a zboží a technologií dvojího užití33 ([18]). Vyňaté (z bodů 5A002 až 5D002) jsou prostředky obecně dostupné veřejnosti běžně k nákupu (při fyzickém prodeji, v elektronických transakcích a při prodeji po telefonu). Pojem lékařské tajemství tedy není úplně přesný. Přesněji United States Secretary of Health and Human Service dostává za úkol zavést. 31 Zjednodušení; jde o osoby v § 1320d–1 (a). 32 Právnická i fyzická osoba. 33 The Wassenaar Arrangement on Export Controls for Conventional Arms and Dual-Use Goods and Technologies 29
30
13
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
Až na prostředky mimo výjimku platí, že není možné exportovat bez souhlasu státu původu34 [17]: • symetrický algoritmus s klíčem delším než 56 bitů, • asymetrický algoritmus, jehož bezpečnost je založena na: – faktorizaci celých čísel o délce více jak 512 bitů (RSA), – výpočtu diskrétního logaritmu (...) o délce více jak 512 bitů (Diffie-Hellman), – výpočtu diskrétního logaritmu v jiné grupě než v předchozím bodě o velikosti 112 bitů (Diffie Hellman na eliptických křivkách). Z principu tedy jde o jakýkoliv v současné chvíli bezpečný algoritmus. Dohoda se v dnešní době týká hlavně exportu specializovaných hardwarových kryptografických prostředků do „problémových“ zemí. V České republice je export omezen podle § 42 zákona č. 412/2005 Sb. [19], odstavce 3), 4) a 5), kde je stanoven požadavek na povolení NBÚ ( „Úřadu“ ) k vývozu certifikovaného kryptografického prostředku, požadavky na povolení a evidence povolení. Import je explicitně povolen. V USA je vývoz (zbraní) regulován v gesci Department of Commerce’s Bureau of Industry and Security podle Export Administration Regulations35 . (Veřejné) kryptografické prostředky nelze podle Part 740Spir - Supplement No. 1 to Part 740, Country Groups vyvážet do zemí skupiny D36 (například Rusko, Bělorusko, Čína, Afghánistán, Barma, Irák, Írán, Pákistán37 , Sýrie, Saúdská Arábie,...), až na výjimky je však opatření (vzhledem k úrovni kryptografie ve Spojených státech) velmi benevolentní. V USA obecně vždy dochází k průlomovým změnám legislativy ohledně kryptografie (přesněji k vítězství obchodních potřeb nad potřebami tajných služeb38 ), ať už šlo o standard DES, vývoz programu PGP (a ukončení procesu s autorem kvůli vývozu) nebo Clintonův Executive Order 13026 (Administration of Export Controls on Encryption Products39 ), umožňující vývoz silných kryptografických prostředků (v praxi byl spíš problém s konkurenceschopností amerických firem, které by v rámci trhu mimo USA mohly, oproti konkurenci, nabízet pouze velmi slabě chráněné prostředky). Omezení exportu jsou znázorněna na obrázku 7 na straně 24. 34 Členské státy: Argentina, Austrálie, Rakousko, Belgie, Bulharsko, Kanada, Chorvatsko, Česká republika, Dánsko, Estonsko, Finsko, Francie, Německo, Řecko, Maďarsko, Irsko, Itálie, Japonsko, Lotyšsko, Litva, Lucembursko, Malta, Nizozemsko, Nový Zéland, Norsko, Polsko, Portugalsko, Korejská republika, Rumunsko, Ruská federace, Slovensko, Slovinsko, Jižní Afrika, Španělsko, Švédsko, Švýcarsko, Turecko, Ukrajina, Velká Británie, Spojené státy americké. 35 http://www.gpo.gov/bis/ear/ear_data.html 36 V seznamu je přesně vymezeno, které prostředky je možné do které země vyvážet (týká se zejména raketové techniky, bojových chemických látek, ... 37 Zajímavé srovnání s Indií v A. 38 Posledním záchvěvem zřejmě byla snaha zavést „key escrow“ v rámci čipu Clipper a algoritmu Skipjack (princip úschovy „druhého klíče“ u státního orgánu, který by tak mohl kdykoliv komunikaci v případě potřeby dešifrovat. Algoritmus se neujal a ukázal se být mimořádně zranitelný. 39 http://frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?dbname=1996_register&docid= fr19no96-98.pdf.
14
25. března 2011 4SA425 FIS VŠE
3.5
Karel Kohout
[email protected]
Import a použití kryptografických prostředků
Ještě zajímavější je situace u importu šifrovacích prostředků. Na obrázku 8 (str. 24) jsou graficky znázorněna omezení importu (obecně v „západním světě“ bez omezením, čím víc směrem „na východ“ , tím větší omezení – samozřejmě je ale sporná vymahatelnost). Co se týče použití (respektive použitelnosti) šifrování, je situace podle [20] mnohem pestřejší (jak je patrné na straně 25 z obrázku 9). Teroristické útoky z 11. září a následné zvýšení pravomocí „silových ministerstev“ a státních orgánů vedlo v USA k návrhu Domestic Security Enhancement Act 2003 – Patriot II), ve kterém bylo použití kryptografických prostředků k utajení zločinu trestného podle amerického federálního práva (federal crime) bráno jako přitěžující okolnost (zákon nebyl schválen). V Evropě překvapivě platí [20] v některých zemích možnost vynutit dešifrování dat státními orgány: Tabulka 1: Vynucené dešifrování dat Země
Zákon
Trest v případě neuposlechnutí / přitěžující okolnosti / ISP
Poznámky
Belgie
Wet van 28 november 2000 inzake informaticacriminaliteit / Loi du 28 novembre 2000 relative à la criminalité informatique Loi no 2001-1062 du 15 novembre 2001 relative a la sécurité quitidienne
6-12 měsíců / - / -
-
3 roky, 45 000 €/ 5 let, 75 000 €/ 2 roky, 45 000 €
Electronic Commerce Act 2000 Článek 125k sekce 2 Dutch Code of Criminal Procedure (DCCP); Wet bevoegdheden vorderen gegevens), Staatsblad 2005, 390; a další General Telecommunications Law, 32/2003 Regulation of Investigatory Powers Act 2000
? ?
Dvojnásobný trest, pokud ke spáchání zločinu použity kryptografické prostředky.
Francie
Irsko Itálie Nizozemské království
Španělsko Spojené království Velké Británie a Severního Irska
Pouze účetní záznamy. Ne, pokud jde o obviněného.
? 2 roky
1984 neměl být návod...
Zdroj: [20].
Spojené království má v rámci tzv. „vyspělých zemí“ nejtvrdší zákony ohledně kryptografie (spíše na úrovni zemí „třetího světa“ ). Je možné vynutit vydání kryptografických klíčů, pokud [21, článek 49]:
15
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
• byla zašifrovaná data řádně získána40 , • je dešifrování v zájmu národní bezpečnosti, zamezení páchání trestné činnosti nebo může napomoci jejímu odhalení, nebo je v ekonomickém zájmu Spojeného království, nebo pokud je nutné k účinnému nebo správnému výkonu zákonných práv a povinností [státních orgánů] a pokud jde o přiměřený a jediný prakticky uskutečnitelný způsob, jak data získat, • je předpoklad, že osoba, po které jsou klíče požadovány, má klíče v držení; • výjimkou jsou klíče u elektronického podpisu (čl. 50); • osoba která již klíč v držení nemá, musí poskytnout veškeré informace, které by mohly vést k získání klíče (čl. 50). Podle názoru Court of Appeal je požadavek na vydání kryptografických klíčů možný i u samotného podezřelého (šifrovací klíč existuje i bez projevu vůle podezřelého [20]); naopak v obdobném případě v USA tak lze učinit, jen pokud podezřelý data někdy v minulosti během vyšetřování zpřístupnil (5. dodatek Ústavy Spojených států amerických). Problém samozřejmě spočívá ve vlastnostech kvalitních kryptosystémů – zašifrovaná data mají charakter náhodných dat, proto nelze prokázat, zda na nosiči dat jsou nebo nejsou šifrovaná data (a kolik). U ostatních zemí buď není snaha kryptografii omezovat nebo je její využití naopak zaručeno (například Finsko). Z pohledu firmy (a auditu bezpečnosti) plyne nutnost jednak chápat kryptografickou ochranu dat v některých zemích jako zcela relativní pojem41 , protože může být kdykoliv vynuceno vydání kryptografických klíčů. Proto by i do případných rizik měly být zahrnuty odměny právníkům a měla by být sestavena instruktážní příručka pro zaměstnance ohledně postupu v případě vyžádání klíčů státními orgány (například doporučení vydat klíče, nevydávat a vyčkat na vyjádření právního oddělení a podobně). V České republice neexistuje žádné omezení. Právo nevydat kryptografické klíče je (zřejmě) garantováno v článku 37 Listiny základních práv a svobod („1) Každý má právo odepřít výpověď, jestliže by jí způsobil nebezpečí trestního stíhání sobě nebo osobě blízké.“ ); je sporné, nakolik by bylo možné vymáhat vydání klíčů v případě firemních zaměstnanců přes § 337 zákona č. 40/2009 Sb., trestního zákoníku (Maření výkonu úředního rozhodnutí a vykázání). Do určité míry i vydání kryptografických klíčů spadá pod § 41 stejného zákona (Polehčující okolnosti)42 . Nevím, zda zde platí americký předpoklad „fruit of the poisonous tree.“ V praxi je vždy riziko vyzrazení informací; navíc u větších firem může jít o zajímavou metodu, jak se dostat k datům konkurence. 42 „ Soud jako k polehčující okolnosti přihlédne zejména k tomu, že pachatel(...) l) napomáhal při objasňování své trestné činnosti nebo významně přispěl k objasnění trestného činu spáchaného jiným, m) přispěl zejména jako spolupracující obviněný k objasňování trestné činnosti spáchané členy organizované skupiny, ve spojení s organizovanou skupinou nebo ve prospěch organizované zločinecké skupiny(...)“ 40
41
16
25. března 2011 4SA425 FIS VŠE
3.6
Karel Kohout
[email protected]
Trestné činy v oblasti kryptografie
Mimo výše zmíněné existují v pramenech práva naopak zajímavé body, které z pohledu firmy snižují riziko, spojené s využitím informačních technologií (přesněji snižují motivaci případných pachatelů). Jde zejména o § 230 Neoprávněný přístup k počítačovému systému a nosiči informací, § 231 Opatření a přechovávání přístupového zařízení a hesla k počítačovému systému a jiných takových dat, § 232 Poškození záznamu v počítačovém systému a na nosiči informací a zásah do vybavení počítače z nedbalosti zákona č. 40/2009 Sb., trestního zákoníku. Kryptografie v takovém případě může napomoci odhalení (zejména díky zajištění integrity dat a možnosti jejich jednoznačné identifikace). V USA podobně funguje známý DMCA (Digital Millennium Copyright Act od 199843 ), umožňující tvrdý postih jakékoliv narušení systémů na ochranu autorských práv – jinými slovy lze kryptografii v USA velmi účinně použít k vynucení autorských práv prakticky libovolným šifrovacím systémem na základě [14, § 1201] (Circumvention of copyright protection systems), kde je výslovně uvedeno „No person shall circumvent a technological measure that effectively controls access to a work protected under this title.“ Na závěr ještě k motivaci firem šifrovat data: v rámci České republiky například vyhláška 336/2005 Sb. (odposlechy), snaha některých vlád vynutit si dešifrování dat, přenášených přes Blackberry (RIM) (což svědčí o účinnosti použitého kryptosystému44 ). Zcela zřejmé je využití kryptografie, pokud vezmeme v potaz rostoucí množství různých typů přenosných počítačů a tím enormně rostoucí riziko při jejich ztrátě.
4
Software
Pokusil jsem se najít specializovaný software na ověření kvality použitých kryptografických metod, ale zřejmě jde o tak omezený trh, že se podobné nástroje příliš neinzerují. Většina programů se specializuje na formální soulad se zákonnými požadavky (například policyIQ CMS automaticky udržuje obsah webových stránek podle SOX). Zajímavý je ACL45 , který umí sledovat oblasti blízké kryptografii (podezřelé změny hesel a vzory změn hesel – například uživatelské účty, u nichž se hesla mění pravidelně ve stejný čas). Zvláštní (vzhledem k úrovni nabízeného software) je studie ACL46 , obsahující tvrzení, že kryptografická politika firmy by měla vyžadovat alespoň 128 bitové šifrování (z kontextu si může pozorný čtenář domyslet [u symetrické blokové šifry AES]; ale: ani všechny symetrické šifry nejsou bezpečné i s obrovským klíčem a v případě asymetrických je tvrzení z hlediska bezpečnosti nesmyslné). U open-source nástrojů jsou zajímavé lynis a lsat (kontrola, zda se v unixových systémech nepoužívá starší způsob uložení uživatelských hesel a některé další kontroly); k ověření kvality hesel může posloužit John, případně nástroje z balíčku Aircrack-ng. Ke Také jako WIPO Copyright Treaties Implementation Act. U nefiremních zákazníků bez vlastního serveru (a tím klíčů) kolují neověřené informace, že k datům mají přístup některé americké bezpečnostní organizace – ale jde o spekulaci. 45 acl.com 46 http://www.acl.com/images/blog/data\%20security.pdf 43
44
17
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
kryptografii má také blízko Nessus (pluginy pro ověření kvality kryptografických klíčů u SSH a mod_ssl v Apache, konfigurace SSL vzhledem ke slabým šifrám a podobně).
5
Praktické příklady
Nyní bych rád poukázal na některé problémy moderní kryptografie na dvou praktických příkladech. Snažím se nepopisovat „vyřešené“ 47 problémy (symetrické a asymetrické algoritmy).
5.1
Problém generování náhodných čísel
Obecně počítače jsou (mají být) deterministické, což v oblasti šifrování přináší problém s generováním náhodných čísel (nezbytných pro sestavení bezpečného kanálu, pro generování klíčů pro PKI a podobně). V závislosti na platformě a programu nemusí být vygenerovaná pseudonáhodná náhodná data vůbec použitelná pro kryptografii. Známá zranitelnost je v PHP: generátor závisí na platformě. Pomocí kódu z přílohy B jsem umisťoval náhodně pixely na obrázek přes dvě funkce (rand(), používající generátor platformy, a mt_rand() 48 , implementaci Mersenne Twister přímo v PHP49 ). Poznámka: jde o starší ad-hoc data, na nichž jsem si ověřoval jedno tvrzení do bakalářské práce (které jsem ho zdůvodnil jinak), sbíraná „po dobrovolnících“ , proto neuvádím konkrétní verze PHP a operačního systému – slouží spíše pro ilustraci.
Zřejmě alespoň na příštích 5 let. http://cz.php.net/mt_rand 49 Bez ohledu na obrázky bych osobně doporučoval nepoužívat ani jeden a pokud ano, pak na platformách s funkčním generátorem náhodných čísel použít generátor z platformy (s větší pravděpodobností bude kryptograficky bezpečný) a vyhnout se jakýmkoliv funkcím PHP. 47
48
18
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected] Obrázek 2: Kvalita generátorů náhodných čísel
(a) Debian Linux (Lenny)
(b) Windows 7
(c) Windows XP
(d) Windows 2008 Zdroj: autor.
Ani jeden ze způsobů generování náhodných čísel není kryptograficky bezpečný. Druhý příklad k náhodným číslům se týká chyby v balíčku programu a souboru knihoven OpenSSL v distribuci Debian (a odvozených, tedy například v Ubuntu). OpenSSL se používá (mimo jiné) ke generování kryptograficky bezpečných DSA a RSA klíčů, které následně mohou sloužit jako SSL certifikáty, klíče pro DNSSEC a OpenVPN, u elektronického podpisu nebo pro přihlašování k uživatelským účtům (SSH s PAM a ověření uživatele na základě dvojice veřejný-soukromý klíč, což je bezpečnější a pohodlnější než používání hesel). Chyba, vytvořená 17.9.2006 (verze 0.9.8c-1, v unstable), byla opravena až po dvou 19
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
letech 13.5.2008 (verze 0.9.8c-4etch3 pro tehdejší stable - Etch a 0.9.8g-9 pro unstable) a dostala se nejen do větví unstable a testing (kde se předpokládá určitá nespolehlivost), ale i do stabilní větve (Etch). Díky úpravě (zakomentování) dvou výskytů „podezřelé“ a nezdokumentované funkce50 v OpenSSL, nalezené přes valgrind, zůstalo jediným zdrojem pro generátor náhodných čísel ID procesu, což v praxi znamenalo že na jedné architektuře (například amd64) bylo možné vygenerovat jen 3276751 možných klíčů.52
5.2
Chybná implementace kryptosystému
Použití správného algoritmu v žádném případě neznamená dostatečnou kryptografickou ochranu dat. Častým problémem je zvolení chybného módu šifrování, opakování stejného klíče na útočníkovi známých datech (opakování IV jakožto slabina proudové šifry RC4 ve WEP). V ukázce je logo VŠE zašifrováno algoritmem AES s blokem o velikosti 128 bitů a klíčem o velikosti 24 bajtů (pseudonáhodných; jde o silnější klíč než by na 24 znacích vytvořil člověk). Obrázek 3: Chybná volba módu blokové šifry
(a) Originální logo
(b) Zašifrované logo – electronic code book
(c) Zašifrované logo – cipher block chaining Zdroj: autor, http://www.vse.cz/logo/?s=download&lang=cz.
Vysvětlení fungování jednotlivých módů je na obrázcích 11, 10 (strana 26); zdrojový kód je v příloze B. Chybná implementace nemusí být v praxi takto zřejmá. MD_Update(&m, buf, j); v md_rand.c Podrobnosti viz http://wiki.debian.org/SSLkeys# Abitmoredetail. 51 Což je poměrně zásadní rozdíl oproti počtu variant ve standardních klíčích (řádově stovky číslic). 52 Zdroj: http://wiki.debian.org/SSLkeys. 50
20
25. března 2011 4SA425 FIS VŠE
6
Karel Kohout
[email protected]
Závěr
Základním problémem kryptografie ve firmě zůstává nalezení rovnováhy mezi potřebami uživatelů a dokonalou bezpečností – a vždy jde o kompromis. Příkladem může být hypotetické zabezpečení laptopu zaměstnance. Na nejnižší úrovni může být heslo pro přihlášení do operačního systému (nulová ochrana dat, falešný pocit bezpečí); následuje ochrana některých dat pomocí šifrování části disku (což neřeší dočasné soubory, kde se data mohou dlouhodobě octnout a být k dispozici pro případné prozkoumání). Rozumné úrovně bezpečnosti lze dosáhnout šifrováním celého disku, chránícím data i před schopným zlodějem, avšak ne před skutečně motivovaným útočníkem: ten použije útok „evil maid“ a u vypnutého počítače vymění část BIOSu (nebo zavaděče systému) a heslo získá (případně u zapnutého nebo uspaného počítače rychle nabootuje vlastní systém a u většiny počítačů si obsah RAM více či méně nepoškozený přečte včetně šifrovacích klíčů53 k disku). Velmi motivovaný útočník si u zapnutého počítače pozmění obsah RAM přes Firewire port (s přímým přístupem do paměti kvůli rychlosti). V praxi, pokud budou použité kryptografické metody příliš silné, použije útočník „rubberhose decryption“ (viz obrázek) nebo data získá jiným způsobem. Obrázek 4: Dešifrování dat
Zdroj: http://imgs.xkcd.com/comics/security.png.
Do budoucna bude zajímavé sledovat postupnou náhradu54 hashovacích funkcí rodiny SHA-2 po vyhlášení výsledků soutěže standardu SHA-3 (který by měl být jako první založen na skutečně ověřitelných algoritmech, podobně jako AES) a vývoj v obV případě zmražení vydrží obsah déle, a je teoreticky možné paměti RAM namontovat do jiného počítače. 54 Náhrada bude obtížná u počítačů s Windows XP, které až do nejsou schopné (asi s SP 3) a kvůli politice Microsoftu nebudou schopné plnohodnotně používat bezpečné hashovací funkce SHA-2. Viz http://www.mvcr.cz/soubor/ informace-k-prechodu-k-bezpecnejsim-kryptografickym-algoritmum-v-oblasti-elektronickeho-podpisu. aspx. 53
21
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
lasti kvantových počítačů (z pohledu zpráv se o něm již moc nemluví, což znamená, že buď jde o slepou uličku nebo už někde v podzemí NSA kvantový počítač faktorizuje čísla). Druhé velké kryptografické změny nás nejspíš (kromě zákonů) čekají u certifikačních autorit, protože z pohledu firmy není přípustná certifikační autorita některých zemí, podezřívaných z průmyslové špionáže (Čína), implicitně nastavená v systému jako důvěryhodná. Zde bude nejspíš v dohledné době docházet k přeskupení trhu a aktivnějšímu vyřazování autorit.
22
25. března 2011 4SA425 FIS VŠE
A
Karel Kohout
[email protected]
Obrázky Obrázek 5: Public Key Infrastructure (PKI)
Zdroj: [2].
Obrázek 6: Šifrování podle Shannona
Zdroj: [2].
23
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected] Obrázek 7: Kryptografie – omezení exportu
Zdroj: [20].
Obrázek 8: Kryptografie – omezení importu
Zdroj: [20].
24
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
Obrázek 9: Kryptografie – omezení použití
Zdroj: [20].
Obrázek 10: Mód blokové šifry electronic code book
Zdroj: [1].
25
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
Obrázek 11: Mód blokové šifry cipher block chaining
Zdroj: [1].
26
25. března 2011 4SA425 FIS VŠE
B
Karel Kohout
[email protected]
Zdrojové kódy
Program pro vytvoření ukázky chybných módů šifer. V programu se zpracovávají jednotlivé bloky pixelů v obrázku (pokud by se šifroval soubor včetně hlavičky, zranitelnost by zůstala, ale výsledek by nebyl tak efektní). Šifrovací klíč je o délce 24 bajtů z pseudonáhodného generátoru (nejde tedy o slabé heslo). import Image import sys import os from Crypto.Cipher import AES IV_SIZE = 24 BLOCK_SIZE = 16 def check_args(): try: if (len(sys.argv) != 4): raise Exception() elif (not os.path.isfile(sys.argv[1])): raise Exception("Input file must exist") elif (not sys.argv[3] in [’CBC’, ’ECB’]): raise Exception("Block cipher mode should be ECB or CBC") except Exception, ex: print "Usage: imgencrypt.py full_path_to_input_image full_path_to_output_image ECB|CBC" if len(ex.args) > 0: print "--" + str(ex) sys.exit(1)
def encrypt(): image = Image.open(sys.argv[1]) iv = os.urandom(IV_SIZE) mode = AES.MODE_CBC if sys.argv[3] == ’CBC’ else AES.MODE_ECB encrypt = AES.new(iv, mode) image_string = image.tostring() image_string += ((16 - len(image_string) % BLOCK_SIZE) * "0").encode() encrypted = encrypt.encrypt(image_string) encrypted_img = Image.frombuffer("RGB", image.size, encrypted, ’raw’, "RGB", 0, 1) encrypted_img.save(sys.argv[2], ’JPEG’) print("Encrypted using AES in " + sys.argv[3] + " mode and saved to \"" + sys.argv[2] + "\"!") if __name__ == "__main__": check_args() encrypt()
27
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
Zdroj: http://www.owenstephens.co.uk/programming/aes-using-ecb-demo-using-python. S drobnými modifikacemi. Generování náhodných čísel v PHP. Zdroj: autor (?).
28
25. března 2011 4SA425 FIS VŠE
C
Karel Kohout
[email protected]
Použité zdroje
Poznámka: všechny odkazy byly mezi 15.3.2011 a 25.3.2011 funkční (vzhledem k délce psaní práce neuvádím data u každého odkazu zvlášť). Platí i pro odkazy v textu.
Reference [1] Vaudenay, S.:A classical introduction to cryptography: Applications for Communications Security. Springer, 2006. ISBN: 978-0-387-25464-7. [2] Menezes, Alfred J., Oorschot, Paul C. van, Vanstone, Scott A.: Handbook of applied cryptography, CRC Press, 1996, ISBN 9780849385230. [3] Doucek, P., Novák, L., Svatá, V., Nedomová, L.: Řízení bezpečnosti informací. Professional Publishing, Praha, 2008. ISBN 978-80-86946-88-7. [4] “EFF DES CRACKER"MACHINE BRINGS HONESTY TO CRYPTO DEBATE”, EFF, http://w2.eff.org/Privacy/Crypto/Crypto_misc/DESCracker/ HTML/19980716_eff_descracker_pressrel.html [5] distributed.net mailing list, 24 Feb 1998 23:38:58 -0600, Subject: [RC5] [ADMIN] The secret message is... http://www.distributed.net/pressroom/news-19980224.txt [6] Janeček, J.: Válka šifer: Výhry a prohry československé vojenské rozvědky (19391945). Votobia, Olomouc, Votobia, 2001. ISBN 80-7198-505-8. [7] Western Australian Auditor General’s Report: Information Systems Audit Report. 2/3/2010 http://www.audit.wa.gov.au/reports/pdfreports/report2010_ 02.pdf. [8] ISACA: IT Standards, Guidelines, andb Tools and Techniques for Audit and Assurance and Control Professionals http://www.isaca.org/Knowledge-Center/ Standards/Documents/ALL-IT-Standards-Guidelines-and-Tools.pdf. [9] ISO/IEC ISO 27002, International Organization for Standardization, Geneva, Switzerland. [10] COBIT 4.1 [11] ITIL 3 [12] Vyhláška č. 496/2004 Sb., o elektronických podatelnách. [13] Vyhlášce č. 523/2005 Sb. o bezpečnosti informačních a komunikačních systémů a dalších elektronických zařízení nakládajících s utajovanými informacemi a o certifikaci stínicích komor. [14] U.S. Code. http://www.law.cornell.edu/uscode/. 29
25. března 2011 4SA425 FIS VŠE
Karel Kohout
[email protected]
[15] Sarbanes-Oxley Act of 2002. http://www.gpo.gov/fdsys/pkg/PLAW-107publ204/ pdf/PLAW-107publ204.pdf. [16] The institute of Internal Auditors. A Guide for Management by Internal Controls Practitioners. http://www.theiia.org/download.cfm?file=31866. [17] The Wassenaar Arrangement on Export Controls for Conventional Arms and DualUse Goods and Technologies, List of Dual-Use Goods and Technologies and Munitions List. http://www.wassenaar.org/controllists/2010/WA-LIST%20%2810%29% 201%20Corr/WA-LIST%20%2810%29%201%20Corr.pdf. [18] The Wassenaar Arrangement on Export Controls for Conventional Arms and Dual-Use Goods and Technologies. http://www.wassenaar.org/publicdocuments/ index_CL.html. [19] Zákon č. 412/2005 Sb. o ochraně utajovaných informací a o bezpečnostní způsobilosti, ve znění pozdějších předpisů. [20] Bert-Jaap Koops: cryptolaw/.
Crypto
Law
Survey.
http://rechten.uvt.nl/koops/
[21] Regulation of Investigatory Powers Act 2000. http://www.legislation.gov.uk/ ukpga/2000/23/contents. [22] Zákon č. 40/2009 Sb., trestní zákoník.
30