Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Ověřování a protokoly Počítačové sítě Lekce 9 Ing. Jiří ledvina, CSc.

Podobné prezentace


Prezentace na téma: "Ověřování a protokoly Počítačové sítě Lekce 9 Ing. Jiří ledvina, CSc."— Transkript prezentace:

1 Ověřování a protokoly Počítačové sítě Lekce 9 Ing. Jiří ledvina, CSc.

2 Počítačové sítě2 Ověřovací servery Slouží k ověření „pravosti“ uživatele Používá symetrické šifrování Lepší utajení klíčů Volba opravdu, ale opravdu náhodných hodnot Používá se KDC (Key Distribution Center) – databáze klíčů (je tajná a indexována podle jmen uživatelů) Existují protokoly vzájemného ověření Pro symetrické i nesymetrické šifrování Příklad – ověřování pomocí Kerberos serveru

3 Počítačové sítě3 Protokoly vzájemného ověření Základní vlastnosti protokolů pro vzájemné ověřování Důvěryhodnost Prevence proti maškarádě a kompromitaci relačního klíče Vyžaduje existenci sdíleného klíče nebo veřejných klíčů Časová souslednost Prevence proti útoku opakováním (replay attack) Jednoduché sekvenční číslování je nepraktické Časové značky – vyžadují synchronizované hodiny Třídy protokolů Přímé ověřování - vzájemné ověření dvou entit Problém napadení, generování klíče, … S ověřovacím serverem Dvouúrovňový hierarchický systém s KDC (Key Distribution Center)

4 Počítačové sítě4 Protokoly vzájemného ověření Oba způsoby lze realizovat pomocí symetrického nebo asymetrického šifrování Metody založené na symetrickém šifrování Sdílení tajného klíče s každou entitou Generování relačního klíče Relační klíče mají krátkou dobu života (eliminace prozrazení tajného klíče) Použití ověření + šifrování přenosu Metody založené na asymetrickém šifrování Distribuce veřejného klíče mezi entitami Znalost veřejného klíče KDC Veřejný klíč KDC slouží k ověření pravosti KDC

5 Počítačové sítě5 Protokoly vzájemného ověřování, přímé ověřování, symetrické šifrování Základní varianta A → B: [ A ] B → A: [ N B ] A → B: [ f( K ║ N B ) ] A → B: [ N A ] B → A: [ f( K ║ N A ) ] Redukce počtu zpráv A → B: [ A ║ N A ] B → A: [ N B ║ f( K ║ N A ) ] A → B: [ f( K ║ N B ) ] Útok T → B: [ A ║ N A ] B → T: [ N B ║ f( K ║ N A ) ] T → B: [ A ║ N B ] B → T: [ N‘ B ║ f( K ║ N B ) ] T → B: [ f( K ║ N B ) ] Modifikace A → B: [ A ] B → A: [ N B ] A → B: [N A ║ f( K ║ N B ) ] B → A: [ f( K ║ N A ) ]

6 Počítačové sítě6 Protokoly vzájemného ověřování, přímé ověřování, asymetrické šifrování Základní varianta (asymetrické šifrování) A → B: E K B+ [ A ║ N A ] B → A: E K A+ [N A ║ N B ] A → B: E K B+ [N B ] Útok (Gavin Lowe) A → U(A): E K U+ [ A ║ N A ] U(A) → B: E K B+ [ A ║ N A ] B → U(A): E K A+ [N A ║ N B ] U(A) → A: E K A+ [N A ║ N B ] A → U(A): E K U+ [N B ] U(A) → B: E K B+ [N B ] B je přesvědčen, že komunikuje s A U(A) má k dispozici [N A ║ N B ], které může např. použít ke konstrukci relačního klíče.

7 Počítačové sítě7 Protokoly vzájemného ověření s ověřovacím serverem Needham-Shroeder (1978) Otway-Ress (1987) Andrew Secure RPC handshake (1987) Wide-mouthed-frog protocol (1989) Kerberos protocol (1987) Zdroj: cca 49 protokolů

8 Počítačové sítě8 Protokoly vzájemného ověření s ověřovacím serverem Needham-Schroeder, symetrické šifrování Používá náhodná čísla pro identifikaci zpráv ID A, ID B jsou identifikátory entit K AB je relační klíč pro komunikaci A a B K A, K B jsou šifrovací klíče pro komunikaci KDC s A a KDC s B. A → KDC: [ID A ║ ID B ║ N 1 ] KDC → A: E K A [K AB ║ ID B ║ N 1 ║ E K B [K AB ║ ID A ] ] A → B: E K B [K AB ║ ID A ]  útok – zachycení, prolomení, podvrhnutí → časové značky B → A: E K AB [ N 2 ] A → B: E K AB [ N 2 -1 ]

9 Počítačové sítě9 Protokoly vzájemného ověření s ověřovacím serverem Needham-Schroeder, nesymetrické šifrování Útok Gavin Lowe 1995 A → KDC: [ID A ║ ID B ] KDC → A: E K S- [K B+ ║ ID B ] A → B: E K B+ [N A ║ ID A ] → A → T: E KT + [ N A ║ ID A ] B → KDC: [ID A ║ ID B ] T → B: E KB + [ N A ║ ID A ] KDC → B: E K S- [K A+ ║ ID A ] B → A: E K A+ [ N A ║ N B ] → B → T: E K A+ [ N A ║ N B ] T → A: E K A+ [ N A ║ N B ] A → B: E K B+ [ N B ] → A → T: E KT + [ N B ] T → B: E KB + [ N B ]

10 Počítačové sítě10 Protokoly vzájemného ověření s ověřovacím serverem Otway Rees (1997) Symetrické šifrování A → B: [ M ║ ID A ║ ID B ║ E K A [N A ║ M ║ ID A ║ ID B ] ] B → KDC: [ M ║ ID A ║ ID B ║ E K A [N A ║ M ║ ID A ║ ID B ] ║ E K B [N B ║ M ║ ID A ║ ID B ] ] KDC → B: [ M ║ E K A [N A ║ K AB ] ║ E K B [N B ║ K AB ] ] B → A: [ M ║ E K A [N A ║ K AB ] ]

11 Počítačové sítě11 Protokoly vzájemného ověření s ověřovacím serverem Andrew Secure RPC (1987) Symetrické šifrování Modifikace BAN (Burrows, Abadi, Needham 1989) Modifikace Garwin Lowe 1996 A → B: [ ID A ║ N A ] B → A: E K AB [ N A ║ K´ AB ║ ID B ] A → B: E K´ AB [ N A ] B → A: [ N B ] K´ AB – nový relační klíč N B – nové náhodné číslo

12 Počítačové sítě12 Protokoly vzájemného ověření s ověřovacím serverem Wide-mouthed frog protocol (1989) Modifikace Gavin Lowe Symetrické šifrování A → KDC: [A ║E K A [ TS A ║ ID B ║ K AB ] ] KDC → B: E K B [ TS KDC ║ ID A ║ K AB ] ] B → A: E K AB [ N B ] A → B: E K AB [ N B +1]

13 Počítačové sítě13 Protokoly vzájemného ověření s ověřovacím serverem Denningovo distribuční schéma Používá časové značky TS Používá symetrické šifrování Časová značka musí být |C – TS| < ∆t 1 + ∆t 2 Znovupoužití relačního klíče může být detekováno B A → KDC: [ ID A ║ ID B ] KDC → B: E K A [ K AB ║ ID B ║ TS ║ E K B [ K AB ║ ID A ║ TS ] ] A → B: E K B [ K AB ║ ID A ║ TS ] B → A: E K AB [ N 1 ] A → B: E K AB [ f(N 1 ) ]

14 Počítačové sítě14 Distribuce veřejného klíče Veřejný klíč je možné šířit v otevřené podobě Existuje nebezpečí podvržení veřejného klíče Útok typu Man in the Middle Problém bezpečné distribuce veřejného klíče řeší certifikáty Problém vydávání, ověřování a zneplatnění certifikátu řeší certifikační autority

15 Počítačové sítě15 Certifikát Certifikát je podepsaná zpráva zaručující, že dané jméno je spojeno s veřejným klíčem Běžně omezeno časově Ověření certifikátu se děje na základě znalosti veřejného klíče certifikační autority Certifikát může také obsahovat informaci o službách, které držiteli zaručuje

16 Počítačové sítě16 Certifikát Certifikát je blok dat (soubor), obsahující Verze (V3) Sériové číslo (02 1c 6a) Algoritmus podpisu (md5RSA) Vystavitel (CN = CA GE Capital Bank, OU = Direct Banking, O = GE Capital Bank, a.s., C = CZ) Platnost od (28. dubna :31:30) Platnost do (27. dubna :31:30) Předmět (E = CN = uid: , CN = Ing. Jiri Ledvina,... Veřejný klíč ( bf 4a... )

17 Počítačové sítě17 Certifikát Pokračování Distribuční místo (URL=http://www.gecb.cz/ca_ge.crl) Použití klíče (Digitální podpis, Zakódování klíče) Algoritmus miniatury (sha1) Miniatura ( c 6a 9b 4e ab 30 cf 6b 6f 49 df 15 c ) Popisný název (Ing. Jiri Ledvina) Certifikát musí být nezpochybnitelný – zneplatnění certifikátu Existují různé formáty certifikátů Personal Information Exchange (PEX), PKCS #12 (P12) (Public Key Cryptography Standard) Cryptographic Message Syntax Standard PKCS#7 (P7B) PGP certifikáty

18 Počítačové sítě18 Public Key Infrastructure (PKI ) Infrastruktura pro podporu použití šifrování veřejným klíčem PKI zahrnuje Certifikační autority Certifikáty Úložiště pro obnovu certifikátů Metody pro zneplatnění certifikátů Metody pro vyhodnocení řetězu certifikátů od známého veřejného klíče po cílové jméno

19 Počítačové sítě19 Certifikační autorita Důvěryhodná entita, která udržuje seznam veřejných klíčů pro ostatní entity CA generuje certifikáty CA dovede potvrdit pravost veřejného klíče Není třeba komunikovat s vlastníkem veřejného klíče

20 Počítačové sítě20 Modely důvěrnosti Monopoly model Monopoly plus RA Delegování CA Oligarchy model Anarchy model

21 Počítačové sítě21 Monopoly model Jedna CA je důvěryhodná pro všechny Všichni musí mít certifikát od této CA Veřejný klíč CA je základem důvěry a musí být zahrnut do všeho software i hardware používajícího PKI Nevýhoda Neexistuje taková důvěryhodná organizace Pokud takovou vybereme, těžko zvolíme jinou Celý svět by ji využíval (výkonnost, bezpečnost) Neexistovala by soutěž (cena)

22 Počítačové sítě22 Monopoly plus RA RA – registrační autorita Registrační autority jsou přidružené k jedné CA a je jim důvěřováno RA kontrolují identitu uživatelů a poskytují CA odpovídající informaci (identitu a veřejný klíč) při vydávání certifikátů výhoda Více míst pro vydávání certifikátů Monopol pro registraci

23 Počítačové sítě23 Delegované CA Kořenová CA vydává certifikáty ostatním CA (delegovaným CA), zaručujíc jejich důvěryhodnost jako CA Uživatelé mohou obdržet certifikáty od delegovaných CA jako by to bylo od kořenové CA Výhoda – více CA, menší nebezpečí úzkého místa Vydávání závisí na jednom CA Obtížnější ověřování certifikátu Uživatel musí prohledávat řetěz certifikátů Uspořádání do hierarchie prohledávání ulehčuje

24 Počítačové sítě24 Oligarchy model Existuje několik důvěryhodných CA Je akceptován certifikát vydaný kteroukoliv z nich Obecně jsou takto konfigurovány web prohlížeče Výhoda – konkurence CA Snížení bezpečnosti Možnost vložit do seznamu nedůvěryhodnou CA Potřeba chránit více CA před kompromitováním

25 Počítačové sítě25 Anarchy model Kdokoliv může podepsat certifikát pro kohokoliv Neexistuje CA nebo seznam CA určený uživatelům Uživatelé si sami určují kdo je důvěryhodný Uživatelé si musí sami nalézt řetězec od důvěryhodné CA k cíli Certifikáty mohou být od Zdrojů Subjektů Veřejných úložišť – web serverů Výhody Mnoho potenciálních důvěrných kořenů Není třeba zavádět drahou infrastrukturu

26 Počítačové sítě26 Anarchy model Bezpečnost Je důvěra tranzitivní Co je to dost dobrá důvěra

27 Počítačové sítě27 Rušení certifikátů CA může zrušit certifikát s veřejným klíčem pokud jej uživatel nechce dále používat Kompromitování certifikátu Náhrada klíče (nový klíč) Ukončení členství ve skupině (organizaci) Způsoby informování ostatních Broadcast Uložení na veřejném místě Všichni se ptají CA

28 Počítačové sítě28 Revocation list CA může periodicky vysílat CRL Podepsaný CA Před použitím certifikátu musí být prohlédnut CRL Nevýhoda – četnost vysílání CRL Nevýhoda počet certifikátů Delta CRL Vysílají se pouze změny Podstatně kratší Celý seznam se vysílá méně často Potřeba prohlédnou zěny i celý CRL

29 Počítačové sítě29 On-line Revocation Servers ORLS je systém serverů, který může být dotazován na stav jednotlivých certifikátů Musí obsahovat celý CRL Místo toho by bylo možné udržovat seznam nezrušených certifikátů Nevýhoda je v délce seznamu

30 Počítačové sítě30 Protokoly pro bezpečnou komunikaci Kerberos Kerberos – ověřování v systému Orion na ZČU V řecké mytologii Kerberos nebo Cerberus hlídal záhrobí. Obrovský tříhlavý pes s hadem místo ocasu a s nepočitatelně hadími hlavami na zádech. Hlídal bránu do záhrobí, aby mrtví nemohli ven a živí dovnitř. Vznikl v souvislosti s projektem Athena v MIT Zajišťuje ověřování uživatelů a požadovaných služeb Architektura server/klient K ověřování využívá důvěryhodnou třetí stranu (ověřovací server AS)

31 Počítačové sítě31 Úvod Vyžaduje prokazování identity klienta pro každý požadavek na službu Klient se prokazuje heslem pouze jednou (přihlašování) Heslo se nikdy nepřenáší sítí a není uloženo ani v paměti Každý klient a každá služba mají heslo Všechna hesla zná pouze ověřovací server Existuje Kerberos V4 a Kerberos V5

32 Počítačové sítě32 Požadavky uživatelů Povolení přístupu podle počítače Kontrola identity uživatele Požadavek dokazování identity pro každou službu Předpokládá, že uživatelé ovládají počítače (boot) Předpokládá, že síť není bezpečná

33 Počítačové sítě33 Požadavky na identifikační mechanizmus Bezpečný, nedovoluje maskování se Spolehlivý, musí se jevit jako celek jako systém služeb Transparentní, uživatel o něm neví Odstupňovaný, uživatel nemusí být "kerberizovaný" Požadavek na bezpečnost se přesouvá na několik bezpečných serverů Úrovně ochrany ověřování při přihlašování ověřování každé zprávy (zabezpečení pravosti zprávy) ověřování a šifrování (zabezpečení soukromí)

34 Počítačové sítě34 Databáze Databáze Kerbera obsahuje jméno uživatele a jeho privátní klíč umožňuje ověření Kerbera i uživatele pro uživatele generuje dočasné klíče (relační klíče) použití zejména pro šifrovanou komunikaci dvou klientů citlivé informace jsou v Kerberu ostatní v serveru HESIOD (řecký pěvec a básník žijící asi 700 let p.n.l.)

35 Počítačové sítě35 Šifrování Používá DES, Kerberos V5 i jiné šifrovací algoritmy Metody šifrování zprávy CBC (Cypher Block Chaining) – pro daný blok cn+1 = E(mn+1  cn) PCBC (Propagated CBC) – pro celou zprávu cn+1 = E(mn+1  mn  cn)

36 Počítačové sítě36 Servery Administrativní server KDBM (Kerberos Database Management) zajišťuje přístup do databáze Kerbera klient může být kdekoliv, server u databáze Ověřovací server (Kerberos server) provádí pouze operace čtení nad databází ověřování uživatelů generování relačních klíčů může pracovat s kopiemi databází uživatelské programy  přihlašování do Kerbera  změna hesla  zobrazení tiketů  ničení tiketů

37 Počítačové sítě37 Jména Primární jméno – jméno uživatele nebo služby Instance – pro uživatele – jkl.root, jkl.admin pro sužbu – rlogin.stroj Realm – jméno administrativní entity, která obhospodařuje ověřovaná data

38 Počítačové sítě38 Pověření (Credentials) Tickety (lístky) – časově omezený "průkaz" opravňující čerpat nějakou službu, šifrovaný blok dat obsahující identitu klienta a jeho požadavku každý požadavek na službu vyžaduje ticket ticket zajišťuje přístup jednoho klienta k jedné službě tickety vydává Ticket Granting Server (TGS), který má přístup ke všem šifrovacím klíčům tickety nemají vztah ke klientům – pouze zajišťují přístup k serverům Každý ticket má omezenou dobu života (hodiny, dny) {S, C, IP C, TS, TTL, K S,C } K(S)

39 Počítačové sítě39 Pověření (Credentials) Authenticators (ověřovače) umožňuje ověřit pravost klienta, šifrovaná informace o klientovi (pro jedno použití) {C, IP C, TS} K(S,C)

40 Počítačové sítě40 Ticket {S, C, IP C, TS, TTL, K S,C } K(S) Může být použit vícekrát (omezeno dobou života – hodiny, dny) Obsahuje následující informace jméno serveru (S) jméno klienta (C) IP adresu stroje klienta (IP C ) časové razítko (TS) dobu života ticketu (TTL) náhodný relační klíč (K S,C ) Šifrováno klíčem serveru, kterému je určen (K S )

41 Počítačové sítě41 Authenticator {C, IP C, TS} K(S,C) Slouží k ověření pravosti klienta (údaje o klientovi se porovnají s údaji v ticketu) Vystaven klientem pro jedno použití Obsahuje následující informace jméno klienta (C) IP adresu stroje klienta (IP C ) běžný čas Šifrováno relačním klíčem K (S,C)

42 Počítačové sítě42 Získání prvotního ticketu Klient zadá jméno a pošle AS požadavek přístupu k TGS (otevřený text) Klient zadá heslo, převede je na klíč KC a dešifruje zprávu od AS Obdrží relační klíč pro komunikaci s TGS (K C,tgs ) a ticket pro komunikaci s TGS {T C,tgs }K tgs C:{C, tgs} AS:{K C,tgs, {T C,tg s}K tgs }K C

43 Počítačové sítě43 Získání prvotního ticketu Ticket obsahuje jméno klienta, jméno TGS, čas, dobu života, IP adresu klienta a relační klíč pro komunikaci klient – TGS Informaci není možné změnit, protože je šifrována tajným klíčem K tgs pro komunikaci AS – TGS Ticket T C,tgs jméno klienta, jméno TGS, čas, dobu života, IP adresu klienta, relační klíč pro komunikaci klient – TGS Klient K C,tgs a {T C,tgs }K tgs schová, K C a heslo smaže.

44 Počítačové sítě44 Získání ticketu pro server Pro každý server je třeba jiný ticket Tickety poskytuje TGS (Ticket Granting Server) Klient vytvoří authenticator A C, obsahující jméno klienta, IP adresu a čas Zašifruje jej relačním klíčem K C,tgs, přidá {T C,tgs }K tgs a pošle požadavek TGS C: {S, {T C,tgs }K tgs, {A C }K C,tgs } TGS:{{T C,S }K S, K C,S } K C,tgs }

45 Počítačové sítě45 Požadavek na službu Klient má ticket pro vybraný server Opět (aplikace) vytvoří authenticator AC, obsahující jméno klienta, IP adresu a čas Zašifruje jej relačním klíčem KC,S, přidá {TC,S}KS a pošle požadavek serveru S Server dešifruje požadavek, porovná jméno klienta, IP adresu, čas, dobu platnosti Klient vyžaduje vzájemné ověření Server pošle zpět hodnotu časové značky zvýšenou o 1 C:{{T C,S }K S, {A C }K C,S } S:{{TS+1}K C,S }

46 Počítačové sítě46 Přihlášení klienta na server s ověřením (shrnutí) C  AS:[C, tgs] AS  C:[{K C,tgs, {T C,tgs }K tgs }K C ] C  TGS: [S, {T C,tgs }K tgs, {A C }K C,tgs ] TGS  C:[{K C,S {T C,S }K S, } K C,tgs ] C  S:[{T C,S }K S, {A C }K C,S ] S  C:[{TS+1}K C,S ]

47 Počítačové sítě47 Operace databáze Kerbera Operace read – používá se pro ověřování (ochrana – není možné data modifikovat) Operace r/w – administrativní operace – údržba databáze Prováděny tzv. administrativní službou – Kerberos Database Management Service (KDBM) Opravy jsou prováděny do master kopie, neběží-li, nemohou být prováděny Požadavky uživatelů na změnu hesla kpasswd – změna hesla, přidání/ubrání uživatele, přidání/ubrání služby kadmin – klientský program administrátora

48 Počítačové sítě48 Administrativní protokol C  AS:[C, kdbm] AS  C:[{K C,kdbm, {T C,kdbm }K kdbm }K C ] C  KDBM: [S, {T C,kdbm }K kdbm, {A C }K C,kdbm ] (požadavek S = {kadmin | kpasswd})

49 Počítačové sítě49 Replikace databáze Každý realm (království) má master Kerberos server (hlavní) Údržba master copy databáze Mohou existovat kopie v podřízených Kerberos serverech Problém údržby konzistentní databáze – přepis každou hodinu kprop – program pro posílání obrazu databáze kpropd – daemon v podřízených serverech Nejprve se pošle kontrolní součet databáze (šifrovaný klíčem pro komunikaci master – slave Kerberos (Master Database Key)) Pak se pošle databáze a zkontroluje se kontrolní součet Všechna hesla v databázi jsou šifrována pomocí Master Database Key

50 Počítačové sítě50 Programy Kerbera kinit – přihlášení do Kerbera program pro obdržení nového ticketu od ověřovacího serveru (AS) implicitně tgt, ale i jiné tickety (kinit –S ) klogin – pokud máme ticket, umožní přihlásit se na počítač klist – výpis všech ticketů uživatele kdestroy – vymazání ticketů

51 Počítačové sítě51 Kerberos v5 K reprezentaci syntaxe používá ASN.1 Není jednoduché číst Velmi flexibilní (Volitelná pole, proměnná délka polí, rozšiřitelný soubor hodnot) Rozšířený soubor šifrovacích algoritmů Podporuje delší dobu života ticketů Podporuje více adres v ticketu Zavádí předauthentikaci – obrana proti útokům na heslo Dovoluje delegování uživatelských práv

52 Počítačové sítě52 Delegování práv Delegování – předání práv někomu jinému aby mohl využívat naše služby Klasické řešení bez delegování Předání mého klíče nebo hesla někomu jinému Předání mých tiketů někomu jinému Kerberos v5 podporuje následující metody A požádá KDC o vytvoření TGT ticketu se síťovou adresou B Předání TGT s odpovídajícím relačním klíčem do B A požádá KDC o vytvoření TGT přímo pro B se síťovou adresou B A vezme TGT a předá jej B Spolu s „autorizačními daty“ které budou poslány do aplikační služby

53 Počítačové sítě53 Delegování práv Tranzitivní delegování B deleguje do C práva, delegovaná do B z A TGT: dovoluje to, pokud je označen jako „forwardovatelný“ Tikety: dovoluje to, pokud je označen jako „proxiable“ (zastupitelný)

54 Počítačové sítě54 Pre-authentikace Druhá zpráva je šifrována klíčem K C AS  C:[{K C,tgs, {T C,tgs }K tgs }K C ] Revize: A posílá do AS předautentikační data Časová značka šifrovaná sdíleným klíčem K C Dokazuje, že zná klíč

55 Počítačové sítě55 Obnova ticketů Tikety ve v5 mají prodlouženou platnost Musí být ale periodicky obnovovány Obsahují Čas autorizace Počáteční a koncový čas (platný od – do) Čas do kterého musí dojít k obnově Tiket, kterému vypršela doba platnosti nemůže být obnoven Musí se požádat o nový tiket Tikety mohou být také „datovány post “ Platí až v budoucnosti

56 Počítačové sítě56 Kryptografické algoritmy Zajištění integrity zpráv MD5 + šifrování výsledku DES s využitím sdíleného tajného klíče Šifrování plus integrita Základ – DES/CBC s CRC Rozšíření – 3DES s HMAC/SHA1 Nově – AES/CBC s HMAC/SHA1

57 Počítačové sítě57 Zavedení konverzačních klíčů Použití různých klíčů pro různá spojení s týmž serverem Realizováno při předávání ticketu z klienta do serveru Omezuje použití relačního klíče pouze pro tuto relaci

58 Počítačové sítě58 Ověřování mezi oblastmi Oblasti (realms) – skupina zdrojů sdílená jednou autoritou z hlediska ověřování Často je to totéž jako DNS doména Označováno jménem domény Oblast obsahuje KDC (Key Distribution Center) – TGS, AS, databáze Uživatele Servery Pokud potřebuje uživatel přistupovat ke službám v jiných oblastech?

59 Počítačové sítě59 Ověřování mezi oblastmi Pokud potřebuje uživatel přistupovat ke službám v jiných oblastech Jednoduché řešení – vyžaduje registraci uživatele ve všech oblastech Uživatel se musí ověřovat ve všech znova Složitější řešení KDC vzájemně kooperují při ověřování Inter-realm authentication Předem se musí domluvit na sdílených klíčích Pokud chce klient přistupovat ke službám v jiné oblasti, musí požádat o cross-realm TGT Ten pak použije při požadování cizí služby

60 Počítačové sítě60 Ověřování mezi oblastmi

61 Protokol SSL Petr Dvořák

62 Počítačové sítě62 Obsah prezentace Co je SSL Popis protokolu Ukázka Použití v praxi

63 Počítačové sítě63 Co je SSL SSL zajišťuje bezpečnou komunikaci SSL specifikuje, jak kombinovat jiné protokoly pro: autentizaci šifrování kompresi

64 Počítačové sítě64 Protokolový zásobník Aplikační vrstva (e.g. http) SSL Transportní vrstva (e.g. tcp) Síťová vrstva Linková vrstva Fyzická vrstva Record protokol Handshake protokol Alert ProtocolChange Cipher Spec Protocol

65 Počítačové sítě65 Record protokol K čemu slouží Příprava pro odeslání rozděluje data do bloků - fragmentace volitelně data zakomprimuje vypočte zabezpečovací informaci (MAC) šifruje předá nižší vrstvě Zpracování přijatých dat

66 Počítačové sítě66 Handshake protokol Navázání spojení Vyjednání parametrů Identifikace komunikujících Subprotokoly Alert fatální chyby ostatní Change Cipher Spec

67 Počítačové sítě67 Handshake protokol Přenášené informace identifikátor spojení certifikát počítače, s nímž se komunikuje způsob komprese dat algoritmy pro šifrování a hešování master secret lze vytvořit další spojení? … Plný handshake Zjednodušený handshake

68 Počítačové sítě68

69 Počítačové sítě69 Zjednodušený handshake

70 Počítačové sítě70 Autentizace a výměna klíčů RSA Vysílač vygeneruje náhodný relační klíč (pre-master secret) Přenese jej šifrovaně pomocí veřejného klíče RSA Diffie-Hellman – existují 3 režimy výměny Fixní (statický) D-H režim DHE – Ephemeral Diffie-Hellman mode Anonymní D-H Fortezza-KEA

71 Počítačové sítě71 Autentizace a výměna klíčů Fixní (statický) D-H režim Veřejné parametry serveru se přenáší chráněné certifikátem serveru Veřejné parametry klienta se přenáší buď volně, nebo také chráněné certifikátem klienta Dochází k ověření pravosti serveru nebo i klienta (MitM útok) DHE – Ephemeral Diffie-Hellman mode Používá se pro vytvoření dočasného relačního klíče Veřejné parametry jsou přenášeny podepsané tajným RSA klíčem serveru Nejbezpečnější režim, relační klíč je pouze dočasný

72 Počítačové sítě72 Autentizace a výměna klíčů Anonymní D-H režim Veřejné parametry serveru se přenáší nechráněné Nedochází k ověření pravosti serveru nebo i klienta (MitM útok) Fortezza-KEA Speciální postup založený na ověřování pomocí karty a s využitím ověřovacího algoritmu KEA.

73 Počítačové sítě73 Šifrování dat a Hashovací funkce Blokové šifry DES 3DES - EDE IDEA AES Proudové šifry RC4 Hashovací algoritmy MD5 SHA-1 Algoritmy pro podpisy RSA DSA

74 Počítačové sítě74 Srovnání s SSL a TLS Jiný algoritmus výpočtu MAC Do Alert protokolu bylo přidáno mnoho nových zpráv. V TLS není nutné znát všechny certifikáty až ke kořenové certifikační autoritě. Stačí použít některou mezilehlou Padding blokových šifer v modu CBC je proměnný SSL se jako standard již nerozvíjí TLS je mnohem striktnější + další drobné rozdíly

75 Počítačové sítě75 Shrnutí TLS zajišťuje bezpečnou komunikaci TLS spravuje informace pro bezpečné spojení mezi klientem a serverem TLS specifikuje, jak kombinovat jiné protokoly pro: autentizaci šifrování kompresi

76 Počítačové sítě76 Protokoly pro bezpečnou komunikaci - SSH SSH (Secure Shell) je realizace bezpečného vzdáleného virtuálního terminálu Zajišťuje šifrovanou komunikaci mezi nedůvěryhodnými počítači přes nedostatečně chráněnou síť Předpokládá, že je možné odposlechnout všechnu komunikaci mezi hosty Poskytuje různé metody ověřování Šifruje data vyměňovaná mezi hostitelskými systémy Bylo určeno jako náhrada nedostatečně chráněných programů, jako je rlogin, rsh atd. Zahrnuje i schopnost pro bezpečný přenos souborů Secure copy (scp) Zahrnuje schopnost bezpečně fowardovat spojení X11 i TCP porty

77 Počítačové sítě77 Ověřování v SSH1 Prostředky pro ověřování podporované v SSH Jednoduché ověřování pomocí rhosts Uživatelské/systémové jméno v ~/.rhosts a ~/.shosts Snadno zranitelný IP/DNS spoofingem Pro tento režim činnosti vyžaduje zvláštní komplilaci Ověřování založené na ověřování hostitelských systémů Použití RSA k ověření klíče hostitelského systému Používá soubor ~/.rhosts pro ověření uživatele Ověřování založené na uživatelích a hostitelských systémech Ověřování RSA klíče hostitelského systému Ověřování RSA klíče uživatele Pokud skončí ověřování chybou, je klient vyzván k zadání hesla Všechna komunikace je šifrována

78 Počítačové sítě78 Protokol pro výměnu klíčů v SSH1 Server má pár veřejný/tajný klíč Klient zná předem veřejný klíč serveru Musí být poslán předem bezpečným kanálem Server pošle klientovi veřejný klíč a náhodný klíč serveru Klient ověří veřejný klíč Klient pošle náhodný relační klíč zašifrovaný hostitelským a serverovým klíčem Zbytek relace je šifrován relačním klíčem

79 Počítačové sítě79 Protokol pro výměnu klíčů v SSH2 Je použit Diffie-Hellman algoritmus pro výměnu klíčů Algoritmus založený na principu přenosu veřejných klíčů Dva uživatelé si mohou vyměnit tajný klíč nedůvěryhodnou linkou bez předchozího sdílení jakéhokoliv tajemství Digitální podpis ověřuje identitu serveru vzhledem ke klientovi Výsledkem výměny klíčů je sdílený tajný klíč Používá se pro šifrování do konce relace Datová integrita je kontrolována pomocí MD5 Podporuje několik šifrovacích mechanizmů IDEA, Blowfish. DES, Triple DES, …

80 Počítačové sítě80 SSH v praxi Veřejný a tajný klíč hosta se generuje při instalaci SSH Veřejný klíč musí být v ~/.ssh/known_hosts na vzdálených systémech Ke generování uživatelských veřejných a tajných klíčů je použit příkaz ssh-keygen Vyžaduje aby uživatel vložil heslo Veřejný klíč je kopírován do ~/.ssh-authorized_keys na vzdálených systémech ssh-agent a ssh-add eliminují potřebu pro opakované psaní hesla Ověřování heslem je zranitelné použije-li se útok hádáním hesla

81 Počítačové sítě81 SSH v praxi X11 a forwardování portu vytváří šifrovanou rouru skrz Internet Může být použita pro zajištění zabezpečeného přístupu nezabezpečeným aplikacím jako je SMTP. Může být použito k obejití obranných valů Dostupné jako Open Source software (OpenSSH)

82 Počítačové sítě82 IKE Internet Key Exchange Standardní protokol pro vytváření a údržbu Security Association Spojení ISAKMP/Oakley ISAKMP - Internet Security Association and Key Management Protocol Definuje procedury formáty paketů k vytváření, potvrzování, modifikaci a rušení Security Association Oakley – výměna zpráv IKEv2 – RFC4306 Použití Mezi hosty, mezi bránami, mezi hostem a branou Ověřování pomocí Diffie-Hellman

83 Počítačové sítě83 IKE fáze Fáze I: vytvoření bezpečného komunikačního kanálu Obsahuje kryptografické algoritmy, metody ověřování, klíče Vzájemné ověřování Fáze II: použití tohoto kanálu Účastníci vytváří IPsec Security Association Jedna fáze I může ochránit více výměn fáze II Důvodem je náročná fáze I, méně náročná fáze II

84 Počítačové sítě84 IKE fáze I Zahrnuje dva stavy (výměna zpráv Request – Response) INIT Dohadování kryptografických algoritmů Výměna náhodných čísel Provedení Diffie-Hellman výměny Probíhá bez zabezpečení AUTH Zprávy jsou chráněny klíči odvozenými v předchozí fázi Ověřuje předchozí zprávy Vytváří první CHILD-SA

85 Počítačové sítě85 IKE fáze II Vytváří nové CHILD-SA Relativně jednoduchá operace Může být vyvolána jakoukoliv stranou Zajišťuje „perfect forward secrecy“ I když útočník zaznamená všechna data poslaná přes bezpečné spojení Nedokáže rekonstruovat klíče pro výměnu mezi CHILD-SA

86 Počítačové sítě86 Algoritmy šifrování DES 3DES RC5 IDEA ČÁST BLOWFISH 3IDEA AES

87 Počítačové sítě87 Protokoly pro bezpečnou komunikaci IPsec Soubor protokolů pro zajištění bezpečnosti na síťové úrovni Ověřování původu Integrita dat Utajení dat Vzhledem k transportním protokolům a aplikacím je transparentní – nevidí ho Vzhledem k linkovému protokolu neprůhledný – nerozumí přenášeným datům Přizpůsobivý

88 Počítačové sítě88 IP sec Režimy činnosti Transparentní – mezi koncovými uživateli Tunelovaní – mezi dvěma síťovými prvky (směrovači, obrannými valy, … ) Kombinace předchozích – mezi koncovým uživatelem a síťovým prvkem

89 Počítačové sítě89 IPSec Základní mechanizmus pro zajištění bezpečnosti na síťové úrovni zajišťuje ověřování důvěrnost Výměnu klíčů Aplikovatelný v LAN, MAN i WAN Bezpečné propojení počítačů nebo sítí

90 Počítačové sítě90 IPSec příklad použití

91 Počítačové sítě91 Authentication Header (AH) Zajišťuje integritu dat a ověřování IP paketů Koncový uživatel může ověřovat uživatele/aplikaci Zamezuje kradení IP adresy sledováním sekvenčních čísel Založeno na MAC HMAC-MD5-96 or HMAC-SHA-1-96 Účastníci musí sdílet tajný klíč

92 Počítačové sítě92 Authentication Header

93 Počítačové sítě93 Transportní a tunelovací režim

94 Počítačové sítě94 Encapsulating Security Payload (ESP) Zajišťuje utajení obsahu zpráv Může také zajišťovat ověřování jako AH Podporuje mnoho šifrovacích algoritmů, jejich režimů a zarovnávání zpráv Zahrnuje DES, Triple-DES, RC5, IDEA, CAST atd. Většinou pracuje v režimu CBC Zarovnává zprávy na velikost bloků

95 Počítačové sítě95 Encapsulating Security Payload

96 Počítačové sítě96 Transportní a tunelovací režim ESP Transportní režim se používá pro šifrování, případně i ověřování IP datagramů Chráněna jsou pouze data, hlavička se přenáší otevřená Může být prováděna analýza toku dat Používá se pro ESP a přenosy mezi host. Systémy Tunelovací režim šifruje celý IP paket Přidává novou hlavičku Používá se pro VPN a komunikaci mezi směrovači

97 Počítačové sítě97 Možné kombinace služeb a režimů

98 Počítačové sítě98 Obranné valy Provádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany Vlastnosti Filtrování paketů a vlastnost odstínění Různé úrovně ověřování Přihlašování (registrace) a účtování Transparentnost a přizpůsobení uživatelům Ovladatelnost (management) Rozlišení požadavků dle klientů nebo sítí

99 Počítačové sítě99 Obranné valy Vzdálený uživatel Cizí uživatel Internet Firewall Intranet Web server

100 Počítačové sítě100 Filtrování Základní rozdělení podle úrovně filtrování Filtrování na síťové úrovni (IP filtrování) Filtrování na transportní úrovni (úroveň spojení) Filtrování na aplikační úrovni (aplikační filtry)

101 Počítačové sítě101 Filtrování na síťové úrovni Principy filtrování na IP úrovni Jednotlivé pakety jsou analyzovány a filtrovány (blokovány nebo propouštěny) Filtrovací kritéria IP adresa (zdrojová, cílová, obě) Port (zdrojový, cílový, oba) Typ paketu (IP, jiný) Nejsou filtrována žádná aplikační data Obecně bezestavové filtrování Nejsou k dispozici žádné znalosti o spojení klient/server Nezávisle filtruje přicházející a odcházející pakety

102 Počítačové sítě102 Filtrování na síťové úrovni Nevýhody Méně bezpečné Bezestavový charakter Založeno na omezeném filtrování Využívá implicitní předpoklady Slabé ověřování (IP adresa) Nebrání „prosakování“ IP paketů Není filtrován vlastní protokol server/klient Neumožňuje (nebo jen omezeně) logování a účtování Pravidla filtrování mohou být složitá a náchylná k chybám Může se stát ne-managementovatelný

103 Počítačové sítě103 Filtrování na síťové úrovni Výhody Transparentní vzhledem k účastníkům, jednoduše přizpůsobitelné Podporuje libovolný protokol klient/server Není třeba modifikovat ani server, ani klienta Jednoduché levné odstínění (směrovač) Vysoká propustnost Závěr Jednoduché a laciné filtrování na IP úrovni je bezpečné pouze pro Blokování všech paketů (deny) Propouštění všech paketů (allow)

104 Počítačové sítě104 Filtrování na aplikační úrovni Principy filtrování na aplikační úrovni Hlavní princip – vnitřní pakety nesmí přecházet přímo do vnější sítě a naopak Klient se spojuje s obranným valem, ne přímo se serverem Na obranném valu je umístěn proxy (zástupce), který přijímá pakety, kontroluje je a rozhoduje o tom, má-li být paket propuštěn nebo zachycen Lze provádět ověřování klienta v širokém rozsahu Od IP zdrojové adresy K přísným ověřovacím technikám typu výzva/odpověď Může být filtrován i protokol server/klient

105 Počítačové sítě105 Filtrování na aplikační úrovni Výhody: Zvýšená bezpečnost Předcházení problémům s bezpečností na IP úrovni Má informaci o stavu spojení (filtrování na aplikační úrovni může být stavové) Použití ověřovacích technik Filtrace protokolu server/klient Umožňuje rozšířené logování a účtování V zásadě méně složitá pravidla filtrování, méně náchylná k chybám, jednodušší ovládání Interní DNS nemusí spolupracovat s externím DNS Je možné rozšířit proxy o cache – zachycování často požadovaných dat

106 Počítačové sítě106 Filtrování na aplikační úrovni Nevýhody: Méně transparentní a přizpůsobivé Klient si může proxy uvědomit Podpora jednoduchých klientů nebo proxy klientů Omezený počet proxy, pro každý protokol musí existovat proxy Vyžaduje vyhrazený počítač

107 Počítačové sítě107 Filtrování na transportní úrovni Principy filtrování na úrovni spojení V zásadě vypadá jako filtrování na aplikační úrovni Generické proxy na úrovni spojení pracuje na obranném valu Klienti se spojují s proxy na úrovni spojových služeb (TCP) Proxy ověřuje klienty na úrovni tohoto spojení Spojení mezi proxy a serverem je pak transparentní Od filtrování na aplikační úrovni se liší Slabším ověřováním Nezajišťuje filtrování protokolu na úrovni aplikace klient/server

108 Počítačové sítě108 Filtrování na transportní úrovni Realizace Realizace vyžaduje zásah do programového vybavení klienta Systémové volání na nižší úrovni v klientu nahrazeno spojkami (connect) Spojka spojuje klienta a spojované proxy S použitím speciálního protokolu posílá adresu a port cílového počítače.

109 Počítačové sítě109 Filtrování na transportní úrovni Vlastnosti Bezpečnost mezi IP úrovní a aplikační úrovní Transparentnost mezi IP úrovní a aplikační úrovní Zahrnuje logování a účtování Programové vybavení klienta musí být přizpůsobeno Výhody Doplnění programu o spojku je jednodušší než zavedení proxy Je však nutné mít zdrojový kód, knihovny, …

110 Počítačové sítě110 Socks Představuje programové vybavení spojky pro realizaci proxy na úrovni spojení Navrženo pro aplikace typu klient/server Klient naváže spojení se socks, přenese adresu cíle, port cíle, typ spojení a identitu uživatele Socks vytvoří vlastní komunikační kanál, kterým posílá data klienta do serveru Během vytváření spojení lze provádět doplňkové funkce (ověřování, vyjednávání o bezpečnosti, … )

111 Počítačové sítě111 Socks Model socks Zahrnuje 3 základní operace Požadavek na spojení Nastavení proxy spojení Přepínání aplikačních dat Ověřování

112 Počítačové sítě112 Typy obranných valů Filtrující směrovač (Screening Router) Provádí filtraci paketů podle směru přenosu, IP adresy a čísla portu Opevněný počítač (Bastion Host ) Používá se při realizaci důležitých serverů, které mají být navíc velmi bezpečné. Např. SMTP, FTP, DNS, HTTP, atd. Brána se dvěma vstupy (Dual Homed Gateway) Úplně odděluje vnitřní a vnější síť. Služby musí být umístěny na této bráně, přístupné jak z vnitřní sítě, tak i z vnější sítě. Screened Host Gateway Vnitřní síť je chráněna filtrujícím směrovačem, který propouští pouze pakety určené pro vybraný počítač (Bastion Host). Screened Subnet Pomocí dvou filtrujících směrovačů se vytvoří demilitarizovaná zóna. Brána aplikační úrovně

113 Počítačové sítě113 Útoky Útoky Denial of Service Jeden z mnoha základních forem útoků na vnitřní sítě Založen na přetížení systému Výsledkem je omezení výkonnosti serveru nebo úplný výpadek cílového systému Útok může být zaměřen na síťové komponenty nebo na hostitelské systémy Dochází k vytěsňování reálných přenosů Klienti na základě detekce zahlcení zpomalují vysílání Směrovače musí přebytečné pakety odstraňovat

114 Počítačové sítě114 Útoky Usnadnění DoS útoků V počítačové síti běží mnoho systémů Počítačová síť je velmi rozlehlá Mnozí uživatelé jsou naivní – dávají šanci uchvátit vzdálený systém Protokoly internetu jsou známé, to vytváří podmínky pro využití jejich slabin Mnoho volného software, ve kterém mohou být zahrnuty utajené funkce Nedostatečná ochranná politika používání a managementu Velmi rozsáhlý software s mnoha známými děrami Nedostatek prostředků pro zastavení útoků

115 Počítačové sítě115 Útoky Snort (Open Source Intrusion Detection System ) Systém pro detekci útoků (Intrusion Detection Systém) Je schopen provádět analýzu toku dat v reálném čase a logování paketů v IP sítích Může provádět analýzu protokolů, vyhledávání údajů Je schopen detekovat různé útoky a sondování Používá jazyk pro popis toku dat Obsahuje automat pro detekci podle tohoto popisu Umožňuje informovat o útoku v reálném čase (syslog, soubor, sockety, … )

116 Počítačové sítě116 Steganography


Stáhnout ppt "Ověřování a protokoly Počítačové sítě Lekce 9 Ing. Jiří ledvina, CSc."

Podobné prezentace


Reklamy Google