Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Počítačové sítě Lekce 9 Ing. Jiří ledvina, CSc.
Ověřování a protokoly Počítačové sítě Lekce 9 Ing. Jiří ledvina, CSc. Klepněte a vložte poznámky.
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 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) 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 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: [ NB ] A → B: [ f( K ║ NB ) ] A → B: [ NA ] B → A: [ f( K ║ NA ) ] Redukce počtu zpráv A → B: [ A ║ NA ] B → A: [ NB ║ f( K ║ NA ) ] Útok T → B: [ A ║ NA ] B → T: [ NB ║ f( K ║ NA ) ] T → B: [ A ║ NB ] B → T: [ N‘B ║ f( K ║ NB ) ] T → B: [ f( K ║ NB ) ] Modifikace A → B: [ A ] B → A: [ NB ] A → B: [NA ║ f( K ║ NB ) ] B → A: [ f( K ║ NA ) ] 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: EKB+ [ A ║ NA ] B → A: EKA+ [NA ║ NB ] A → B: EKB+ [NB ] Útok (Gavin Lowe) A → U(A): EKU+ [ A ║ NA ] U(A) → B: EKB+ [ A ║ NA ] B → U(A): EKA+ [NA ║ NB ] U(A) → A: EKA+ [NA ║ NB ] A → U(A): EKU+ [NB ] U(A) → B: EKB+ [NB ] B je přesvědčen, že komunikuje s A U(A) má k dispozici [NA ║ NB ], které může např. použít ke konstrukci relačního klíče. 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ů 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 IDA, IDB jsou identifikátory entit KAB je relační klíč pro komunikaci A a B KA, KB jsou šifrovací klíče pro komunikaci KDC s A a KDC s B. A → KDC: [IDA ║ IDB ║ N1] KDC → A: EKA [KAB ║ IDB ║ N1 ║ EKB [KAB ║ IDA] ] A → B: EKB [KAB ║ IDA] útok – zachycení, prolomení, podvrhnutí → časové značky B → A: EKAB [ N2 ] A → B: EKAB [ N2 -1 ] 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: [IDA ║ IDB] KDC → A: EKS- [KB+ ║ IDB ] A → B: EKB+ [NA ║ IDA] → A → T: EKT+ [ NA ║ IDA] B → KDC: [IDA ║ IDB] T → B: EKB+ [ NA ║ IDA] KDC → B: EKS- [KA+ ║ IDA ] B → A: EKA+ [ NA ║ NB ] → B → T: EKA+ [ NA ║ NB ] T → A: EKA+ [ NA ║ NB ] A → B: EKB+ [ NB ] → A → T: EKT+ [ NB ] T → B: EKB+ [ NB ] 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 ║ IDA ║ IDB ║ EKA [NA ║ M ║ IDA ║ IDB ] ] B → KDC: [ M ║ IDA ║ IDB ║ EKA [NA ║ M ║ IDA ║ IDB ] ║ EKB [NB ║ M ║ IDA ║ IDB ] ] KDC → B: [ M ║ EKA [NA ║ KAB ] ║ EKB [NB ║ KAB ] ] B → A: [ M ║ EKA [NA ║ KAB ] ] 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: [ IDA ║ NA ] B → A: EKAB [ NA ║ K´AB ║ IDB ] A → B: EK´AB [ NA ] B → A: [ NB ] K´AB – nový relační klíč NB – nové náhodné číslo 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 ║EKA [ TSA ║ IDB ║ KAB ] ] KDC → B: EKB [ TSKDC ║ IDA ║ KAB ] ] B → A: EKAB [ NB ] A → B: EKAB [ NB +1] 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| < ∆t1 + ∆t2 Znovupoužití relačního klíče může být detekováno B A → KDC: [ IDA ║ IDB ] KDC → B: EKA[ KAB ║ IDB ║ TS ║ EKB[ KAB ║ IDA ║ TS ] ] A → B: EKB[ KAB ║ IDA ║ TS ] B → A: EKAB[ N1 ] A → B: EKAB[ f(N1) ] 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 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 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, ... adresa) Veřejný klíč ( bf 4a ... ) Počítačové sítě
17
Certifikát Pokračování
Distribuční místo (URL= 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 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 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 Počítačové sítě
20
Modely důvěrnosti Monopoly model Monopoly plus RA Delegování CA
Oligarchy model Anarchy model 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) 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 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 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 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 Počítačové sítě
26
Anarchy model Bezpečnost Je důvěra tranzitivní
Co je to dost dobrá důvěra 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 Počítačové sítě
28
Revocation list CA může periodicky vysílat CRL Delta 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 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 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) 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 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á 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í) 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.) 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) Počítačové sítě
36
Servery Administrativní server Ověřovací server (Kerberos 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ů 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 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, IPC, TS, TTL, KS,C}K(S) 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, IPC, TS}K(S,C) Počítačové sítě
40
Ticket {S, C, IPC, TS, TTL, KS,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 (IPC) časové razítko (TS) dobu života ticketu (TTL) náhodný relační klíč (KS,C) Šifrováno klíčem serveru, kterému je určen (KS) Počítačové sítě
41
Authenticator {C, IPC, 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 (IPC) běžný čas Šifrováno relačním klíčem K(S,C) 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 (KC,tgs) a ticket pro komunikaci s TGS {TC,tgs}Ktgs C: {C, tgs} AS: {KC,tgs, {TC,tgs}Ktgs}KC 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 Ktgs pro komunikaci AS – TGS Ticket TC,tgs jméno klienta, jméno TGS, čas, dobu života, IP adresu klienta, relační klíč pro komunikaci klient – TGS Klient KC,tgs a {TC,tgs}Ktgs schová, KC a heslo smaže. 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 AC, obsahující jméno klienta, IP adresu a čas Zašifruje jej relačním klíčem KC,tgs, přidá {TC,tgs}Ktgs a pošle požadavek TGS C: {S, {TC,tgs}Ktgs , {AC}KC,tgs} TGS: {{TC,S}KS , KC,S} KC,tgs} Počítačové sítě
45
Požadavek na službu C: {{TC,S}KS , {AC}KC,S} S: {{TS+1}KC,S}
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: {{TC,S}KS , {AC}KC,S} S: {{TS+1}KC,S} Počítačové sítě
46
Přihlášení klienta na server s ověřením (shrnutí)
C AS: [C, tgs] AS C: [{KC,tgs, {TC,tgs}Ktgs}KC] C TGS: [S, {TC,tgs}Ktgs , {AC}KC,tgs] TGS C: [{KC,S {TC,S}KS , } KC,tgs] C S: [{TC,S}KS , {AC}KC,S] S C: [{TS+1}KC,S] 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 Počítačové sítě
48
Administrativní protokol
C AS: [C, kdbm] AS C: [{KC,kdbm, {TC,kdbm}Kkdbm}KC] C KDBM: [S, {TC,kdbm}Kkdbm , {AC}KC,kdbm] (požadavek S = {kadmin | kpasswd}) 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 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 <service_name>) 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ů 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 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 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ý) Počítačové sítě
54
Pre-authentikace Druhá zpráva je šifrována klíčem KC
AS C: [{KC,tgs, {TC,tgs}Ktgs}KC] Revize: A posílá do AS předautentikační data Časová značka šifrovaná sdíleným klíčem KC Dokazuje, že zná klíč 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 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 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 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? 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 Počítačové sítě
60
Ověřování mezi oblastmi
Počítačové sítě
61
Protokol SSL Petr Dvořák
62
Obsah prezentace Co je SSL Popis protokolu Ukázka Použití v praxi
Nejprve řeknu co to je a k čemu nám je protokol SSL, pak jej podrobněji popíši. Potom bude následovat ukázka zachycení SSL komunikace. A nakonec povím něco o možnostech použití SSL ve vlastních aplikacích. 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 SSL asi není třeba příliš představovat. Všichni se s ním stále setkáváte při přihlašování na Stag,jumbo nebo internetového bankovnictví. Je to tedy jakýsi doplňující protokol pro jiné aplikační protokoly. Sám o sobě nedělá nic převratného. Počítačové sítě
64
Aplikační vrstva (e.g. http)
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 Protocol Change Cipher Spec Protocol Jak jsem řekl, SSL poskytuje služby aplikačnímu protokolu. Nachází se tedy mezi aplikační a transportní vrstvou. Samotný SSL se skládá z H a R protokolu. 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 Nachází se nad transportní vrstvou Uchovává informace vyjednané při navazování spojení (jde o sever/klient, algoritmy, master secret, atd.) Fragmentage – max. 16KB, male zprávy společne, blok si nese info. Komu patří (změna sifrovani, signální, handshake, aplikační) Komprimace – volitelná, objem dat se nezvětší o víc jak 1KB, původní standard neurčuje konkrétní algoritmus zvolit MAC – aby nikdo nemohl pozměnit data, hash funkce z MAC secret, dat a pořadového čísla bloku, ochrana man-in-the-middle Šifrování – šifruje data (včetně MAC), proudové a blokové v modu CBC, klíče vezmeme z master secret náhodných dat klienta a serveru dáme hash funkci a rozdělíme 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 Je nad record layer Slouží k navázání spojení a vyjednání parametrů komunikace – šifrovací algoritmy, komprese, master secret… -, identifikace komunikujících (výměna certifikátů) Alert – indukuje chyby, fatální chyby ukončí spojení, ostatní jen zneplatní spojení (nelze navázat další) + příklad Chage Cipher Spec – server/klient si davají najevo, že budou používat nově vyjednané šifry (během handshaku) Handshake – má na starost navázání spojení Počítačové sítě
67
Handshake protokol Přenášené informace Plný handshake
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 Počítačové sítě
68
Čárkované obdélníky značí nepovinnou část komunikace.
Na začátku si klient a server řeknou co všechno umí zasláním zprávy Hello. Pak si případně vymění certifikáty a ověří u certifikační autority. Nakonec si nastaví vyjednané parametry pro komunikaci a pošlou si potvrzení. Kromě tohoto způsobu navázání spojení existuje i jiný zjednodušený handshake. Počítačové sítě
69
Zjednodušený handshake
Jaký je rozdíl? Např. jak je to v prohlížeči 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 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ý 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. 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 Omezené množství šifer (jen některé délky klíčů a bloků) DES nepoužívat, rozdílmezi DES a 3DES Blokové šifry – pouze CBC 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 TLS vychází z SSL verze 3. Změny jsou minimální, ale natolik závažné, že oba protokoly nejsou vzájemně kompatibilní. Týkají se hlavně bezpečnosti. V TLS je však popsán mechanismus, jak zajistit zpětnou kompatibilitu. TLS nepodporuje mechanizmus výměny klíčů Fortrezza Rozšíření do SSL jsou "dolepovány". TLS je mnohem striktnější ve svém použití i použití jiných protokolů kvůli bezpečnosti (v RFC jsou popisována bezpečnostní rizika). 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 Pohled uživatele Pohled programátora 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 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 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 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, … 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 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) 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 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 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 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 Počítačové sítě
86
Algoritmy šifrování DES 3DES RC5 IDEA ČÁST BLOWFISH 3IDEA AES 8.4.2008
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ý 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 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í Počítačové sítě
90
IPSec příklad použití Stallings Fig 16-1. 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íč Počítačové sítě
92
Authentication Header
Stallings Fig 16-3. Počítačové sítě
93
Transportní a tunelovací režim
Stallings Fig 16-5. 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ů Počítačové sítě
95
Encapsulating Security Payload
Stallings Fig 16-7. 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 Počítačové sítě
97
Možné kombinace služeb a režimů
Stallings Fig 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í Počítačové sítě
99
Obranné valy Vzdálený uživatel Web server Firewall Internet Intranet
Cizí uživatel 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) 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 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ý 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) 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 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 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č 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 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. 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, … Počítačové sítě
110
Socks 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, … ) 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í 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ě 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 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ů 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, … ) Počítačové sítě
116
Steganography Počítačové sítě
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.