next up previous index
Következő: 5.9.6.2.6 A PGP installálása Fel: 5.9.6.2 Pretty Good Privacy Előző: 5.9.6.2.4 Miért kell neked   Index

5.9.6.2.5 Hogyan működik

Ez a pont valószínűleg inkább csak azoknak segít, akik már egyébként is tisztában vannak a titkosító eljárásokkal, különös tekintettel a nyilvános-kulcsosakra. Mindazonáltal itt van egy kis összefoglaló a témában. Először is az elemi szakszavak: Tegyük fel, hogy én akarok küldeni neked egy üzenetet, és azt akarom, hogy senki más ne olvashassa azt el. Ekkor először is ,,rejtjelzem'', avagy ,,kódolom'', ami által egy reménytelen zagyvaság lesz belőle, amit senki nem tud elolvasni, kivéve természetesen téged. A kódoláshoz egy ,,kulcsot'' használok, amit neked is használnod kell, amikor az üzenetet visszafejted, vagyis ,,dekódolod''. Legalábbis így működik a hagyományos rejtjelzés. A hagyományos kriptográfiában, mint amilyen pl. a DES algoritmus (US Federal Data Encription Standard), ugyanazt a kulcsot kell használni a kódoláshoz és a dekódoláshoz. Ami viszont azzal jár, hogy a kulcsot először egy megbízható csatornán el kell juttatni a fogadó félhez, csak utána lehet nekikezdeni a titkosított üzenetek megbíz- hatatlan csatornákon való küldésének. Ez sok ezetben kényelmetlen lehet. Másrészt pedig, ha a kulcsküldéshez van biztonságos csatornád, tulajdonképpen miért is van olyan nagy szükséged a titkosításra? A nyilvános kulcsos kriptográfiában mindenki két, egymással szorosan összefüggő kulccsal rendelkezik. Az egyik kulcs nyilvános, míg a másikat szigorúan titokban kell tartani. Mindkét kulcsot a másik által kódolt üzenetek dekódolására lehet felhasználni. A nyilvános kulcs nem nyújt lehetőséget a titkos kulcs kitalálásához. Ezért a nyilvános kulcsot fenntartások nélkül széles körben el lehet terjeszteni a kommunikációs hálózatokon. Ez az eljárás mindennemű biztonságos csatorna nélkül képes szavatolni a titkosságot. Egy ember nyilvános kulcsával bárki kódolhat üzeneteket. Ezeket a fogadó a saját titkos kulcsával tudja kibontani. Ő és senki más, hiszen a titkos kulccsal senki más nem rendelkezik. A kódolt üzenetet még a feladó sem tudja dekódolni. Meg van oldva az üzenetek biztonságos sértetlenség- és eredetigazolása (autentikációja) is. A küldő saját titkos kulcsával ,,aláírja'' az üzenetet. Az aláírás eredetiségét bárki ellenőrizheti az illető nyilvános kulcsának felhasználásával. A fogadó a dekódolás után bizonyos lehet a küldő személyében, és abban is, hogy az üzenet tartalma nem változhatott meg. Mindezt azért, mert ehhez a feladó titkos kulcsa szükséges, mellyel rajta kívül senki nem rendelkezik. A hamisítás ki van zárva, és a küldő nem tagadhatja le magát utólag. A két dolgot egybe is lehet kötni, amikor is az eredmény biztonság és autentikusság egy flakonban. Ehhez először alá kell írni az üzenetet a saját titkos kulccsal, majd kódolni a fogadó nyilvános kulcsával. A fogadó pedig először a saját titkos kulcsával dekódol, majd a küldő nyilvános kulcsával ellenőrzi az eredetet. És ezt a két lépést a program önműködően megteszi. Miután a nyilvános-kulcsos titkosítás algoritmusa sokkalta lassabb, mint a hagyományos eljárások, célszerű egy nagy megbízhatóságú hagyományos eljárással kódolni az üzenetet. {Az eredeti, kódolatlan üzenetet nyersszövegnek (plaintext) nevezik legalábbis én - jobb híján :-)}. A titkosítás első lépésében egy hagyományos kódoláshoz használható véletlen kulcs generálódik, ami kizárólag abban az egy küldésben kerül alkalmazásra. Ezzel kódolják a nyersszöveget egy hagyományos algoritmussal. A felhasznált kulcsot pedig a fogadó nyilvános kulcsával rejtjelzik, és a rejtjelzett kulcsot a kódolt üzenettel (a továbbiakban ,,kódszöveg'') együtt küldik el. A fogadó a saját titkos kulcsával először dekódolja az ideiglenes kulcsot, majd ennek segítségével a gyors algoritmussal dekódolja a kódszöveget. A kulcsok speciális struktúrában vannak tárolva, mely tartalmaz egy azonosítót (userId - a személy neve), a kulcspár generálásának dátumát, és magát a kulcskódot. A nyilvánoskulcs-struktúra tartalmazza a nyilvános kulcsot, míg a titkoskulcs-struktúra a titkos kulcsot. A titkos kulcs ráadásul még egy saját jelszóval is védve van ellopás esetére. A kulcsfájl (,,key ring'') egy vagy több kulcs-struktúrát tartalmaz. Az előbbieknek megfelelően vannak titkos és nyilvános kulcsfájlok. A program egy azonosító számmal, a kulcs ID-vel hivatkozik az egyes kulcsokra, ami a teljes kulcs egy rövidítése, nevezetesen a nyilvános kulcs utolsó 8 bájtja. Amikor ez megjelenítésre kerül, a további rövidítés kedvéért csak az utolsó 3 bájt tartalma kerül kijelzésre. Amíg több különböző kulcs felhasználó-azonosítója megegyezhet, (gyakorlatias szempontok miatt) két kulcs ID-je nem lehet azonos. A PGP kivonatokat (message digest) használ az aláíráshoz. A kivonat egy 128 bites szám, amit egy kriptográfiai szempontból megbízható, szigorúan egyirányú hash függvény állít elő az üzenet alapján. Ez a kontroll-összeggel vagy a CRC értékkel analóg abban a tekintetben, hogy jelzi az üzenet megváltozását. Ugyanakkor a kivonatot létrehozó eljárás kizárja, hogy a kalóz olyanformán módosítsa az üzenetet, hogy az eredetivel megegyező kivonat jöjjön létre (ami az összeg és a CRC esetében lehetséges). Ezt a kivonatot kell a küldő titkos kulcsával kódolni, ami ezáltal az üzenet elektronikus aláírását adja ki. Az aláírás folyamán az üzenet szövege mellé kerül az aláírás struktúra. Ez az aláíró kulcs-ID-jéből, az aláírás időpontjából és a kódolt kivonatból áll. A kulcs-ID azért kell, hogy fogadáskor a program kiválassza a kulcsfájlból azt a nyilvános kulcsot, amelyikkel az ellenőrzést el kell végezni. A kódolt üzenet is kiegészül a kódoló kulcs ID-jével. Ez lehetővé teszi, hogy a program automatikusan kiválassza a dekódoláshoz szük- séges titkos kulcsot a titkos kulcsfájlból. A kulcsfájl-koncepció sarkalatos pontja a programnak. Az egyes kulcsok nem egyenként vannak sok-sok fájlban tárolva, hanem egyetlen kulcsfájl (key ring) gyűjti az összes azonos típusút. Ez sokkal gyorsabb előkeresést tesz lehetővé - akár a személy, akár a kulcs azonosítója alapján. Minden használónak két kulcsfájlja van: a nyilvános és a titkos. A nyilvános kulcsfájl esetén lehetőség van az egyedi kulcsok kinyerésére, exportjára, így azokat elküldhetjük ismerőseinknek, akik felvehetik az új kulcsokat saját nyilvános kulcsfáljukba.


next up previous index
Következő: 5.9.6.2.6 A PGP installálása Fel: 5.9.6.2 Pretty Good Privacy Előző: 5.9.6.2.4 Miért kell neked   Index

1999-09-17