VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
|
|
- Miroslav Horák
- před 6 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS SYSTÉM PRO ANONYMNÍ PŘEDÁVÁNÍ ZPRÁV DIPLOMOVÁ PRÁCE MASTER'S THESIS AUTOR PRÁCE AUTHOR Bc. JAN KISLINGER BRNO 2014
2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS SYSTÉM PRO ANONYMNÍ PŘEDÁVÁNÍ ZPRÁV SYSTEM FOR ANONYMOUS TRANSMIT OF MESSAGES DIPLOMOVÁ PRÁCE MASTER'S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. JAN KISLINGER Ing. PETR LEŽÁK BRNO 2014
3 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací Diplomová práce magisterský navazující studijní obor Telekomunikační a informační technika Student: Bc. Jan Kislinger ID: Ročník: 2 Akademický rok: 2013/2014 NÁZEV TÉMATU: Systém pro anonymní předávání zpráv POKYNY PRO VYPRACOVÁNÍ: Realizujte systém pro anonymní předávání zpráv pomocí protokolu popsaného v článku "Využití Diffie-Hellmanova protokolu pro anonymní autentizaci". Systém se bude skládat ze serveru a klientů, vzájemná komunikace bude probíhat po síti. Jednotliví klienti se budou moci na server zaregistrovat a zanechat anonymní zprávy pro ostatní klienty. Vhodným způsobem je nutné zobrazit průběh síťové komunikace. DOPORUČENÁ LITERATURA: [1] LEŽÁK. Využití Diffie-Hellmanova protokolu pro anonymní autentizaci. [online]. 2013, roč. 2013, č. 1, s. 5 [cit ]. Dostupné z: onymni-autentizaci-1/ [2] BONEH, Dan. The decision Diffie-Hellman problem. In: Third Algorithmic Number Theory Symposium: Lecture Notes in Computer Science. Springer-Verlag, 1998 [cit ]. Vol Dostupné z: Termín zadání: Termín odevzdání: Vedoucí práce: Ing. Petr Ležák Konzultanti diplomové práce: UPOZORNĚNÍ: doc. Ing. Jiří Mišurec, CSc. Předseda oborové rady Autor diplomové práce nesmí při vytváření diplomové práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb.
4 ABSTRAKT Diplomová práce se zabývá anonymním předáváním zpráv pomocí protokolu pro anonymní autentizaci. Nejprve obsahuje teoretické seznámení s problematikou a popis protokolu pro anonymní autentizaci a popis jeho vlastností. Dále je popsán návrh komunikace mezi klientem a serverem. V závěru obsahuje popis vytvořeného systému pro anonymní předávání zpráv, skládající se ze serveru a klientů, kteří mohou na serveru zanechávat výzvy pro ostatní uživatele a ti je ze serveru pak získají. V práci je popsáno spuštění i ovládání programu. Dále jsou zde rozebrány metody výpočtů ověřovacích hodnot, šifrování klíčů a zpráv a ověření příjemce. KLÍČOVÁ SLOVA anonymní, autentizace, Diffie-Hellmanův protokol, DSA podpis, RMI-IIOP ABSTRACT Diploma thesis deals with an anonymous transmit of messages using protocol for anonymous authentication. In first part, we introduce theoretical familiarization to the issues and description protocol for anonymous authentication. Further, it describes the suggestion of the communication between the client and the server. Finally, contains a description of the created system for anonymous transmit of messages, which consists of the server and clients, who can leave challenges on the server for other users and they obtains challenges from the server. The thesis explains how to start and control program. There are also discussed methods of computing verification values, encryption keys and messages and authentication of receivers. KEYWORDS anonymous, authentication, Diffie-Hellman protocol, DSA signature, RMI-IIOP KISLINGER, Jan Systém pro anonymní předávání zpráv: diplomová práce. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací, s. Vedoucí práce byl Ing. Petr Ležák
5 PROHLÁŠENÍ Prohlašuji, že svou diplomovou práci na téma Systém pro anonymní předávání zpráv jsem vypracoval samostatně pod vedením vedoucího diplomové práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené diplomové práce dále prohlašuji, že v souvislosti s vytvořením této diplomové práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a/nebo majetkových a jsem si plně vědom následků porušení ustanovení S 11 a následujících autorského zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon), ve znění pozdějších předpisů, včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č. 40/2009 Sb. Brno (podpis autora)
6 PODĚKOVÁNÍ Rád bych poděkoval vedoucímu diplomové práce panu Ing. Petru Ležákovi, za odborné vedení, konzultace, trpělivost a podnětné návrhy k práci. Brno (podpis autora)
7 Faculty of Electrical Engineering and Communication Brno University of Technology Technicka 12, CZ Brno Czech Republic PODĚKOVÁNÍ Výzkum popsaný v této diplomové práci byl realizován v laboratořích podpořených z projektu SIX; registrační číslo CZ.1.05/2.1.00/ , operační program Výzkum a vývoj pro inovace. Brno (podpis autora)
8 OBSAH Úvod 10 1 Teoretické zpracování problematiky Autentizace Diffie-Hellmanův protokol pro výměnu klíčů Princip Útok mužem uprosřed DSA - Digital Signature Algorithm Princip Protokol pro anonymní autentizaci Princip Vlastnosti RMI - Remote Method Invocation Architektura RMI Komunikace RMI-IIOP Návrh systému pro anonymní předávání zpráv Návrh komunikace mezi klientem a serverem Popis programu pro komunikaci využívající RMI-IIOP Realizace systému pro anonymní předávání zpráv Struktura programu Server Klient Časový diagram klientské aplikace Spuštění programu Serverová část Klientská aplikace Registrace uživatelů Vytvoření výzvy Získání výzvy Testování Závěr 56 Literatura 57 Seznam zkratek 58
9 Seznam příloh 59 A Obsah CD 60
10 SEZNAM OBRÁZKŮ 1.1 Ukázka Diffie-Hellmanova protokolu Ukázka útoku mužem uprostřed Schéma protokolu pro anonymní autentizaci Komunikace mezi jednotlivými bloky protokolu Architektura RMI Anonymní předávání zpráv Schéma komunikace mezi klientem a serverem Schéma komunikace pomocí IIOP UML diagram serveru UML diagram klienta Časový diagram klientské aplikace Spuštění serveru Obsah konfiguračního souboru Po spuštění aplikace Hlavní okno aplikace Vytvoření výzvy Získání výzvy Zachycená komunikace Zachycená data při registraci uživatele Zachycená data při vytváření výzvy
11 ÚVOD V dnešní době je komunikace pomocí zasílání zpráv přes nezabezpečenou síť jedním z nejpoužívanějších způsobů výměny informací na velké vzdálenosti. Při výměně zpráv přes nezabezpečenou síť je jedním z nejdůležitějších parametrů bezpečnost, tedy při zachycení zprávy útočníkem nesmí být útočník schopen zjistit její obsah. V určitých případech je také potřeba skrýt odesílatele zpráv, například při anonymním zanechávání komentářů, k hlasování, a podobně. Pro zabezpečení zpráv se používají různé šifrovací algoritmy a další způsoby zapezpečení a pro anonymitu se jméno odesílatele různě šifruje nebo skrývá. Diplomová práce se této problematice věnuje využitím protokolu pro anonymní autentizaci. Jednotliví uživatelé se zaregistrují na serveru a poté mohou vytvářet výzvy pro ostatní uživatele, kteří je ze serveru opět získají. Při vytváření výzvy se vygenerují ověřovací údaje, vytvoří se zašifrovaná zpráva a obojí se zanechá na serveru. Příjemce výzvu získá, zkontroluje, zda je určena pro něj a nakonec se autentizuje vůči serveru, čímž potvrdí svou identitu, a poté je mu zaslána zpráva. Celý tento systém je řešen síťově, to znamená, že server i klienti se nachází na různých strojích. Ke stanovení společných parametrů a ověřovacích hodnot se využívá Diffie-Hellmanova protokolu a digitálního podpisu. Tyto technologie jsou v práci popsány. Hlavní výhodou je to, že parametry přenášené po síti jsou veřejné nebo zašifrované, a proto pomocí nich útočník nemůže zjistit ověřovací klíč ani dešifrovat zprávu. 10
12 1 TEORETICKÉ ZPRACOVÁNÍ PROBLEMA- TIKY 1.1 Autentizace Jeden z nejdůležitějších kroků při předávání zpráv je autentizace, neboli ověření uživatele, zda se skutečně jedná o uživatele, za kterého se vydává. Po úspěšné autentizaci probíhá autorizace, neboli udělení oprávnění. Autentizační metody můžeme rozdělit do několika tříd: autentizace znalostí Metoda založená na znalosti hesla, kódu nebo fráze je nejjednoduším a nejrozšířenějším způsobem autentizace. Hlavní výhodou je jednoduchost a také to, že se nejedná o fyzický objekt, tzn. že ho lze snadno přemisťovat a zadávat do každého zařízení. Heslo by mělo obsahovat 8 12 znaků, složených z malých a velkých písmen, číslic a symbolů, které tvoří netriviální řetězec, který se neobjevuje ve slovnících a databázích. Takovýto řetězec se ovšem obecně špatně pamatuje, a proto lidé často volí krátká a slabá hesla, která se dají snadno prolomit, například útoky hrubou silou nebo slovníkovými útoky. autentizace předmětem V tomto případě uživatel vlastní nějaký předmět token pomocí kterého probíhá autentizace. Nejčastěji to bývá průkaz nebo čipová karta. Tokeny také mohou mít různé vlastnosti (tvar, elektrický odpor,... ) nebo obsahují tajné informace. Výhodou je obtížné kopírování těchto tokenů, ovšem může snáze dojít ke krádeži a poté nastává problém s prokázáním identity. autentizace žadatelem Tato metoda využívá fyziologické nebo behaviorální charakteristiky člověka, tzv. biometriku. Identita se prokazuje zjištěním aktuálních charakteristik a porovnáním s předchozími záznamy. Nejčastěji se používá otisk prstu, obličeje nebo charakteristika hlasu. Výhodou této metody je, že nemůže dojít k zapomenutí nebo ztrátě, ale biometrické informace jsou obtížně měřitelné a závislé na přesnosti. U této metody také může dojít k možným útokům, například modelem prstu. 11
13 Každá metoda má své výhody a nevýhody a také kvůli bezpečnosti často dochází ke kombinaci více metod dohromady, v případě dvou metod se jedná o dvoufaktorovou autentizaci. 12
14 1.2 Diffie-Hellmanův protokol pro výměnu klíčů Otázka výměny klíčů byla jedním z prvních problémů řešených pomocí kryptografického protokolu. Diffie-Hellmanův protokol pro výměnu klíčů byl první způsob pro vytvoření sdíleného tajného klíče přes nezabezpečený komunikační kanál. Tento protokol navrhl Whitfield Diffie a Martin Hellman v roce 1976 a je jedním z nejvíce používaných protokolů. Protokol slouží k výměně společného tajného klíče mezi dvěmi a více uživateli přes nezabezpečenou komunikační síť, kdy není tento klíč přenášen přes komunikační kanál a z přenášených dat není možné klíč zjistit v rozumném čase. To je zajištěno využitím problému diskrétního logaritmu. Tento protokol neslouží k šifrování a dešifrování zpráv, ale pouze k bezpečné výměně klíče, kterého lze využít pro šifrování a dešifrování Princip Máme 2 uživatele A a B - Alice a Bob. Nejprve dojde k volbě velkého prvočísla, což je parametr p. Poté nalezneme parametr g, neboli generátor, kde g < 2, p 2 >. Tyto parametry jsou společné a veřejně známé. Nyní můžeme přejít ke stanovení klíčů: Alice si zvolí svůj soukromý klíč x < 1, p 2 > a vytvoří zprávu X = g x mod p. Tuto zprávu odešle Bobovi. To samé udělá i Bob. Zvolí si svůj soukromý klíč y < 1, p 2 > a vytvoří zprávu Y = g y mod p. Zprávu odešle Alici. Alice si spočítá tajný klíč K A, pomocí vzorce K A = Y x mod p a Bob K B, pomocí K B = X y mod p. Klíče K A a K B jsou stejné. Shodnost klíčů vyplývá z rovnice: K A = Y x mod p = (g y ) x mod p = (g x ) y mod p = X y mod p = K B (1.1) 13
15 Na obrázku 1.1 je ukázán příklad výpočtu tajného klíče. Obr. 1.1: Ukázka Diffie-Hellmanova protokolu Pokud by se útočníkovi podařilo zachytit všechny přenášené parametry, tedy: p, g, X, Y, tak není schopen zjistit klíč K, protože by musel vyřešit diskrétní logaritmus. Podle [ 1] není problém diskrétního logaritmu pro p, o minimální délce 2048 bitů, řešitelný v rozumném čase Útok mužem uprosřed Pokud do komunikace mezi Alicí a Bobem vstoupí útočník a zachytí poslané zprávy X od Alice a Y od Boba, může je pozměnit tak, že do nich vloží vlastní klíče a pošle jim zprávy Z. Poté si oba uživatelé spočítají tajné klíče, ty jsou ovšem stejné jako má útočník. Tím si útočník vytvoří dva šifrované kanály, bez vědomí Alice a Boba, pomocí nichž bude moci mezi uživateli přeposílat data, která pak bude moci odposlechnout. To je tak zvaný útok mužem uprostřed neboli man in the middle. 14
16 Na obrázku 1.2 je ukázán příklad výpočtu klíčů při útoku mužem uprostřed. Obr. 1.2: Ukázka útoku mužem uprostřed Ochranou proti útoku mužem uprostřed nejčastěji bývá využití digitálních podpisů nebo certifikátů, kdy si příjemce ověří, zda přijatá zpráva je skutečně od daného odesílatele a nebyla pozměněna. 15
17 1.3 DSA - Digital Signature Algorithm DSA je standard pro podepisování a ověřování zpráv pomocí digitálního podpisu, který je založený na problému diskrétního logaritmu. DSA spolu s RSA (iniciály autorů Rivest, Shamir, Adleman), které je založeno na faktorizaci čísel, patří k nejpoužívanějším digitálním podpisům. Výhodou DSA oproti RSA je rychlejší vytvoření podpisu, ale jeho ověření může trvat déle. Jak bylo popsáno v [ 8], tak podpis DSA se skládá ze dvou 160-bitových čísel r a s, kde r je funkce složená z 160-bitového náhodného čísla k tzv. ephemeral key, které se mění s každou zprávou. Číslo k musí být opravdu náhodné a dostatečně velké, jinak by bylo možné z veřejných a podpisových parametrů spočítat soukromý klíč podepisovatele. Parametr s je funkce složená ze zprávy m, soukromého klíče podepisovatele x, parametru r a ephemeralního klíče k Princip Volba 160-bitového prvočísla q. Volba parametru p, které je mezi bity. Výpočet p: p = nq + 1, kdy q > p Výpočet generátoru g: g = x n mod p. Pokud se g = 1 je potřeba zvolit nové n, dokud g 1. Tím máme stanoveny veřejné parametry (p, q, g). Nyní si uživatel zvolí svůj soukromý podpisový klíč x, kde 0 < x < q. Poté spočítáme veřejný klíč y, kde y = g x mod p. K podpisu zprávy m použijeme následující kroky: Výpočet haš hodnoty zprávy: h = H(m). Volba náhodného ephemerálního čísla k, kde 0 < k < q. Výpočet parametru r: r = (g k mod p) mod q. 16
18 Výpočet parametru s: s = (h + xr) k 1 mod q. Nyní máme ke zprávě m vytvořenou podpisovou dvojci (r, s), kdy tento podpis má délku 320 bitů. K ověření podpisu (r, s) zprávy m použijeme ověřovací kroky: Výpočet haš hodnoty zprávy: h = H(m). Výpočet čísla a: a = h s 1 mod q. Výpočet čísla b: b = r s 1 mod q. Výpočet ověřovacího parametru v: v = (g a y b mod p) mod q, kde y je veřejný klíč podepisovatele Pokud se parametry v a r rovnají, podpis je v pořádku. Příklad K ověření správnosti postupu použijeme následující zjednodušený příklad: Zvolíme veřejné parametry: q = 13, p = 4q + 1 = 53, g = 16. Zvolíme soukromý klíč x = 3 a vypočítáme veřejný klíč y = 16 3 mod 53 = 15. Nyní spočítáme haš zprávy, pro jednoduchost např. h = 5 a vygenerujeme ephemerální tajný klíč k = 2. Poté můžeme přejít k výpočtům: r = (16 2 mod 53) mod 13 = 5, s = ( ) 2 1 mod 13 = 10. Nyní máme podpis (r = 5, s = 10). Ověření podpisu: Výpočet a: a = mod 13 = 7. Výpočet b: b = mod 13 = 7. Výpočet parametru v: v = ( mod 53) mod 13 = 5. Zpráva v = r, podpis je platný. 17
19 1.4 Protokol pro anonymní autentizaci Základ protokolu je zobrazen na obrázku 1.3. Z toho vyplývá, že Alice umožní Bobovi se autentizovat vůči Evě tak, aby Eva nevěděla, že se autentizuje právě Bob. Stanovení ověřovacích údajů Autentizace Alice Eva Bob Obr. 1.3: Schéma protokolu pro anonymní autentizaci Z [ 5] vyplývá, že nejprve Alice vygeneruje ověřovací údaje, s využitím veřejného klíče Boba. Tyto údaje jsou zašifrované do kryptogramu a obsahují zprávu, jejíž součástí je i ověřovací klíč, a podpis zprávy. Tento kryptogram, poté zašle Evě, která s jeho využitím vytvoří výzvu. Výzva je zaslána Bobovi, který pomocí svého tajného klíče dešifruje kryptogram a odpoví na výzvu, čímž potvrdí znalost svého klíče, která je potřeba k dešifrování kryptogramu Princip Generování veřejných parametrů Volba prvočísla q. Volba p = nq + 1, což je prvočíslený modulus, přičemž q > p Volba generátoru grupy g = x n mod p 1. Generování klíčů Alice Volba náhodného čísla a z rozsahu < 2; q 1 >, což je tajný soukromý klíč Alice. Výpočet veřejného klíče A = g a mod p. Alice zveřejní svůj veřejný klíč. 18
20 Generování klíčů Boba Volba náhodného čísla b z rozsahu < 2; q 1 >, což je tajný soukromý klíč Boba. Výpočet veřejného klíče B = g b mod p. Bob zveřejní svůj veřejný klíč. Alice ho využije k výpočtu šifrovacího klíče. Generování ověřovacích klíčů a vytvoření zprávy Alice Volba soukromého ověřovacího klíče f z rozsahu < 2; q 1 >. Výpočet veřejného ověřovacího klíče F = g f mod p. Vytvoření zprávy M = (ID Alice ID Eva f). Vytvoření podpisu S ke zprávě M pomocí DSA protokolu využitím soukromého klíče Alice a. ID Alice a ID Eva jsou jednoznačné identifikátory. Generování šifrovacího klíče a vytvoření kryptogramu Alice Volba náhodného čísla z z rozsahu < 2; q 1 >. Výpočet šifrovacího klíče Z = B z mod p, který slouží k zašifrování a dešifrování kryptogramu C. Výpočet hodnoty X E = g z mod p, což je veřejný parametr sloužící Bobovi k výpočtu šifrovacího klíče Z. Vytvoření kryptogramu C = E(M S, H(Z)), kde H je hašovací funkce a H(Z) je šifrovací klíč. Alice odešle Evě ověřovací údaje (X E, C a F). Vytvoření výzvy Eva Volba čísla v z rozsahu < 2; q 1 >. 19
21 Výpočet výzvy V = g v mod p. Eva odešle Bobovi zprávu (X E, C, V a Info). Info je řetězec informující o účelu autentizace. Ověření a dešifrování Bob Kontrola řetězce Info. V případě, že Bob s autentizací nesouhlasí, tak ukončí algoritmus. Výpočet šifrovacího klíče Z = XE b mod p. Klíče Z a Z jsou si rovny neboť: Z = B z mod p = (g b ) z mod p = (g z ) b mod p = X b E mod p = Z, zde se využívá Diffie-Hellmanovův protokol. Pomocí zjištěného šifrovacího klíče Z se dešifruje kryptogram C a získáme zprávu M a podpis S M S = D(C, H(Z )). D je dešifrovací funkce, inverzní k funkci E. Ze zprávy M získáme ID Alice, ID Eva a soukromý ověřovací klíč f. Díky podpisu S si ověříme, že zpráva M je skutečně od Alice. Pokud je podpis neplatný, algoritmus ukončíme. Výpočet klíče a odpovědi Bob Výpočet klíče K MAC = V f mod p. Výpočet odpovědi O = E(H(ID Eva Info), K MAC). Odpověď je kryptogram vytvořený na základě soukromého ověřovacího klíče f a výzvy V. Bob odešle odpověď O Evě. 20
22 Ověření Eva Výpočet klíče K MAC = F v mod p. Výpočet odpovědi O = E(H(ID Eva Info), K MAC ). Pokud O = O, tak je autentizace v pořádku. Klíč K MAC = K MAC, opětovné využití Diffie-Hellmanova protokolu. K MAC = F v mod p = (g f ) v mod p = (g v ) f mod p = V f mod p = K MAC 21
23 Komunikace Na obrázku 1.4 je znázorněna komunikace mezi jednotlivými bloky protokolu, a také parametry, které jsou přenášeny. Generování veřejných parametrů q, p, g Alice Bob Generování klíčů Alice a, A A B Seznam veřejných klíčů B A Generování klíčů Boba b, B Generování ověřovacích hodnot a vytvoření zprávy f, F, M, S Eva Generování šifrovacích hodnot a vytvoření kryptogramu z, Z, X E, C X E, C, F Vytvoření výzvy v, V X E, C, V, Info Ověření a dešifrování Z, M, S, ID Alice, ID Eva, f Konec Ověření K MAC, O O Výpočet klíče a odpovědi K MAC, O Konec Konec Obr. 1.4: Komunikace mezi jednotlivými bloky protokolu Vlastnosti Z výše popsaného postupu vychází několik základních vlastností tohoto protokolu. Jsou to: Neexistence přímé komunikace mezi Alicí a Bobem Generování ověřovacích hodnot Alicí probíhá pouze na základě znalosti veřejného klíče Boba a doménových parametrů, proto mezi nimi neprobíhá žádná komunikace. 22
24 Korektnost protokolu Byla prokázána při popisu, ve kterém Z Z, K MAC K MAC a také O O. Autentičnost odpovědi K výpočtu odpovědi O musíme znát klíč K MAC, který je vypočítaný pomocí Diffie-Hellmanova protokolu. Tento klíč spočítáme pouze ze znalosti alespoň jednoho soukromého klíče náhodného čísla v nebo ověřovacího klíče f. Tento klíč je však zašifrován a číslo v není nikde uloženo. K autentizaci je tedy potřeba spočítat dešifrovací klíč Z. K výpočtu dešifrovacího klíče Z potřebujeme náhodné číslo z, které opět není nikde uloženo, nebo soukromý klíč Boba b. Z toho vyplývá, že autentizovat se může pouze Bob, ostatní klíče potřebné k autentizaci nejsou nikde uloženy nebo jsou zašifrovány. Anonymita Alice a Boba Pouze Alice a Bob mohou zjistit, že se autentizuje Bob a ověřovací hodnoty generuje Alice, proto mezi nimi nesmí být žádná spojitost. Odpověď Boba závisí, kromě doménových parametrů a informací od Evy, pouze na soukromém ověřovacím klíči f, proto odpověď nemá žádnou souvislost se soukromým klíčem Boba. Na identitě Alice závisí pouze ID Alice a S, které jsou zašifrované v kryptogramu, takže jsou ostatním kromě Boba nečitelné, čímž je identita Alice skryta. Pokud mají identifikátory uživatelů konstantní délku, pak má konstantní délku i kryptogram, proto není z jeho délky možné zjistit žádné informace. Netestovatelnost identity Boba Žádný uživatel nemá možnost vygenerovat ověřovací údaje jménem Alice, aby otestoval, zda se autentizuje právě Bob. Toho je dosaženo dvojím zabezpečením, při němž jsou ověřovací hodnoty digitálně podepsány Alicí a navíc Bobova odpověď není závislá na jeho identitě. Pokud by například Eva chtěla otestovat, kdo se autentizuje, přiměla by k tomu Boba, tak musí nejprve zvolit čí identitu bude testovat. Poté by zjistila, zda se tato identita autentizuje nebo ne. Eva tak má možnost otestovat pouze jednu identitu za běh protokolu. 23
25 1.5 RMI - Remote Method Invocation Java RMI je technologie programovacího jazyka java sloužící ke vzdálenému volání metod, tedy že z jednoho virtuálního stroje lze volat metody objektů na jiném virtuálním stroji, který se nachází na jiném počítači. RMI byla využívána i jinými aplikacemi psanými například v jazyce C++, proto vznikla nová verze RMI-IIOP (Java Remote Method Invocation over the Internet Inter-Orb Protocol), která je nezávislá na jazyce a platformě. ORB (Object Request Broker) je zprostředkovatel objektových služeb, který zahrnuje mechanismy pro vyhledávání požadovaného objektu, generování a přenos požadavků, parametrů a výsledků na úrovni komunikace mezi systémy. RMI-IIOP vychází z architektury CORBA (Common Object Request Broker Architecture), která je určena k usnadnění komunikace mezi systémy založenými na různých platformách. Tato technologie tak v sobě spojuje nejlepší vlastnosti technologie CORBA a RMI. Při použití RMI-IIOP, nebo jiných distribuovaných aplikací založených na technologii Java, neexistuje jednoznačné rozhraní pro komunikaci mezi vrtsvami RMI systému. Toto rozhraní je pak definováno pomocí IDL (Interface Definition Language) Architektura RMI Architektura je typu klient-server a skládá se ze 3 vrstev: vrstvy stub a skeleton, vrstva vzdálené reference a transportní vrstva. Tyto vrstvy jsou zobrazeny na obrázku
26 Klient Server Aplikace Stuby Vrstva vzdálené reference Skeletony Vrstva vzdálené reference RMI Systém Transportní vrstva Obr. 1.5: Architektura RMI Na straně klienta se nachází stub a na straně serveru skeleton. Klient vyvolává metody na stubu, na kterém se provede navázání spojení se vzdáleným virtuálním strojem, který obsahuje vzdálený objekt. Poté se vytvoří tzv. marshall stream (marshalling), který obsahuje informace o vzdáleném objektu, název volané metody, a ostatní informace a odešle ho na server. Skeleton, který je na straně serveru, přijme marshall stream, rozbalí ho (unmarshalling) a vyvolá danou metodu. Poté zachytí návratovou hodnotu, případně výjimku, a vytvoří návratový marshall stream, který odešle zpět klientovi. Na stubu se návratový marshall stream rozbalí a vrátí klientovi návratovou hodnotu nebo výjimku. Vrstva vzdálené reference (Remote Reference Layer) je využívána pro přenos dat mezi stubem a skeletonem. Transportní vrstva (Transport Layer) je dělena na 2 části. Ve spodní části se nachází protokol TCP/IP (Transmission Control Protocol/Internet Protocol) a v horní části je JRMP (Java Remote Method Protocol), což je proprietární protokol, který se stará o komunikaci mezi klientem a serverem. JRMP byl v nové verzi nahrazen IIOP, který nevyžaduje použití třídy skeleton. K nalezení vzdálené služby klient využívá jméno nebo adresář služeb, které jsou provozovány na známé adrese a portu. RMI využívá RMI registr, který se nachází na každém stroji. 25
27 1.5.2 Komunikace RMI-IIOP Jak bylo popsáno v předchozí kapitole, tak technoligie RMI-IIOP využívá IIOP, který je definován jako implementace protokolu GIOP (General Inter-ORB Protocol), což je obecný protokol pro komunikaci mezi různými ORB nad protokolem TCP/IP. GIOP definuje formát požadavků a odpovědí. Při komunikaci klient iniciuje spojení, zatímco server je pasivní a pouze čeká na navázání spojení od klienta. Podle [ 4] je mezi klientem a serverem definováno celkem 7 typu zpráv: Tab. 1.1: Typy zpráv GIOP Typ zprávy zdroj popis Žádost (Request) klient volání metody vzdáleného objektu Odpověď (Reply) server výsledek metody Zrušení požadavku (CancelRequest) klient zrušení předcházejícího požadavku Vyhledávání (LocateRequest) klient zjištení umístění vzdál. objektu Odpověď na vyhledávání server indikuje, zda server implementuje (LocateReply) objekt, nebo předá volání dále Uzavření spojení (CloseConnection) server uzavření spojení Chyba (MessageError) oba reakce na předchozí zprávu Request Message Žádost slouží klientovi k provádění operací na vzdáleném serveru. Zpráva obsahuje všechny potřebné informace jako je identifikace objektu, jméno operace, atd. Jelikož žádost využívá IDL rozhraní, tak formát podporuje všechny syntaxe, které se mohou v IDL objevit. Zpráva žádosti je rozdělena na hlavičku a tělo. Formát hlavičky je znázorněn tabulkou 1.2. Tab. 1.2: Formát hlavičky žádosti GIOP header service_contexts request_id response_expected reserved object_key operation requesting_principal 26
28 Popis jednotlivých polí: Pole service_contexts specifikuje kontext služby. To je využíváno službou CORBA. Pole request_id se používá pro přidělení jednoznačného identifikátoru žádosti. Response_expected indikuje, zda se jedná o obousměrnou komunikaci, nebo ne. Většinou nabývá hodnoty TRUE - očekává se odpověď. Další pole je rezerva pro budoucí použití. Object_key je použit k identifikaci objektu na straně serveru, který je volán. Operation je název volané operace. Poslední pole requesting_principal identifikuje uživatele, který žádost vyvolal. Reply Message Zpráva odpovědi je zasílána ze serveru jako odpověď na žádost. Většinou obsahuje návratovou hodnotu volané operace nebo vyjímku. Hlavička se skládá ze 3 následujících částí: Service_context je stejné jako u žádosti. Request_id, což je identifikátor žádosti na kterou se odpovídá. Reply_status vrací stav odpovědi. V případě normální odpovědi (NO_EX- CEPTION) tělo obsahuje návratovou hodnotu. Pokud nastane problém, tak vrací chybovou hlášku (USER_EXCEPTION SYSTEM_EXCEPTION LOCATION_FORWARD) a tělo obsahuje detailnější informace o chybě. 27
29 2 NÁVRH SYSTÉMU PRO ANONYMNÍ PŘE- DÁVÁNÍ ZPRÁV Cílem diplomové práce je realizace systému pro anonymní předávání zpráv založená na protokolu pro anonymní autentizaci. Tento stav je zobrazený na obrázku 2.1. Odesílatel Server Příjemce Obr. 2.1: Anonymní předávání zpráv Odesílatel vystupuje jako Alice, tzn. že vytvoří zprávu, zašifruje ji a připojí k ní ověřovací hodnoty. Zprávu a ověřovací hodnoty odešle na server uživatel Eva. Příjemce Bob tyto hodnoty ze serveru získá a autentizuje se vůči serveru. Pokud je vše v pořádku, je mu zaslána zpráva, kterou dešifruje a zobrazí. 28
30 2.1 Návrh komunikace mezi klientem a serverem Pro realizaci systému pro anonymní předávání zpráv jsem se rozhodl použít programovací jazyk java vzhledem k jeho jednoduchosti a přenositelnosti. Také umožňuje používání různých balíčků, čímž si ulehčíme práci například při programování síťové komunikace. Při návrhu komunikace mezi klientem a serverem jsem použil technologii RMI- IIOP, jež je popsána v kapitole 1.5. Jak z textu vyplývá, dochází k situaci, při které klient vzdáleně volá metody uložené na serveru. Proto veškerá iniciativa probíhá ze strany klienta. Z tohoto důvodu využijeme k přenosu hodnot mezi klientem a serverem tyto metody. Pokud potřebujeme přenášet hodnoty od klienta k serveru, využijeme vstupní parametry metod. Zatímco pro opačný směr zvolíme návratové hodnoty metod. Na obrázku 2.2 je zobrazen diagram komunikace mezi klientem a serverem. Jedná se o základní princip pro jednoho uživatele. 29
31 Klient Server Získání veřejných paramerů Žádost() Odpověď(p, g, q) Kontrola, zda jsou vygenerovány veřejné parametry, případně se vygenerují. Generování soukromého a veřejného klíče a, A Žádost(UN, A) Uložení klienta do databáze Odesílatel Příjemce Vytvoření zprávy a generování ověřovacích hodnot Generování šifrovacích hodnot a vytvoření kryptogramu Žádost() Odpověď(seznam klíčů) Žádost(X E, C, F, Info) Odpověď(potvrzení) Získání seznamu veřejných klíčů Vytvoření výzvy a zanechání zprávy v, V Konec Kontrola výzev Žádost() Odpověď(seznam) Získání seznamu všech výzev Výpočet klíče a vytvoření odpovědi Žádost(Id, O ) Odpověď(Zpráva) Vytvoření odpovědi a porovnání (O, O ) Konec Obr. 2.2: Schéma komunikace mezi klientem a serverem 30
32 Na začátku každý klient potřebuje získat veřejné parametry. Proto zavolá metodu na serveru, na kterém se zkontroluje, zda jsou již tyto paramatry vygenerovány. Pokud ne, tak se vygenerují a pošlou se zpět klientovi. Klient pomocí parametrů vygeneruje soukromý a veřejný klíč. Veřejný klíč, spolu se svým uživatelským jménem, zašle na server, na kterém se tyto údaje uloží do databáze. Nyní si klient zvolí, zda bude odesílatel či příjemce. V případě odesílatele klient vytvoří zprávu a na základě veřejného klíče příjemce vygeneruje ověřovací hodnoty. Poté vygeneruje šifrovací hodnoty a vytvoří kryptogram. Následně tyto hodnoty společně s řetězcem Info zašle na server, na kterém se pomocí nich vytvoří výzva. Tímto jeho práce končí. Příjemce ze serveru získá seznam všech výzev a pokusí se vůči nim autentizovat. Pokud se mu to podaří, znamená to, že daná výzva je určená pro něj. Poté zkontroluje řetězec Info, na jehož základě se rozhodne, zda zprávu přijme nebo ne. V případě nepřijetí ukončí svou činnost, v opačném případě vytvoří odpověď, pomocí které proběhne ověření uživatele na serveru a poté je mu zaslána zašifrovaná zpráva. 31
33 2.2 Popis programu pro komunikaci využívající RMI-IIOP Základní části Základem síťové komunikace pomocí RMI-IIOP je vzdálené rozhraní, které je v jazyce java definováno jako instance třídy. Vzdálené rozhraní Interface.java definuje všechny metody, které se budou volat ze vzdálených strojů. Další částí je implementace daného rozhraní Implementace.java. Tato třída obsahuje těla metod definovaných v Inteface a konstruktor. Třída Server.java vytváří instance implementací vzdálených objektů neboli referenci na vzdálený objekt. Reference se poté registruje na serveru pomocí inicializačního kontextu. Nyní klient může vyhledat objekt podle názvu (pomocí jmenné služby). V našem případě budeme používat Naming Service, která je součástí ORB Daemon. V třídě Klient.java se nejprve získá reference k vzdálenému objektu pomocí Naming Service a poté se vytvoří odkaz na Interface, pomocí kterého se dané metody volají. Kompilace Pro spuštění jednotlivých částí je potřeba tyto zdrojové java soubory zkompilovat. Ke kompilaci použijeme javac neboli java kompilátor, čímž nám vzniknou class soubory. Nyní musíme vytvořit stub soubor pro klienta a tie soubor pro server (obdoba skeleton souboru). K vytvoření spustíme rmic, což je RMI kompilátor, s parametrem -iiop pomocí příkazu rmic-iiop Implementace. Výsledný stav a komunikace je pak znázorněn na obrázku
34 Interface.class Klient RMI kompilace Implementace.class Server _Interface_Stub.class _Impl_Tie.class ORB GIOP/IIOP ORB Obr. 2.3: Schéma komunikace pomocí IIOP Spuštění Server Na počítači, na němž poběží server, nejprve spustíme Naming Service pomocí ORB Daemon s parametry InitialPort - používá se port 1050 a InitialHost - jméno počítače se serverem: orbd -ORBInitialPort ORBInitialHost servermachinename Poté spustíme samotný server: java Server -ORBInitialPort 1050 zde parametr InitialHost můžeme vynechat, protože Server běží na stejném počítači jako Naming Service. Klient Na klientském počítači spustíme klienta obdobně jako server: java Klient -ORBInitialHost nameserverhost -ORBInitialPort
35 3 REALIZACE SYSTÉMU PRO ANONYMNÍ PŘEDÁVÁNÍ ZPRÁV Celý systém je rozdělen na 2 části - Klient a Server. Na serverovém stroji běží Naming service, která slouží ke komunikaci se serverem, a také samotný server. K tomuto serveru se pak připojují jednotliví klienti. Pro klienta bylo vytvořeno jednoduché grafické rozhraní pro lepší ovládání programu. 3.1 Struktura programu Server Serverová část se skládá z komunikačního rozhraní a jeho tříd. Třída Server.java Třída Server.java obsahuje pouze hlavní metodu, která vytvoří instanci pro implementaci vzdáleného rozhraní a poté se zaregistruje v Naming service. Rozhraní ComInterface.java Toto rozhraní slouží ke komunikaci mezi klientem a serverem a obsahuje pouze hlavičky metod volaných na serveru. Třída ComImpl.java Zde se nachází implementace jednotlivých metod, které jsou volány na serveru. Tyto metody slouží ke kontrole spojení se serverem, získání, případně vygenerování veřejných parametrů. Dále jsou zde metody pro vytvoření a získání výzev, ověření příjemce a odstranění výzvy. V této třídě se také nachází seznam připojených uživatelů a jejich veřejných klíčů a seznam všech výzev a zpráv. Třída User.java Tato třída definuje strukturu jednotlivých uživatelů. Obsahuje jejich uživatelské jméno a veřejný klíč. 34
36 Třída Challenge.java A tato třída definuje strukturu jednotlivých výzev. Každá výzva se skládá z následujících hodnot: Id - identifikátor výzvy Xe, F - parametry pro dešifrování, V - parametr výzvy, ck - zašifrovaný klíč, info - řetězec info, cip, hash - typ použité hašovací a šifrovací funkce. UML diagram - Server Na obrázku 3.1 je zobrazen UML (Unified Modeling Language) diagram tříd, který znázorňuje vztahy mezi třídami a rozhraním. Přesnější informace o jednotlivých třídách a metodách jsou popsány v dokumentaci přiložené na CD. 35
37 Obr. 3.1: UML diagram serveru Klient Klientská aplikace se opět skládá z několika tříd a grafického rozhraní. Třída Main.java Tato třída slouží ke spuštění klientské aplikace, čímž dojde k zobrazení grafického rozhraní a načtení dat z konfiguračního souboru. 36
38 Grafické rozhraní Gui.fxml Toto rozhraní slouží k registraci uživatelů a vytváření nebo zobrazování výzev. Skládá se z tlačítek, textových polí a popisků. Třída Graphics.java Pomocí této třídy spolu komunikuje grafické rozhraní a třída Client. Jedná se o metody spuštěné při akci provedené v grafickém rozhraní jako je stisk tlačítka nebo výběr položky z výběrového pole. Třída Client.java Jedná se o hlavní klientskou třídu, která komunikuje se serverem. V této třídě jsou prováděny všechny důležité operace jako je volba klíčů a parametrů, šifrování a dešifrování zpráv, tvorba a kontrola podpisu zprávy, atd. UML diagram - Klient Na obrázku 3.2 je ukázán UML diagram tříd pro klienta. Obr. 3.2: UML diagram klienta 37
39 3.2 Časový diagram klientské aplikace Celý průběh aplikace je znázorněn pomocí časového diagramu na obrázku 3.3. V tomto diagramu je znázorněna posloupnost jednotlivých metod různých tříd, provedené akce v grafickém rozhraní i komunikace se serverem. Spuštění klientské aplikace probíhá pomocí metody Start ve třídě Main, která zobrazí grafické rozhraní. Dále následuje metoda main sloužící k načtení dat z konfiguračního souboru. Po zobrazení se vytvoří reference pro komunikaci se serverem a dané spojení se zkontroluje. Poté aplikace přejde do idle stavu, což je stav kdy nic nedělá, jen čeká na akci uživatele v grafickém rozhraní. V tomto případě čeká na stisk tlačítka OK. Po vložení jména a stisku tlačítka OK se uživatelské jméno (Username UN) zkontroluje a ověří na serveru, případně se zadá nové. Ze serveru se načtou veřejné parametry p, g a q pomocí metody Receive PGQ. Tyto parametry se použijí k tvorbě soukromého a veřejného klíče. Dále se na serveru vytvoří nový uživatel, který se uloží do seznamu uživatelů a aplikace přejde do idle stavu. Při stisku tlačítka Create Challenge, se ze serveru načte seznam uživatelů (List of users) do výběrového pole. Poté co dojde k výběru příjemce, povolí se tlačítko send. Po odeslání zprávy se ze seznamu uživatelů získá veřejný klíč příjemce, vygenerují se potřebné parametry a vytvoří se výzva, která se společně se zprávou odešle na server. Poté se opět přejde do idle stavu. Při stisku tlačítka Check Challenge se ze serveru získají všechny výzvy a zjišťuje se, zda je některá z nich určena pro daného uživatele, pomocí metody Check chal (Check challenge kontrola výzvy). V případě, že ano, tak se vypočítá ověřovací klíč a proběhne ověření podpisu klíče. Když je i ten v pořádku, vytvoří se odpověď, která se ověří na serveru. Pokud je ověření v pořádku, je uživateli zaslána zpráva. Nakonec se zpráva dešifruje a zobrazí se. Po zavření aplikace se odstraní záznamy o uživateli ze serveru a aplikace se ukončí. 38
40 Timeline application Main Gui Graphics Client ComInterface ComImpl Start Main Show window Get reference to server Check con Check connection Check connection Idle state Click OK Click OK Check UN Check username Check username true Create user Receive PGQ Receive PGQ Idle state Private key, Public key Add user Add user Click Create Challenge Click Create Get users Get list of users Get list of users Enable Send true Choosen receiver Click Send Click Send Create challenge Idle state Verificaton parametrs, crypted key, crypted message Create challenge Create challenge Click Check Challenge Click Check Idle state false Check chal Get challenges Get challenges true Get key Idle state false Check signature Check sign true Idle state false Verification Verif Verification Verification Display message true Click Close Click close Remove user Remove user Time Close aplication Obr. 3.3: Časový diagram klientské aplikace 39
41 3.3 Spuštění programu Pro spuštění programu stačí mít nainstalován JRE (Java Runtime Environment) verze 1.6 nebo vyšší, který je určen koncovým uživatelům ke spouštění java aplikací. Nejprve je potřeba spustit Naming Service a server. Poté se mohou začít připojovat jednotliví uživatelé Serverová část Služba Naming service se spouští z příkazového řádku pomocí orbd s parametry, které definují IP (Internet Protocol) adresu a port serverového stroje. Server se spouští také z příkazové řádky se stejnými parametry. Pro jednoduší spuštění byl vytvořen dávkový soubor Server-run.bat, který se postará o spuštění Naming Service i serveru. Jeho obsah je znázorněn na obrázku 3.4. Obr. 3.4: Spuštění serveru Před spuštěním je potřeba v daném souboru nastavit správné IP adresy a porty. Poté může být soubor spuštěn. Pokud je vše v pořádku, tak se zobrazí 2 konzole naming service a server. V první je zobrazeno: Naming service: Ready... a ve druhé: Server: Ready.... V konzoli pro server se zobrazují kontrolní výpisy o počtu uživatelů Klientská aplikace Nyní se mohou začít připojovat jednotliví klienti. Pro jednoduchost byl vytvořen spustitelný soubor Client-run.jar, který v sobě obsahuje všechny potřebné knihovny. Ke spuštění aplikace slouží hlavní klientská třída Main.java. Tato třída obsahuje 2 metody a to metodu Main a metodu Start. Main slouží k načtení konfiguračních dat z textového souboru Config.txt. Tento soubor se musí nacházet ve stejné složce 40
42 jako je Client-run.jar soubor. Konfigurační soubor definuje IP adresu a port serveru a také slouží k volbě hašovací funkce a šifrovací funkce (pro kontrolu jsou vypsány možné hodnoty a jejich bitové délky). To je ukázáno na obrázku 3.5. Obr. 3.5: Obsah konfiguračního souboru Metoda Start slouží ke spuštění a zobrazení grafického rozhraní tzv. gui. Toto rozhraní se načítá ze souboru Gui.fxml, který pro svůj běh potřebuje knihovnu javafx. Tato knihovna je již zahrnuta v.jar souboru. Pro nastavení vzhledu aplikace byly použity kaskádové styly, neboli css (cascading style sheets). Tyto styly jsou načteny ze souboru App.css. Po spuštění již dojde k navázání spojení se serverem, kontrole spojení a zobrazení samotné aplikace. Výsledek spojení je zobrazen pod textovým polem, což je zobrazeno na obrázku
43 Obr. 3.6: Po spuštění aplikace Pokud je vše v pořádku, dojde k výpisu Connection established.. V případě, že někde nastane problém, tak se červeným písmem vypíše ERROR: Connection refused! a při stisku tlačítka OK, dojde k jeho zablokování a aplikace vás nepustí dál. V případě problému zkontrolujte: správné spuštění serveru, dostupnost počítače, na kterém se server spouští, IP adresy a port nebo nastavení firewallu. Poté zkuste aplikaci znovu spustit. Poslední část metody Main obsahuje funkci, která se spuští při ukončení grafického rozhraní. Tato funkce zkontroluje, zda je uživatel registrován na serveru. Pokud ano, tak je ze serveru odstraněn. Poté je již aplikace řádně ukončena. 42
44 3.4 Registrace uživatelů Pokud je spojení v pořádku, aplikace vás nejprve vyzývá k zadání uživatelského jména. Po stisku tlačítka OK dojde ještě ke kontrole uživatelského jména, zda se toto jméno již na serveru nevyskytuje nebo zda nebyl zadán prázdný řetězec. Případně zadejte jiné uživatelské jméno. Před přechodem do hlavního okna však probíhá několik funkcí a výpočtů. Každý klient si musí vytvořit soukromý a veřejný klíč, proto potřebuje získat ze serveru veřejné paramatry. Na serveru se nejrve zkontroluje, zda jsou parametry vygenerovány, pokud nejsou, tak dojde k jejich generování. To je znázorněno následujícím zdrojovým kódem: /** * Gets public parameters p, g and q. array of big integers, [0] = p, [1] = g and [2] = q */ public BigInteger[] recivepgq() throws java.rmi.remoteexception { if (p.intvalue() == 0) { p = BigInteger.probablePrime(512, rnd); q = BigInteger.probablePrime(160, rnd); } BigInteger h = BigInteger.probablePrime( , rnd); do { h = h.add(biginteger.one); p = h.multiply(q).add(biginteger.one); g = h.modpow(h, p); } while (!p.isprobableprime(100) g.equals(biginteger.one)); } BigInteger PGQ[] = new BigInteger[3]; PGQ[0] = p; PGQ[1] = g; PGQ[2] = q; return PGQ; 43
45 Nyní již může být zvolen soukromý a veřejný klíč a klient zaregistrován na serveru. Dále jsou do programu načteny zvolené hašovací a šifrovací funkce. Pokud by byla zadána nedovolená nebo neexistující funkce, tak se zvolí výchozí hodnota, což je pro haš MD5 a pro šifru AES. Poté je již zobrazeno hlavního okno aplikace. To je ukázáno na obrázku 3.7. Obr. 3.7: Hlavní okno aplikace Nyní se uživatel může rozhodnout, zda vytvoří novou výzvu nebo zkontroluje, zda se na serveru nachází nějaká výzva určená pro něj. 44
46 3.5 Vytvoření výzvy Po stisku tlačítka Create challenge se zobrazí volby pro vytvoření výzvy, což je ukázáno na obrázku 3.8. Obr. 3.8: Vytvoření výzvy Zde si uživatel vybere příjemce výzvy, čímž dojde k povolení tlačítka send. Pokud k serveru není nikdo kromě nás připojen, nelze výzvu odeslat. V opačném případě již můžeme vyplnit řetězece info a zpráva a výzvu odeslat. Při vyplňování je potřeba brát zřetel na to, že řetězec info je přenášen v čisté podobě, to znamená, že útočník, který zachytí komunikaci, tento řetězec uvidí. Naproti tomu řetezec zpráva je šifrovaný, proto jeho obsah nikdo, kromě správně autentizovaného příjemce, nezjistí. Po správném odeslání a vytvoření výzvy na serveru se zobrazí: Challenge created.. V případě, že se výzva nevytvoří, zobrazí se chybová hláška: ERROR: Challenge uncreated!. 45
47 O vytvoření výzvy se stará metoda createchal, která se skládá z několika částí: Volba šifrovacích a ověřovacích klíčů Zde je zvolen soukromý f a veřejný F (v kódu vyjádřen jako ff) ověřovací klíč a šifrovací klíče z, Z (zz) a Xe. Popis těchto klíčů byl rozebrán v části Výpočet je znázorněn následujícím zdrojovým kódem: final BigInteger f = new BigInteger(bitLength, rnd); final BigInteger ff = g.modpow(f, p); final BigInteger z = new BigInteger(bitLength, rnd); final BigInteger zz = b.modpow(z, p); final BigInteger xe = g.modpow(z, p); Výpočet podpisových parametrů klíče Následující zdrojový kód ukázuje výpočet podpisových parametrů r a s, které jsou spočítány z haše klíče f, parametru k a veřejných parametrů p, g, q. Postup výpočtu byl detailně rozebrán v dig.update(f.tobytearray()); final BigInteger h = new BigInteger(dig.digest()); final BigInteger k = new BigInteger(64, rnd); final BigInteger r = (g.modpow(k, p)).mod(q); final BigInteger tmp3 = (h.add(r.multiply(sk)).mod(q)); final BigInteger s = (tmp3.multiply(k.modinverse(q))).mod(q); Zašifrování ověřovacího klíče Přenášený klíč key se skládá z podpisových parametrů, veřejného klíče odesílatele a samotného ověřovacího klíče f, které jsou odděleny pomocí oddělovacího znaku #. Z šifrovacího klíče Z se vypočítá jeho haš hodnota pomocí zvolené hašovací funkce. K tomuto účelu byla vytvořena funkce getkeyfromnum. Z této haše se vytvoří tajný klíč pk, kterým se zašifruje přenášený klíč key, čímž vznikne kryptogram ck (crypted key). To je znázorněno zdrojovým kódem. 46
48 final SecretKey pk = getkeyfromnum(dig, cip, zz); c.init(cipher.encrypt_mode, pk); final String key = r.tostring() + "#" + s.tostring() + "#" + vk.tostring()+ "#" + f; final byte[] ck = c.dofinal(key.getbytes()); Zašifrování zprávy Zašifrování zprávy probíhá stejným způsobem, jako byl zašifrován klíč. Zpráva je zašifrována stejným klíčem f a vznikne kryptogram cm (crypted message). Vytvořená výzva je spolu se zašifrovanou zprávou zaslána na server. Na serveru se výzvě přiřadí identifikátor Id, zvolí se soukromý parametr výzvy v, dopočítá se veřejný parametr V a poté je vše uloženo do seznamu výzev. Zašifrovaná zpráva se spolu se svým identifikátorem, který je stejný jako má výzva, uloží do seznamu zpráv. 47
49 3.6 Získání výzvy Při stisku tlačítka Check challenge se ze serveru získá seznam všech výzev. Poté uživatel prochází jednotlivé výzvy a zkouší se vůči nim autentizovat. Pokud se mu to podaří, znamená to, že daná výzva je určena pro něj. Z této výzvy získá ověřovací klíč a podpisové parametry, k ověření pravosti klíče. Pomocí ověřovacího klíče se na serveru ověří identita uživatele. V případě kladného vyhodnocení, je uživateli zaslána zpráva a zobrazí se stav ukázaný na obrázku 3.9. V případě, že žádná výzva není určena pro uživatele, zobrazí se You have no challenges.. Obr. 3.9: Získání výzvy Uživatel zde má zobrazen řetězec info, podle kterého se může rozhodnout, zda si zprávu zobrazí, či nikoliv. Poté je výzva a zpráva ze serveru odstraněna. 48
50 Před získáním zprávy samozřejmě probíhá několik dalších operací. Jsou to: Kontrola výzev Ze serveru je získán seznam všech výzev (ListOfChals) a poté se prochází jednotlivé výzvy (chal). U každé výzvy se nejprve zjistí, zda už byla kontrolována v předchozích průchodech. Identifikátory již zkontrolovaných výzev jsou uloženy v seznamu checked. Pokud výzva nebyla zkontrolována, tak se přejde do bloku try (zkusit). Zde se pomocí metody getkey (popsána dále) vypočítá dešifrovací klíč, s jehož pomocí se zkusí dešifrovat zašifrovaný kryptogram ck (získaný pomocí metody chal.getck()). V případě, že se dešifrování podaří, znamená to, že daná výzva je určena pro nás máme správný soukromý klíč, a můžeme ji dál zpracovávat. V opačném případě nastane vyjímka, kterou zachytí blok catch (chytit) zadali jsme špatný klíč, proto víme, že výzva není pro nás. Její identifikátor je přidán do seznamu zkontrolovaných výzev. Poté můžeme zkontrolovat další výzvu. Pokud není žádná výzva pro nás, metoda vrací hodnotu null. Kontrola výzev je ukázána následujícím kódem: ListOfChals = ci.getchallenges(); for (Challenge chal: ListOfChals) { if (!checked.contains(chal.getid())){ try { Cipher c = Cipher.getInstance(chal.getCip()); c.init(cipher.decrypt_mode, getkey(chal)); byte[] checkkey = c.dofinal(chal.getck()); return chal; } } } return null; } catch (BadPaddingException NoSuchPaddingException InvalidKeyException IllegalBlockSizeException e) { checked.add(chal.getid()); } 49
51 Získání dešifrovacího klíče metoda getkey Pomocí svého soukromého klíče sk a parametru Xe vypočítáme dešifrovací klíč Z. To je potvrzeno v Z tohoto klíče spočítáme jeho haš hodnotu a pomocí ní vytvoříme dešifrovací klíč pk. To je ukázáno následující částí kódu: final BigInteger zz = chal.getxe().modpow(sk, p); final SecretKey pk = getkeyfromnum(dig, Scip, zz); return pk; Kontrola podpisu klíče V další části se pomocí dešifrovacího klíče získá přenášený řetězec dk, který se pomocí oddělovacího znaku rozdělí na jednotlivé parametry. Poté se ověří správnost získaného klíče pomocí jeho podpisu. Při ověření se z haše přijatého klíče f, podpisových parametrů r, s a veřejného klíče odesílatele Svk vypočítá parametr ver. Pokud ver odpovídá r, pak je podpis v pořádku a tudíž ověřovací klíč nebyl změněn. Rozdělení a ověření je ukázáno na následujícím kódu: String[] splitter = dk.split("#"); if (splitter.length == 4) { final BigInteger r = new BigInteger(splitter[0]); final BigInteger s = new BigInteger(splitter[1]); final BigInteger Svk = new BigInteger(splitter[2]); final BigInteger f = new BigInteger(splitter[3]); dig.update(f.tobytearray()); final BigInteger h = new BigInteger(dig.digest()); final BigInteger tmp3 = s.modinverse(q); final BigInteger a = tmp3.multiply(h.mod(q)).mod(q); final BigInteger b = tmp3.multiply(r.mod(q)).mod(q); final BigInteger ver = ((g.modpow(a, p)).multiply(svk.modpow(b, p))).mod(p).mod(q); if (ver.equals(r)) return f; } return BigInteger.ZERO; 50
52 Ověření uživatele Po získání ověřovacího klíče f vypočítáme kmacc klíč. Přesný postup ověření na straně klienta i serveru je popsán v K ověření se používá tzv. odpověď o, která vznikne zašifrováním haše řetězce Info. K zašifrování použijeme klíč pk, který opět vytvoříme pomocí metody getkeyfromnum, kdy vytvoříme haš hodnotu z klíče kmacc. Odpověď je zaslána na server, kde se obdobným způsobem také vypočítá odpověď. Pokud jsou stejné je ověření v pořádku a uživateli je zaslána zašifrovaná zpráva. Po získání zprávy proběhne její dešifrování a zobrazení. Poté je výzva i zpráva ze serveru odstraněna. Výpočet odpovědi na straně klienta je ukázán následujícím kódem: final BigInteger kmacc = chal.getvv().modpow(f, p); final SecretKey pk = getkeyfromnum(dig, Scip, kmacc); dig.reset(); dig.update(chal.getinfo().getbytes()); c.init(cipher.encrypt_mode, pk); final byte[] o = c.dofinal(dig.digest()); return (ci.verification(chal.getid(), o)); Pokud je autentizace neplatná, tak se uživateli zobrazí hláška: Authentication is rejected! a výzva se zprávou zůstane dál na serveru. 51
53 3.7 Testování Program byl testován na operačních systémech Windows XP a Windows 7. Testování probíhalo pomocí virtuálních strojů, na kterých byl operační systém Windows XP (anglická verze). U této verze nastal problém se zobrazením českých znaků, jako jsou písmena s háčkem nebo čárkou. Problém jsem vyřešil nastavením podpory pro český jazyk a restartováním stroje. Komunikace mezi systémy Windows 7 a Windows XP také nebyla žádným problémem. Během tohoto testování byl zachycen přenos dat pomocí programu Wireshark, který slouží ke sledování a analýze síťového provozu. Zachycený přenos, který probíhal na serveru je zobrazen na obrázku 3.10, na kterém je znázorněn pomocí tzv. Flow graph. 52
54 Obr. 3.10: Zachycená komunikace Z obrázku vyplývá, že komunikace probíhala mezi třemi stroji, při které se na adrese nacházel server a k němu se připojili 2 uživatelé jako Alice a jako Bob. Jak bylo popsáno v kapitole 1.5, tak komunikace probíhá pomocí žádostí a odpovědí, a všechny žádosti jsou generovány ze stran klientů. Dále zde můžeme vidět, že nejprve proběhlo připojení k serveru a následné zaregistrování uživatele. Dále Alice vytvořila na serveru výzvu. Bob ji přijal, zkontroloval a poté proběhlo úspěšné ověření Boba a zaslání zprávy. Nakonec se oba uživatelé odhlásili ze serveru. V komentářích jsou zobrazeny jednotlivé metody, které se v komunikaci vyskytují. 53
55 Na obrázku 3.11 se podíváme detailněji na obsah přenášených dat. Obr. 3.11: Zachycená data při registraci uživatele Z těchto dat můžeme vyčíst následující parametry: GIOP protokol použitý pro komunikaci adduser název metody volané na serveru IDL:omg.org/CORBA/WStringValue:... Alice definuje typ přenášený přes rozhraní a jeho hodnotu přenáší uživatelské jméno RMI:java:math:BigInteger: E2F79B6E7A470003:8CFC9F1FA93BFB1D přenos čísla typu BigInteger přenáší veřejný klíč Přesnější popis je v kapitole 1.5.2, kde je struktura hlavičky detailněji rozepsána. 54
56 Nyní se zaměříme na bezpečnost přenášených dat, což je zobrazeno na obrázku Zde jsou zobrazena data zachycená při vytváření výzvy, ze kterých zjistíme veřejný parametr Xe, řetězec info Test, typ použité hašovací funkce MD5 a typ šifrovací funkce DESEDE. Obsah zprávy nebo ověřovací klíč z těchto dat nijak nevyčteme, to je bezpečně zašifrováno. Obr. 3.12: Zachycená data při vytváření výzvy Dále probíhalo i síťové testování, kdy na stolním počítači běžel server a na 2 noteboocích klientské aplikace. Vše probíhalo bez problémů, jen je potřeba povolit komunikaci ve firewallu. 55
Využití Diffie-Hellmanova protokolu pro anonymní autentizaci
Rok / Year: Svazek / Volume: Číslo / Issue: 2013 15 1 Využití Diffie-Hellmanova protokolu pro anonymní autentizaci The use of Diffie-Hellman protocol for anonymous authentication Petr Ležák xlezak02@stud.feec.vutbr.cz
Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA
Common Object Request Broker Architecture FJFI ČVUT 9. 12. 2010 Osnova 1 2 3 4 5 Standard umožňující propojení aplikací psaných v různých jazycích a běžících na různých strojích a architekturách. Definuje
RMI - Distribuované objekty v Javě
Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování
SSL Secure Sockets Layer
SSL Secure Sockets Layer internetové aplikační protokoly jsou nezabezpečené SSL vkládá do architektury šifrující vrstvu aplikační (HTTP, IMAP,...) SSL transportní (TCP, UDP) síťová (IP) SSL poskytuje zabezpečenou
Digitální podepisování pomocí asymetrické kryptografie
Digitální podepisování pomocí asymetrické kryptografie 11. dubna 2011 Trocha historie Asymetrické metody Historie Historie Vlastnosti Asymetrické šifrování 1976 Whitfield Diffie a Martin Hellman první
Správa přístupu PS3-2
Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Správa přístupu PS3-2 1 Osnova II základní metody pro zajištění oprávněného přístupu; autentizace; autorizace; správa uživatelských účtů; srovnání současných
java remote method invocation Kateřina Fricková, Matouš Jandek
java remote method invocation Kateřina Fricková, Matouš Jandek Distribuovaný systém počítačový systém, ve kterém jsou jednotlivé komponenty propojeny počítačovou síťí komponenty systému sdílí cíl, kterého
Šifrová ochrana informací věk počítačů PS5-2
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-2 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2 Osnova
Šifrová ochrana informací věk počítačů PS5-2
Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-2 1 Osnova šifrová ochrana využívající výpočetní techniku např. Feistelova šifra; symetrické a asymetrické šifry;
Diffieho-Hellmanův protokol ustanovení klíče
Diffieho-Hellmanův protokol ustanovení klíče Andrew Kozlík KA MFF UK Diffieho-Hellmanův protokol ustanovení klíče (1976) Před zahájením protokolu se ustanoví veřejně známé parametry: Konečná grupa (G,
ElGamal, Diffie-Hellman
Asymetrické šifrování 22. dubna 2010 Prezentace do předmětu UKRY Osnova 1 Diskrétní logaritmus 2 ElGamal 3 Diffie-Hellman Osnova 1 Diskrétní logaritmus 2 ElGamal 3 Diffie-Hellman Osnova 1 Diskrétní logaritmus
Elektronický podpis. Základní princip. Digitální podpis. Podpis vs. šifrování. Hashování. Jednosměrné funkce. Odesílatel. Příjemce
Základní princip Elektronický podpis Odesílatel podepíše otevřený text vznikne digitálně podepsaný text Příjemce ověří zda podpis patří odesílateli uvěří v pravost podpisu ověří zda podpis a text k sobě
Kryptografie založená na problému diskrétního logaritmu
Kryptografie založená na problému diskrétního logaritmu Andrew Kozlík KA MFF UK Diffieho-Hellmanův protokol ustanovení klíče (1976) Před zahájením protokolu se ustanoví veřejně známé parametry: Konečná
ilé aspekty distribuovaných objektových systémů
Pokročil ilé aspekty distribuovaných objektových systémů Petr Grygárek rek 1 Komunikační protokoly 2 General Inter-ORB Interoperability Protocol (GIOP) Původně v CORBA Postupně přejat do RMI Implementace
Asymetrické šifry. Pavla Henzlová 28.3.2011. FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.
Asymetrické šifry Pavla Henzlová FJFI ČVUT v Praze 28.3.2011 Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.2011 1 / 16 Obsah 1 Asymetrická kryptografie 2 Diskrétní logaritmus 3 Baby step -
Common Object Request Broker Architecture
Common Object Request Broker Architecture Tvorba aplikací, jejichž komponenty budou komunikovat přes počítačovou síť Programátor jedné aplikace volá metody vzdálených objektů podobně jako u sebe lokální
Šifrování (2), FTP. Petr Koloros p.koloros [at] sh.cvut.cz. http://sut.sh.cvut.cz
Šifrování (2), FTP Petr Koloros p.koloros [at] sh.cvut.cz http://sut.sh.cvut.cz Obsah Úvod do šifrování FTP FTP server ProFTPd Šifrovaný přístup Virtuální servery Síť FTPek na klíč FTP File Transfer Protokol
8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.
Bezpečnost 8. RSA, kryptografie s veřejným klíčem doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů
Informatika / bezpečnost
Informatika / bezpečnost Bezpečnost, šifry, elektronický podpis ZS 2015 KIT.PEF.CZU Bezpečnost IS pojmy aktiva IS hardware software data citlivá data hlavně ta chceme chránit autorizace subjekt má právo
asymetrická kryptografie
asymetrická kryptografie princip šifrování Zavazadlový algoritmus RSA EL GAMAL další asymetrické blokové algoritmy Skipjack a Kea, DSA, ECDSA D H, ECDH asymetrická kryptografie jeden klíč pro šifrování
I.CA RemoteSeal. Ing. Filip Michl První certifikační autorita, a.s
Technické řešení služby I.CA RemoteSeal Ing. Filip Michl První certifikační autorita, a.s. 5. 4. 2018 Agenda Úvod ARX CoSign vs. DocuSign Signature Appliance Architektura Zřízení služby Aktivace služby
Asymetrická kryptografie a elektronický podpis. Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz
Asymetrická kryptografie a elektronický podpis Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz Obsah cvičení Asymetrická, symetrická a hybridní kryptografie Matematické problémy, na kterých
Autentizace uživatelů
Autentizace uživatelů základní prvek ochrany sítí a systémů kromě povolování přístupu lze uživatele členit do skupin, nastavovat různá oprávnění apod. nejčastěji dvojicí jméno a heslo další varianty: jednorázová
POPIS STANDARDU CEN TC278/WG4. 1 z 5. Oblast: TTI. Zkrácený název: Zprávy přes CN 4. Norma číslo:
POPIS STANDARDU CEN TC278/WG4 Oblast: TTI Zkrácený název: Zprávy přes CN 4 Norma číslo: 14821-4 Norma název (en): Traffic and Traveller Information (TTI) TTI messages via cellular networks Part 4: Service-independent
Přednáška 10. X Window. Secure shell. Úvod do Operačních Systémů Přednáška 10
Přednáška 10 X Window. Secure shell. 1 X Window systém I Systém pro správu oken. Poskytuje nástroje pro tvorbu GUI (Graphical User Interface) a grafických aplikací. Nezávislý na hardwaru. Transparentní
Nastavení DCOM. Uživatelský manuál
Nastavení DCOM Uživatelský manuál Obsah Úvod... 2 Nastavení DCOM pro počítač Hostitel... 3 Operační systém Windows XP... 3 Nastavení vlastností DCOM na Windows XP... 3 Rozšířená nastavení DCOM na Windows
Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP TCP/IP.
Protokol TELNET Schéma funkčních modulů komunikace protokolem TELNET Telnet klient Telnet server login shell terminal driver Operační systém TCP/IP TCP spojení TCP/IP Pseudo terminal driver Operační systém
PV157 Autentizace a řízení přístupu
PV157 Autentizace a řízení přístupu Zdeněk Říha Vašek Matyáš Konzultační hodiny FI MU: B415 St 17:00 18:00 část semestru mimo CZ Microsoft Research Cambridge Email: zriha / matyas @fi.muni.cz Průběh kurzu
Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Digitální podpisy
VY_32_INOVACE_BEZP_08 Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/34.0304 Digitální podpisy Základní myšlenkou elektronického podpisu je obdoba klasického podpisu, jež má zaručit jednoznačnou identifikaci
PSK2-16. Šifrování a elektronický podpis I
PSK2-16 Název školy: Autor: Anotace: Vzdělávací oblast: Předmět: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Jak funguje asymetrická šifra a elektronický podpis Informační
Autorizační systém Uživatelská příručka pro Samoobslužnou aplikaci
Autorizační systém Uživatelská příručka pro Samoobslužnou aplikaci Obsah 1 Základní informace o aplikaci... 2 2 Uživatelský účet... 2 2.1 Dodatečná autentizace... 2 2.2 Aktivace nově založeného uživatelského
Internet Information Services (IIS) 6.0
Internet Information Services (IIS) 6.0 V operačním systému Windows Server 2003 je obsažena i služba IIS v 6.0. Služba IIS poskytuje jak www server tak i některé další služby (FTP, NNTP,...). Jedná se
Informatika Ochrana dat
Informatika Ochrana dat Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008 Obsah Kryptografické systémy s veřejným klíčem, výměna tajných klíčů veřejným kanálem, systémy s veřejným
Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča
Asymetrická kryptografie a elektronický podpis Ing. Dominik Breitenbacher ibreiten@fit.vutbr.cz Mgr. Radim Janča ijanca@fit.vutbr.cz Obsah cvičení Asymetrická, symetrická a hybridní kryptografie Kryptoanalýza
- PC musí být připojené v lokální síti - je bezpodmínečně nutné, aby aplikace Outlook nebyla aktivní)
(CETIN) INSTALACE nové verze aplikace Entrust (ESP Entrust Security Provider) (určeno k šifrování souborů a podepisování souborů a zabezpečení e-mailu (šifrování, podpis), aplikace umožňuje současné použití
On-line dražební systém EDEN návod k použití
On-line dražební systém EDEN návod k použití Obsah dokumentu 1. Registrace uživatele...2 2. Verifikace (ověření) e-mailu...3 3. Zapomenuté heslo...3 4. Přihlášení uživatele...4 5. Změna hesla...5 6. Přehled
Protokol pro zabezpečení elektronických transakcí - SET
Protokol pro zabezpečení elektronických transakcí - SET Ing. Petr Číka Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací, Purkyňova 118, 612 00 Brno,
Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.
Protokol TELNET Schéma funkčních modulů komunikace protokolem TELNET Telnet klient Telnet server login shell terminal driver Jádro TCP/IP TCP/IP Jádro Pseudo terminal driver Uživatel u terminálu TCP spojení
1.1. Základní informace o aplikacích pro pacienta
Registrace a aktivace uživatelského profilu k přístupu do aplikace systému erecept pro pacienta, přihlášení do aplikace systému erecept pro pacienta na základě registrovaného profilu v NIA nebo elektronického
Generování žádosti o certifikát Uživatelská příručka pro prohlížeč Opera
Generování žádosti o certifikát Uživatelská příručka pro prohlížeč Opera První certifikační autorita, a.s. Verze 8.15 1 Obsah 1. Úvod... 3 2. Požadavky na software... 3 3. Instalace kořenového certifikátu
ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE
2011 Technická univerzita v Liberci Ing. Přemysl Svoboda ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE V Liberci dne 16. 12. 2011 Obsah Obsah... 1 Úvod... 2 Funkce zařízení... 3 Režim sběru dat s jejich
Autorizační systém Uživatelská příručka pro Samoobslužnou aplikaci
Autorizační systém Uživatelská příručka pro Samoobslužnou aplikaci (příručku ve formátu PDF si můžete stáhnout zde) Obsah 2.1 Dodatečná autentizace... 2 2.2 Aktivace nově založeného uživatelského účtu...
BRICSCAD V15. Licencování
BRICSCAD V15 Licencování Protea spol. s r.o. Makovského 1339/16 236 00 Praha 6 - Řepy tel.: 235 316 232, 235 316 237 fax: 235 316 038 e-mail: obchod@protea.cz web: www.protea.cz Copyright Protea spol.
Y36PSI Bezpečnost v počítačových sítích. Jan Kubr - 10_11_bezpecnost Jan Kubr 1/41
Y36PSI Bezpečnost v počítačových sítích Jan Kubr - 10_11_bezpecnost Jan Kubr 1/41 Osnova základní pojmy typy šifer autentizace integrita distribuce klíčů firewally typy útoků zabezpečení aplikací Jan Kubr
Asymetrická kryptografie
PEF MZLU v Brně 12. listopadu 2007 Problém výměny klíčů Problém výměny klíčů mezi odesílatelem a příjemcem zprávy trápil kryptografy po několik století. Problém spočívá ve výměně tajné informace tak, aby
Desktop systémy Microsoft Windows
Desktop systémy Microsoft Windows IW1/XMW1 2013/2014 Jan Fiedor, přednášející Peter Solár ifiedor@fit.vutbr.cz, solar@pocitacoveskoleni.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně
Secure Shell. X Window.
Přednáška 10 Secure Shell. X Window. Katedra číslicových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2011 Příprava studijního programu Informatika je podporována projektem financovaným
Evidence požadavků uživatelů bytů a nebytových prostor
Evidence požadavků uživatelů bytů a nebytových prostor Úvod Pro zjednodušení a zprůhlednění Vaší komunikace se správní firmou (dále jen SF ), která má na starost objekt, v němž se nachází bytový či nebytový
Technologické postupy práce s aktovkou IS MPP
Technologické postupy práce s aktovkou IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Technologické postupy práce
I.CA SecureStore Uživatelská příručka
I.CA SecureStore Uživatelská příručka Verze 4.1 a vyšší První certifikační autorita, a.s. Verze 4.17 1 Obsah 1. Úvod... 3 2. Přístupové údaje ke kartě... 3 2.1. Inicializace karty... 3 3. Základní obrazovka...
REGISTRACE A SPRÁVA UŽIVATELSKÉHO ÚČTU
REGISTRACE A SPRÁVA UŽIVATELSKÉHO ÚČTU Obsah 1 Registrace nového uživatele... 3 1.1 Právnická osoba... 3 1.2 Fyzická osoba... 4 1.3 Fyzická osoba podnikající... 5 1.4 Dokončení registrace prostřednictvím
I.CA SecureStore Uživatelská příručka
I.CA SecureStore Uživatelská příručka Verze 4.1 a vyšší První certifikační autorita, a.s. Verze 4.17 1 Obsah 1. Úvod... 3 2. Přístupové údaje ke kartě... 3 2.1. Inicializace karty... 3 3. Základní obrazovka...
UŽIVATELSKÁ PŘÍRUČKA PRO HOMEBANKING PPF banky a.s.
UŽIVATELSKÁ PŘÍRUČKA PRO HOMEBANKING PPF banky a.s. PPF banka a.s., Evropská 2690/17, P.O. Box 177, 160 41 Praha 6 1/13 Obsah: 1. Úvod... 3 2. Vygenerování Transportního klíče a žádost o vygenerování Transportního
SEMESTRÁLNÍ PROJEKT Y38PRO
SEMESTRÁLNÍ PROJEKT Y38PRO Závěrečná zpráva Jiří Pomije Cíl projektu Propojení regulátoru s PC a vytvoření knihovny funkcí pro práci s regulátorem TLK43. Regulátor TLK43 je mikroprocesorový regulátor s
Artlingua Translation API
Artlingua Translation API Dokumentace Jan Šváb, Artlingua, a.s. 2015 Revize: 2015-09-22 - verze API : v1 Obsah Obsah... 2 Předávání dokumentů k překladu... 3 Implementace klientské aplikace pro Translation
JAVA V RMI Java, letní semestr
JAVA RMI Přehled Remote Method Invocation používání vzdálených objektů objekty v jiné VM (na stejném počítači i přes síť) jako by to byly lokální objekty (téměř) pouze volání trvají déle Vzdálené volání
Software pro vzdálenou laboratoř
Software pro vzdálenou laboratoř Autor: Vladimír Hamada, Petr Sadovský Typ: Software Rok: 2012 Samostatnou část vzdálených laboratoří tvoří programové vybavené, které je oživuje HW část vzdáleného experimentu
Postup získání certifikátu pro uživatele WEB aplikací určených pro Sběry dat pro IS VaV
Postup získání certifikátu pro uživatele WEB aplikací určených pro Sběry dat pro IS VaV verze 1.2 Praha 18.12.2002 Obsah WEB aplikace určené pro sběry dat do CEP, CEZ a RIV plně podporují práci s certifikáty.
On-line dražební systém EDEN návod k použití
On-line dražební systém EDEN návod k použití Obsah dokumentu 1. Registrace uživatele... 2 2. Verifikace (ověření) e-mailu... 3 3. Zapomenuté heslo... 3 4. Přihlášení uživatele... 4 5. Změna hesla... 5
Uživatelská příručka IS KP14+ pro Integrované nástroje: Žádost o podporu Strategie CLLD
Uživatelská příručka IS KP14+ pro Integrované nástroje: Žádost o podporu Strategie CLLD Verze: 2.0 Červen 2016 1 Obsah Přehled provedených změn... 2 1. Žádost o integrovanou strategii... 4 1.1. 1.1. 1.2.
Práce s programem MPVaK
Práce s programem MPVaK Tato informace popisuje postup práce s programem "MPVaK Vybrané údaje z majetkové a Vybrané údaje z provozní evidence. Jsou v ní popsány nejdůležitější úlohy, které budete s programem
TDP RPort 1.0. uživatelská příručka. 12. července 2007 Na slupi 2a, Praha 2
uživatelská příručka 12. července 2007 Na slupi 2a, Praha 2 1 Co je? TDP RPort ( remote port ) umožňuje z klientské stanice navázat šifrované spojení pomocí protokolu TCP se sériovým portem serveru a zpřístupnit
INSTALACE SOFTWARE PROID+ NA MS WINDOWS
INSTALACE SOFTWARE PROID+ NA MS WINDOWS Pro správnou funkčnost ProID+ je třeba na daný počítač instalovat ovládací software ProID+. Instalace ovládacího software ProID+ se provádí pomocí instalačního balíčku.
ZÁKLADNÍ METODY REFLEKTOMETRIE
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF
9. DSA, PKI a infrastruktura. doc. Ing. Róbert Lórencz, CSc.
Bezpečnost 9. DSA, PKI a infrastruktura doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů Informatika
Integrovaný informační systém Státní pokladny (IISSP) Dokumentace API - integrační dokumentace
Česká republika Vlastník: Logica Czech Republic s.r.o. Page 1 of 10 Česká republika Obsah 1. Úvod...3 2. Východiska a postupy...4 2.1 Způsob dešifrování a ověření sady přístupových údajů...4 2.2 Způsob
Počítačové sítě Systém pro přenos souborů protokol FTP
Počítačové sítě Systém pro přenos souborů protokol FTP Autorizovaný přístup do souborového systému hostitelského uzlu Informace o obsahu souborového systému hostitelského uzlu Obousměrný přenos kopií souborů
Analýza aplikačních protokolů
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická PROJEKT Č. 4 Analýza aplikačních protokolů Vypracoval: V rámci předmětu: Jan HLÍDEK Komunikace v datových sítích (X32KDS) Měřeno: 28. 4. 2008
MBus Explorer MULTI. Uživatelský manuál V. 1.1
MBus Explorer MULTI Uživatelský manuál V. 1.1 Obsah Sběr dat ze sběrnice Mbus...3 Instalace...3 Spuštění programu...3 Program MBus Explorer Multi...3 Konfigurace sítí...5 Konfigurace přístrojů...6 Nastavení
Bc. Martin Majer, AiP Beroun s.r.o.
REGISTR DIGITALIZACE HISTORICKÝCH FONDŮ (RDHF) A DIGITÁLNÍCH KONKORDANCÍ (DK) Návrh uživatelského rozhraní klientských aplikací verze 1.0 Bc. Martin Majer, AiP Beroun s.r.o. 28.11.2016-1 - Obsah 1 Seznam
UŽIVATELSKÁ PŘÍRUČKA PRO HOMEBANKING PPF banky a.s.
UŽIVATELSKÁ PŘÍRUČKA PRO HOMEBANKING PPF banky a.s. PPF banka a.s., Evropská 2690/17, P.O. Box 177, 160 41 Praha 6 1/15 Obsah: 1. Úvod... 3 2. Vygenerování Podpisového klíče a žádost o vygenerování Podpisového
7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.
7. Aplikační vrstva Studijní cíl Představíme si funkci aplikační vrstvy a jednotlivé protokoly. Doba nutná k nastudování 2 hodiny Aplikační vrstva Účelem aplikační vrstvy je poskytnout aplikačním procesům
Remote Method Invocation RMI
Remote Method Invocation RMI Java TM Remote Method Invocation (RMI) umožňuje objektu na jedné Java Virtual Mashine(JVM) jednoduše spustit metodu jiného objektu na vzdálené JVM. Při volání vzdálené metody
Protokol RSA. Tvorba klíčů a provoz protokolu Bezpečnost a korektnost protokolu Jednoduché útoky na provoz RSA Další kryptosystémy
Protokol RSA Jiří Velebil: X01DML 3. prosince 2010: Protokol RSA 1/18 Protokol RSA Autoři: Ronald Rivest, Adi Shamir a Leonard Adleman. a Publikováno: R. L. Rivest, A. Shamir a L. Adleman, A Method for
Databáze prodejců. Tlačítka. Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce Uloží nového prodejce nebo změnu (Alt+U);
Databáze prodejců Tlačítka Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce (Alt+E); Uloží nového prodejce nebo změnu (Alt+U); Při zakládání nového prodejce zadejte jeho číslo (musí to být
Příručka pro dodavatele. Systém EZVR 1.1 Verze dokumentu 1.3 Datum vydání:
Příručka pro dodavatele Systém EZVR 1.1 Verze dokumentu 1.3 Datum vydání: 1.10.2017 1 2 1. Úvod do systému...3 2. Technické požadavky a zabezpečení systému...3 3. Registrace nového dodavatele...4 4. Přihlášení
VDDMAIL by ESCAD, Corp. (Součást IWSE.NET Services by ESCAD, Corp.)
1 z 10 VDDMAIL by ESCAD, Corp. (Součást IWSE.NET Services by ESCAD, Corp.) Obsah: A. Úvod B. Popis aplikace C. Instalace D. První spuštění E. Manuál programu VDDMAIL 1. Záložka DDE Server DDE Parametry
SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.
SIMATIC S7-200 243-1 2005, Page 1 Program workshopu Začátek: 9.00 GPRS - aplikace pro GPRS, základy - jak nastavit vzdálenou stanici, knihovna instrukcí pro GPRS - jak nastavit server (SINAUT MICRO SC,
Registrace a aktivace uživatelského profilu k přístupu do systému erecept pro pacienta
Registrace a aktivace uživatelského profilu k přístupu do systému erecept pro pacienta 1. Obecné 1.1. Základní informace o aplikacích pro pacienta Pro pacienty je zpřístupněná webová a mobilní aplikace.
Bezdrátové routery LTE & UMTS datové a hlasové brány
Bezdrátové routery LTE & UMTS datové a hlasové brány Jak na to? Základní nastavení www.2n.cz 1. Základní nastavení V tomto dokumentu si popíšeme jak jednoduše nastavit základní funkci 2N SpeedRoute nebo
Manuál PVU zadavatel Platnost pro elektronický nástroj X-EN verze 4 a novější
Manuál PVU zadavatel Platnost pro elektronický nástroj X-EN verze 4 a novější 1 Vytvoření profilu zadavatele... 2 1.1 Doplnění identifikátoru profilu zadavatele ve VVZ... 2 2 Správa profilu... 3 2.1 Vytvoření
Biometrický podpis. Obsah. Biometrický podpis stručný průvodce
Biometrický podpis Obsah Úvod... 2 1. Aktualizace AXA Studia... 3 2. Instalace ovladačů... 3 3. Aktualizace informací o uživateli... 6 4. Ověření uživatele/agenta... 7 5. Certfikáty... 9 Automatické vygenerování
Andrew Kozlík KA MFF UK
Autentizační kód zprávy Andrew Kozlík KA MFF UK Autentizační kód zprávy Anglicky: message authentication code (MAC). MAC algoritmus je v podstatě hashovací funkce s klíčem: MAC : {0, 1} k {0, 1} {0, 1}
2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.
2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových
PŘÍRUČKA PRO GENEROVÁNÍ TRANSPORTNÍHO CERTIFIKÁTU PRO HOMEBANKING PPF banky a. s.
PŘÍRUČKA PRO GENEROVÁNÍ TRANSPORTNÍHO CERTIFIKÁTU PRO HOMEBANKING PPF banky a. s. Obsah: I. Úvod... 2 II. Vygenerování Transportního klíče a žádost o vygenerování Transportního certifikátu... 2 III. Spojení
Aktivace RSA ověření
Aktivace RSA ověření Návod jak vygenerovat vlastní PIN pro RSA ověření do vzdáleného VPN připojení externího uživatele do sítě ČEZ pomocí autentizace přes SMS zprávu. Verze 1.00 Verze Stručný popis změn
REGISTRACE UŽIVATELSKÉHO ÚČTU NOVÉHO STUDENTA V CRO
REGISTRACE UŽIVATELSKÉHO ÚČTU NOVÉHO STUDENTA V CRO KARVINÁ, 2017 Vydáno dne:23.10.2017 10:30 Úvod OBSAH Úvod... 3... 3 Zapomněli jste uživatelské jméno?... 12 Zapomněli jste heslo nebo máte zablokován
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Správa webserveru. Blok 9 Bezpečnost HTTP. 9.1 Úvod do šifrování a bezpečné komunikace. 9.1.1 Základní pojmy
Blok 9 Bezpečnost HTTP Studijní cíl Devátý blok kurzu je věnován Identifikaci, autentizaci a bezpečnosti Hypertext Transfer Protokolu. Po absolvování bloku bude student ovládat partie týkající se zabezpečení
SCS - Manuál. Obsah. Strana 1 (celkem 14) Verze 1.1
Obsah SCS - Manuál... 1 Referenční příručka... 2 Záložka Výběr klíče... 2 Záložka Výběr zakázky... 3 Záložka Vtvoření nabídky... 4 Záložka O aplikaci SCS Klient... 5 SCS instalační příručka... 6 Systémové
Seminární práce do předmětu: Bezpečnost informačních systémů. téma: IPsec. Vypracoval: Libor Stránský
Seminární práce do předmětu: Bezpečnost informačních systémů téma: IPsec Vypracoval: Libor Stránský Co je to IPsec? Jedná se o skupinu protokolů zabezpečujících komunikaci na úrovni protokolu IP (jak už
Úvod do počítačových sítí
Úvod do počítačových sítí Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: středa, 3 4 Obor: INIB INF E-mail: jtichava@students.zcu.cz Datum odevzdání: 19.12.06 Základní charakteristika Jednoduchá
Testovací protokol. 1 Informace o testování. 2 Testovací prostředí. 3 Vlastnosti generátoru klíčů. Příloha č. 13
estovací protokol Příloha č. 13 1 Informace o testování estovaný generátor: CertReq 6.1.7600.16385 1 CertReq 6.0.6002.18005 2 1 Verze generátoru ve Windows 7 Service Pack 1 2 Verze generátoru ve Windows
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
NÁVOD NA OBNOVU PLATNOSTI KLIENTSKÉHO CERTIFIKÁTU A DIGITÁLNÍHO PODPISU ELTRANS 2000 (GEMINI 5.0) PŘÍRUČKA UŽIVATELE
NÁVOD NA OBNOVU PLATNOSTI KLIENTSKÉHO CERTIFIKÁTU A DIGITÁLNÍHO PODPISU ELTRANS 2000 (GEMINI 5.0) PŘÍRUČKA UŽIVATELE prosinec 2013 Obsah: Návod na obnovu klientského certifikátu a digitálního podpisu Úvod...
Distribuované systémy a výpočty
Distribuované systémy a výpočty X36DSV Jan Janeček Peter Macejko CORBA Common Object Request Broker Architecture - konsorcium OMG (Object Management Group) - standard pro podporu komunikace v DS - pouze
Už ivatelska dokumentace
Už ivatelska dokumentace Aplikace Portál úspěšných projektů je určena k publikování informací o projektech realizovaných za přispění některého z Operačních programů v gesci Ministerstva vnitra České republiky.
Středoškolská technika 2015. Encryption Protection System
Středoškolská technika 2015 Setkání a prezentace prací středoškolských studentů na ČVUT Encryption Protection System Jaroslav Vondrák Vyšší odborná a Střední škola Varnsdorf Mariánská 1100, Varnsdorf 1
Digitální podepisování pomocí asymetrické kryptografie
Digitální podepisování pomocí asymetrické kryptografie Jan Máca, FJFI ČVUT v Praze 26. března 2012 Jan Máca () Digitální podepisování 26. března 2012 1 / 22 Obsah 1 Digitální podpis 2 Metoda RSA 3 Metoda