430 likes | 622 Views
Je bezpečnosť informačných systémov bezpečná?. Doc. Ing. Ladislav Hudec, CSc., CISA http://www2.fiit.stuba.sk/~lhudec/ Fakulta informatiky a informačných technológií STU Certifikovaný auditor informačných systémov S údny znalec pre bezpečnosť a ochranu informačných systémov
E N D
Je bezpečnosť informačných systémov bezpečná? Doc. Ing. Ladislav Hudec, CSc., CISA http://www2.fiit.stuba.sk/~lhudec/ Fakulta informatiky a informačných technológií STU Certifikovaný auditor informačných systémov Súdny znalec pre bezpečnosť a ochranu informačných systémov Pripravené pre stretnutie Alumni klubu STU dňa 5. júna 2012, veľká zasadačke rektora STU
Úvod • Bezpečný (absolútne) reálny informačný systém neexistuje. Teoreticky áno, ale nie je použiteľný. • Informačná bezpečnosť je bezpečnosť informácií. • Počítačová bezpečnosť je bezpečnosť prostriedkov počítačového systému (širší pojem). • Osnova prednášky: • Čo je informačná/počítačová bezpečnosť • Identifikácia a autentizácia • Programové infiltrácie • Kryptografia a bezpečnosť • PKI (Infraštruktúra verejného kľúča) • Digitálny/Elektronický podpis
Čo je počítačová bezpečnosť – aktíva počítačového systému • Aktívum je niečo, čo má hodnotu alebo je pre spoločnosť užitočné, pre jej obchodné operácie alebo kontinuitu činnosti. To znamená, že aktíva potrebujú ochranu, aby sa zaistili korektné obchodné operácie a kontinuita činnosti. • Vhodná správa aktív a účtovateľnosť aktív je rozhodujúca na zaistenie ich primeranej ochrany. Tieto dva aspekty by mali byť dôležitou povinnosťou na všetkých manažérskych úrovniach. • Príklady aktív zahrňujú: • Informačné aktíva: databázy a údajové súbory, systémová dokumentácia, používateľské manuály, školiace materiály, prevádzkové a podporné procedúry, havarijné plány • Papierová dokumentácia: kontrakty, návody, dokumentácia spoločnosti, dokumenty obsahujúce dôležité obchodné údaje • Softvérové aktíva: aplikačný softvér, systémový softvér, vývojové nástroje a utility • Fyzické aktíva: počítače a komunikačné zariadenia, magnetické médiá (pásky a disky), ďalšie technické zariadenia (zdroje energií, klimatizácia), nábytok, • Ľudia: obslužný personál, zákazníci, predplatitelia • Reputácia a obraz spoločnosti • Služby: výpočtové a komunikačné služby, ďalšie technické služby (kúrenie, osvetlenie, energie, klimatizácia).
Čo je počítačová bezpečnosť – hrozby, zraniteľnosti a požiadavky • Aktíva sú predmetom mnoho typov hrozieb: • Hrozba má potenciál spôsobiť neželaný incident, ktorý môže spôsobiť škodu systému, alebo spoločnosti a jej aktívam. • Škoda sa môže objaviť po priamom alebo nepriamom útoku na informácie spoločnosti, napríklad neautorizované zničenie, zverejnenie, modifikácia, poškodenie a nedostupnosť alebo strata. • Hrozby môžu vzniknúť z náhodných alebo úmyselných zdrojov alebo udalostí. • Hrozba musí zneužiť zraniteľnosť systému, aplikácie alebo služby používanej spoločnosťou, aby úspešne spôsobila škodu aktívu. • Zraniteľnosti sú slabiny spojené s aktívami spoločnosti. Tieto slabiny môžu byť využité (zneužité) hrozbou spôsobujúcou neželaný incident, ktorý môže skončiť stratou, škodou alebo poškodením aktíva. • Zraniteľnosť sama o sebe nespôsobuje škodu, je iba podmienkou alebo množinou podmienok, ktoré umožňujú hrozbe pôsobiť na aktívum. • Požiavky na ochranu informácií (údajov) • Existujú právne požiadavky • Zákon č. 428/2002 Z. Z. O ochrane osobných údajov • Zákon č. 215/2004 Z. Z. O ochrane utajovaných skutočností • Bankový zákon, Daňový zákon, Zákon o zdravotnom poistení, ... • Sú dané technické a manažérske štandardy • ISO/IEC 27 000 Informačné technológie. Manažérsky systém informačnej bezpečnosti. • STN ISO/IEC 15 408 Informačné technológie. Bezpečnostné techniky. Kritériá na hodnotenie bezpečnosti IT.
využívajú Hrozby Zraniteľnosti zvyšujú zvyšujú chránia pred sú vystavené Ochranné opatrenia znižujú Riziká Aktíva indikujú zvyšujú majú sú splnené Požiadavky na ochranu Hodnoty Čo je počítačová bezpečnosť – správa bezpečnosti
Čo je počítačová bezpečnosť - ekonomika ochrany Minimálna ochrana Maximálnaochrana Zvyškové riziko Vyvážené náklady a straty
Čo je počítačová bezpečnosť • Bezpečnosť počítačového systému spočíva v udržaní troch základných vlastností počítačový systému • Dôvernosť (Confidentiality) • K aktívam pristupujú iba oprávnené entity • Typy prístupy môžu byť: čítanie, tlačenie alebo iba informácia o existencii objektu • Niekedy sa dôvernosť nahradzuje a označuje pojmami utajenosť (secrecy) alebo privátnosť (privacy) • Integrita (Integrity) • Aktíva môžu byť modifikované iba predpísaným spôsobom • Napríklad zapísanie, zmenenie, zmenenie stavu, zrušenie alebo vytvorenie • Dostupnosť (Availability) • Aktíva sú dostupné oprávneným entitám • Oprávnenej entite nesmie byť bránené v prístupe k aktívam, ku ktorým má oprávnenie pristúpiť • Ďalšími vlastnosťami je autentickosť (authenticity) a nepopierateľnosť (non-repudiation)
Identifikácia a autentizácia • Pri prístupe k personálnemu počítaču je potrebné zadať username a password. • Username (meno používateľa) – identifikácia pristupovanej entity (používateľa) • Password (heslo používateľa) – autentifikácia, potvrdenie vyhlasovanej identity. • Modul identifikácie a autentifikácie (I&A) porovnázadané údaje od entity s údajmi uloženými v personálnom počítači (password file). Identifikácia a autentifikácia entity môže byť neúspešná. • Obmedzený počet neúspešných prihlásení • Zablokovanie účtu • Upozornenie na nelegálnosť neoprávneného prístupu a právne postihy • Heslo je kľúčom k účtu používateľa. Problémy s heslami: • Zabudnuté heslá (ukladanie do zapečatených obálok do trezoru) • Hádanie hesiel (voľba silných hesiel) • Odchytenie, odpozorovanie hesla (technické, technologické opatrenia) • Úmyselne alebo neúmyselné vyzradenie hesla (administratívne opatrenia?) • Kompromitácia súboru password file (ochrany operačného systému alebo aplikácie)
Identifikácia a autentizácia • Heslá sú zdieľaným tajomstvom medzi používateľom a modulom I&A operačného systému alebo aplikácie. • Kvalita hesla je podstatná pre bezpečnosť autentifikácie a ochranou pred uhádnutím hesla útočníkom (minimalizuje šance útočníka). Stratégie útočníka pri hádaní hesla: • Úplné prehľadávanie. Použitie hrubej sily (brute force attack - BFA) – skúša všetky možné kombinácie platných symbolov až do určitej dĺžky • Inteligentné prehľadávanie. Prehľadávanie iba istej obmedzenej množiny všetkých možných kombinácií platných symbolov, na základe znalosti mena používateľa, mená príbuzných a priateľov, telefónneho čísla, čísla alebo značky auta, populárne heslá (nbusr123), slovníkové útoky – útočník skúša heslá podľa dopredu pripraveného slovníka hesiel (Internetovský červ, november 1988) • Pravidlá voľby kvalitného hesiel: • Okamžitá zmena prednastavených hesiel (username: system, password: manager) po dodávke a inštalácii systému • Primeraná dĺžka hesla. Na ochranu pred BFA silou treba voliť dlhšie heslá: administrátor systému 12 znakov, používateľ podľa dôležitosti aplikácie 6 až 8 znakov • Vhodný formát hesla. Heslo musí obsahovať znaky aspoň z troch skupín znakov: malé písmená (a,b,..), veľké písmená (A,B,..), číslice (1,2,..), špeciálne znaky (?,!,%,..). • Vyvarovať sa známym heslám. Tieto heslá obsahujú slovníky hesiel. • Rady na zapamätanie hesla: • Pri zavedení nového hesla zapamätaniu napomáha viacnásobné zapísanie hesla (opakovanie hesla podporuje jeho zapamätanie). • Nemeňte heslá pred víkendami a sviatkami
Identifikácia a autentizácia • Alternatívne mechanizmy autentifikácie sú založené na tom, že používateľ • Niečo vie - heslo, PIN, dôverná informácia pri zrušení certifikátu - kto NIEČO VIE ste VY • Niečo vlastní - kľúč od dverí, fyzický token, čipová karta - kto váš TOKEN vlastní ste VY • Niekto je - biometrické prvky – odtlačok prsta, dlaň, hlas, sietnica oka, dúhovka oka, krvné riečište, DNA, potrebné sú referenčné vzorky – v etape zavedenia do systému, používané na identifikáciu a aj autentifikáciu, parametre FAR – False Acceptance Rate, FRR – False Rejection Rate • Niečo robí - vlastnoručný podpis s prípadným sledovaním dynamiky pera, dynamika písania na klávesnicu, sledovanie pohybu myši • Niekde je - prihlásenie do systému iba z určitého terminálu, sledovanie polohy pomocou GPS • Kombinácia mechanizmov umožňuje významné zvýšenie bezpečnosti autentifikácie • Viacero nezávislých autentizačných mechanizmov • Každý autentizačný mechanizmus má váhu odpovedajúcu jeho spoľahlivosti • Každý autentizačný mechanizmus s istou pravdepodobnosťou vyhodnotí výsledok • Pre autentizáciu treba dosiahnuť istý prah
Identifikácia a autentizácia • Jednorázové heslá • Jednorázové hesláriešia problém odchytenia hesla behom jeho prenosu po sieti a následným použitím odchyteného hesla. Jednorázové heslá sa nepoužívajúibapri aplikáciách prevádzkovaných v počítačových sieťach, ale i pri tak odlišných aplikáciách ako je CallCentrum, kedy je nevyhnutné autentizovaťpoužívateľa, ktorý požaduje služby bežným telefónom. • Ako je to vlastne možné, že používateľ môže vždy zadať iné heslo? Algoritmov na tvorbu jednorázových hesiel je celýrad. • Zoznam jednorázových hesiel • Nejjednoduchšou metódou jednorázových hesiel je zoznam jednorázových hesiel. V tomto prípade, je vygenerovanýzoznam hesiel, ktorý môže byť vytlačený na papier a odovzdanýpoužívateľovi (resp. zaslanýpoužívateľovi bezpečnou elektronickou poštou). Rovnakýzoznam existuje i na strane systému, kde môžu byť i jednotlivé jednorázové heslá znehodnotené jednocestnou funkciou. • Používateľ potomna svoju autentizáciu zadáva jedno heslo po druhom. Po zadaní hesla si zadané heslo zo zoznamu vyškrtne. • Jednorázové heslá môžu byť v zozname i očíslované. Systém potom môže vo výzvena zadanie hesla napovedaťpoužívateľovi aké heslo má zadať. • Zoznamy jednorázových hesiel sačasto kombinujú s klasickým heslom. Používateľ potom zadáva heslo skladajúce saz dvochčastí: z klasického (viacnásobného) hesla a z jednorázového hesla. Tým sa komplikuje využitiezoznamu jednorázových hesiel zabudnutého v i-kaviarni a na druhej strane sa i komplikuje použitie odchyteného hesla.
Identifikácia a autentizácia– rekurentný algoritmus • Rekurentný algoritmus • Rekurentný algoritmus používa niektorý z algoritmovna výpočet kontrolného súčtu. Zvoľme si jeden z týchto jednocestných algoritmov (hašovacia funkcia) a označme ho F. Ďalej si používateľ musí sám zvolit nejakýreťazecnásada. Tento reťazecpoužívateľ nikomu neoznamuje – je to iba používateľovo tajomstvo (rozdiel od zdieľaného tajomstva!). • Kontrolný súčet z reťazcanásada vyjadríme ako: F(násada). Ak použijeme algoritmus F dvakrát opakovane na tú istúsprávu, tj. F(F(násada)), potom budeme písať:F(F(násada))= F2(násada), ak aplikujeme algoritmus F opakovane n-krát, potom výsledný kontrolný súčet označíme Fn(násada). Podľa definície zrejme platí: F(Fn-1(násada))=Fn(násada) • Použitie tejto metódy spočíva tiež v inicializačnom kroku. Používateľ si vytvorí text násada (prípadne si ho zašifruje pomocou PINu). • V inicializačnom kroku sapoužívateľ a správca aplikácie dohodnú na čísle, napr. 1000. • Používateľ vyrobí:F1000(násada) a odovzdáho správcovi aplikácie. • Správca aplikácie si do databázy k nášmupoužívateľovi poznamená názov algoritmu na výpočet kontrolného súčtu (tj. F), číslo 1000 a F1000(násada). Správce teda nepozná text násada (je to používateľovo tajomstvo). • Pri autentizácii pošle používateľ na server meno, server vo svojej databáze zistí, akúpoužívateľ používa autentizačnú metódu. Obratom server používateľovi pošle dopyt obsahujúcičíslo (n-1), tj. teraz 999. Používateľ vygeneruje odpoveď F999(násada) a odošle to ako jednorázové heslo serveru. • Server preverí totožnosťpoužívateľa, takže vykoná porovnanieF(F999(násada)) = F1000(násada) • Algoritmus F je mu známy a F1000(násada) má uložené v konfiguračnom súbore a F999(násada) obdržal v odpovedipoužívateľa.
Programové infiltrácie • Neočakávanému správaniu programu sa hovorí programová chyba (program flaw). Programy sa nesprávajú tak, ako zamýšľali ich tvorcovia alebo očakávali ich používatelia. • Ochrana programov je rozhodujúca ochrana počítača • Programová chyba zahrňuje všetko od nesprávneho pochopenia požiadaviek ne program, cez chybu v jednom znaku pri kódovaní, chyby pri komunikácii dvoch modulov cez spoločný interfejs • Aj keby principiálne mohlo mať význam deliť programové chyby na úmyselné a neúmyselné, je to zbytočné, pretože obe spôsobujú potenciálnu možnosť spôsobiť škodu. • Útoky na systém často využívajú neúmyselné programové chyby na spôsobenie úmyselnej škody. • Najväčšie škody spôsobujú neúmyselné ľudské chyby. • Neexistuje spôsob ako zastaviť programové chyby. Dva hlavné dôvody: • Programy stále píšu individuálni programátori. Je temer nemožné zabezpečiť, aby program vykonával presne to, čo jeho návrhár alebo používateľ zamýšľal. • Programovanie a techniky SW inžinierstva sa menia vyvíjajú rýchlejšie ako techniky počítačovej bezpečnosti. • Programy narábajú s údajmi a samy o sebe nie sú často cieľom útokov, ale prostredníctvom programov sa chcú útočníci dostať k údajom. • Škodlivý kód (malware) je všeobecný názov na neočakávaný alebo nežiadúci efekt v programe, ktorý je mienený na úmyselné spôsobenie škody.
Programové infiltrácie – škodlivý kód • Škodlivý kód možno rozdeliť na tieto typy: • Vírus – je program, ktorý prenáša škodlivý kód na ďalšie programy a modifikuje (infikuje) ich. Vírus infikuje program tým, že sa k nemu pripojí a/alebo ho zničí alebo s nim koexistuje. Infikovaný program rozširuje vírus a môže spôsobiť, že sa vírus presunie do celého výpočtového systému (LAN). • Trójsky kôň –je škodlivý kód, ktorý vyzerá tak, že v počítači vykonáva určitú činnosť (možno aj užitočnú), ale v skutočnosti vykonáva inú skrytú škodlivú činnosť. Príkladom takejto škodlivej činnosti môže byť inštalácia kódu zadných vrátok. Trójsky kôň sa nešíri sám vytváraním svojich kópií, ale sa spolieha na to, že je používateľmi často používaný. Jeho meno je odvodené od klasického príbehu Trójskeho koňa. • Rootkit - je škodlivý kód (alebo kombinácia viacerých programov) navrhnutý tak, aby získal prístup k počítaču s administrátorskými právami, bez autorizácie vlastníka počítača alebo oprávneného manažéra. Zvyčajne sa nepožaduje fyzický prístup k počítaču a vykonanie reštartu počítača. Rootkit je navrhnutý tak, že získa kontrolu nad operačným systémov počítača ako každý administrátor. Typicky rootkit skrýva svoju prítomnosť v systéme zničením alebo vyhnutím sa štandardným bezpečnostným mechanizmom operačného systému. Kód rootkitu môže byť odvodený od štandardného programu riadiaceho operačný systém pri zrútení systému alebo pri jeho zmrazení. Rootkit často modifikuje časti operačného systému a inštaluje sa ako ovládač alebo časť operačného systému. • Zadné vrátka (backdoor) je metóda obídenia normálnej autentizačnej procedúry (potvrdenie identity používateľa) operačného systému alebo aplikácie. V prípade, že systém bol kompromitovaný nejakým škodlivým kódom (napríklad Trójskym koňom), tento škodlivý kód môže nainštalovať do systému jedny alebo viacero zadných vrátok, aby umožnil útočníkovi prístup do systému v budúcnosti. Zadné vrátka môžu mať formu inštalovaného programu (napríklad Back Orifice) alebo môžu by modifikáciou existujúceho programu.
Programové infiltrácie – škodlivý kód • Škodlivý kód možno rozdeliť na tieto typy: • Spyware je škodlivý kód, ktorý je tajne nainštalovaný na počítač, aby zachytával alebo čiastočne riadil komunikáciu používateľa s počítačom bez vedomia používateľa. Kód spyware môže zbierať rôzne typy osobných informácií o používateľovi ako sú navštívené webové sídla, ale môže aj iným spôsobom zasahovať do počítača používateľa inštalovaním ďalšieho programu, presmerovávaním webového prehliadača a pristupovaním k webovým stránkam obsahujúcich vírusy alebo reklamy. Kód spyware dokonca môže zmeniť nastavenia počítača, ktoré môže spôsobiť malú rýchlosť pripojenia k internetu, prípadne nastaví iné domáce stránky v internetovom prehliadači. • Zachytávanie stlačených kláves (keylogger) je metóda zachytenia a zaznamenania používateľom stlačených kláves na klávesnici počítača. Okrem toho, že zachytávanie stlačených kláves môže byť užitočné na určenie zdrojov chýb v počítači, na štúdium ako používatelia komunikujú a pristupujú k systému a niekedy na meranie produktivity administratívnych pracovníkov spoločnosti, môže táto metóda napríklad poskytnúť spôsob získania hesla používateľa alebo šifrovacieho kľúča obídením bezpečnostných opatrení. • Adware (advertising-supported software). Nie je typický škodlivý kód, väčšinou nie je priamo nebezpečný ako škodlivý kód typu spyware. Adware je spojený s nejakým programom, který je voľne šíriteľný (freeware). Je to označenie pre programové produkty, ktoré nechcenou reklamou znepríjemňujú prácu s nejakou aplikáciou. Môžu mať rôzny stupeň agresivity až po neustále vyskakujuce pop-up okná alebo ikony v oznamovacej oblasti. Ďalšou nepríjemnou aktivitou adware je napríklad zmena domovskej stránky v internetovom prehliadači bez toho, že by mal používateľ o to záujem. • Červík – je program, ktorý rozširuje svoje kópie cez sieť – prenáša sám seba (na rozdiel od vírusov, ktoré sa prenášajú kopírovaním infikovaných programov alebo dát). • Králik – je vírus alebo červík, ktorý sa replikuje bez obmedzenia s cieľom vyčerpať zdroje počítača (napríklad zahltiť disk, spôsobuje útok Denial of Services). • Tieto jednotlivé typy škodlivých kódov môžu byť kombinované, napríklad vírus a časová bomba.
Programové infiltrácie – škodlivý kód • Príklady škodlivého kódu: • Bancos je škodlivý kód typu Trójsky kôň: • Pre platformy Windows zaznamenávajúci stlačené klávesy používateľom po prihlásení sa na webovú stránku, ktorá obsahuje vo webovej adrese textový reťazec (zoznam textových reťazcov, najmä bánk, je súčasťou kódu). To znamená, že Bancos môže získať dôverné údaje používateľa, ktoré zadáva pri komunikácii s bankou, ako sú používateľské meno, heslo, PIN kód, číslo kreditnej karty, atď. Bancos tieto informácie posiela na určený webový server v internete. • Mydoom je škodlivý kód typu červ: • Pre platformy Windows ukončuje procesy patriace určitým bezpečnostným nástrojom, ako sú niektoré antivírusové programy a bezpečnostné brány. Takto ponecháva napadnutý počítač zraniteľný útokom iného škodlivého kódu.Mydoom tiež modifikuje súbor HOSTS, aby zabránil prístupu na webové sídla niektorých antivírusových firiem. • Bugbear je škodlivý kód typu vírus: • Pre platformy Windows. Počítač sa môže veľmi ľahko infikovať týmto vírusom, pretože je automaticky aktivovaný pri prehliadaní správy prostredníctvom aplikácie Outlook. • Využíva slabinu internetového prehliadača umožňujúcu automaticky vykonávať prílohy správ elektronickej pošty. Ale Bugbear nevyužíva vždy len túto slabinu pri napadnutí počítača.Na napadnutom počítači Bugbear vykoná ďalšie aktivity. Odosiela na určitý zoznam adries elektronickej pošty súbor obsahujúci kópie hesiel uložených v počítači pre komutované pripojenie počítača do internetu. Ďalej infikuje veľké množstvo súborov na počítači, zablokuje bezpečnostné programy a otvorí port 1080, čo umožní útočníkovi vzdialený prístup na napadnutý počítač. Nakoniec Bugbear zaznamenáva používateľom stlačené klávesy na klávesnici do súboru. Útočník z tohto súboru môže získať dôverné údaje, ako sú heslá na pristúpenie k určitým internetovým službám, bankovým účtom, apod. Zaznamenané údaje sú z počítača odoslané v prípade, že súbor dosiahne určitú veľkosť alebo každé 2 hodiny. • Bugbear je obťažné rozpoznať, pretože nezobrazuje žiadne správy ani varovania, ktoré by indikovali, že sa dostal na počítač.
Pôvodný kód + Kód vírusu = alebo Infikovaný kód Programové infiltrácie – škodlivý kód • Ako sa vírusy pripájajú k programu: • Vírusy sa aktivujú spustením infikovaného programu. Spustením sa vírus dostáva k moci a môže napadnúť dobré programy na disku. • Vírus pripojený k programu - je najjednoduchší spôsob pripojenia vírusu k programu. Vírus uloží svoj kód na začiatok programu. Keď sa program spustí najprv sa vykoná program vírusu a až potom samotný program. Ak infikovaný program robí to čo má, používateľ si ani nemusí všimnúť, že k aplikácii je pripojený vírus. • Vírus obklopujúci program - je ďalší spôsob. Časť kódu vírusu sa môže vykonať pred spustením aplikácie a druhá časť kódu vírusu sa môže vykonať po ukončení aplikácie (problém veľkosti infikovaného kódu, ako to oklamať). • Vírus integrovaný do aplikácie a náhrada. Vírusy sa môžu integrovať do aplikácie a nahradiť ju. Je zrejmé, že pisateľ vírusu musí presne vedieť štruktúru aplikácie, aby vedel kam umiestniť kód. Vírus môže nahradiť celú aplikáciu, ktorá potom buď funguje alebo nie.
Programové infiltrácie – škodlivý kód • 2.11.1988 bol do sieti Internet pustený červík, ktorý spôsobil vážne škody na počítačoch pripojených do siete. Autor Robert T. Morris • Čo urobil? • Naprogramoval aplikáciu, aby splnil ciele – určiť, kade sa môže šíriť, zabezpečiť šírenie, zostal neodhalený a neodhaliteľný • Efekt červíka – primárnym cieľom bolo vyčerpanie zdrojov (útok DoS). Podľa zdrojového kódu červíka najprv zisťoval, či už bol hosť infikovaný alebo nie. Ak bol infikovaný, potom rozhodol, či sa existujúca infekcia ukončí alebo sa ukončí nový infektor. Z dôvodu chyby v programe sa mnoho nových kópií červíka neukončilo, a teda infikovaný stroj skoro začal obsahovať veľa kópií červíkov, ktorí sa snažia rozšíriť infekciu. • Ako červík fungoval – využil niekoľko chýb a konfiguračných slabín OS Unix, Berkeley version 4 na realizáciu cieľov. Kadiaľ sa šíriť – červík mal tri techniky na určenie potenciálneho obetného stroja, ktorý by mohol napadnúť. • Paralelne sa snažil využiť chybu v službe finger a potom využiť zadné vrátka v ovládači emailu send-mail. (Tieto chyby boli známe v Unix komunite.) Červík sa dostal na stroj, našiel súbor používateľov so zašifrovanými heslami a mal pripravený slovník so 432 najpoužívanejšími heslami. Keď sa dostal na konto, potom zisťoval, kam môže hacknutý používateľ pristúpiť. Červík sa snažil prihlásiť ako používateľ a využil systémovú chybu, že používateľ vidí zoznam zašifrovaných hesiel. • Druhá zneužitá chyba spočívala v chybnej činnosti programu fingerd. Tento program je stále aktívny a odpovedá žiadostiam ostatných počítačov o informácie o používateľoch. Chyba bola spôsobená pretečením vstupnej vyrovnávacej pamäti. Keď program fingerd skončil, rutina červíka sa pripojila k remote shell.
Programové infiltrácie – škodlivý kód • Tretia zneužitá chyba bola existencia zadných vrátok v programe send-mail. Tento program obyčajne beží na pozadí a čaká na signály od používateľov , ktorí chcú jeho služby využiť. Keď dostane taký signál, program dostane cieľovú adresu , ktorú verifikuje a potom začína dialóg na získanie správy. Ak však send-mail funguje v režime DEBUG, namiesto cieľovej adresy očakáva povel. • Ako šíril infekciu? • Ak červík našiel vhodný cieľový stroj, snažil sa jedným z troch uvedených spôsobov poslať cieľovému stroju zavádzač. Zavádzač pozostával z 99 riadkového kódu jazyka C, ktorý bol kompilovaný a vykonávaný na cieľovom stroji. • Ako zostal neodhalený a neodhaliteľný? • Keď kód červíka bol prenesený na nový cieľový stroj, bol zavedený do pamäti, zašifrovaný a na disku vymazaný. Červík periodicky menil svoje meno a identifikátor procesu.
Kryptografia a bezpečnosť • Symetrický šifrovací systém • Šifrovací a dešifrovací kľúč je ten istý (kľúč1 = kľúč2) • Šifrovaciemu kľúču sa hovorí tajný kľúč • Asymetrický šifrovací systém • Šifrovací kľúč a dešifrovací kľúč sú rôzne (kľúč1/= kľúč2) • Kľúč1 je verejným kľúčom príjemcu a kľúč2 je privátnym kľúčom príjemcu • Vlastníctvo tajného alebo privátneho kľúča je autentizačný mechanizmus
Kryptografia a bezpečnosť • Blokový šifrátor • Naraz zašifruje blok viacerých znakov otvoreného textu, napríklad 8 znakov (šifrátor DES, Data Encryption Standard), 16 znakov (šifrátor AES – Advanced Data Encryption Standard) • Prúdový šifrátor • Naraz zašifruje jeden znak otvoreného textu, prípadne jeden bit • Napríklad prúdový šifrátor RC4 • Blokový šifrátor môže fungovať vo viacerých režimoch (ECB – Electronic Code Book, CBC – CipherBlock Chaining, OFB – Output FeedBack, CFB – Cipher FeedBack)
Kryptografia a bezpečnosť – moderné šifrovacie systémy • Klasické šifrovacie systémy boli navrhnuté a používané pred príchodom počítačov • S použitím počítača sa môžu významne komplikovať šifrovacie algoritmy • Bezpečné moderné šifrovacie algoritmy sú založené na riešení problémov veľkej matematickej zložitosti • Rozbitie takéhoto šifrovacieho algoritmu útokom hrubou silou (brutal force attack) je v reálnom čase nezvládnuteľné • Príklad problému veľkej matematickej zložitosti • Zistenie splniteľnosti formuly - problém je určiť, či daná logická formula je splniteľná alebo nie. Logický výraz je zložený z logických premenných v1,v2,v3,.. vn , a |v1,|v2,|v3,.. |vn, členy formuly sú súčty, formula je tvorená súčinom členov. Ak je možné zvoliť hodnoty v1,v2,v3,.. vn ako 0 alebo 1 tak, aby logická formula nadobúdala hodnotu 1, potom sa hovorí, že formula je splniteľná. • Príklad: f = v1.(v2 + v3). (|v2 + |v3), je splniteľná formula • Na preskúmanie splniteľnosti treba preskúmať 23=8 možností • Na preskúmanie splniteľnosti treba vo všeobecnosti preskúmať 2n možností, kde n je počet logických premenných (exponenciálna zložitosť).
Kryptografia a bezpečnosť • Malé a veľké čísla • 2-12 pravdepodobnosť smrti v aute • 214, 104 doba v rokoch od poslednej doby ľadovej • 230, 109 doba v rokoch od vzniku planét slnka • 2170, 1051 počet atómov v zemeguli • Zložitosť (časová) Zložitosť operácií pre n = 106 doba riešenia pri 106 op/s O(1) 1 1 mikrosekunda O(n) 106 1 sekunda O(n2) 1012 1,6 dní O(n3) 1018 32000 rokov O(2n) 10301030 ???? rokov • Problémy aplikácií výsledkov teórie zložitosti v kryptografii • Kryptoanalytik veľakrát rieši veľký súbor štatisticky podobných problémov (mnoho šifier generovaných tým istým kľúčom) • Obťažnosť nesmie platiť v „priemere“ alebo „v najhoršom prípade“, ale „vždy“ • Nie je možné použiť akýkoľvek ťažký problém, pri riešení musí byť možnosť uplatniť „zadné vrátka“
Kryptografia a bezpečnosť • Bezpečnosť je daná silou algoritmu • Ako skrýva redundaciu • Dĺžkou kľúča • Útok hrubou silou, skúšanie všetkých hodnôt kľúčov (celý kľúčový priestor) Dĺžka kľúčapočet pokusov pri 1MIPS doba riešenia pri 106MIPS 8 28256 mikrosekúnd 56 2561142 rokov 10 hodín 128 21285.1024 rokov 5.1018 rokov 1024 21024~10295 rokov 2048 22048~10597 rokov • Aplikovateľnosť podľa dĺžky kľúča • Symetrické šifrovacie systémy 128 bitov • Asymetrické šifrovacie systémy 1024 bitov
Kryptografia a bezpečnosť - šifrovací systém DES • Blokový symetrický šifrátor, 64 bitový šifrátor s 56 bitovým šifrovacím kľúčom • Bol vyvinutý vládou USA (modifikácia šifrovacieho systému LUCIFER od IBM) pre všeobecné verejné použitie (Data Encryption Standard – DES) • Je to šifrátor Feistalovského typu, využíva 16 cyklov (iterácií) • Bol akceptovaný ako štandard v USA v roku 1976 (v roku 2005 skončil ako štandard, stále sa však ešte používa). Je ustanovený jeho nástupca Advanced Encryption Standard (AES), 128 bitový šifrátor s 128 alebo 192 alebo 256 bitovým kľúčom • V súčasnosti sa na zvýšenie kryptografickej sily používa verzia TripleDES (64 bitový šifrátor so 112 bitovým kľúčom, pri šifrovaní: prvým kľúčom sa šifruje, druhým sa dešifruje a prvým sa opäť šifruje, pri dešifrovaní: prvým kľúčom sa dešifruje, druhým sa šifruje a prvým sa opäť dešifruje) • Využíva základné šifrovacie techniky ako sú substitúcia (S-boxy) a permutácia (P-boxy) • Na začiatku šifrovania sa vykoná iniciálna permutácia a na konci šifrovania sa vykoná inverzná iniciálna permutácia
Kryptografia a bezpečnosť - šifrovací systém RSA • Rivest, Shamir, Adleman, 1978 • Teoretické základy šifrovacieho systému sú založená na malej Fermatovej vete a Eulerovej vete (staré asi 250 rokov) • Bezpečnosť je založené na obťažnosti faktorizácie veľkých čísel • Je to asymetrický šifrovací systém, jeden kľúč (e, n) je použitý na šifrovanie – súkromný kľúč, druhý kľúč (d, n) na dešifrovanie – verejný kľúč • Správa P je zašifrovaná operáciou Pe mod n • Zašifrovaná správa c je dešifrovaná operáciou cd mod n • Zrejme platí • Pe.d mod n = Pd.e mod n = P • P = cd mod n = (Pe mod n)d mod n = Pe.d mod n = P • Podrobnejší opis algoritmu • Číslo n je súčinom prvočísel p a q (každé aspoň 200 dekadických miest) • Číslo e (súkromný kľúč) je vybraté tak, že nemá spoločných deliteľov s číslami p-1 a q-1 (vyberá sa prvočíslo väčšie ako p-1 a q-1) • Číslo d (verejný kľúč) sa vyberie tak, že platí e.d = 1 mod (p-1).(q-1)
Kryptografia a bezpečnosť – hašovacie funkcie • Jednosmerná funkcia • Pre dané x je možné ľahko vypočítať F(x) a pre dané F(x) je veľmi ťažké vypočítať x • Pre dané x nie je ľahko nájsť x’ /= x také, že F(x) = F(x’) • Je obťažné nájsť dve náhodné x, x’ také, že F(x) = F(x’) (odolnosť proti kolízii, rozbitie skleneného pohára) • Jednosmerná funkcia so zadnými vrátkami • Jednocestná funkcia + pre dané F(x) je ľahko vypočítať x, pokiaľ sa pozná tajomstvo (rozložené hodinky na súčiastky, inštrukcie na zostavenie) • Jednosmerná hašovacia funkcia • Jednosmerná funkcia, vstup premenlivej dĺžky a (kratší) výstup pevnej dĺžky (128 alebo 160 bitov) prípadne 256 (SHA-256) • Odtlačok prsta, fingerprint, charakteristika • Hašovacie funkcie a hašovacie hodnoty chránia údaje pri prenose alebo pri uložení pred modifikáciou • Funkcia parity a paritný bit • Delenie postupnosti bitov (chápané ako koeficienty polynómu s vysokou mocninou) ireducibilným polynómom a zvyšok po delení • Z hašovacej hodnoty nie je možné rekonštruovať pôvodné údaje, z ktorých bola hašovacia hodnota vypočítaná. (Bohužiaľ už to pre niektoré hašovacie funkcie nie je pravda, SHA-1, MD5) • Kryptografické hašovacie funkcie HMAC (nelineárne transformácie údajov do hašovacej hodnoty)
PKI • K čomu slúži táto pomerne komplikovaná konštrukcia? • Na nasledujúcom obrázku je znázornený prípad, kedy používateľ A chce používateľovi B zaslaťsprávu, ktorú chce zabezpečiť šifrovaním asymetrickou šifrou. • V takomto prípade je nevyhnutné, aby príjemca B najprv vygeneroval dvojicu kľúčov : verejný kľúč (VK-B) a súkromný kľúč (SK-B) (1). Súkromný kľúč si uloží ako svoje tajomstvo napríklad na disk alebo čipovú kartu (2). Verejný kľúč (VK-B) nejakým kanálom distribuje používateľovi A (3). • Používateľ A potom použije verejný kľúčpoužívateľa B (na obrázku označený VK-B) k zašifrovaniu odosielanejsprávy (4). • Používateľ B potom takto zašifrovanúsprávu dešifruje svojím súkromným kľúčom (SK-B) a získa tak pôvodnúsprávu (5). • Pri asymetrickej kryptografii nespočíva nebezpečie vo vyzradení verejného kľúča. Avšak aj pri asymetrickej kryptografii je nebezpečím podvrhnutie kľúča.
PKI • Na nasledujúcom obrázku nám vstupuje do hry útočník X: • ktorý si vygeneruje svoju dvojicu kľúčov: verejný kľúč (VK-X) a súkromný kľúč (SK-X) • útočník svoj verejný kľúč VK-X podvrhne za kľúčpoužívateľa B. Tj. používateľ A si myslí, že VK-X je verejným kľúčom používateľa B a vykoná týmto kľúčom šifrovanie odosielanejsprávy. • Správu odchytí útočník X a dešifruje si ju svojím súkromným kľúčom SK-X. Útočník tak získasprávu. • Aby si používateľ B nesťažoval, že nedostane správu, tak mu ju útočník zašifruje a odošle šifrovanú jeho kľúčom (VK-B). • Proti podvrhnutiu verejného kľúča sa bránime certifikáciou verejného kľúča – tj. pomocou certifikátu.Používateľ B vygeneruje dvojicu verejný a súkromý kľúč, pričom súkromý kľúč si ako tajomstvostarostlivo uloží. Avšak verejný kľúč neodosialapoužívateľovi B samotný, ale ako súčasť certifikátu.
PKI – certifikácia verejného kľúča • Certifikácia verejného kľúča používateľa sa vykoná takto (viď nasledujúci obrázok): • Používateľ B vygeneruje dvojicu verejný a súkromný kľúč (1), pričom súkromný kľúč si ako tajomstvostarostlivo uloží. • Po vygenerovaní dvojice kľúčovpoužívateľ Bzostaví štruktúru „žiadosť o certifikát“. Táto štruktúra obsahuje identifikačné údaje používateľa B, verejný kľúčpoužívateľa B a prípadneďalšie data, ktorá súopísanéďalej. Túto štruktúru digitálne podpíše svojím práve vygenerovaným súkromným kľúčom a pošle certifikačnej autorite (2). • Certifikačná autorita overí totožnosťpoužívateľa a verifikuje elektronický podpis na žiadosti o certifikát. Pokiaľ je žiadosť v poriadku,potom certifikačná autorita vystaví certifikát. • Certifikát okrem iného obsahuje informácie o tom: • kto ho vydal • sériové číslo certifikátu • identifikačné údaje používateľa • platnosť certifikátu • verejný kľúčpoužívateľa • Certifikát je digitálne podpísaný súkromným kľúčom certifikačnej autority (CA). • Certifikačná autorita má svoju dvojici kľúčov: verejný kľúč CA (VK-CA) a súkromný kľúč (SK-CA). Na bezpečnost uloženia súkromného kľúča CA sú kladené extrémne nároky (FIPS 140-2). Verejný kľúč CA sa distribuje ako súčasť certifikátu CA.
PKI – certifikácia verejného kľúča • Certifikát CA môže byť podpísaný súkromným kľúčomsamotnej CA (self signed)alebo súkromným kľúčom inej CA(nadradená autorita alebo krížová certifikácia). • Používateľovi B je certifikačnou autoritou vrátený vystavený certifikát (3). S vystaveným certifikátom by malpoužívateľ obdržať tiež jeden alebo viacero certifikátov certifikačných autorít. Pomocou certifikátov CA môže byť overený vystavený certifikát. • Teraz môžepoužívateľ B svoj certifikát odoslať (4) používateľovi A, ktorý ho overí a v prípade, že je vystavený prepoužívateľa A dôveryhodnou CA a elektronický podpis na certifikáte je v poriadku, potom môže z tohto certifikátu použiť verejný kľúčna zašifrovaniesprávy, ktorú chce odoslaťpoužívateľovi B. Zašifrovanúsprávu odošle používateľovi B (5). Používateľ B potom pomocou svojho súkromného kľúča dešifruje správu (6) a získa tak pôvodnúsprávu.
PKI – certifikácia verejného kľúča • Certifikát se často prirovnáva k občianskemu preukazu. Zatiaľ čo občiansky preukaz se vydáva v tlačenej podobe, tak certifikát se opisuje jako štruktúra v jazyku ASN.1 a medzi počítačmi se prenáša v kódovaní DER (podmnožina BER). • Zásadný rozdiel medzi občianskym preukazom a certifikátom je, že občiansky preukaz neobsahuje šifrovací kľúč. • V Internete je certifikát opísaný normou RFC-3280 (predtým norma RFC-2527). Táto norma je odvodená od odporúčaní ITU (predtým CCITT) X.509. Pôvodná verziačíslo 1 certifikátu podľa normy X.509 z roku 1988 bola postupne rozšírená až do dnes nejbežnejšej verzii 3. • Okrem certifikátov podľa RFC-3280 (resp. odporúčaní X.509) sa v praxi môžeme stretnúť i s certifikátmi iných formátov - napríklad EDI. Forma takýchto certifikátov je síce iná, ale princíp zostávarovnaký.
PKI – porovnanie položiek občianskeho prukazu a certifikátu
Digitálny podpis • Jedným zo spôsobov ako preniesť vlastnoručný podpis do elektronického sveta a zaviesť digitálny podpis, je využitie asymetrického šifrovacieho systému. • Asymetrický šifrovací systém je možné využiť na vytvorenie digitálneho podpisu používateľa ako napodobenie mechanizmu vlastnoručného podpisu používateľa z reálneho sveta. • Digitálny podpis sa vždy vzťahuje k niečomu, najčastejšie k digitálnemu podpisu súboru (správy). To znamená, že nie je možné digitálne podpísať prázdny súbor (v reálnom svete je podpis prázdneho papiera principiálne možný). • Podpisovateľ pri digitálnom podpise súboru musí najskôr vytvoriť kontrolný súčet súboru (napríklad SHA-2). Po vytvorení kontrolného súčtu súboru podpisovateľ tento kontrolný súčet zašifruje svojím privátnym kľúčom. Zašifrovaný kontrolný súčet predstavuje digitálny podpis súboru. Digitálny podpis sa logicky pripojí k súboru (napríklad zazipovaním do jedného zip súboru). • Pri overovaní digitálneho podpisu overovateľ najprv oddelí podpis od súboru a ďalej vykoná tieto činnosti: • Digitálny podpis súboru overovateľ dešifruje verejným kľúčom podpisovateľa. Verejný kľúč vyberie z certifikátu verejného kľúča podpisovateľa. Tento certifikát sa štandardne tiež logicky pripája k podpisovanému súboru. • Overovateľ podpisu opäť vypočíta kontrolný súčet súboru a porovná ho s dešifrovaným digitálnym podpisom (čo je kontrolný súčet súboru vypočítaný podpisovateľom). Ak sa oba kontrolné súčty rovnajú, potom digitálny podpis bol úspešne overený. Pokiaľ sú oba kontrolné súčty rôzne, potom digitálny podpis overený nebol a podpis je neplatný.
Digitálny podpis • Celý postup digitálneho podpisovania súboru a overenie digitálneho podpisu je zaznamenaný na predchádzajúcom obrázku. Len pre zaujímavosť si treba všimnúť, že digitálny podpis v elektronickom svete je ešte silnejší ako vlastnoručný podpis v reálnom svete, pretože: • Digitálny podpis zabezpečuje aj integritu súboru. Ak sa po podpísaní zmení obsah súboru, pri overovaní podpisu sa vypočíta iná kontrolná suma než bola tá kontrolná suma, čo vypočítal podpisovateľ pri podpisovaní súboru, a podpis sa neoverí. Túto vlastnosť vlastnoručný podpis nemá, pretože občan sa podpisuje vždy rovnako a jeho podpis nezáleží od toho, či podpisuje zmluvu na kúpu auta alebo zmluvu na pripojenie sa do internetu. • Ako už bolo spomenuté, nie je možné digitálne podpísať prázdny súbor. V reálnom svete je podpísanie prázdneho listu možné.
Elektronický podpis • Podľa direktívy [EC 1993/93] je elektronický podpis definovaný ako údaje v elektronickej podobe, ktoré sú pripojené alebo logicky spojené s inými elektronickými údajmi a ktoré slúžia ako metóda autentifikácie • Elektronický podpis má funkciu zriadiť spojenie medzi podpísanými údajmi a osobou. Toto spojenie môže slúžiť iba na stanovenie prítomnosti vzťahu k údajom, znalosti údajov, akceptovateľnosti údajov, deklarácie údajov a a/alebo vzniku/vytvorenia údajov. Elektronický podpis je takto digitálna procedúra zriadená na potvrdenie možnej právnej dôležitosti údajov pre určitú osobu alebo skupín osôb. • Je nevyhnutné poznamenať, že takto definovaný elektronický podpis nevyžaduje výlučne použitie asymetrickej kryptografie, na jeho realizáciu môže byť použitá tiež symetrická kryptografia. Navyše, definícia dokonca nevyžaduje použiť kryptografiu, ak sú splnené požiadavky definované v elektronickom podpise. • Zaručený elektronický podpis je elektronický podpis splňujúci tieto ďalšie požiadavky • Je jednoznačne spojený s podpisovateľom • Je schopný identifikovať podpisovateľa • Je vytvorený použitím prostriedkov, ktoré má podpisovateľ výlučne pod kontrolou • Je pripojený k údajom a má k nim taký vzťah, že každá následná zmena údajov je detekovateľná
ĎAKUJEM ZA POZORNOSŤ TEŠÍM SA NA ĎALŠIE STRETNUTIA