Specializovan² t²denφk o v²poΦetnφ technice |
|
Serißl o bezpeΦnosti a informaΦnφm soukromφ |
|
╚ßst 37 - CW 51-2/97
Identita a autentizaceRadim PeÜa, David Rohleder
Je p∙lnoc. Jdeme temn²m lesem. Najednou se na cest∞ proti nßm objevφ podivnß postava. Krev nßm leknutφm ztuhne v ₧ilßch, ale p°ekonßme strach a zeptßme se: "Kdo je to?" Odpov∞∩ m∙₧e znφt: "Jß jsem hajn² Robßtko." Tφm nßm noΦnφ p°φzrak prozradil svou toto₧nost identifikoval se. Ale proto₧e je temnß noc a krajem se potulujφ podivnß stvo°enφ, chceme se p°esv∞dΦit: "To by mohl °φct ka₧d², proΦ bychom ti m∞li v∞°it?" "Copak nevidφte vedle m∞ mΘho v∞rnΘho p°φtele jelena V∞trnφka? Takov² je jenom jedin² na celΘm ÜiroÜirΘm sv∞t∞." Ji₧ jsme klidnφ, mßme zßruku, ₧e postava ve tm∞ je opravdu hajn² Robßtko autentizace skonΦila (ka₧d² p°ece vφ, ₧e jelen V∞trnφk by neÜel do lesa s nik²m jin²m ne₧ s hajn²m Robßtkem). To byl p°φklad identifikace a autentizace v praxi, tentokrßt v praxi pohßdkovΘ. Vra¥me se ale zp∞t do oblasti informaΦnφch technologiφ. Je z°ejmΘ, ₧e pro jakoukoli rozumnou komunikaci je pot°eba, aby komunikujφcφ subjekty m∞ly mo₧nost zjistit, s k²m vlastn∞ komunikujφ. A prßv∞ proces, kter² umo₧nφ rozpoznßnφ subjektu a p°i°azenφ jeho identifikßtoru, se naz²vß identifikace. M∙₧e mφt r∙znΘ podoby: u₧ivatel zadß u terminßlu svΘ p°ihlaÜovacφ jmΘno, v ₧ßdosti o slu₧bu uvede ₧adatel svΘ identifikaΦnφ Φφslo. Proces ov∞°enφ, zda udßvanΘ jmΘno opravdu p°φsluÜφ danΘmu subjektu, se naz²vß autentizace. U₧ivatel nap°φklad prokß₧e znalost tajnΘho hesla nebo je ov∞°en otisk jeho palce. Rozhodnutφ, jakß prßva subjektu nßle₧φ, oznaΦujeme autorizace. Problematiku autentizace v prost°edφ IT lze rozd∞lit do 3 skupin: autentizace u₧ivatel∙, vzßjemnß autentizace poΦφtaΦ∙, autentizace zprßv. Autentizace u₧ivatel∙ Jednß se o ov∞°enφ toto₧nosti u₧ivatele, kter² ₧ßdß slu₧bu od poΦφtaΦovΘho systΘmu. Typick²m p°φkladem je autentizace p°i v²b∞ru pen∞z z bankomatu. Metody pou₧φvanΘ pro implementaci autentizace u₧ivatele m∙₧eme rozd∞lit podle pou₧φvan²ch postup∙ do nßsledujφcφch 4 skupin:
┌vodnφ pohßdkov² p°φklad s hajn²m Robßtkem by se dal za°adit do kategorie u₧ivatel n∞co mß. Problematiku autentizace u₧ivatele popsal 12. dφl naÜeho serißlu, proto se jφ nebudeme tentokrßt vφce zab²vat. Vzßjemnß autentizace poΦφtaΦ∙ Autentizujφcφ se subjekty jsou vzßjemn∞ propojeny poΦφtaΦovou sφtφ (p°φpadn∞ obecnou komunikaΦnφ sφtφ). Cht∞jφ spolu komunikovat, vyu₧φvat cizφ slu₧by apod. K tomu pot°ebujφ samoz°ejm∞ v∞d∞t "s k²m majφ tu Φest". A mφt jistou zßruku, ₧e nejde o omyl Φi podvod. Pravd∞podobn∞ nejlepÜφm °eÜenφm je vyu₧φt mo₧nostφ, kterΘ nabφzφ kryptografie. Existuje velkΘ mno₧stvφ r∙zn²ch autentizaΦnφch protokol∙ pou₧φvajφcφch jak symetrickou kryptografii, tak kryptografii ve°ejnΘho klφΦe. VÜechny vyu₧φvajφ znalosti urΦitΘho tajemstvφ, obvykle Üifrovacφho klφΦe. Znalost tohoto tajemstvφ je p°i autentizaci pova₧ovßna za ekvivalentnφ prokßzßnφ identity. Trivißlnφ °eÜenφ je nasnad∞. Domluvφme si s partnerem klφΦ symetrickΘ kryptografie, kter² budeme znßt jenom my dva. Dφky tomu vφme, ₧e jakßkoli zprßva, kterß nßm p°iÜla a je zaÜifrovanß tφmto klφΦem, p°ichßzφ od p°φsluÜnΘho partnera. Obdobn∞ on poznß zprßvy, kterΘ dostane od nßs. Stejn²m zp∙sobem si m∙₧eme dohodnout klφΦe s ostatnφmi partnery. Takov²to postup mß vÜak dva podstatnΘ nedostatky. Prvnφ slabinou je Üpatnß rozÜi°itelnost a ovladatelnost takto navr₧enΘho systΘmu. Mno₧stvφ kryptografick²ch klφΦ∙ s p°ib²vajφcφm poΦtem komunikujφcφch partner∙ rychle nar∙stß a jejich sprßva se stßvß ne·m∞rn∞ obtφ₧nou. Obvykl²m °eÜenφm situace je vytvo°enφ centra distribuce klφΦ∙ (Key Distribution Center, KDC). Tφm je obvykle n∞jakß t°etφ d∙v∞ryhodnß strana, kterß hraje roli jakΘhosi prost°ednφka p°i navazovßnφ spojenφ a autentizaci. Nynφ staΦφ, kdy₧ si ka₧d² pamatuje pouze jedin² klφΦ. A to klφΦ, kter² si ustanovφ pro komunikaci s KDC. Existuje °ada protokol∙ pro autentizaci s vyu₧itφm KDC. Vesm∞s ale vychßzejφ z dnes ji₧ klasickΘho protokolu, kter² navrhli Needham a Schroeder. Inicißtor spojenφ poÜle nejprve zprßvu na KDC (1). Zprßva je autentizovanß klφΦem, kter² inicißtor sdφlφ s KDC. KDC ze zprßvy poznß, s k²m mß b²t vytvo°eno spojenφ. Vytvo°φ pro p°φjemce zprßvu autentizovanou klφΦem, kter² s nφm sdφlφ. V∞ zprßv∞ je obsa₧eno potvrzenφ identity inicißtora spojenφ. PoÜle ji iniciujφcφ stran∞ (2), ta zaÜifrovanou zprßvu p°edß dßl svΘmu partnerovi (3). Ten jedin² znß klφΦ (samoz°ejm∞ ho znß i KDC) a je schopen ji p°eΦφst. DalÜφ komunikace (4) je ji₧ Üifrovßna klφΦem relace, kter² KDC vytvo°ilo (obr. 1). DalÜφm nedostatkem (nejenom) uvedenΘho trivißlnφho °eÜenφ je absence ochrany proti ·toku opakovan²m p°enosem (replay attack). T°etφ nep°ßtelskß strana sice nenφ schopna se plnohodnotn∞ vydßvat za n∞koho jinΘho a vytvß°et i posφlat zprßvy cizφm jmΘnem, ale m∙₧e zaznamenßvat zprßvy, kterΘ ji₧ byly jednou zaslßny jako souΦßst korektnφ autentizovanΘ komunikace, a schovat si je pro poslßnφ ve vhodnou chvφli n∞kdy pozd∞ji. A v∙bec nevadφ, ₧e neznß obsah t∞chto zprßv. Jako p°φjemce takovΘto zprßvy nemßme mo₧nost poznat, ₧e se jednß o podvrh. Ochranu proti tomuto typu ·toku je pot°eba zajistit nejenom v naÜem trivißlnφm °eÜenφ, ale i v ostatnφch autentizaΦnφch protokolech. Zpravidla se k tomu po₧φvajφ Φasov∞ zßvislΘ parametry (TVP): Φasovß razφtka (spolehlivΘ znaΦenφ Φasu angl. timestamp): Ke ka₧dΘ zprßv∞ je p°ipojen Φas jejφho vzniku. P°φjemce zprßvy ji pova₧uje za platnou pouze pokud jeÜt∞ nenφ p°φliÜ "starß". Pokud od data vytvo°enφ zprßvy ji₧ vyprÜel interval stanoven² pro jejφ dobu platnosti, p°φjemce ji odmφtne. nßhodnß Φφsla: Do odesφlanΘ zprßvy se p°idßvß nßhodn∞ vygenerovanΘ Φφslo. Druhß strana v odpov∞di na zprßvu toto nßhodnΘ Φφslo p°edem dohodnut²m zp∙sobem pou₧ije. sekvenΦnφ Φφsla: JednotlivΘ zprßvy jsou identifikovßny sv²mi sekvenΦnφmi (po°adov²mi) Φφsly. Nev²hodou Φasov²ch razφtek je pot°eba synchronizace Φasov²ch zdroj∙, jeho v²hodou oproti pou₧itφ nßhodn²ch nebo sekvenΦnφch Φφsel je, ₧e komunikujφcφ partne°i nemusφ udr₧ovat stavovΘ informace o pou₧it²ch Φi nepou₧it²ch Φφslech. DalÜφ mo₧nostφ, jak na vzßjemnou autentizaci, je vyu₧itφ kryptografie ve°ejnΘho klφΦe. Odesφlatel prost∞ podepφÜe prvnφ zprßvu sv²m tajn²m klφΦem a p°φjemce obdobn²m zp∙sobem odpovφ. ProblΘmem je zajiÜt∞nφ spolehlivΘ distribuce ve°ejn²ch klφΦ∙. Mo₧n²m °eÜenφm je pou₧itφ certifikßt∙ ve°ejn²ch klφΦ∙. P∞kn²m p°φkladem pou₧itφ certifikßt∙ ve°ejn²ch klφΦ∙ je doporuΦenφ X.509, kterΘ definuje poskytovßnφ autentizaΦnφch slu₧eb v rßmci adresß°ov²ch slu₧eb X.500. Certifikßty jsou jakΘsi potvrzenφ o platnosti ve°ejn²ch klφΦ∙. Tato platnost je stvrzena podpisem d∙v∞ryhodnΘ certifikaΦnφ autority na ka₧dΘm certifikßtu. Ty jsou ulo₧eny ve ve°ejnΘm adresß°i, ke kterΘmu majφ p°φstup vÜichni u₧ivatelΘ. Zde si mohou ov∞°it platnost ve°ejn²ch klφΦ∙ sv²ch partner∙ vyhledßnφm p°φsluÜnΘho certifikßtu, kter² je podepsan² certifikaΦnφ autoritou, kterΘ d∙v∞°ujφ. Existuje rovn∞₧ n∞kolik standardizovan²ch autentizaΦnφch procedur, kterΘ certifikßty ve°ejn²ch klφΦ∙ vyu₧φvajφ. Jednu z nich si ukß₧eme: Spojenφ iniciuje strana A. Prvnφ zprßva je podepsßna jejφm ve°ejn²m klφΦem. Obsahuje povinn∞ ΦasovΘ razφtko T1, nßhodnou hodnotu N1 a identifikaci p°φjemce B. Voliteln²mi Φßstmi jsou data a klφΦ relace KAB, kter² je zaÜifrovan² ve°ejn²m klφΦem p°φjemce B. Hodnota N1 je jedineΦnß mezi zprßvami zaslan²mi b∞hem platnosti ΦasovΘho razφtka. Obsah druhΘ zprßvy je podobn². Zprßvy nemusφ obsahovat ₧ßdnou z voliteln²ch polo₧ek slou₧φ potom pouze k autentizaci. Kdopak mi to jen pφÜe Autentizace zprßv je proces prokßzßnφ, ₧e p°ijatß zprßva pochßzφ z udßvanΘho zdroje, a ₧e nebyla zm∞n∞na. P°φjemce zprßvy v okam₧iku rozhodnutφ s nik²m nekomunikuje, musφ b²t schopen se rozhodnout o autenticit∞ zprßvy pouze na zßklad∞ zprßvy samotnΘ. Typick²m p°φkladem aplikace je elektronickß poÜta. ╚asov² rozdφl mezi okam₧ikem odeslßnφ a p°ijetφ poÜty v Internetu je obvykle n∞kolik minut, ale zprßva m∙₧e putovat i n∞kolik dnφ. Nenφ tudφ₧ mo₧nΘ p°edpoklßdat, ₧e odesφlatel bude on-line v dob∞ p°ijetφ nebo dokonce Φtenφ zprßvy. Zde se pou₧φvajφ kryptografickΘ haÜovacφ funkce. To jsou matematickΘ funkce, kterΘ pro danou zprßvu vypoΦφtajφ jejφ charakteristiku. To je obvykle krßtkß Φφselnß hodnota, je to obdoba otisku palce u Φlov∞ka. Podstatnou vlastnostφ t∞chto funkcφ je to, ₧e jsou jednosm∞rnΘ. To v tomto p°φpad∞ znamenß, ₧e lze snadno vypoΦφtat pro ka₧dou zprßvu jejφ charakteristiku, ale je obtφ₧nΘ k danΘ charakteristice najφt odpovφdajφcφ zprßvu. KryptografickΘ haÜovacφ funkce jsou obvykle v∞°ejn∞ znßmΘ, m∙₧e je tudφ₧ pro danou zprßvu vypoΦφtat kdokoli. Funkce, jejich₧ v²sledek zßvisφ krom∞ samotnΘ zprßvy na zadanΘm Üifrovacφm klφΦi, se naz²vß autentizaΦnφ k≤d zprßvy (MAC Message Authentication Code). V opaΦnΘm p°φpad∞ mluvφme o k≤du pro detekci modifikacφ (MDC Modification Detection Code). Odesφlatel vypoΦφtanou charakteristiku p°ipojφ k p°φsluÜnΘ zprßv∞ a obojφ poÜle p°φjemci. Jestli₧e se jednß o MAC, je p°i v²poΦtu charakteristiky pou₧it Üifrovacφ klφΦ, kter² znajφ pouze komunikujφcφ partne°i. ┌toΦnφk tudφ₧ nenφ schopen podvrhnout vlastnφ zprßvu, ani modifikovat zprßvu, kterou odposlechl. P°φjemce aplikuje haÜovacφ funkci na zprßvu a porovnß v²sledek s p°ijatou charakteristikou. P°φjemce m∙₧e Φφst zprßvy bez ov∞°ovßnφ jejich autenticity, to m∙₧e provßd∞t pouze v²b∞rov∞ u zprßv, u kter²ch je to pro n∞j d∙le₧itΘ. Autentizace zprßv chrßnφ komunikujφcφ partnery proti ·toku t°etφ strany. Nem∙₧e je ale ochrßnit p°ed sebou samotn²mi. Pokud si komunikujφcφ strany vzßjemn∞ ned∙v∞°ujφ, je vhodnΘ pou₧φvat digitßlnφ podpis. T∞m byl v∞novßn dφl 34.
| COMPUTERWORLD - serißl o bezpeΦnosti | COMPUTERWORLD | IDG CZ homepage | |