320 likes | 540 Views
Identifi kácia a autentizácia. Doc. Ing. Ladislav Hudec, CSc. 1. 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)
E N D
Identifikácia a autentizácia Doc. Ing. Ladislav Hudec, CSc. 1
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) 2
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. Iniciálne nastavenie hesla pri zriadení účtu používateľa Administrátor operačného systému alebo aplikácie musí zriadiť konto, nastaví iniciálne heslo, ktoré si používateľ po prvom prihlásení musí zmeniť Bezpečné doručenie iniciálneho hesla používateľovi Pravidelná obmena hesla, na základe výzvy systémom alebo iniciatívy používateľa Osobné zadávanie hesla používateľom pri zriadení účtu používateľa (nie je potreba iniciálneho hesla) Vydanie nového hesla (autentifikácia používateľa na diaľku – záložné otázky, dôverné informácie). Zvyčajne rieši administrátor alebo help desk. 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 (brutal 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 (Internetový červ, november 1988) 3
Identifikácia a autentizácia 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. Podpora systému pri zvyšovaní bezpečnosti hesiel: Kontrolóry hesiel. Administrátori systémov môžu použiť nástroj na kontrolu „slabých hesiel“. Kontrolór hesla imituje slovníkový útok. Generovanie hesiel. Niektoré operačné systémy obsahujú generátory hesiel a vytvárajú náhodné a vysloviteľné (niekedy) heslá. V takýchto prípadoch si používateľ heslo nevolí sám. Starnutie hesiel. Mnohé systémy umožňujú nastavenie expirácie hesla a vynucujú od používateľov po istej dobe (3 až 6 mesiacov) nové heslá – môžu kontrolovať až 10 ostatných hesiel používateľa. Rôzne spôsoby obchádzanie – používatelia majú medzi heslami svojho favorita. Obmedzený počet pokusov prihlásenia. Systém môže monitorovať počet neúspešných pokusov prihlásenia používateľa a po určitom počte po sebe idúcich neúspešných prihlásení požívateľa konto zablokovať (na istú dobu, prípadne odblokovanie prístupu musí zabezpečiť administrátor). 4
Identifikácia a autentizácia Kvalitné heslá môžu byť ťažké na zapamätanie. Preto sa niekedy porušuje princíp dôvernosti alebo sa znižuje kvalita hesiel: Zapísanie kvalitného hesla na papierik a jeho uloženie v dosahu pracovnej stanice (Okrem oprávneného používateľa sa hesla môže zmocniť aj útočník) Pri vynucovanej zmene hesla každý mesiac si požívateľ môže pomáhať na zapamätanie hesla tým, že do hesla vloží informáciu o mesiaci, JAN, FEB alebo 01, 02. 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 Získavanie hesiel navádzaním používateľa na nesprávnu akciu (spoofing attack) sú založené na fakte jednostrannej autentifikácii (autentifikuje sa iba používateľ): Útočník podhodí škodlivý kód (Trójsky kôň) s falošnou prihlasovacou obrazovkou a dôverčivý používateľ tam zapíše prihlasovacie údaje. Škodlivý kód oznámi chybu prihlásenia, meno a heslo si odloží a skončí. Pri opätovnom prihlásení cez skutočnú prihlasovaciu obrazovku potom prebehne prihlásenie správne, ALE modul I&A nebude indikovať jedno neúspešné prihlásenie.(Útočník získal prihlasovacie údaje používateľa). Ochrana pre útokom spoofing: Vždy si všímajte v procese prihlasovania počet neúspešných prihlásení Prihlasovací modul musí byť dostupný na dôveryhodnej ceste. V OS Windows sa to zabezpečí stlačením CTRL+ALT+DEL – zavolanie skutočnej prihlasovacej obrazovky Vzájomná autentifikácia. Autentifikuje sa aj systém na druhej strane. 5
Identifikácia a autentizácia Heslá môžu byť získané útočníkom aj pri cachovaní hesiel (dočasnom uložení hesiel v systéme, vyrovnávacej pamäti, webovej stránke): Dočasné uloženie hesla do vyrovnávacej pamäti v procese I&A a jeho následné získanie útočníkom (zle bezpečnostne navrhnutý modul I&A) Zapísanie hesiel do webového prehliadača a ukončenie práce s prehliadačom bez uzavretia prehliadača (po ukončené práce s prehliadačom vždy uzavrieť prehliadač) Získanie hesla útočníkom zo súboru password file. V tomto súbore sú uložené heslá používateľov – extrémne atraktívny cieľ (doplnenie súboru – zavedenie nových používateľov). Password file je chránený: Zašifrovaním Riadením prístupu k súboru, ktoré zabezpečuje a presadzuje operačný systém Kombináciou šifrovania a riadenia prístupu s ďalšími opatreniami na spomalenie slovníkových útokov Heslá sa v súbore v skutočnosti nešifrujú. Na heslo sa aplikuje jednosmerná funkcia (hašovacia funkcia). Hodnota funkcie k danému heslu sa ľahko vypočíta, ALE k danej hodnote funkcie je prakticky nemožné určiť heslo. Password file so zašifrovanými heslami nie je možné ponechať verejne dostupný: Útočník môže aplikovať slovníkový útok Pozná hašovací algoritmus a má k dispozícii slovník najpoužívanejších hesiel Postupne hašuje heslá zo slovníka a hašované hodnoty porovná so zahašovanými heslami z password file 6
Identifikácia a autentizácia Operačný systém Unix používa hašovaciu funkciu odvodenú z algoritmu DES a password file nie je verejne prístupný (je uložený v /etc/passwd). V niektorých distribúciách je použitá koncepcia password salting Pred hašovaním sa heslo používateľa zreťazí so soľou (jedinečný reťazec znakov pre každého používateľa) Solenie hesla sťažuje slovníkové útoky (soľ je čo?) Dve rovnaké heslá majú rôzne hašovacie hodnoty Operačný systém Windows NT používa na ochranu súboru password file proprietárny formát zápisu (Slabá ochrana, použitá koncepcia security by obscurity). Ak je v systéme viacero zdrojov (počítač, sieť, programy, databázy, súbory, atď.), ktoré sú chránené prístupovým heslom, môže to viesť k situácii, že: Zadaj prvé heslo do pracovnej stanici Zadaj druhé heslo na prístup do siete Zadaj tretie heslo na prístup do servera Zadaj štvrté heslo na prístup do manažmentu databáze Zadaj piate heslo na prístup do tabuľky databázy Problém viacero hesiel rieši koncepcia služby single sign-on. Používateľ sa prihlási iba jediný krát a keď sa treba autentifikovať v nejakom podsystéme, služba poskytne meno a heslo používateľa. Meno a heslo používateľa je do podsystému zadané v otvorenom tvare - Nové bezpečnostné problémy. 7
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 8
Autentizácia používateľa a autorizácia dat • Autentizácia používateľa a autorizácia dat bez využitia asymetrickej kryptografie • Veľakrát sa autentizáciapoužívateľa spojuje s prihlásením používateľado počítačového systému. V dnešnej dobe problém autentizáciepoužívateľa je aktuálny problém pre internetové aplikácie, ktoré používa široká verejnosť. A tak pre voľbu autentizácie začínajú platiť i kritéria, ktorá boliskoršie v pozadí. Jedná sa napr. o cenu autentizačných pomôcok či komplikovanosť autentizácie pre klienta. Stačí sa nad problémom zamyslieť prakticky: je rozdiel v tom, či nakupuje firma autentizačné kalkulátory v cene niekoľko sto Sk pre päťdesiat zamestnancovalebo pre dvadsaťtisíc svojich klientov. • Na komplikovanosť autentizácie je možné sa dívať z dvoch pohľadov: z pohľadu pracnosti a z pohľadu nárokov na znalosti nevyhnutné na vykonanie autentizácie. Mechanická pracnosť vstupuje do hry napr. pri použití autentizačných kalkulátorov, kedy klient musí do kalkulátoru a z kalkulátoru prepisovať data (i keďpri optických kľúčoch je možné časť tohoto prenosu automatizovať). Pri použití digitálneho podpisu je autentizácia prepoužívateľa mechanicky jednoduchá, avšak používateľ musí pochopiť princíp digitálneho podpisu, musí obnovovať certifikáty atď. 9
Autentizácia používateľa a autorizácia dat • 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. 10
Autentizácia používateľa a autorizácia dat • 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ť. • Po vyčerpanízoznamu musí byťpoužívateľovi vygenerovaný a odovzdanýďalší zoznam. Ďalšou nevýhodou zoznamu hesiel je, že si hopoužívateľťažko môže zapamätať, a tak ho musí nosiť so sebou v tlačenejči elektronickej podobe. Môže sa tak ľahko stať, že používateľzoznam jednorázových hesiel zabudne napr. v e-kaviarni. • 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 e-kaviarni a na druhej strane sa i komplikuje použitie odchyteného hesla. • Inou možnosťou používania jednorázových hesiel je jednotlivé heslá očíslovať a nevyžadovať heslá jedno po druhom, ale náhodne. Náhodný výber hesiel môže byť i s opakovaním, tj. potom sa v podstate nejedná o „jednorázové heslo“, ale požiadavka na výber dvochrovnakých hesiel je v pre útočníka zaujímavom čase málo pravdepodobná. 11
Autentizácia používateľa a autorizácia dat • Zoznam jednorázových hesiel • Pre niektoré aplikácie je dostatočná i autentizačná karta. Ide o plastikovú kartičku bez magnetického prúžku a bez čipu s niekoľkýmipredtlačenými sadami čísiel. • Princíp použitia spočíva v tom, že aplikácia vygeneruje dopyt na zadanie niekoľko náhodne vybraných čísiel predtlačených na karte. Napr. v podobe "zadajte tretiuštvoricučísiel zoštvrtej sady vytlačených na Vašej Autentizačnej karte". • Autentizačná karta je forma použitia viacnásobných hesiel s jednoduchým doplnkom vzdialene pripomínajícom heslo na jedno použitie. • Výhodou tohoto prostriedku sú jeho zanedbateľné zriaďovacie náklady, ktorými sú získané veľmi zaujímavé bezpečnostné vlastnosti. 12
Autentizácia používateľa a autorizácia dat • 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. 13
Autentizácia používateľa a autorizácia dat • Rekurentný algoritmus • Po úspešnom preverenípoužívateľa uloží server do konfiguračného súboru namiesto hodnoty F1000(násada) hodnotu F999(násada) a namiestočísla 1000 číslo 999. Priďalšej autentizácii sa všetko vykonáva s číslom o jedničku nižším, tj. vykonáva sa autentizácia:F(F998(násada)) = F999(násada) • Používateľ mohol teda vygenerovať celkom 999 hesiel na jedno použitie, potom musí zmeniť hodnotu reťazcanásada a správcovi serveraodovzdať nový F1000(násada). • Ešte by sme sa mali vrátiť k procesu, kedy používateľodovzdá správcovi aplikáciečíslo n a hodnotu Fn(násada). Tieto údaje síce môže odovzdať osobne, ale to nie je príliš praktické. Používateľ totiž pravdepodobne nepríjde do styku so správcom aplikácie, ale s obchodným útvarom prevádzkovateľa aplikácie. V prípade, že by autentizačné údaje prechádzali mnohými rukami, tak je nebezpečie zneužitia týchto údajov. Jednoduchšie je, aby obchodné útvary odovzdali klientovi jednorázové heslo (napr. v zalepenej obálke) a používateľ sa pri prvej autentizácii preukázal týmto jednorázovým heslom a pritom odovzdal aplikácii i číslo n a hodnotu Fn(násada). Podobne môžeprísť i k reinicializácii po dosiahnutí n=1. • Algoritmus S/KEY • Je implementáciou rekurentného algoritmu. S/KEY je opísaný v RFC-1760. Jadrom je použitie algoritmu na výpočet kontrolného súčtu MD4. • Násadu si klient volí sám tak, aby bola dlhá minimálne 8 bajtov. • Algoritmus MD4 produkuje 16 bajtov dlhý kontrolný súčet. Ten sa v tomto prípade delí na dve polovice po 8 bajtoch, ktoré sa spoja operáciou XOR do výsledných ôsmych bajtov. Ak použijeme terminológiu z predchádzajúceho paragrafu, potom algoritmom F je algoritmus MD4, ktorého výsledok sa delí na dve polovice, ktoré sú operáciou XOR zlúčené do výsledných osem bajtov. 14
Autentizácia používateľa a autorizácia dat • Algoritmus S/KEY • S/KEY má nápadité rozšírenie umožňujúce použíťrovnaký algoritmus (vrátanerovnakej násady) pre viacero aplikácií (napr. pre viacero serverov). Princíp spočíva v tom, že aplikácia (server) vyzývajúcapoužívateľa na preukázanie svojej totožnosti (k autentizácii) klientovi zobrazí tri údaje: • Informáciu, že sa používa algoritmus S/KEY. • Číslo n koľkokrát má používateľ aplikovať algoritmus F. • Soľ, čo je reťazec vygenerovaný serverom a zaslanýpoužívateľovi nezabezpečene ako súčasť výzvy. Práve soľou sa budú výzvy jednotlivých aplikácií líšiť. • Používateľ najprv spojí násadu so soľou a výsledný reťazecaž potom použije ako násadu pre algoritmus F. • One Time Password (OTP) • OTP je opísaný v RFC1938, ktoré rozširuje mechanizmus S/KEY o možnosť použitiaďalších algoritmov na výpočet kontrolného súčtu, napr. algoritmy MD5 a SHA-1. • Zdieľané tajomstvo • Jednorázové heslo vytvorenépoužitímzdieľaného tajomstva opäť využíva jednocestnú funkciu, napr. hash. Mechanizmus autentizácie je ale odlišný. Z bezpečnostného hľadiska má tento typ autentizácie jednu nepríjemnú vlastnosť. Obe strany poznajú spoločné zdieľané tajomstvo, takže jedna strana môže podozrievať druhú, že tento mechanizmus zneužila. Ak preukazuje klient svoju totožnosť voči serveru, potom klient môže tvrdiť: „To som nebol ja, kto preukazoval svoju totožnosť, to bol správca servera, ktorý má prístup ku spoločnému zdieľanému tajomstvu, a prihlasoval sanamiesto mňa“. Toto zpochybnenieneprichádado úvahu pri rekurentnom algoritme (násadu pozná iba klient) ani pri asymetrickej kryptografii. 15
Autentizácia používateľa a autorizácia dat • Ešte predtým než sa bude môcť využívať mechanizmus autentizácie, tak jedna strana vygeneruje nejaký reťazec nazývaný zdieľaným tajomstvom (1). Zdieľané tajomstvo sa odovzdá druhej strane (2). V tomto okamihu obe strany zdieľajú spoločné tajomstvo (3) a môže sa začať s autentizáciou (s generovaním jednorázových hesiel). • Pre názornosť si predstavíme, že klient preukazuje svoju totožnosť (autentizuje sa) serveru. Klient nadviaže komunikáciu so serverom (4). Server sa klienta opýta na jeho meno (4). Klient serveru oznámi svoje prihlasovaciemeno (5). Server vo svojej databázepoužívateľov nájde klienta zadaného prihlasovaciehomena (7) a zistí, že používa algoritmus na bázezdieľaného tajomstva (v databáze by bola uvedená i konkrétna jednocestná funkcie – napr. MD-5). Pretože server zistil, že klient na preukázanie svojej totožnosti používa tento algoritmus, tak server vygeneruje náhodné číslo „č“ (8), ktoré zasiela ako výzvu klientovi. Klient vezme prijaté číslo „č“ a zreťazího so zdieľaným tajomstvom. Z výsledku vypočíta hash (9). Tento hash tvorí jednorázové heslo, ktoré pošle serveru (10). • Server pozná ako spoločnézdieľané tajomstvo, tak i číslo „č“. Vie teda vypočítaťrovnaký hash. Teraz stačí porovnať hash vypočítaný klientom s hash, ktorývypočítal server. Pokiaľsú obarovnaké, potom klient preukázal svoju totožnosť. • Podobný mechanizmus sa dá použiť i ako dôkaz pravosti dat (autorizácia dat). Mechanizmus si opíšeme na prípade bankovného platobného príkazu podľa nasledujúceho obrázku. 16
Autentizácia používateľa a autorizácia dat • Na začiatku sa opäť vygeneruje zdieľané tajomstvo (1), ktoré sa distribuuje tak, aby ho mali k dispozícii obe strany (2). • Klient potom napr. v Internetovej kaviarni vyplňuje webový formulár s platobným príkazom (3) na anonymnom webe banky (anonymné HTTPS). Lenže taký príkaz by mohol urobiť každý, takže je k príkazu nevyhnutné pridať i nejaký dôkaz, že príkaz vydal majiteľ účtu. Taký dôkaz sa vytvorí na základezdieľaného tajomstva medzi serverom a majiteľom účtu (klientom). Vo svojej podstate ide o jednorázové heslo prenesene označované tiež ako „symetrický elektronický podpis“. • Klient zreťazí dôležité polia platobného príkazu sozdieľaným tajomstvom a z výsledku vypočíta hash. Tento hash bude práve tvoriť dôkaz pravosti, ktorý klient vloží do príslušného poľa webového formulára (5). Formulár odošle na server (6). Server si v databáze klientov (majiteľov účtov) zistí zdieľané tajomstvo a z polí obdržaného formulára rovnakovypočíta hash. Teraz server porovná či serverom vypočítaný hash je zhodný s hash z obdržaného webového formulára, keďáno, potom je platobný príkaz odoslaný skutočne majiteľom účtu (alebo niekym komu majitel účtu prezradil zdieľané tajomstvo). Je tu opäť problém, že z vyzradeniazdieľaného tajomstva môže klient obviniť banku. 18
Autentizácia používateľa a autorizácia dat • Autorizácia dat • Pri autentizácii sa preukazuje totožnosť. Už sme sa však zmienili, že je veľakrát treba overovať pravosťodovzdávaných dat. Overovanie pravosti má dva aspekty: • Ochrana pred útočníkom, ktorý data mení na ceste od odosielateľa k príjemcovi. • Ochrana príjemcu pred poprením pravosti odoslaných dat odosielateľom. Túto ochranu je schopný zaistiťiba digitálny podpis, ktorým sa budeme zaoberať neskoršie. • Prvý jednoduchší prípad autorizácie dat (ochrana pred útočníkom) je možné zaistiť i jednoduchšími prostriedkami než je digitálny podpis. Digitálny podpis nie je vždy vhodné alebo možné použiť. • Na takúto autorizáciu prenášaných dat sa opät používa niektorý z algoritmovna výpočet kontrolného súčtu. Odosielateľ a príjemca sadopredu dohodnú na nejakom reťazci, ktorý poznajúiba oni – na zdieľanom tajomstve. • Prenášané data sa rozdelia do blokov. Každý prenášaný blok sa doplní o kontrolný súčet, ktorý je počítaný z prenášaného bloku dat a zdieľaného tajomstva. Ako sa konkrétne tento kontrolný súčet počíta, to závisí na konkrétnej norme. Príkladom takej normy je napr. RFC-2104 (HMAC: Keyed-Hashing for Message Authentication). Inými príkladmisú protokoly SSL a TLS. • Zdieľané tajomstvo je zdieľané medzi odosielateľom a príjemcom (nikto iný ho nepozná). Zdieľané tajomstvo je čosi podobné ako je symetrický šifrovací kľúč, nepoužíva sana šifrovanie, ale spojuje sa s prenášaným blokom dat, aby sa z toho výsledku spojeniavypočítal kontrolný súčet. • Keby útočník chcel zmeniť blok prenášaných dat, potom by musel dopočítaťaj kontrolný súčet, ten ale nie je schopnývypočítať, pretože nepozná zdieľané tajomstvo. 20
Autentizácia používateľa a autorizácia dat • Autentizačné kalkulátory • Autentizačné kalkulátory sú elektronické pomôcky na autentizáciu klienta (prípadnena autorizáciu dat zadaných používateľom). Autentizačné kalkulátory spravidla vedia niektorý z kvalitných algoritmov pre kontrolný súčet (napr. MD5, SHA-1 apod.). • Používateľ obdrží od správcu aplikácie autentizačný kalkulátor, avšak pred tým je potrebné autentizačný kalkulátor pripraviť (tj. je treba vykonávať manažment autentizačných kalkulátorov). • Príprava spočíva v tom, že do kalkulátoru se vloží tajomstvo, ktoré je nazývané násada. Tajomstvo je reťazec, ktorý bude uložený v kalkulátore na serveri aplikácie (nikto iný toto zdieľané tajomstvo medzi klientom a aplikáciou nepozná). V databáze na servere musí tak byť pre každého používateľa udržovaná informácia obsahujúcaokrem inéhozdieľané tajomstvo. Pred odovzdaním kalkulátora klientovi musí niekto tajomstvo do kalkulátora naplniť. Ďalej je potrebné ošetriťstraty kalkulátorov a recykláciu kalkulátorov v prípade vrátenia kalkulátora ošetriť jeho recykláciu (o.i. vymazanie tajomstva). • V prípade, že je použitý symetrický šifrovací algoritmus, potom toto tajomstvo sa použije ako šifrovací kľúč. • Rozlišujeme tak kalkulátory: • Určené ibana autentizáciu klienta. • Určené tiežna autorizáciu dat zadávaných používateľom. • Uviedli sme, že kalkulátory využívajú jednocestné funkcie – napr. funkcie na výpočet kontrolných súčtov apod. Detailný opis použitého algoritmu nebývapri autentizačných kalkulátoroch zveřejňovaný – výrobcovia kalkulátorovichčasto považujú za svoje vlastníctvo. Dodávateľ kalkulátorovspravidla dodáva nielen samotné kalkulátory, ale i softvér, který je volaný aplikáciou v prípade autentizácie. 21
Autentizácia používateľa a autorizácia dat • Kalkulátory určené iba na autentizáciu klienta (čas) • Používateľov autentizačný kalkulátor obsahuje hodiny. Čas s presnosťou na minúty (resp. polovicu minúty) je vstupom pre kalkulátor. Heslo na jedno použitie sa vytvorí ako kontrolný súčet (napr. algoritmom MD5) z času a zdieľaného tajomstva. • Pokiaľ na serveri banky bežírovnakýčas, potomrovnakú operáciu je schopnávykonať i aplikácia (tajomstvo je zdieľané medzi používateľom a aplikáciou). Hodnotu získanú od klienta server porovná s hodnotou vypočítanou aplikáciou - pokiaľsú oberovnaké, potom je klientovi umožnený prístup. • Používateľov autentizačný kalkulátor môže byť dvojakého prevedenia: • Bez klávesnice. Potom sa nepoužíva PIN. Heslo sa každú minútu (resp. polovicu minúty) na displeji automaticky mení. • S klávesnicou, aby bolo možné vkladať PIN. V tomto prípade je zdieľané tajomstvo vkalkulátore uložené zašifrované PINom. Na prístup k tajomstvu je tak nevyhnutné zadať PIN. • Otázkou je, čo v prípade, že oba reťazce nie súzhodné. Nezhoda môže byťspôsobená tým, že sa hodiny kalkulátora rozchádzajú s hodinami na serveri aplikácie. Server v takomto prípade vypočíta niektoré hodnoty o niekoľko minút dopredu i dozadu a hľadá, či tam nedôjde ku zhode. Ak príde k zhode napr. s časom o 2 minúty naspäť, potompoužívateľovi tiež umožní prístup a do konfiguračného súboru si poznamená časový posun. 22
Autentizácia používateľa a autorizácia dat • Kalkulátory určené iba na autentizáciu klienta (Challenge - Response) • Server vygeneruje náhodný reťazec ako dopyt (Challenge). Klient tento náhodný reťazec spojí sozdieľaným tajomstvom a z takto vytvoreného celku vypočíta kontrolný súčet, ktorý vráti ako jednorázové heslo (Response) serverovi. Pretože server tiež poznázdieľané tajomstvo, tak je schopný rovnaké jednorázové heslo tiežvypočítať. Oba výsledky porovná a pokiaľsúzhodné, tak klientovi umožní prístup do aplikácie. • Dôležité je, aby se nezopakoval v krátkom časovom intervalerovnaký dopyt. Je treba použiť kvalitný systém na generovanie dopytov (dopyt môže byť napr. zreťazenímčasu a náhodného čísla apod.). • Prakticky: klient zapne kalkulátor, zadá PIN, čím si otvorí prístup k zdieľanému tajomstvu. Aplikácia klientovi zobrazí dopyt, klient ho vloží na klávesnicu kalkulátora. Kalkulátor k dopytu pripojí tajomstvo a vypočíta kontrolný súčet - vytvorí jednorázové heslo. Klient opíše z displeja kalkulátora heslo do okna aplikácie a odošle ho na server. • Zjednodušenesa dá povedať, že podobný mechanizmus sa použije i pri autentizácii klienta pomocou asymetrickej kryptografie. Server vygeneruje náhodné číslo a klient vrátí digitálny podpis tohto čísla. V prípade elektronického podpisu sa však využije súkromný kľúč (výlučné vlastníctvo súkromného kľúča podpisovateľom zaručuje autentizáciu podpisovateľa). Druhá strana nemôže byť podozrievaná z podvrhu. 23
Autentizácia používateľa a autorizácia dat • Kalkulátory umožňujúce i autorizáciu príkazov • Kalkulátory určené iba na autentizáciu počítali kontrolné súčty z času alebo z náhodného čísla alebo použili rekurentný algoritmus. • V prípade autorizácie príkazu je nevyhnutné počítať kontrolný súčet tiež z jednotlivých položiek odovzdávaných dat. Spravidla sa nepočíta kontrolný súčet zo všetkých polí, ale iba z tých najdôležitejších. Ktoré poliasú tie nejdôležitejšieurčuje tvorca aplikácie. • Zatiaľ čo v prípade autentizácie klienta mechanizmom Challenge - Responsebol nútený klient vložiť na klávesnicu kalkulátora PIN a niekoľkociferný dopyt, tak pri autorizácii príkazu je nevyhnutné vložiť na klávesnici kalkulátora tiež jednotlivé polia príkazu (aspoň tie dôležité). • Prakticky: klient zapne kalkulátor, zadá PIN, čim si otvorí prístup kuzdieľanému tajomstvu. Napr. pomocou web-formulára bude chcieť zadať platobný príkaz, potomokrem bežných polí platobného príkazu musí klient zadať i jednorázové heslo do ďalšieho poľa. Klient vloží platobný príkaz do web-formulára, ale teraz potrebuje vygenerovať jednorázové heslo, takže vloží platobný príkaz (určené dôležité polia príkazu) ešte raz do autentizačného kalkulátoru. Kalkulátor zobrazí na displeji jednorázové heslo, ktoré klient opíše do posledného nevyplneného poľa web-formulára a formulár odošle. • Významnou výhodou autentizačných kalkulátorov je ich naprostá nezávislosť na bezpečnosti prostredia. V tomto smere sa jedná o zariadenia, ktoré majú nesporné bezpečnostné prednosti. Pre niektorých klientov však nie je populárne jednak nosiť stále so sebou kalkulátor a jednak dvakrát vkladaťrovnaký príkaz. • Problém dvojnásobného vkladania dat je možné technicky riešiť pomocou tzv. optického kľúča. Používateľvloží data raz na formulár na PC aprogram na PC odvysielavložené data do autentizačného kalkulátora. 24
Autentizácia používateľa a autorizácia dat • Jednorázové heslácez GSM • Nevýhodou autentizačných kalkulátorov je samotná existencia kalkulátora, tj. z hľadiska prevádzkovateľa aplikácie sa kalkulátor musí zadovážiť, čo nie je lacné, a z hľadiska používateľa je zase nepríjemné, že sa kalkulátor musí stále nosiť so sebou a pritom je dobré ho nezničiťči neztratiť. Naopak mobilný telefón má dnes temer každý a používateliasú zvyknutího so sebou nosiť a starať sa o neho a naviac mobilný telefón si zabezpečuje používateľ sám. • Že by mobilný telefón priamo nahradil autentizačný kalkulátor je málo pravdepodobné. Je možné ale iné použitie. V okamihu, kedy sa klient má autentizovať, tak oznámi aplikácii svoje prihlasovaciemeno. Aplikácia vygeneruje jednorázové heslo a v databáze používateľov nájde číslo mobilného telefónu klienta, na ktoré pomocou SMS-správy jednorázové heslo pošle. • Tento spôsob autorizácie kombinuje dva nezávislé komunikačné kanály. Táto skutočnosť podstatným spôsobom obmedzuje možnosť zneužitia, pretože prípadný útok by musel byť vedený spoločne na oba nezávislé kanály, čo je vysoko náročné. Ďalšou podstatnou výhodou sú nízkezriaďovacie náklady a relativne jednoduchá obsluha. Istým obmezením tohto riešenia je, že klient musí byť vybavený mobilným telefónom a že tento pracuje iba v mieste, kde má dostupný signál. 25
Autentizácia používateľa a autorizácia dat • Autorizácia dat na základe asymetrickej kryptografie sa nazýva digitálnym podpisom dat. • Autentizácia používateľa využitím asymetrickej kryptografie • Autentizácia na základe asymetrickej kryptografie je vždy nejakou variáciou na situáciu znázornenú na nasledujúcom obrázku. Predstavme si, že policajt chce, aby mu občan preukázal svoju totožnosť na základe asymetrickej kryptografie. • Zatiaľ čo v klasickom prípade občan preukazuje svoju totožnosť na základe občianskeho preukazu, ktorý predloží policajtovi. Policajt v klasickom občianskom preukaze overuje totožnosť na základe občanovej fotografie. Tak v elektronickom prípade občan preukazuje svoju totožnosť na základe vlastníctva svojho súkromného kľúča. • Princíp preukazovania totožnosti na základe asymetrickej kryptografie je jednoduchý. Policajt vygeneruje náhodné číslo „č“. Toto číslo „č“odovzdá občanovi, ktorý ho za pomoci svojho súkromného kľúča digitálne podpíše. Digitálne podpísané číslo „č“odovzdá občan policajtovi, ktorý vykoná verifikáciu digitálneho podpisu. • Pre občana sa tak základom stáva ochrana jeho súkromného kľúča. Odcudzenie súkromného kľúča by spôsobilo to, že zlodej by sa mohol elektronicky preukazovaťnamiesto majiteľa súkromého kľúča. Odcudzenie súkromného kľúčaje možné prirovnať v prípade klasických občianskych preukazov k odcudzeniu podoby z fotografie občianského preukazu. 27
Autentizácia používateľa a autorizácia dat • Na ľavom obrázku je vysvetlené ako sa používa elektronický podpis na autentizáciu klienta. Keby bol policajt falošný, potom by mohol namiesto náhodného čísla vygenerovať napr. platobný príkaz klienta vo svoj prospech (viď obrázok vpravo). Inými slovami: je predpísané: pokiaľ sa vystavuje dvojica verejný/súkromný kľúčna elektronický podpis, potom je potrebné zamedziť tomu, aby tieto kľúče bolo možné použiť k niečomu inému (napríklad k autentifikácii) než k podpisu. 28
Autentizáciav distribuovanomprostredí • Autentizačný protokol Kerberos • Bol vyvinutý na MIT v rámci projektu Athena v 80 tych rokoch minulého storočia. Projekt Athena poskytoval študentom výpočtové prostriedky v rámci kampusu MIT a tiež mimo neho a zahrňoval dodatočné administratívne funkcionality ako je účtovanie. • Protokol Kerberos musel riešiť tieto riziká a hrozby prostredia: „Prostredie nie je vhodné pre citlivé údaje alebo vysokorizikové operácie ako sú bankové transakcie, utajované vládne údaje, známky študentov, riadenie nebezpečných experimentov, apod. Riziká sú primárne neriadené použitie zdrojov neuatorizovanými stranami, porušovanie integrity alebo systémových alebo používateľských zdrojov, a celkové porušovanie privátnosti ako je náhodné prezeranie osobných záznamov“. • Autentizačný protokol Kerberos bol široko akceptovaný (RFC 4120). • Kerberos autentizuje klientov pre služby v distribuovaných systémoch. Autentizácia je vystavaná na báze konceptu lístkov (Ticket) a centrálnych bezpečnostných serverov. • Využíva šifrovanie na aplikačnej úrovni, podporuje autentizáciu v distribuovanom prostredí. • Základom je Kerberos Autentizačný Server – KAS (niekedy sa nazýva kľúčové distribučné centrum - KDC), ktorý poskytuje autentizovaný token – Ticket. • Ticket je nesfalšovateľný, znovu nepoužiteľný (obmedzená doba platnosti) autentizovaný objekt, obsahuje meno používateľa a službu, ktorú môže získať. • Používateľ získava Ticket na službu od Ticket Granting Server - TGS(server udeľujúci tickety) na základe svojej autentizácie a prístupových práv. 29
Autentizáciav distribuovanomprostredí • Entity vystupujúce v protokole Kerberos: • Používateľ A chce prostredníctvom klientskeho stroja C pristúpiť na server B. • Používateľ A zdieľa s autentizačným serverom S tajný kľúč KAS. Tento kľúč je odvodený od hesla používateľa jednosmernou (hašovacou) funkciou. (Používateľ A a autentizačný server S zdieľajú heslo používateľa A.) • Kľúč KBS je tajný kľúč zdieľaný serverom B a serverom S. • Kľúč KAB je relačný kľúč vytvorený serverom S na šifrovanie komunikácie medzi A a B. • Číslo nA je náhodné číslo vytvorené používateľom A na identifikáciu jeho žiadosti o prístup. • TC je časová značka odčítaná z hodín klienta. • Ticket pre server B je ticketB= KBS(KAB,A, L), kde položky v zátvorke sú zašifrované kľúčom KBS , A je identifikácia používateľa A a L je je doba životnosti ticketu. • Základnúkoncepciu protokolu Kerberos možno formálnevyjadriťtýmitoštyrmikrokmi: • C -> S: A, B, nA • S -> C: KAS(KAB, nA, L, B), ticketB • C -> B: ticketB, KAB(A, TC) • B -> C: KAB(TC) • Vyššie uvedený formálny zápis možno rozmeniť na podrobnejšie kroky takto: • Na začiatkureláciepoužívateľsaprihlási na klientskom stroji C zadanímmena a hesla. Klient pošle žiadosťpoužívateľa A serveru S o autentizáciu na serveri B. Prváspráva obsahuje identitu A, identitu servera B a identifikáciutejtožiadosti náhodným číslomnA. Celá správa je poslaná v otvorenom texte. 30
Autentizáciav distribuovanomprostredí • Vyššie uvedený formálny zápis možno rozmeniť na podrobnejšie kroky takto: • V druhom kroku server S vyhľadá v databáze tajný kľúč KAS pre používateľa A, vytvorí relačný kľúč KAB a ticketB. Server S pošle relačný kľúč, v údajovej štruktúre zašifrovanej KAS, a ticket klientskému stroju C. Klient C odvodí tajný kľúč KAS z hesla používateľa pomocou hašovacej funkcie a dešifruje prvú časť odpovede, čím získa relačný kľúč KAB a prostredníctvom nAverifikuje, či je táto správa odpoveďou ne jeho prvú správu. • V treťom kroku pošle C serveru B ticket a autentizátorKAB(A, TC). Server B dešifruje ticket kľúčom KBS a získa relačný kľúč KAB . Server B skontroluje či sú v tickete a autentizátore rovnaké identifikátory, či ticket neexpiroval a či je platná časová značka. Interval platnosti časovej značky musí brať do úvahy posuv medzi lokálnymi hodinami klientskeho stroja C a servera B. • Vo štvrtom kroku vráti server B klientskemu stroju C časovú značku TC zašifrovanú tajným relačným kľúčom KAB. • Kerberos je tradične nasadzovaný so spojenými servermi KAS a TGS. Kerberos autentizačný server autentizuje používateľov pri prihlásení a vydáva im tickety, ktoré sú vo všeobecnosti platné na jednu prihlasovaciu reláciu a dovoľujú používateľom získať ďalšie tickety od TGS. TGS vydáva tickety, ktoré dávajú používateľom prístup ku sieťovým službám vyžadujúcich autentizáciu. Na nasledujúcom obrázku sú znázornené kroky, ktoré sa vykonajú protokolom Kerberos a zahrňujú servery KAS a TGS. • C -> KAS: A, TGS, nA • KAS -> C: KAS(KA,TGS, nA, L1, TGS), ticketA,TGS • C -> TGS: ticketA,TGS, KA,TGS(A, TA), B, n1A • TGS -> C: KA,TGS(KAB, n1A, L2, B), ticketB • C -> B: ticketB , KAB(A, T1A) • B -> C: KAB(T1A) 31
Autentizáciav distribuovanomprostredí • V týchtokrokochvystupujúnavyšetieto položky: • RelačnýkľúčKA,TGS, ktorý vytvoril KAS a používa sa na šifrovanú komunikáciu medzi klientskym strojom C a serverom TGS. • Druhé náhodné číslo n1A a druhá časová značka T1Amajúrovnaký význam akoich prvé inštancienA a TA. • L1 a L2 sú doby životnosti dvochticketov. • TGS ticket je skonštruovanýakoticketA,TGS= KS, TGS(KA,TGS, A, L2). • Výhody Kerbera • Kryptografická ochrana tajnými kľúčmi proti spoofingu • ObmedzenáplatnosťTicketu (útoky replay a BFA) • Vzájomnáautentizáciaprostredníctvomrelačnýchkľúčov • Nevýhody Kerbera • Vyžadujesanepretržitáprístupnosťku KS a TGS • Vyžadujevčasnétransakcie • Zle saškáluje (rozširuje) • Na pracovnejstanicipoužívateľasanesmieodchytiťpoužívateľskéheslo KAS 1 2 3 4 5 6 TGS C B 32