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 Fakulta elektrotechniky a komunikačních technologií VUT v Brně Abstrakt: Většina současných protokolů anonymní autentizace pracuje tak, že skryje žadatele mezi skupinu oprávněných uživatelů a poskytovateli umožní pouze ověřit, že je žadatel členem této skupiny. Navržený protokol má jiný cíl. Umožňuje uživateli stanovit ověřovací údaje umožňující jiném uživateli provést autentizaci, aniž by bylo možné zjistit jeho identitu. V článku je protokol představen, jsou popsány jeho vlastnosti a tyto vlastnosti jsou dokázány. Nakonec jsou navrženy možné způsoby využití. Abstract: Most current protocols anonymous authentication works so that the applicant hides among a group of authorized users and providers will only verify that the applicant is a member of this group. The proposed protocol has a different goal. It allows user to specify authentication information to enable other users to authenticate without having to establish his identity. The protocol is presented in article,there are described its properties and these properties are proved. At the end of article there are proposed possible usage.
Využití Diffie-Hellmanova protokolu pro anonymní autentizaci Ing. Petr Ležák Fakulta elektrotechniky a komunikačních technologií VUT v Brně Email: xlezak02@stud.feec.vutbr.cz Abstrakt Většina současných protokolů anonymní autentizace pracuje tak, že skryje žadatele mezi skupinu oprávněných uživatelů a poskytovateli umožní pouze ověřit, že je žadatel členem této skupiny. Navržený protokol má jiný cíl. Umožňuje uživateli stanovit ověřovací údaje umožňující jiném uživateli provést autentizaci, aniž by bylo možné zjistit jeho identitu. V článku je protokol představen, jsou popsány jeho vlastnosti a tyto vlastnosti jsou dokázány. Nakonec jsou navrženy možné způsoby využití. V [1] jsou pak popsány protokoly zajišťující poskytovateli (serveru) ověření, že uživatel patří do definované skupiny s oprávněním využívat jeho služby, ale přitom se nedozvěděl identitu konkrétního uživatele. Tohoto cíle lze dosáhnout několika různými způsoby. V [1] jsou popsány možnosti, jak lze dosáhnout tzv. prokazatelné anonymity pomocí zašifrování náhodné výzvy veřejnými klíči všech členů skupiny. Uživatel pak dešifrováním výzvy prokáže znalost soukromého klíče odpovídajícího jednomu veřejnému klíči člena skupiny. Poskytovatel nakonec prokáže, že použil stejnou výzvu u všech veřejných klíčů a nemůže tak zjistit identitu uživatele. Pokud toto neprokáže, tak se uživatel dozví, že poskytovatel podvádí. Jinou popsanou možností je využití kruhového podpisu pro plně anonymní autentizaci. Další možností je využití důvěryhodné třetí strany, jak je popsáno v [2]. Uživatel se vůči ní klasicky autentizuje a ona pak přímo nebo prostřednictvím pověření předaného uživateli sdělí serveru, že uživatel je členem skupiny. 2 Motivace Mějme následující situaci zobrazenou na obrázku 1. Alice chce umožnit Bobovi se autentizovat vůči Evě, nechce však, aby Eva věděla, že se autentizuje právě Bob. 1 Úvod Podle [1] je pro dosažení anonymity nutno zajistit dvě věci: 1. Anonymitu uživatelů odstranění všech informací ze síťového provozu, které by mohly vést k identifikaci komunikujících uživatelů. Potřebuje-li například server ověřit oprávnění uživatele k provedení určité akce, musí proto využívat vhodně navržené protokoly, které mu zajistí toto ověření, ale přitom neodhalí identitu uživatele. 2. Nespojitelnost akcí nemožnost útočníka zjistit, že dvě akce byly provedeny jedním a tímtéž uživatelem. Proto je samozřejmě nutné skrýt jeho identitu, ale i prostý fakt, že dvě akce byly provedeny jedním a tímtéž uživatelem, může být zneužitelná. Příkladem je zneužitelnost informace, že dva e-maily mají stejného původce. Obrázek 1: Schéma protokolu Alice ale nemá možnost Boba přímo kontaktovat a domluvit si s ním například jednorázové heslo. Alice i Eva mají přístup k seznamu veřejných klíčů všech uživatelů včetně Boba. Alice proto z Bobova veřejného klíče vypočítá ověřovací údaje a pošle je Evě. Ke správné autentizaci je třeba znát soukromý klíč Boba, toto však z ověřovacích údajů nelze zjistit. 3 Popis protokolu Základní myšlenka protokolu je vidět na obrázku 2. Je zde zobrazen logický tok informací, ne jejich fyzické předávání. Autentizace Boba vůči Evě probíhá ustavením společného klíče Diffie-Hellmanovým protokolem a jeho využitím pro zašifrování výzvy od Evy. Parametry protokolu ze strany Boba však určuje Alice - veřejný klíč sdělí Evě a soukromý klíč Bobovi. Soukromý klíč je spolu s DSA podpisem zašifrován do kryptogramu, který je dešifrovatelný soukromým klíčem Boba. Bob dešifrováním kryptogramu a následným odpovězením na výzvu od Evy prokáže znalost svého soukromého klíče. 3.1 Generování doménových parametrů Vygenerujeme veřejně známé parametry Schnorrovy grupy, viz [3]: q je prvočíslo, 20
Obrázek 2: Tok informací p = nq+1 je prvočíselný modulus, přičemž platí q > p 1 10, g = x n mod p 1 je generátor grupy. 3.2 Generování klíčů Alice 1. Alice zvolí náhodné číslo a z rozsahu 2; q 1 a tento soukromý klíč udrží v tajnosti. 2. Alice spočítá veřejný klíč A = g a mod p a zveřejní jej. 3.3 Generování klíčů Boba 1. Bob zvolí náhodné číslo b z rozsahu 2; q 1 a tento soukromý klíč udrží v tajnosti. 2. Bob spočítá veřejný klíč B = g b mod p a zveřejní jej. 3.4 Vygenerování ověřovacích hodnot Alicí 1. Alice zvolí náhodný soukromý ověřovací klíč f z rozsahu 2; q 1. 2. Alice spočítá veřejný ověřovací klíč F = g f mod p. 3. Alice pomocí svého soukromého klíče a vytvoří podpis S zprávy M = ID Alice ID Eva f podepisovacím kryptosystémem DSA (viz např. [4]). ID Alice a ID Eva jsou jednoznačné identifikátory uživatelů. 4. Alice zvolí náhodné číslo z z rozsahu 2; q 1. 5. Alice spočítá šifrovací klíč Z = B z mod p. 6. Alice spočítá hodnotu X E = g z mod p. 7. Alice zašifruje zprávu a podpis vhodnou symetrickou šifrou C = E(M S, H(Z)), kde E je šifrovací funkce, H je hashovací funkce a H(Z) je šifrovací klíč. 8. Alice odešle ověřovací údaje (X E, C, F ) Evě. 3.5 Autentizace Boba 1. Eva zvolí náhodné číslo v z rozsahu 2; q 1. 2. Eva spočítá výzvu V = g v mod p a odešle Bobovi zprávu (X E, C, V, Info). Info je vhodný řetězec vypovídající o účelu autentizace. 3. Bob nejdříve ověří účel autentizace uvedený v položce Inf o. Pokud s ním nesouhlasí, tak ukončí algoritmus. 4. Bob spočítá šifrovací klíč Z = XE b mod p. 5. Bob dešifruje zprávu a podpis M S = D(C, H(Z )). D je dešifrovací funkce inverzní k funkci E. 6. Bob ze zprávy M extrahuje ID Alice, ID Eva a f. Pokud odesilatelem výzvy není Eva nebo pokud nedůvěřuje Alici, tak Bob algoritmus ukončí. 7. Bob ověří digitální podpis S zprávy M veřejným klíčem A odpovídajícím ID Alice. Pokud podpis Alice není platný, tak Bob algoritmus ukončí. 8. Bob spočítá klíč K MAC = V f mod p a odešle Evě odpověď O = E(H(ID Eva Info), K MAC ). 9. Eva spočítá klíč K MAC = F v mod p a hodnotu O = E(H(ID Eva Info), K MAC ) a pokud platí O = O, tak autentizaci přijme. 4 Vlastnosti protokolu V následujícím textu jsou popsány vlastnosti protokolu. Pokaždé je také zdůvodněno, jakým způsobem je těchto vlastností dosaženo. 21
4.1 Neexistence přímé komunikace mezi Alicí a Bobem Alice má možnost vygenerovat ověřovací hodnoty definující Boba jako uživatele oprávněného k autentizaci pouze na základě znalosti jeho veřejného klíče a doménových parametrů. Proto mezi Alicí a Bobem neprobíhá žádná komunikace. To je vidět z toho, že do algoritmu pro výpočet ověřovacích hodnot vstupuje pouze veřejný klíč Boba B a doménové parametry. 4.2 Korektnost protokolu Bob má možnost provést korektní autentizaci. Bob spočítá klíč Z XE b (gz ) b ( g b) z B z Z (mod p). Může tedy dešifrovat soukromý ověřovací klíč f obsažený ve zprávě M. Protože platí rovnost K MAC V f (g v ) f ( g ) f v F v K MAC (mod p), tak parametry předané funkci E pro výpočet odpovědi Evou a Bobem jsou shodné a proto platí O = O. Korektnost protokolu byla ověřena testovacím programem naprogramovaným v jazyce Java. Program nejdříve vygeneruje doménové parametry a klíče Alice a Boba. Dále jako Alice vygeneruje ověřovací hodnoty a následně provede autentizaci jako Bob. 4.3 Autentičnost odpovědi Kdokoli kromě Alice nebo Boba, i kdyby měl přístup k uloženým záznamům Evy, se může autentizovat jen se zanedbatelně malou pravděpodobností. K výpočtu odpovědi O je nutné znát klíč K MAC spočítaný Diffie-Hellmanovým protokolem. K jeho výpočtu je třeba znát alespoň jeden soukromý klíč - náhodné číslo v, které není nikde uložené, nebo ověřovací klíč f zašifrovaný v kryptogramu C. Autentizovat se tedy může pouze osoba, která je schopna spočítat dešifrovací klíč Z. Ten je nutné spočítat Diffie-Hellmanovým protokolem, proto je pro jeho výpočet nutné znát buď náhodné číslo z nebo soukromý klíč Boba b. Náhodné číslo z není nikde uloženo, korektně se tedy může autentizovat pouze Bob (anebo Alice, pokud by podváděla a uložila si náhodný klíč f). v sekci 3.1, tak ani ze znalosti Z, X E a B není možné určit, že tato trojice hodnot si sobě odpovídá. Proto je identita Boba před Evou a ostatními osobami skryta. Na identitě Alice jsou závislé pouze hodnoty ID Alice a S. Oba jsou zašifrovány do kryptogramu C a jsou tedy čitelné pouze pro Boba. Identita Alice je tedy také skryta. Mají-li identifikátory uživatelů konstantní délku, pak má konstantní délku i kryptogram C. Z jeho délky tedy není možné získat žádnou informaci, navíc je usnadněno rozklíčování zpráv. 4.5 Netestovatelnost identity Boba Eva ani kdokoli jiný nemá možnost vygenerovat ověřovací hodnoty jménem Alice a tak otestovat, zda se autentizuje právě Bob. Této vlastnosti je dosaženo dvojím zabezpečením. Jednak jsou ověřovací hodnoty digitálně podepsány Alicí, Bob má tedy možnost se autentizovat pouze pokud důvěřuje osobě, která tyto hodnoty vydala. Navíc, jak bylo popsáno výše, Bobova odpověď není závislá na jeho identitě, Bob pouze prokáže schopnost dešifrovat kryptogram C. Pokud by tedy Eva chtěla otestovat, kdo se autentizuje, a podařilo by se jí k tomu přimět Boba (například by se domluvila s Alicí aby jí podvržené ověřovací hodnoty podepsala), tak bude muset dopředu zvolit čí identitu bude testovat a dozví se pouze, zda tato předem zvolená osoba se autentizuje či nikoli. Eva tak má možnost otestovat pouze jednu identitu (jeden zvolený veřejný klíč) za běh protokolu. 5 Příklady využití protokolu Dále jsou popsány dvě možná praktická nasazení navrženého protokolu. V případě anonymního předávání zpráv se jedná o typické využití pro něž byl protokol navržen. Příklad digitální úschovny zavazadel naproti tomu ukazuje, že jej lze využít i v jiných situacích. 5.1 Anonymní předávání zpráv Systém zobrazený na obrázku 3 umožňuje anonymní předávání zpráv, tj. něco jako anonymní e-mail. 4.4 Anonymita Alice a Boba Pouze Alice a Bob mají možnost rozpoznat, že uživatelem oprávněným k autentizaci je Bob a odesilatelem ověřovacích hodnot je Alice. Proto nesmí být možné spárovat Alicí určené ověřovací hodnoty s veřejným klíčem Boba. Odeslaná odpověď Boba O = E(H(ID Eva Info), V f mod p) závisí kromě doménových parametrů a informací dodaných Evou pouze na soukromém ověřovacím klíči f. Odeslaná odpověď tedy nemá žádnou souvislost se soukromým klíčem Boba, ten pouze prokáže schopnost dešifrovat kryptogram C. Podle [5] jsou-li doménové parametry voleny tak, jak je popsáno Obrázek 3: Schéma anonymního předávání zpráv Odesilatel vystupuje v roli Alice - zašifruje zprávu a připojí k ní vygenerované ověřovací hodnoty. Zprávu lze zašifrovat symetrickou šifrou s klíčem H(Z). Zprávu a ověřovací hodnoty pak odešle na server. Příjemce se vůči serveru autentizuje vystupuje v roli Boba a ten mu odešle zašifrovanou zprávu. Tento protokol nezajišťuje skrytí IP adres odesilatele a příjemce. Je tedy vhodné ho provozovat přes některou anonymizační síť, například síť Tor. 22
5.2 Digitální úschovna zavazadel Mějme schránku na zavazadla například na nádraží. Schránka je vybavena kryptoprocesorem a čtečkou čipových karet. Každý uživatel pak má svou vlastní čipovou kartu (například ve formě elektronického občanského průkazu) obsahující veřejný a soukromý klíč. Do této schránky si člověk nejdříve uloží svá zavazadla a pomocí své čipové karty vygeneruje ověřovací hodnoty pro svůj vlastní veřejný klíč a předá je kryptoprocesoru schránky. Schránka se po úspěšném přijetí hodnot zamkne. Pro odemčení schránky je nutné opět zasunout stejnou čipovou kartu a autentizovat se vůči kryptoprocesoru. V tomto protokolu tedy schránka představuje Evu a čipová karta jednou Alici, podruhé Boba. Obdobě lze například realizovat autentizaci vůči nějaké síťové službě. Výhodou tohoto řešení oproti triviálnímu vygenerování jednorázového hesla je fakt, že na kartě nemusí být nic uloženo kromě veřejného a soukromého klíče. Počet uzamčených schránek nebo zařízení pracujících na obdobném principu tak není limitován velikostí paměti karty. Navíc soukromý klíč uložený v kartě je možné mít zazálohovaný a v případě ztráty karty se dostat k uloženým předmětům. 6 Závěr Popsaný protokol umožňuje provádět anonymní autentizaci, která dnes nabývá na důležitosti. Byly také představeny dvě možná využití tohoto protokolu. Korektnost protokolu byla dokázána v textu a navíc ověřena testovacím programem napsaným v jazyce Java. Protokol je možné dále vylepšit například využitím eliptických křivek namísto modulární aritmetiky. Namísto Diffie-Hellmanova algoritmu by se využila jeho verze ECDH a místo algoritmu DSA verze ECDSA. Tím by došlo k redukci délky zpráv a ke snížení výpočetní náročnosti protokolu. Literatura [1] LINDELL, Andrew Y. Anonymous Authentication. [online]. Aladdin Knowledge Systems Inc., s. 24 [cit. 2012-11-24]. Dostupné z: http://www3.safenetinc.com/blog/pdf/anonymousauthentication.pdf [2] MALINA, L. Ochrana soukromí na Internetu. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, 2010. 75 s. Vedoucí diplomové práce Ing. Jan Hajný. [3] HANKERSON, Darrel, Alfred MENEZES a Scott VANSTONE. Guide to elliptic curve cryptography. Vyd. 1. New York: Springer, 2004, 311 s. ISBN 03-879- 5273-X. [4] SMART, Nigel. Cryptography: An Introduction. [online]. 3rd Edition. [cit. 2012-11-27]. Dostupné z: http://www.cs.bris.ac.uk/ nigel/crypto Book/ [5] BONEH, Dan. The decision Diffie-Hellman problem. In: Third Algorithmic Number Theory Symposium: Lecture Notes in Computer Science. Springer- Verlag, 1998 [cit. 2012-11-27]. Vol. 1423. Dostupné z: http://crypto.stanford.edu/ dabo/pubs/abstracts/ddh.html 23