Nyilvános kulcsú titkosítás

A HupWiki-ből...

Ez egy elég bőbeszédű, az elv megismertetésére törekvő kifejtés, egy rövidebb, lényegre törő cikkért menj a PKI-re!

Tartalomjegyzék

A nyilvános kulcsú titkosítás (Public key encryption)

Digitális aláírás

A digitális aláírás nyilvános kulcsú titkosítási rendszerekben elérhető eljárás, mely az információk titkosítása mellett használható, célja a titkosítással szemben mindössze az, hogy a címzett meggyőződhessen arról, hogy a neki küldött üzenet valóban a feladótól származik, és azt más nem módosíthatta. Az elektronikus aláírás létrehozásához a küldő a saját privát kulcsát használja, hitelességét pedig a címzett ellenőrzi le a küldő nyilvános kulcsával.

A nyilvános kulcsú titkosítás elve

Hagyományos titkosítási eljárásnál egyetlen kulcsot kell ismernünk az üzenet kódolásához és dekódolásához. Nyilvános kulcsú titkosításnál minden egyes felhasználóhoz két kulcs tartozik: egy titkos (private), és egy nyilvános (public). A titkos és a nyilvános kulcs szerepe szimmetrikus. Ha N jelöli a nyilvános kulcs alkalmazását, T a titkos kulcsét, és x egy kódolandó információ, akkor

N(T(x))=x és T(N(x))=x

Minden felhasználónak generálnia kell a maga részére egy nyilvános/titkos kulcs párt. Ezután a nyilvános kulcsot minél szélesebb körben ismertté kell tenni, a titkos kulcsra értelemszerûen vigyázni kell.

Bárki, aki titkosított üzenetet akar küldeni nem kell mást tegyen, mint a fogadó nyilvános kulcsával kódolnia kell az üzenetet. A nyilvános kulcs ismerete nem segít abban, hogy a titkos kulcsot megfejtsük, ezért ha egy üzenetet valaki nyilvános kulcsával kódoltunk, akkor már magunk sem tudjuk azt visszafejteni, csakis a fogadó.

Ha hitelesíteni akarunk egy üzenetet, akkor pedig a saját titkos kulcsunkat használjuk. Az üzenetbõl képezünk, egy az üzenetnél jóval rövidebb számot, amit az üzenet ellenõrzõ összegének, "ujjlenyomatának" is nevezhetünk. Ezt a számot kódoljuk azután a saját titkos kulcsunkkal. A fogadó ezt csakis a mi nyilvános kulcsunkkal tudja "kinyitni" és így biztos lehet abban, hogy az üzenetet valóban mi küldtük. Az üzenet ilyen esetben nincs feltétlenül kódolva, de mivel az egész üzenet ujjlenyomatát tartalmazza az aláírásunk, az üzeneten végrehajtott minden változtatás, egyetlen vesszõcske beszúrása vagy elhagyása is kiderül a fogadó oldalon. Ilyen módon - hasonlóan ahhoz mint amikor aláírunk valamit - a hitelesítéssel nem csak azt garantálhatjuk, hogy kitõl származik az üzenet, hanem azt is, hogy az pontosan ugyan az. Ez alkalomadtán - akár csak az aláírás - arra is alkalmas, hogy valamit a fejünkre olvassanak, mint általunk elismert, vállalt dolgot. Következésképpen a titkos kulcsunkra nem csak azért kell vigyáznunk, hogy a nekünk küldött üzeneteket ne fejtsék meg illetéktelenek, hanem azért is, hogy mások ne tudjanak "okirat-hamisítást" végrehajtani a kárunkra.

Hogyan gyõzõdhetünk meg arról, hogy egy nyilvános kulcs érvényes-e? Igen fontos, hogy ha valakinek a nyilvános kulcsát használjuk, akkor biztosak legyünk abban, hogy nem hamis, lejárt, vagy érvénytelen a kulcs. Ha rossz kulcsot használunk, akkor

  • nekünk küldött hamísított üzenetet hitelesnek hihetünk
  • illetéktelenek is olvashatják titkosnak szánt üzenetünket

A legegyszerûbb, és legbiztonságosabb, ha személyesen cserélünk kulcsot. Szokás elektronikus levélben, vagy a Finger szolgáltatás segítségével közölni nyilvános kulcsot. Mint bármi más információt, nyilvános kulcsokat is alá lehet digitálisan írni, akár több embernek is.

Bizalmi háló (Web of trust)

Ha olyan aláírással kapunk egy nyilvános kulcsot, amit hitelesnek tekintünk, akkor magát ezt a nyilvános kulcsot is elfogadhatjuk. Az ilyen bemutatott kulcs aztán újabb kulcsokat hitelesíthet. Ez a "bizalmi háló" a PGP nevû népszerû, szabadon terjeszthetõ titkosítási programcsomagra jellemzõ. Ennél azt is szabályozhatjuk, hogy milyen mélységben fogadunk el "bemutatott által bemutatottakat", és hogy hány hitelesnek ismert bemutató bemutatása kell ahhoz, hogy egy nyilvános kulcsot hitelesnek ismerjünk el.

PGP (Pretty Good Privacy)

A PGP egy számítógépes program, ami matematikai algoritmusokat használva kódol fájlokat. A PGP a leggyakrabban alkalmazott algoritmust, az RSA-t használja.

SSH

Ha egy konkrét példa leírását akarod látni, nézd meg az SSH cikket!