Rok / Year: 2013
Svazek / Volume: 15
Číslo / Issue: 1
Využití Diffie-Hellmanova protokolu pro anonymní autentizaci The use of Diffie-Hellman protocol for anonymous authentication Petr Ležák
[email protected] 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.
VOL.15, NO.1, FEBRUARY 2013
Využití Diffie-Hellmanova protokolu pro anonymní autentizaci Ing. Petr Ležák Fakulta elektrotechniky a komunikačních technologií VUT v Brně Email:
[email protected]
Abstrakt
nymní 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.
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í.
1
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.
Ú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.
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.
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.
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.
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ě ano-
3.1
Generování doménových parametrů
Vygenerujeme veřejně známé parametry Schnorrovy grupy, viz [3]: q je prvočíslo,
20
VOL.15, NO.1, FEBRUARY 2013
Obrázek 2: Tok informací 1
3.5
p = nq+1 je prvočíselný modulus, přičemž platí q > p 10 , g = xn mod p 6= 1 je generátor grupy. 3.2
1. Eva zvolí náhodné číslo v z rozsahu h2; q − 1i. 2. Eva spočítá výzvu V = g v mod p a odešle Bobovi zprávu (XE , C, V, Inf o). Info je vhodný řetězec vypovídající o účelu autentizace.
Generování klíčů Alice
1. Alice zvolí náhodné číslo a z rozsahu h2; q − 1i a tento soukromý klíč udrží v tajnosti.
3. Bob nejdříve ověří účel autentizace uvedený v položce Inf o. Pokud s ním nesouhlasí, tak ukončí algoritmus.
2. Alice spočítá veřejný klíč A = g a mod p a zveřejní jej. 3.3
Autentizace Boba
Generování klíčů Boba
b 4. Bob spočítá šifrovací klíč Z 0 = XE mod p.
1. Bob zvolí náhodné číslo b z rozsahu h2; q − 1i a tento soukromý klíč udrží v tajnosti.
5. Bob dešifruje zprávu a podpis M 0 ||S 0 = D(C, H(Z 0 )). D je dešifrovací funkce inverzní k funkci E.
2. Bob spočítá veřejný klíč B = g b mod p a zveřejní jej.
6. Bob ze zprávy M 0 extrahuje IDAlice , IDEva a f . Pokud odesilatelem výzvy není Eva nebo pokud nedůvěřuje Alici, tak Bob algoritmus ukončí.
3.4
Vygenerování ověřovacích hodnot Alicí
1. Alice zvolí náhodný soukromý ověřovací klíč f z rozsahu h2; q − 1i.
7. Bob ověří digitální podpis S 0 zprávy M 0 veřejným klíčem A odpovídajícím IDAlice . Pokud podpis Alice není platný, tak Bob algoritmus ukončí.
2. Alice spočítá veřejný ověřovací klíč F = g f mod p.
0 f 8. Bob spočítá klíč KM AC = V mod p a odešle Evě 0 0 odpověď O = E(H(IDEva ||Inf o), KM AC ).
3. Alice pomocí svého soukromého klíče a vytvoří podpis S zprávy M = IDAlice ||IDEva ||f podepisovacím kryptosystémem DSA (viz např. [4]). IDAlice a IDEva jsou jednoznačné identifikátory uživatelů.
9. Eva spočítá klíč KM AC = F v mod p a hodnotu O = E(H(IDEva ||Inf o), KM AC ) a pokud platí O = O0 , tak autentizaci přijme.
4. Alice zvolí náhodné číslo z z rozsahu h2; q − 1i. 5. Alice spočítá šifrovací klíč Z = B z mod p.
4
6. Alice spočítá hodnotu XE = g z mod p.
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.
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 (XE , C, F ) Evě.
21
VOL.15, NO.1, FEBRUARY 2013
4.1
Neexistence přímé komunikace mezi Alicí a Bobem
v sekci 3.1, tak ani ze znalosti Z, XE 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 IDAlice 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.
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
4.5
Korektnost protokolu
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.
Bob má možnost provést korektní autentizaci. z b b ≡ (g z ) ≡ g b ≡ B z ≡ Z Bob spočítá klíč Z 0 ≡ XE (mod p). Může tedy dešifrovat soukromý ověřovací klíč f 0 obsažený ve zprávě M . Protože platí rovnost KM AC ≡ f v f f v v V ≡ (g ) ≡ g ≡ F ≡ KM AC (mod p), tak parametry předané funkci E pro výpočet odpovědi Evou a Bobem jsou shodné a proto platí O = O0 . 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íč KM AC 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 ). 4.4
Netestovatelnost identity Boba
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.
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(IDEva ||Inf o), 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
VOL.15, NO.1, FEBRUARY 2013
5.2
Digitální úschovna zavazadel
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.
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
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-8795273-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/
Závěr
[5] BONEH, Dan. The decision Diffie-Hellman problem. In: Third Algorithmic Number Theory Symposium: Lecture Notes in Computer Science. SpringerVerlag, 1998 [cit. 2012-11-27]. Vol. 1423. Dostupné z: http://crypto.stanford.edu/ dabo/pubs/abstracts/DDH.html
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
23