Tizennyolc éve volt szükségem a PGP nevű titkosító szoftverre, akkor akadt a kezembe az alábbi leírás. Valamiért eszembe jutott és előbányásztam a merevlemezek mentése mentésének a mentéséből :D. Nota bene ez a leírás már akkor sem volt annyira nagyon friss ;)
Csecsemőknek minden vicc új, tartok tőle hogy rengetegen vannak most is akik mit sem tudnak a témáról, mindenesetre érdekes lehet az akkori leírás mai szemmel nézve.
Most nem is fűzök ehhez hozzá semmit sem, csak beidézem azt a nagyon régi szöveget "as is", majd később hivatkozom rá, mert igazából csak azt akartam volna leírni hogy milyen izgalmas is amikor valaki úgy fedez fel dolgokat hogy a hozzávalók még nem léteznek, sőt lehet hogy nem is létezhetnek. (Az aszimmetrikus titkosítás elvét úgy alkották meg annó, hogy feltételeztek egy függvényt, meg az inverzét, olyan tulajdonságokkal felvértezve, hogy az inverzfüggvény ismerete ne vezessen az eredeti függvény ismeretéhez. Jópofa ötlet és a tetejében kivitelezhető is volt....)
Na akkor a PGP leírás. Sajna lövetem sincs ki az a Pasa, de köszönet érte.
______________
PGP DOC1 HU Translated by Pasa
Itt van sokak kérésére a PGP doku magyar fordítása. Egyelőre az első kötet, az általános témákról. Ha lesz időm, majd lefordítom a
spéci dolgokról szóló II. részt is, az még érdekesebb. :-)
A következő szöveg a PGP 2.3a verzióban található PGPDOC1.DOC saját legjobb megértésem szerinti pontos fordítása. A {} közötti részek a
saját megjegyzéseim, minden egyéb (elvileg) a dokuból ered. És kihagyott részek sincsenek.
Ha értelmi hibát találtok a szövegben, lehetőleg közöljétek velem is.
Nem volna rossz, ha valaki hozzáértő átolvasná a szöveget, egyeztetné az eredetivel, kijavítaná benne a gépelési és egyéb
hibákat, majd ezután elhelyezné a BBS-én a PGP szomszédságában.
___------------------------------------------------>>>----------
Phil's Pretty Good Software
előadja:
===
PGP
===
Pretty Good Privacy
Nyilvános kulcson alapuló titkosítás a tömegek számára
PGP felhasználói leírás
I. rész: Alapvető fontosságú dolgok
írta: Philip Zimmermann
1993 június 14
PGP Version 2.3a - 1 Jul 93
Programozta:
Philip Zimmermann,
Branko Lankester, Hal Finney,
és Peter Gutmann segítségével
Kivonat
A PGP E-mail levelek illetőleg adatfájlok nyilvános-kulcsos titkosítását teszi lehetővé. Ismeretlen, soha nem látott emberekkel való biztonságos levelezést anélkül, hogy azokkal előzőleg biztonságos csatornán kulcsot kellene cserélni. A PGP széleskörű szolgáltatásokkal van ellátva és gyors, magában foglalja a kulcsfájlkezelést, az elektronikus aláírást, az adatok tömörítését is.
A programra és a dokumentációra (C) Copyright 1990-1992 Philip
Zimmermann.
A PGP forgalmazásával, terjesztésével, használatával, szabadalomjogi kérdésekkel, felelősségkorlátozással és az exporttal kapcsolatos kérdésekkel a dokumentáció II. részében foglalkozik egy fejezet.
Tartalom
Gyors áttekintés
Miért kell neked a PGP?
Hogyan működik
A PGP installálása
A PGP használata
A használati útmutató
Üzenet kódolása (titkosítása)
Üzenet kódolása több fogadó részére
Üzenet aláírása
Aláírás majd titkosítás
Titkosítás konvencionális módon
Kibontás és aláírás-ellenőrzés
Kulcskezelés
Az RSA kulcs készítése
Kulcs importálása a kulcsfájlba
Kulcs vagy userid törlése a kulcsfájlból
Kulcs exportálása a kulcsfájlból
A kulcsfájl tartalmának megtekintése
Hogyan védd kulcsfájljaidat a módosítástól?
Hogy követi nyomon a PGP a megbízható kulcsokat?
Hogyan védd titkos kulcsodat?
A nyilvános kulcs bevonása
Mi a helyzet, ha elveszíted a titkos kulcsodat?
Haladó témák
Kódszöveg küldése E-mail csatornán
Környezeti változó a path megadásához
A konfiguráció beállítása: CONFIG.TXT
Sebezhetőség
A hamis biztonság
PGP gyors áttekintés
Jogi kérdések
Köszönetnyilvánítás
A szerzőről
Gyors áttekintés
A Phil's Pretty Good Software által írt Pretty Good(tm) Privacy (PGP) egy nagy biztonságú titkosító program, mely MSDOS, Unix, VAX/VMS, és sok más operációs rendszer alatt fut. Lehetővé teszi adatok és üzenetek autentikus, titkos és irányított célba juttatását. Az irányított ebben a szóhasználatban azt jelenti, hogy kizárólag azok férnek hozzá az adatok tartalmához, akiknek azt szántuk. Az auten- ticitás azt jelenti, hogy a fogadó bizonyos lehet abban, hogy az adatokat ki adta fel, és hogy az adatok nem módosultak. Mindehhez nincs szükség arra, hogy a felek hagyományos titkosítási eljárásoknál szokásos titkos kulcsokat cseréljenek egymással, és azokat megbízható csatornán állandóan szinten tartsák. A PGP-nél egyáltalán nincs szükség biztonságos csatornára a kulcsok terítéséhez. Mindez azért van, mert a PGP egy új, ún. "nyilvános kulcsos" titkosítási eljáráson alapul.
A PGP-ben együtt vannak a Rivest-Shamir-Adleman (RSA) algoritmuson alapuló nyilvános kulcsos titkosítás előnyei a hagyományos eljárások sebességével, a kivonatokon (message digest, MD) alapuló digitális aláírással, a titkosítás előtti tömörítéssel, valamint az ergonómikus környezettel és kulcs-adatbázis kezelő funkciókkal. A PGP a széles tömegek számára készült.
A PGP nem tartalmaz beépített modem-szolgáltatásokat. Erre a célra más szoftvert kell igénybe venned.
A dokumentáció ezen része csak a használathoz nélkülözhetetlenül szükséges információkat tartalmazza. Ezt minden használónak el kell olvasnia, és meg kell értenie. A II. rész foglalkozik a speciálisabb szolgáltatásokkal, és bővebb betekintést ad a technikai kérdésekbe is. Magukat a felhasznált algoritmusokat egyik dokumentáció sem írja le, csak hivatkozik rájuk.
Miért kell neked a PGP?
Személyes dolog. Magánügy. Senkinek semmi köze hozzá. Politikai kampányt folytatsz, átgondolhatod az adóbevallásodat, üzleti terveidet. Vagy valami olyat, ami szerinted normálisan legális lenne, de nem az. Vagy bármilyen hasonló esetben az igényed, hogy a privát levelezésedet vagy bizalmas adataidat ne olvashassa el más. Semmi rossz nincs abban, hogy véded a privát adataidat. Ez a magánélethez való jogok egy része, amelyek az alkotmányban is le vannak fektetve.
Esetleg úgy gondolod, hogy semmi takargatnivalód nincs, és E-mailed nem szorul titkosításra. De ha ilyen teljesen törvénytisztelő polgár vagy, a postai levelezésedet miért nem nyílt levelezőlapon bonyolítod? Úgy gondold, hogy amennyiben borítékot használsz, az arra mutat, hogy rejtegetsz valamit? Különben talán magadra vonzanád a rendőrség figyelmét? Akkor rögtön rejtőzködő kábszerkereskedő vagy? Vagy paranoiás fickó? Szóval szüksége lehet egy törvénytisztelő polgárnak a PGP-re? Mert mi lenne akkor, ha valóban mindenki csak levlapot használna? Akkor az a különc, aki borítékba rakja a postáját nyilván rögtön gyanús lenne. A hatóságok talán fel is bontanák a küldeményét, hogy megvizsgálják, mit is rejteget. Szerencsére nem ilyen világban élünk, hiszen szinte mindenki borítékot használ. így senkire nem vetül gyanú pusztán azért, mert privát levelezését eltakarja a nyilvánosság elől. A biztonság a széles elterjedésen múlik. Hasonlóan, ha mindenki elkezdi titkosítva küldeni az elektronikus postáját, legyen az valóban bizalmas, vagy nem, ez ugyanúgy nem fog feltűnést kelteni.
Manapság, ha a hatóság úgy dönt, hogy behatol valakinek a magánéletébe, komoly erőforrásokat és munkát kell áldoznia arra, hogy felbontsa és elolvassa az illető papír alapú postáját, lehallgassa és értelmezze telefonbeszélgetéseit. Az ilyen jellegű megfigyelés nagyon drága és kis hatékonyságú, ha emberek széles csoportja ellen akarnák alkalmazni. Ezért ilyen eszközökkel csak a valóban indokolt esetekben élnek.
Ugyanakkor a kommunikáció jelentős része lassanként áttevődik az elektronikus formára. Az E-mail átveszi a hagyományos posta szerepét. És az így küldött üzeneteket nagyon egyszerű monitorozni, és kulcsszavakra kereső programok segítségével kiszűrni az valóban megfigyelni kívánt részeket. Embertömegek levélforgalmát lehet ilyen módszerekkel teljesen rutinszerűen, automatikusan és láthatatlanul átvizsgálni. Az NSA már ma is megfigyelés alatt tartja a nemzetközi levelezőhálózatokat.
A jövőben a hálózatok egyre nőni fognak, míg szinte minden ember személyi számítógépe valamilyen formában egy nagy közös hálózat részévé válik. Az E-mail minden ember szokásos kommunikációs eszköze lesz. A kormány majd saját fejlesztésű titkosító eljárásával fogja titkosítani a magánemberek levelezését. És az emberek nagy többsége bízni fog ezekben az eljárásokban. De biztosan lesznek olyanok, akik inkább bíznak saját eljárásaikban.
1991-ben a Szenátus 266. sz. beadványa, ami a bűnmegelőzésről szólt érdekes dolgokat vetett fel. Amennyiben ezek törvényerőre emelkednének, akkor a gyártók csak olyan kommunikációs berendezéseket forgalmazhatnának, melyek titkosítása beépített "hátsó bejárattal" rendelkezik. És a kormány szükség esetén visszafejthetné bárki rejtett levelezését. Az ominózus szöveg így szól: "A Kongresszus azon a véleményen van, hogy az elektronikus kommunikációs szolgáltatást nyújtók, és az ezzel kapcsolatos berendezések gyártóinak lehetőséget kell biztosítania arra, hogy a Kormány -- törvényben körülhatárolt esetekben -- hozzájuthasson a berendezéseken áramló információkhoz eredeti, titkosítatlan formában." A beadvány végül is a civil szabadságjogok védői valamint a gyártók éles tiltakozásának hatására kisebbségben maradt.
1992-ben került a Kongresszus elé az FBI digitális telefonok lehallgatásáról szóló (törvény)javaslata. Ennek alapján a gyártóknak speciálisan a lehallgatást lehetővé tevő portot kellene építeni minden készülékbe, ezzel lehetővé téve, hogy az FBI az irodájából hallgasson le bárkit, akit akar. Annak ellenére, hogy a javaslat egyáltalán nem talált támogatókat, 1993-ban újra be fogják nyújtani.
A legfélelmetesebb pedig a Fehér Ház új titkosításokról szóló irányelv-tervezete, melyet az NSA készített elő négy év alatt, és 1993 április 16-án hozták nyilvánosságra. A javaslat központi témája egy a kormány által tervezett eszköz, az ún. "Clipper" chip, mely az NSA által újonnan kidolgozott titkosítási eljárást alkalmazná. És a Kormány jelentősen támogatja mindazon gyártókat, akik a kódolt kommunikációs berendezéseikben (telefonok, faxok, stb) mindenütt ezt a chipet alkalmazzák. Az AT&T most ezt építi minden "biztonságos" készülékébe. És ami a lényeg: a gyártáskor minden egyes chipbe beleégetik az egyedi rejtjelkulcsot, de erről a kormány egy másolatot őriz elzárva. Bár semmi ok az aggodalomra -- hiszen a Kormány becsületszavát adja, hogy ezt a kulcsot kizárólagosan a törvényben meghatározott esetekben fogja üzeneteid lehallgatásához felhasználni. Természetesen ahhoz, hogy a dolog igazán effektív legyen, a következő logikus lépés az lesz, hogy betiltanak minden alternatív titkosítási módszert.
Amennyiben a magánélet e törvényen kívülre szorul, csak a törvényen kívülieknek lesz magánélete. A hírszerző szervezetek természetesen hozzájuthatnak a jó titkosító eljárásokhoz. Hasonlóképpen a fegyverés drogkereskedők. Meg a hadiipari cégek, az olajmultik és hasonló gigászok. Ezzel szemben a közönséges polgárnak nincs lehetősége, hogy tisztességes, "military grade" nyilvános kulcsos tikosító eljáráshoz jusson. Egészen eddig a pillanatig.
A PGP azt a lehetőséget nyújtja az embereknek, hogy saját kezükbe vegyék a saját magánéletüket. Egyre nagyobb erre az igény. Ezért írtam meg ezt a programot.
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ár 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 ezekben 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, melyikkel 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üksé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ájljukba.
A PGP installálása
A PGP MS-DOS alá készült 2.3-as verziója egy sűrített archív fájlként kerül terjesztésre.
Ennek neve PGP23.ZIP {naná, hogy PGP23A.ZIP} (x.y verzió mindig PGPxy.ZIP-ként kerül kiadásra). Ezt MS-DOS alatt a shareware PKUNZIP- pel lehet kibontani, unix alatt pedig az unzip utilityvel. A PGP csomagban mindig van egy README.DOC fájl, amit feltétlenül el kell olvasnod. Ebben mindig benne vannak az utolsó-perces hírek, a verzióval kapcsolatos új dolgok, valamint itt van felsorolva, hogy a többi fájl mire jó.
Ha MS-DOS alá való 1.0-s verziójú PGP programod van, azt jobb ha letörlöd, lévén ezt már senki nem használja. Ha mégsem akarod kitörölni, akkor nevezd át a PGP.EXE-t mondjuk PGP1.EXE-nek, hogy ne legyen azonos neve az új verzióval.
Az MS-DOS alatti installáció nem is áll többől, mint az archív kicsomagolásából, bár ezenkívül még célszerű lehet az AUTOEXEC.BAT- odat is módosítani. Erről a dokumentáció más részében szólunk {SETUP.DOC}. De ez a változtatás nem létfontosságú, később is sort keríthetsz rá, amikor már megismerkedtél a PGP-vel, és főként miután többet is elolvastál ebből a leírásból. Ha még sohasem használtad a PGP-t, az installálás (és a dokumentáció elolvasása) után az első lépés saját kulcspárod legenerálása lesz a `PGP -kg' paranccsal.
Ha unix vagy VAX/VMS alá installálsz, akkor ez hasonló az MS-DOS- éhoz, de lehet, hogy le is kell fordítanod a programot az operációs rendszered alatt. Ehhez a forrásfájlokat tartalmazó archívban találsz egy makefile-t.
Az installálással kapcsolatos további részleteket a Setup.Doc fájlban találod meg. Ott részletesen leírjuk, hogy hogyan állítsd fel a PGP könyvtárát, és hogy módosítsd az AUTOEXEC.BAT fájlodat, és arról is, hogy hogyan kell használni a PKUNZIP programot azok részére, akiknek ez gondot okoz.
A PGP használata
A használati útmutató
Az opciók egysoros összefoglalását a
>PGP -h
paranccsal lehet megnézni.
Üzenet kódolása (titkosítása)
Ahhoz, hogy egy üzenet nyersszövegét a fogadó nyilvános kulcsával letitkosítsd {-e = encrypt}, a
>PGP -e textfile f_userid
parancsot használd. Ennek hatására textfile.PGP néven létrejön egy kódszöveg-fájl. Gyakorlati példa:
>PGP -e letter.txt Alice
vagy:
>PGP -e letter.txt "Alice S"
Az első példa a nyilvános kulcsfájlodban (pubring.pgp) azokat keresi, akiknek az userId-je tartalmazza az "Alice" szöveget. A másodikban azokat, akiknek az userId-jében az "Alice S" szöveg szerepel. A parancssoron az egyes paraméterekben csak akkor használhatsz szóközt, ha az egész paramétert idézőjelbe teszed. A keresés nem érzékeny a kis-nagybetű különbségre. Amennyiben a pubring.pgp-ben talált megfelelő userId-t, a hozzá tartozó kulccsal letitkosítja a letter.txt-t, és ezáltal létrehozza a letter.pgp fájlt.
A PGP mindig először megpróbálja tömöríteni a nyers szöveget, ezáltal az még jobban ellenáll az esetleges kriptoanalízisnek. Ne csodálkozz, ha a titkosított fájl rövidebb, mint az eredeti.
Ha a kódolt levelet E-mail segítségével akarod továbbítani, ahhoz ASCII-(radix-64) formába kell konvertálni. Ehhez a parancssort kódoláskor ki kell egészítened a -a opcióval. (Lásd később). {-e helyett használj -ea opciót}.
Üzenet kódolása több fogadó részére
Ugyanazt az üzenetet egyszerre több személy számára is lekódolhatod. Ilyenkor a felsorolt fogadók bármelyike képes lesz kibontani az üzenetet. A művelethez járj el mint az előző pontban, és sorold fel az összes fogadó userId-jét.
>PGP -e letter.txt Alice Bob Carol
A PGP létrehozza a kódszöveget (letter.pgp), amit Alice, Bob és Carol egyaránt kibonthat. Akárhány fogadót fel lehet sorolni {bár a parancssor hosszát az op. rendszer korlátozza}.
Üzenet aláírása
Ahhoz, hogy egy üzenet nyersszövegét a saját titkos kulcsoddal aláírd {-s = sign} a
>PGP -s textfile [-u a_te_useridd]
parancsot használd. A szögletes zárójel arra utal, hogy a saját userId megadása nem kötelező. Ha megadod, ne írd ki a zárójeleket.
A parancs hatására létrejön az aláírt textfile.pgp fájl. Gyakorlati példa:
>PGP -s letter.txt -u Bob
Ez a titkos kulcsfájlban (secring.pgp) kikeresi a "Bob" szöveget tartalmazó felhasználót, és az ő titkos kulcsával írja alá a letter.txt fájlt, és az eredményt a letter.pgp fájlba írja ki. A keresés figyelmen kívül hagyja a kis/nagybetű különbséget.
Amennyiben nem adsz meg userId-t, akkor a program a legelső kulcsot veszi elő, és azt használja.
Aláírás majd titkosítás
Ahhoz, hogy egyszerre aláírd, majd titkosítsd az üzenetet, kombinálni kell az előző pontban írottakat:
>PGP -es textfile f_userid [-u a_te_useridd]
A szögletes zárójel arra utal, hogy a saját userId megadása nem kötelező. Ha megadod, ne írd ki a zárójeleket. A program kikeresi a megfelelő titkos kulcsodat, aláírja az üzenetet, majd előkeresi a megfelelő nyilvános kulcsot és elvégzi a titkosítást. Ha nem adod meg a fogadó userId-jét, akkor a program interaktívan rákérdez.
Ha a titkos kulcshoz tartozó id-t nem adod meg, akkor a program az első kulcsot használja. Vedd figyelembe, hogy a PGP először mindig megrpóbálkozik az üzenet tömörítésével. Ha a kódolt levelet E-mail segítségével akarod továbbítani, ahhoz ASCII-(radix-64) formába kell konvertálni. Ehhez a parancssort kódoláskor ki kell egészítened a -a opcióval. (Lásd később). {-esa opció a -es helyett}.
Ha több fogadónak kódolsz, egyszerűen sorold fel userId-jüket ott, ahol az előbb csak egy állt.
Titkosítás konvencionális módon
Időnként szükség lehet arra, hogy egy-egy fájl hagyományos egykulcsos módszerrel kódoljunk. Ez akkor leher hasznos, ha olyan anyagaink vannak, amit védeni akarunk, de nem küldjük el senkinek. Miután itt a kibontó ugyanaz a személy, mint a titkosító, nincs szükség a kétkulcsos titkosításra.
Egy fájl hagyományos kódolásához a
>PGP -c textfile
parancsot kell használni. Hatására a program lekódoja a textfile-t, miközben nem használja sem a nyilvános, sem a titkos kulcsokat. A titkosításhoz egy jelszót kér interaktívan. Ennek a jelszónak nem kell (sőt, nagyon célszerűtlen) azonosnak lennie azzal a jelszóval, mellyel a titkos kulcsunkat védjük. Vedd figyelembe, hogy a PGP kódolás előtt sűríti az adatfájlt.
Ha ugyanazt az adatfájlt ugyanazzal a jelszóval többször is lekódolod, minden esetben más eredmény fog kijönni.
Kibontás és aláírás-ellenőrzés
A kódolt üzenet kibontásához, valamint az automatikus aláírás- ellenőrzéshez a
>PGP kódszövegfájl [-o nyersszövegfájl]
A szögletes zárójel opcionális paramétert jelől, ha megadod, ne írd ki a zárójeleket. A kódszövegfájl kiterjesztését a program automatikusan .pgp-nek veszi, ha nem adod meg. A kibontott fájl alapértelmezésben a kódszövegfájl nevét kapja kiterjesztés nélkül. Ezt lehet felülbírálni a -o opcióval. Ha a szöveg alá van írva, akkor a program automatikusan ellenőrzi az aláírást, és kiírja az aláírás gazdájának teljes userId- jét.
A kibontás teljesen automatikus, es a PGP felismeri, hogy a fájl csak kódolva van, csak alá van írva, vagy mindkettő. {Ehhez hasonlóan felismeri a Radix-64 alkalmazását, a ClearSig-et, és bármit, amit a programmal elő tudsz állítani ;)}. A PGP a kódszöveg fejlécéből automatikusan megállapítja, hogy melyik titkos kulcsodat kell a kifejtéshez használni. Aláírt üzenet esetén az aláírás fejlécében levő kulcsId alapján tudja kiválasztani az ellenőrzéshez szükséges nyilvános kulcsot. Ha mindkét Id-hez tartozó kulcs szerepel a kulcsfájljaidban, a program csak a titkos kulcsod jelszavát fogja megkérdezni. Ha a kódszöveg hagyományos kódolással készült, a PGP nem nyúl a kulcsfájlokhoz, hanem a dekódoláshoz szükséges jelszót kérdezi.
Kulcskezelés
Julisus Caesar idejétől fogva a titkosítások legproblémásabb pontja a kulcskezelés. A PGP program egyik legfőbb szolgáltatása az, hogy a kulcsokat nagyon kényelmesen kezeli.
Az RSA kulcs készítése
Ahhoz, hogy létrehozd saját nyilvános és titkos kulcsodat, add ki az alábbi parancsot: {-kg = kulcsgenerálás}
>PGP -kg
A PGP egy menüben felajánlja a küönböző kulcsméreteket (alkalmi szintű = casual grade, ipari szintű = commercial grade, katonai szintű = military grade), és rákérdez, hogy mekkora kucsot akarsz (kb 1000 bites határig). Minél nagyobb a kulcs, annál nagyobb a biztonság, de a nagyobb kulccsal való munkához több idő kell.
Utána megkérdezi az userId-det, ami többnyire a neved. Célszerű a teljes nevedet használni, mert így kisebb az esélye, hogy valaki eltéveszti az azonosítódat, amikor a te számodra kódol. Az userId tartalmazhat szóközöket és írásjeleket is. Ha van E-mail címed, azt célszerű <> jelek között a neved után fűzni, mint az alábbi példában:
Robert M. Smith <rms@xyzcorp.com>
Ha nincs E-mail címed, használd a telefonszámot, vagy találj ki valamit, amitől az userId-d igazán egyedi lesz, és bizonyosan téged azonosít.
A PGP ezután egy jelszót kér, ami a titkos kulcsodat védi. A titkos kulcsfájlod a jelszó nélkül nem használható. A PGP-ben a jelszó nem kell, hogy egy szóból álljon. Lehet több szó, vagy akár egy egész mondat. Szerepelhet benne bármilyen karakter. Jól jegyezd meg a jelszavadat. Ha elfelejted, nincs semmiféle mód a megfejtéséhez. A jelszóra a későbbiekben mindig szükség lesz, ahányszor csak szükség lesz a titkos kulcsodra. A jelszóban különbözőnek számítanak a kis- és nagybetűk. A jelszó ne legyen túl rövid, és ne lehessen könnyen kitalálni. A jelszó sohasem jelenik meg a képernyőn. Sohase írd le, és ne tárold sehol a számítógépeden. Ha úgy döntesz, hogy nem véded jelszóval a titkos kulcsodat (te bolond!) egyszerűen üss ENTER-t a kérdésre.
A kulcs generálásához a program nagy, valódi véletlenszámokat használ. Ezeket úgy kapja, hogy a billentyűleütések között eltelt időt méri egy nagyon gyors órával. A program először egy véletlenszerű szöveget kér, amit néhány véletlen bit inicializálására használ. Utána a billentyűleötések közötti időt használja. Nyomkodd a billentyűket véletlenszerűen, amíg a program azt nem mondja, elég. Egyes helyeken a program a billentyűket is nézi, ezért ne ugyanazt a sorozatot ismételgesd.
Az RSA-kulcsok generálása időigényes. Lassú gépen a nagyméretű kulcs létrehozásához több perc is szükséges lehet.
A létrehozott kulcsok automatikusan bekerülnek a nyilvános és titkos kulcsfájlodba. A későbbiekben a -kx parancs segítségével létrehozhatsz egy olyan üzenetfájlt, amely tartalmazza a nyilvános kulcsodat. Ezt a fájlt azután elterjesztheted ismerőseid körében, vagy E-mail hálózaton. A titkos kulcsodat a titkos kulcsfájlodban kell tartanod. Ha több titkos kulcsfájlod van, akkor ezek mindegyike önálló jelszóval rendelkezik.
A titkos kulcsodat sose add ki a kezedből. Ugyanezen okból sose készíts más számára titkos kulcsot. Ezt mindenkinek magának kell megtennie. Gondoskodj arról, hogy a tied legyen a titkos kulcs feletti fizikai kontroll. Ne hagyd a titkos kulcsot időosztáson alapuló többfelhasználós rendszeren, vagy olyan hálózaton, amelyen mások is dolgoznak. Tárold a saját személyes számítógépeden.
Kulcs importálása a kulcsfájlba
Ha hozzá akarsz adni egy kulcsot a nyilvános vagy a titkos kulcsfájlodhoz, használd az alábbi parancsot (a []-ban levő paraméter opcionális):
>PGP -ka kulcs [kulcsfájl]
A "kulcs" természetesen az az üzenetfájl, amiből a kulcsot importálni akarod. A [kulcsfájl] automatikusan .PGP kiterjesztést kap, ha nem adod meg. Ha nem adod meg ezt a paramétert, az alapértelmezés a "pubring.pgp", vagy a "secring.pgp" attól függően, hogy a <kulcs> nyilvános vagy titkos kulcsot tartalmaz. Ha szükséges, használhatsz más kulcsfájl-nevet.
Ha a kulcs már szerepel a kulcsfájlban, a PGP nem adja hozzá még egyszer. Ha az importfájlban több kulcs is szerepel, mindegyik feldolgozásra kerül -- természetesen a duplikátok kihagyásával. Amennyiben a kulcsokat aláírták, az aláírások is bekerülnek a kucsfájlba. Ha a kulcs már szerepel, de új aláírások is vannak rajta, csak ezek kerülnek kigyűjtésre.
Kulcs vagy userId törlése a kulcsfájlból
Ha ki akarod törölni valamelyik kulcsot a kulcsfájlodból, használd az alábbi parancsot:
>PGP -kr userId [keyring]
A parancs hatására a program megkeresi a kulcsfájlban az userId-hez tartozó kuclcsot és kitörli. Emlékezz rá, hogy nem kell a teljes userId-t megadnod, hanem a program megelégszik azzal, ha valamelyik userId tartalmazza az általad a parancssoron magadott szöveget. ha nem adsz meg kulcskájl-nevet, az alapértelmezés a "pubring.pgp". Ha a kulcsfájl-nevet kiterjesztés nélkül adod meg, a program .PGP kiterjesztést használ.
Ha a kiválasztott kulcshoz több userId is tartozik a kulcsfájlban, a program rákérdez, hogy a kulcsot kell-e törölnie, vagy csak a megadott userId-t. Az utóbbi esetben a kulcs a kulcsfájlban marad az összes fennmaradó userId-jével.
Kulcs exportálása a kulcsfájlból
Kulcs exportálásához a
>PGP -kx userId kulcs [kulcsfájl]
parancsot kell használni. A kulcsfájl érintetlenül hagyása mellet egy olan fájlt hozunk létre, amely alapján a kulcs egy másik (saját, vagy másnál levő) kulcsfájlba importálhatjuk. A saját nyilvánoskulcsunk közzétételénél is ezt a parancsot kell alkalmazni.
Ha a kulcsfájlban a kulcs alá volt írva, akkor ugyanígy, aláírva kerül exportálásra.
Ha E-mail rendszeren akarod közzétenni a kulcsodat, használt a -a opciót is (-kxa).
A kulcsfájl tartalmának megtekintése
>PGP -kv[v] [userId] [kulcsfájl]
parancsra a program kilistázza a kulcsfájl tartalmát. Ha megadtad az userId-t, akkor minden olyan kulcsot kiír, amelynek userId-jében szerepel a megadott szöveg. Ha nem adod meg a kulcsfájl nevét, az alapértelmezés a "pubring.pgp". A titkos kulcsfájl tartalmának megtekintéséhez meg kell adni a "secring.pgp"-t a parancssor végén. A kilcsfájl alapértelmezett kiterjesztése a .PGP.
A -kvv opció hatására a kulcsok mellett megjelennek a rajtuk levő aláírások is:
>PGP -kvv [userId] [kulcsfájl]
Ha egy alternatív kilcsfájlban szereplő összes kulcsot akarod kilistázni, akkor a parancssor
>PGP kulcsfájl
Ha nem adsz meg opciókat a parancssoron, a PGP kilistázza a kulcsfájl.PGP-ben szereplő összes kulcsot, és egyben megpróbálja hozzáadni őket a nyilvános kulcsfájlodhoz, ha még nem szerepelnének benne.
Hogyan védd kulcsfájljaidat a módosítástól?
A nyilvános-kulcsos szisztémában a nyilvános kulcsokat nem kell attól félteni, hogy eljutnak valakihez. Sőt, az a jó, ha terjednek. Viszont meg kell óvni a kulcsot az esetleges módosítástól. És a kulcs fogadójának meg kell bizonyosodnia arról, hogy a kulcs valóban ahhoz a személyhez tartozik, akit mi gondolunk. Ez a nyilvános-kulcsos titkosítási rendszer legsebezhetőbb pontja. Először is tekintsnk át egy potenciális katasztrófát, utána tárgyaljuk, hogy hogyan előzhető ez meg a PGP segítségével.
Tegyük fel, hogy privát üzenetet akarsz küldeni Anikónak. Letöltöd Anikó nyilvános kulcsát a BBS-ről. Lekódolod az üzenetet Aniló kulcsával és E-mail segítségével elküldöd.
Ugyanakkor, anélkül hogy te, vagy Anikó tudnátok róla, Béla generált egy kulcsot, felruházta Anikó userId-jébel, és feltöltötte a BBS-re, felülírva Anikó eredeti kulcsát. Miközben minden jónak tetszik, a privát üzenetedet Anikó helyett Béla tudja kibontani, hiszen nála van a megfelelő titkos kulcs. Sőt, a kibontás után megteheti, hogy az üzenetet lekódolja Anikó eredeti kulcsával, és továbbküldi Anikónak. Ilyenkor senki nem sejt semmit, Béla pedig vígan olvassa a privát üzeneteket. Még rosszabb, hogy Béla aláírhat Anikó nevében, hiszen mindenki a hamisított nyilvános kulcsot használja az ellenőrzéshez.
A probléma megelőzéséhez meg kell akadályozni a kulcsok módosítását. Ha Anikó személyesen adja át a kulcsát, akkor persze nem lehet gond. No de mi van akkor, ha Anikó tőled párezer kilométerre lakik, vagy egyéb okból épp elérhetetlen?
Például beszerezheted Anikó kulcsát barátodtól, Dávidtól, aki a saját (titkos kulcsával való) aláírásával igazolja a kulcs eredetét és eredetiségét. Az aláírás egyrészt jelzi, hogy Dávid kezeskedik a kulcsért, másrészt megakadályozza annak módosítását. Az ellenőrzéshez persze rendelkezned kell Dávid megbízható nyilvános kulcsával. Hasonló módon Dávid eljuttathatja a te kulcsodat (saját aláírásával) Anikóhoz.
Ebben a folyamatban Dávid mintegy közvetítőként szerepel.
Ha a BBS-ről úgy töltöd le Anikó kulcsát, hogy rajta van Dávid aláírása (amit megbízható kulccsal ellenőrizhetsz), bizinyos lehetsz benne, hogy amit letöltöttél, valóban Anikó kulcsa. Ilyenkor Béla hiába fáradozik, hiszen Dávid aláírását nem tudja előállítani az Anikó nevére írt hamis kulcson.
Egy széles körben megbízhatónak tartott ember megteheti, hogy arra szakosodik, hogy ezenformán "bemutatja" egymásnak az embereket, aláírava a nyilvános kulcsukat. Ez a megbízható ember "key server"-ré válhat. Minden kulcs, amelyik az ő aláírását viseli megbízhatónak tekinthető. Ilyenkor az összes résztvevőnek egyetlen kulcsot kell megbízhatóan beszerezniük: a "key server"-ét, amivel az aláírását ellenőrizhetik.
Nagy szervezeteknek központosított key serverekre van szüksége. Egyes környezetekben a key servereknek megvan a kiépített hierarhiája is.
Kevésbé centralizált széleskörű hálózatokban a központi key servereknél jobban mőködhet az a rendszer, hogy mindenki a közvetlen ismerőseit tekinti megbízható aláírónak. A PGP különösen itt nyújthat nagy segítséget. Működése jól illeszkedik a szokásos humán kapcsolatokhoz.
Ez a nyilvánoskulcs-védelemmel kapcsolatos tevékenység az egyetlen nehézség a nyilvánoskulcsos titkosítási rendszer gyakorlati alkalmazásában. Az egész dolognak ez az Achilles-sarka. Éppen ezért a program program elég nagy része ennek a problémának a megoldására van kihegyezve.
Csak akkor vehetsz használatba egy nyilvános kulcsot, ha meggyőződtél arról, hogy azt nem módosították, és hogy valóban ahhoz a szamélyhez tartozik, akire az userId-je utal. Ezt csak akkor veheted bizonyosnak, ha a kulcsot közvetlen úton a tulajdonostól kaptad, vagy ha általad megbízhatónak elismert ember aláírását viseli, és az aláírás ellenőrzéséhez használt nyilvános kulcs megbízhatóságáról már előzetesen megbizonyosodtál. A kulcs userId-jének a tulajdonos teljes nevét tartalmaznia kell, nemcsak a keresztnevét.
Bármennyire csábító is -- sose bízz meg egy BBS-ről letöltött kulcsban, kivéve, ha a fentiek alapján megbízható kulccsal alá van írva. A BBS-en a kulcsokat elvileg bárki módosíthatja, például a BBS üzemeltetője.
Ha arra kérnek, hogy írj alá egy kulcsot, kizárólag akkor tedd meg, ha teljesen bizonyos vagy abban, hogy kihez tartozik, és a kulcs az ő nevét viseli az userId-ben. Az aláírásoddal leteszed a nagyesküt a kulcs valódisága mellett. Más emberek azért fogják valódinak elfogadni a kulcsot, mert a te aláírásod van rajta. Nem szabad pusztán hallomás alapján aláírnod egy kulcsot. Csak ha első kézből meg tudsz győződni a valódiságról. A legjobb, ha kizárólag olyan kulcsot írsz alá, amit személyesen a gazdájától kaptál.
A kulcs aláírásához sokkal jobban kell bíznod benne, mintha csak üzenetkódoláshoz használnád. Ahhoz, hogy használj egy kulcsot elég lehet néhány rajta levő aláírás. Ahhoz, hogy magad aláírd a kulcsot, közvetlen, első kézből szerzett bizonyítékkal kell rendelkezned az eredetiségre vonatkozóan. Például felhívod a tulajdonost -- akit a telefonhang alapján azonosíthatsz -- és beolvastatod vele a kulcsot -- vagy az azonositáshoz szükséges darabját. Erre vonatkozóan olvasd el a "Kulcsok telefonon való azonosítása" c. fejezetet a dokumentáció haladó témákal foglalkozó II. részében.
Egy kulcs aláírásával csak a kulcs megbízhatóságát igazolod, nem a kulcs tulajdonosának megbízhatóságát. Nyugodtan aláírhatod megbíz- hatatlan barátod kucsát, ha tudod, hogy az övé. Ha az emberek bíznak benned, használni fogják a kulcsot. Ugyanakkor barátod áláírásának elfogadhatóságát majd mindenki egyénileg bírálhatja el.
A "megbízhatóság" nem feltétlenül továbbadható. Van egy barátom, akinek a szavát készénznek veszem. Ö meg mondjuk hisz abban, amit a miniszterelnök mond. Ez még nem jelenti azt, hogy én is megbízom abban, amit a miniszterelnök mond. Hasonlóan az aláírásoknál is. Ha én elfogadom Anikó aláírását, Anikó meg Béláét, attól én nem feltétlen fogom Béla aláírását elfogadni.
Saját nyilvános kulcsodat célszerű minél több emberrel aláiratni. Annál inkább valószínű, hogy egy potenciális használó talál valakit az aláírók között, akiben bízik. Az aláírt kulcsot terjesztheted BBS- rendszereken keresztül is. Ha aláírod valakinek a kulcsát, juttasd el a kulcsot a gazdájához. Ezzel bővítheti a kulcsa aláírásgyűjteményét.
A PGP nyilvántartja, hogy a kulcsfájlodban szereplő kulcsok közül melyek viselik megbízhetó ember aláírását. Ehhez mindössze meg kell adnod a PGP számára a megbízható emberek listáját és alá kell írnod az ő kulcsukat a saját (teljesen megbízható) titkos kulcsoddal. A PGP a lista alapján bármelyik kulcsról el tudja dönteni, hogy megbízhatónak tekinthető-e. De természetesen magad direkt modon is aláírhatsz kulcsokat. (A későbbiekben még visszatérünk a témára.)
Gondoskodj róla, hogy a nyilvános kulcsfájlodat ne módosíthassa senki. Egy új kulcs ellenőrzése attól függ, hogy sikerül-e a már összegyűjtött megbízható kulcsok alapján validálni. Örizd meg a fizikai kontrollt a nyilvános kulcsfájlod felett is. Lehetőleg ne tartsd közös rendszeren, csak a saját számítógépeden. A nyilvános kulcsot csak a belepiszkálástól kell megvédeni, a nyilVánosságra kerüléstől (szemben a titkossal) nem. Mindig legyen megbízható (és sérthetetlen) másolatod a kulcsfájljaidról.
Miután minden ellenőrzés valamelyik lépésben a saját nyilvános kulcsod sértetlenségét feltételezi, ennek módosíthatatlanságáról különös gonddal kell gondoskodnod. Lehetőséged van a PGP-t úgy beállítani, hogy a nyilvános kulcsodat minden induláskor összevesse egy csak olvasható médiumon levő másolattal. A részleteket olvasd el a "Haladó témák" dokumentációban (dokumantáció, II. rész).
A PGP feltételezi, hogy te gondoskodsz a megbízható körülmények között való működéséről. A kulcsfájlokat és a programot egyaránt olyan gépen célszerű tartani, mely fizikailag is a te kezedben van. Ha valaki belenyúlhat a kulcsfájljaidba és a PGP-be, megteheti, hogy a PGP programot úgy módosítsa, hogy ne jelezze a kulcsok megváltozását.
A nyilvános kulcsfájl védelmének egyik -- talán kicsit körülményes -- módja az, hogy aláírod az egész fájlt a titkos kulcsoddal. Ehhez a -sb opciót kell használnod (bővebben az "Az aláírás leválasztása az üzenetről" c. fejezetben a haladó témák között). Sajnos az ellenőrzéshez szükség van egy másik, megbízhatónak elismert másolat a saját nyilvánoskulcsból {emlékezz: a titkos kulccsal aláírt dolgok ellenőrzéséhez a nyilvános kulcs kell}. A benne levő kulcs erre nem használható, hiszen akkor a potenciálisan begbízhatatlan, ellenőrizendő dolgot használnád mint megbízható ellenőrző információt.
Hogy követi nyomon a PGP a megbízható kulcsokat?
Mielőtt ezt a fejezetet elolvasnád, feltétlenül olvasd végig az előző (Hogyan védd kulcsfájljaidat a módosítástól? c.) fejezetet. A PGP a kulcsokon levő aláírások alapján tudja eldönteni, hogy az adott kulcs megbízhatónak tekinthető-e. A te egyetlen ezzel kapcsolatos dolgod az, hogy agy listát készítesz, amiben felsorolod az általad megbízhatónak tartott embereket, valamint alá kell írnod az ő kulcsukat a sajátoddal. Ettől kezdve a PGP a felsorolt emberek által aláírt kulcsokat megbízhatónak fogja jelezni. Természetesen arra is van lehetőséged, hogy egyéni elbírálás alapján magad írj alá további kulcsokat.
A PGP két független szempont alapján osztályozza a kulcsokat. Ne keverd a kétféle osztályozást:
1) Valódinak tekinthető-e a kulcs? Valóban ahhoz a személyhez tartozik, akinek a nevét viseli? Ezt a rajta levő megbízható aláírás alapján lehet elbírálni.
2) Olyan ember kulcsa-e, akinek az aláírását bizonyító erejőnek fogadod el egy kulcs valódoságának tekintetében.
Az első kérdést a PGP saját hatáskörben el tudja bírálni. A másodikra csak a te útmutatásod alapján. Természetesen az 1. kérdésre adott választ a 2.-ra adott határozza meg.
Még egyszer összefogalalva: a megbízhatónak deklarált emberek által aláírt _kulcsokat_ tekinti a PGP begbízhatónak. A megbízható _személyek_ körét neked kell meghatároznod. Az ő kulcsukat pedig vagy elsődleges forrásból kell beszerezned, vagy más megbízható emberek aláírása van rajtuk.
A PGP-ben az embereket több csoportba sorolhatod megbízhatóság szempontjából. A besorolás nemcsak az humán megbízhatóságot kell, hogy tükkrözze, hanem a PGP használatában elért jártasságot is. Azt a képességüket, hogy jól el tudjanak bírálni egy kulcsot, mielőtt aláírnák. Az alábbi kategóriákat használja a PGP: ismeretlen (unknown), megbízhatatlan (untrusted), aránylag megbízható (marginally trusted), tökéletesen megbízható (completely trusted). Ezt a besorolást a kulcsfájlodban őrzi az egyes kulcsok mellett. Amennyiben exportálod a kulcsot, a megbízhatóságra vonatkozó információ nem kerül a kivonatba, mert ez a te kizárólagos személyes ügyed.
A kulcs megbízhatóság szerinti elbírálásnál a PGP tekintetbe veszi az aláírások számát és "értékét". Pl. két többé-kevésbé megbízható aláírás ér annyit mint egy tökéletesen megbízható. A pozitív elbíráláshoz szükséges aláírás-mennyiséget te is tudod szabályozni, pl. megadhatod, hogy két tökéletesen, vagy három többé-kevésbé megbízható aláírás legyen a megbízhatónak elfogadott kulcson.
A saját kulcsod definíció szerint tökéletesen hiteles. A saját kulcsaidat a titkos kulcsfájlban tárolt kulcsok alapján ismeri fel a program. Hasonlóképpen tökéletesen hitelesnek számítanak a te kulcsoddal aláírt kulcsok.
Ahogy az idő halad, mindenki gyűjti a kulcsokat, és kiválasztja a hitelesítéshez a megbízható embereket. És időnként mindenki kiad egy- két maga által aláírt "holtbiztos" kulcsot, természetesen a rajta levő többi aláírással együtt. Ahogy a kulcsokon gyűlnek az aláírások, egyre valószínűbb, hogy egy új fogadó talál az aláírások között szerinte megbízhatót. A helyi bizalmi gócokból így létrejön egy nagy háló, amely lehetővé teszi a kulcsok biztonságos azonosítását.
Ez a séma pont ellentétes a kormány által támogatott gyakorlattal. Ott központi előírások vannak a bizalmi kategóriákra, felülről mondják meg, hogy melyik aláírásban mennyire kell hinned. A PGP decentralizált kulcs-kezelése neked hagyja meg a döntést ezekben a kérdésekben, ezáltal téged helyezve az előző gyakorlatban használt piramis legtetejére. Egy hasonlattal élve a PGP azoknak az embereknek kedvez, akik maguk szeretik összehajtogatni az ejtőernyőjüket. {Az, hogy az ejtőernyő ki tud-e nyílni leginkább az összehajtogatástól függ. :-)}
Hogyan védd titkos kulcsodat?
Nagyon vigyázz a titkos kulcsodra és az ezt védő jelszóra. Ha a kulcs egyszer "kicsúszott a kezedből", jobb ezt mielőbb a világ tudtára adni. Lehetőleg még mielőtt valaki a te nevedben kezd aláírásokat produkálni. A titkos kulcsod birtokában pl. kulcsokat tudnak hamisítani, és ez sok embernek okozhat komoly kellemetlenségeket. Különösen akkor, ha sokan bíznak a te aláírásodban. És természetesen az, aki megszerezte a titkos kulcsodat el tudja olvasni a neked szánt üzeneteket.
Először is a kulcsfájl és az ezt tartalmazó médium felett mindig legyen a te felügyeleted alatt. Tartsd az otthoni gépeden, vagy azon a notebook-on, amit nmagaddal szoktál hordani. Ha a munkahelyeden levő géphez más is hozzáfér (vagy pl. egyik pillanatról a másikra elvihetik), a kulcsfájljaidat tartsd inkább egy írásvédett lemezen, amit magaddal hordasz. Ne másold fel a számítógépedre. Mindenképpen rossz praktika a kulcsfájlokat közös rendszeren elhelyezni (amilyen pl. egy felhívható, unix alapú rendszer). Ha valaki képes lehallgatni a modemedet, elcsípheti a jelszavadat, a kulcsodat meg egyszerűen kimásolja a közös rendszer háttértárolójából. A titkos kulcsot csak kizárólagos használatú gépen használd!
A jelszódat sose tárold azon a számítógépen, amelyen a kulcsfájlt. {Semmilyen számítógépen ne tárold.} Az együtt-tárolás pontosan annyira helytelen, mint pl. a PIN-edet együtt tárolni az Automatic Teller Machine bankkártyáddal. Ha valaki történetesen hozzáférne a gépedhez, legalább ne kaphassa kézbe a kulcs mellett a jelszavadat is. A leghelyesebb gyakorlat, ha a jelszó sehol nem szetepel leírva vagy elektronikus formában, kizárólag a te memóriádban. Ha szükségesnek érzed, hogy leírd, akkor vigyázz rá még jobban, mint a kulcsfájlra.
És legyen mindig másolatod a titkos kulcsodról! Emlékezz, a titos kulcs csak neked van meg. És ha elveszíted, a nyilvános kulcsod a világban elterjedt számtalan példánya azon nyomban használhatatlanná válik.
A PGP decentralizát kulcs-elbírálási rendszere a gyakorlatban komoly előny, viszont mivel nincsenek hivatalos érvényes kulcslisták, egy titkoskulcs-kiszivárgás esetén csak abban bízhatsz, hogy az erről szóló információ elég gyorsan elterjed.
Amennyiben megtörténik a legrosszabb: valaki hozzájut a titkos kulcsodhoz ÉS a jelszavadhoz is, (de ez legalább a tudomásodra jut), akkor egy "kulcs érvénytelenítési" üzenetet kell generálnod, és ezt kell terjesztened. Ez az üzenet arra figyelmezteti a fogadókat, hogy ne használják többé a(z adott kulcshoz tartozó) nyilvános kulcsot. A PGP a -kd opcióval csinál ilyen üzenetet. Ezután el kell juttatnod a föld minden emberéhez -- de legalább a barátaidhoz, és azok bará- taihoz, stb, azokhoz, akik szokták a nyilvános kulcsodat használni. Az ő PGP-jük felgolgozza az érvénytelenítési üzenetet, és az érvény- telenítés ténye bekerül a nyilvános kulcsod mellé a kulcsfájljukba. Ez a jövőben magakadályozza a kulcsod véletlen használatát. Az eset után új kulcspárt kell generálnod, és az új nyilvános kulcsot szintén el kell terjesztened. A két üzenet (érvénytelenítés + új kulcs) egyszerre is terjeszthető.
A nyilvános kulcs bevonása
Tegyk fel, hogy titkos kulcsod a használatához szükséges jelszóval együtt idegenek kezére került. Ilyenkor értesítened kell mindenkit, hogy a nyivános kulcsod többé nem használható. Ehhez kulcs "érvénytelenítési" vagy más szóval "visszavonási" parancsot kell kiadnod. Ez a parancs a
>PGP -kd saját_userId
A visszavonás ugyanazzal a kulcssal van aláírva, amit visszavonsz {ezért a titkos kulcsod nélkül nem hamisítható}. A visszavonási üze- netet mielőbb minél szélesebb körben terítened kell. A fogadóknál ez az információ beépül a kulcsfájlba és megakadályozza a visszavont kulcs további használatát. A visszavonás után készíthetsz magadnak egy új kulcspárt.
Egy kulcsot az említettől eltérő ok esetén is visszavonhatsz. A mechanizmus ebben az esetben is ugyanez.
Mi a helyzet, ha elveszíted a titkos kulcsodat?
Normális esetben az érvénytelenítő üzenet alá van írva a titkos kulcssal (lásd az előző két fejezetet).
De abban az ezetben, ha elveszíted (pl. letörlöd) a titkos kulcsod, erre nem lesz lehetőség. A PGP jövőbeli verzióiban az ilyen esetekben történő visszavonás némileg biztonságosábbá lesz téve. Az érvénytelenítő határozatot olyankor ugyanúgy megbízható emberekkel kell aláiratni, mint normál esetben a kulcsokat. A jelenlegi rend- szerben ez Még nincs implementálva, ezért mindössze egy olyan üzenetet küldhetsz ki, amely megkér mindenkit, hogy saját maga érvénytelenítse a kulcsodat a saját kulcsfájljában a
>PGP -kd userId
paranccsal. A PGP a -kd parancsnál először a titkos kulcsok között keres, s ha ott nem szerepel az Id, akkor a nyilvános kulcsfájlban folytatja. A megtalált kulcsot "letiltott" (disabled)-ként jegyzi be. A letiltott kulccsal nem lehet kódolni, és nem lehet az ilyet exportálni sem. Aláírás ellenőrzéséhez továbbra is használható, de ilyenkor mindig egy figyelmeztető üzenet is jár az ellenőrzés eredménye mellé. A kulcs újonnan való importálása sem lehetséges, hiszen az adott userId már foglalt. Ezen funkciók együttesen (többé- kevésbé) gátat vetnek a letiltott kulcs további terjedésének.
Amennyiben a -kd parancsot alkalmazod és a kulcs már tiltott, a program rákérdez, hogy engedélyezni akarod-e.
Haladó témák
A haladó témakörök nagyobb része a dokumentáció II. részében kapott helyet. De néhány fontos opciót itt is leírunk.
Kódszöveg küldése E-mail csatornán
A legtöbb E-mail hálózat csak 7-bites ASCII kódolású szöveg terjesztését teszi lehetővé, azt a 8-bites kódszöveget, amit a PGP generál nem tudod eredeti formában elküldeni. A probéma megoldásához a PGP a PEM remndszerhez hasonlóan lehetővé tesszi a küldendő üzenet Radix-64 szerinti kódolását. Ez a speciális formátum kizárólag ASCII karaktereket alkalmaz, ezért gond nélkül küldhető. Ez a formátum mintegy pajzsként szolgál az üzenet körül, megakadályozva, hogy a továbbító állomásokon az üzenet az átviteli technológia miatt módosuljon (és tönkremenjen). A formátum része egy CRC érték, ami a továbbítási hibák detektálására szolgál.
A Radix-64 formátumban 3 8 bites értékből 4 6 bites, az ASCII kódtartományba eső kód keletkezik. Ezáltal az üzenet mérete mintegy 33%-kal megnő. De ha tekintetbe veszed, hogy titkosítás előtt a PGP tömörítette az eredetit, lehet, hogy a kódolt output mégis rövidebb lesz, mint az eredetei.
Ahhoz, hogy a PGP bármelyik opciójával nyert output ne bináris, hanem Radix-64 kódolású legyen, a parancssori opciót ki kell egészíteni egy a betűvel. Pl.
>PGP -esa message.txt f_userId
Ez a parancs az aláírt és kódolt üzenetet Readix-64 formátumban írja ki, amit biztonságosan feladhatsz egy E-mail rendszerre.
A Readix-64 formátumú érkezett üzenetek dekódolása nem tér el a binárisakétól. A PGP automatikusan észleli a két formátumot.
>PGP message
parancsra a PGP először message.ASC fájlt keres, ha ez nem létezik, akkor message.pgp-t. Az ASC először belsőleg a .pgp-hez hasonló bináris formátumúvá alakul. Innen már egységesen történik meg a kibontás majd az aláírás-ellenőrzés. A végeredmény pedig ugyanaz a message.TXT.
Az Internet levelező rendszer tiltja az 50000 bájtnál hosszabb üzenetek átvitelét. A hosszabbakat több darabra kell tördelni. A tördelést a PGP automatikusan elvégzi. Az egyes darabok .AS1, .AS2, stb. kiterjesztést kapnak. A kibontás előtt ugyanezek a fájlok egységes egésszé állnak össze. Az üzenet-fájloknam levő nem rá tartozó szöveget (címzés, tagline, stb.) automatikusan figyelmen kívül hagyja, ezért a leveleket nem kell előzetesen kozmetikázni.
A Radix-64 formátum nemcsak üzeneteknél, hanem kulcs-export esetén is használható. Az így exportált kulcs E-mail hálózaton terjeszthető.
A konverzió utólagosan is elvégezhető.
PGP -a file
a megadott fájl egyszerű bináris -> Radix-64 kódolását végzi.
Amennyiben El akarsz küldeni egy olyan üzenetet, ami nincs rejtjelezve, csak alá van írva, és ezen alkalmazod a Radix-64 formátumot, az üzenet emberi szemmel olvashatatlanná válik.
Lehetőség van arra, hogy amennyiben az üzenet eredetileg szöveges volt, csak a szignatúra, vagyis az újonnan keletkező bináris részek lesznek radix-64 formátumúak, az üzenet többi része változatan marad. Ilyenkor teljesül az, hogy az üzenet E-mail útján küldhető, Közvetlenül olvasható, ugyanakkor az aláírrás által ellenőrizhető az autentikussága.
Az ezen opció akalmazásával kapcsolatos további tudnivalók a speciális témák (dokumentáció, II. rész) között található. Az "A paraméterek külső konfigutrálása: CONFIG.TXT" fejezet CLEARSIG paraméterrel foglalkozó részében találhatóak.
Környezeti változó a path megadásához
A PGP számos fájlt használ a működéséhez. Ilyenek a nyilvános és a titkos kulcsfájlod ("pubring.pgp", "secring".pgp), a véletlenszámok ganarálásához használt "randseed.bin", a konfigurációt leíró "config.txt", és az idegennyelvű üzenet-konverzióhoz használt "language.txt". Ezek a fájlok tetszőleges könyvtárban lehetnek, ha beállítod a "PGPPATH" változót, hogy erre mutasson. Pl. MS-DOS alatt a
>SET PGPPATH=C:\PGP
végrehajtása után a program a C:\PGP\pubring.pgp fájlt keresi nyilvános kulcsfájlként. Ezt célszerű lehet az AUTOEXEC.BAT-ban beállítani. Ha a változó értéke nincs megadva, a PGP mindig a kurrens directoryban keresi a működéséhez szükséges fájlokat.
A konfiguráció beállítása: CONFIG.TXT
A CONFIG.TXT fájlban be lehet állítani sok PGP-paramétert, amelyeket egyébként a parancssoron kellene megadni minden indításkor. A CONFIG.TXT egy egyszerű szöfegfájl, amit kedvenc ASCII- szövegszerkesztőddel szerkeszthetsz. A program a PGPPATH által beállított (vagy ennek hiányában a kurrens) könyvtárbvan keresi a
CONFIG.TXT-t.
A konfigurációs fájlban lehet olyan opciókat definiálni, mint azt, hogy hol tárolja a PGP az ideiglenes fájlokat, hogy melyik idegen nyelven jelenítse meg a promptokat és a diagnosztikai üzeneteket, vagy beállítani a kulcsok validálásához szükséges alAírások súlyát és mennyiségét.
A konfigurálással kapcsolatos részleteket a dokumentáció II. részében találod egy külön erről szóló fejezetben.
Sebezhetőség
Minden biztonsági rendszerbe be lehet hatolni. A PGP-t is számos úton ki lehet játszani. Az erre szolgáló módszerek (melyeket ki kell védened) pl. a titkos kulcs és jelszavának megszerzése, a nyilvános kulcs módosítása, hamisítása, a számítógépen vagy a diszken rosszul letörölt eredeti fájlok, vírusok és trójai programok, közvetlen behatolás, az elektromágneses emisszió monitorozása, "lefigyelés" a többfelhasználós rendszerben, adatforgalom-vizsgálatok, esetleg még direkt rejtjelfejtés is.
A felsorolt dolgok részletes leírása a dokumentáció II. részében a Sebezhetőség fejezetben található.
A hamis biztonság
Egy titkosító szoftver esetén mindig felmerül az a kérdés, hogy miért kellene bíznod benne. Még akkor is, ha magad vizsgáltad át a forráskódot, kriptográfiai ismeretek hiányában nem feltétlenül tudod jól megítélni a biztonság fokát. És ha jól értesz is a kriptográfiához, előfordulhat, hogy az algoritmus apró hiányossága esetleg elkerüli a figyelmedet.
Amikor gimnáziumba jártam, még a hetvenes évek elején, kitaláltam egy zseniális titkosítási módszert. Ebben egyszerűen pszeudorandom számokat kellett vegyíteni a nyersszövegbe, így jött létre a kódszöveg. A bekevert számok lehetetlenné teszik a frekvencia- analízisen alapuló fejtést, és még a kormányerők se bírnák vissza- fejteni az üzenetet. Nagyon elégedett voltam a felfedezésemmel. És rendkívül magabiztos.
Évekkel később megtaláltam a módszeremet számos kritográfiába bevezető könyvben. Príma. Más kódolóknak is eszébe jutott ez a dolog. Csak az volt a baj, hogy a módszer azért került bemutatásra, hogy néhány elemi kriptoanalízis-technikát demonstráljanak az így kódolt üzenetek visszafejtésénél. Na ennyit a zseniális módszeremről...
Az esetből kénytelen voltam levonni azt a tanulságot, hogy a rejtő- algoritmus tervezésénél mennyire könnyű beleesni a hamis biztonság érzetébe. Az emberek többsége nem érti, hogy mennyire nehéz egy olyan titkosító algoritmust találni, mely ellenáll egy erőforrásokban bővelkedő ellenfél tartós feltörési kísérleteinek. Jónéhány szoftver- fejlesztő megtette, hogy teljesen naív séma alapján írt titkosító algoritmust (akár többen ugyanazt.) Egyeseket bele is építettek a kereskedelmi termékekbe és jó pénzt csináltak belőle, amikor eladták sokezer gyanútlan felhasználónak.
Ez azzal analóg, hogy olyan biztonsági övet árul valaki, amely ránézésre jónak tűnik, viszont a legcsekélyebb karambol esetén is elszakad. Az ilyenek használata még veszélyesebb, mint teljesen biztonsági öv nélkül autózni. Hiszen senki sem gondolja, hogy rosszak egy valódi karambol bekövetkeztéig. A gyenge algoritmuson alapuló titkosítás használata hasnló veszélynek teszi ki féltett adatainkat. Amelyek titkosítás nélkül esetleg nem kerülnének ugyanilyen helyzetbe.
Egyes kereskedelmi csomagok a DES algoritmust használják, ami egy elég jó hagyományos titkosítási eljárás, amelyet saját köznapi adatainek védelmére kormány is előír (de nem úgy kiemelt titkosságú adatokra -- hmm.). A DES többféle módon futhat, melyek közül egyes módok jobbak, mint a többiek. Igy a kormány előírja, hogy ne alkalmazzák a legegyszerűbb ECB (Electronic Codebook) módot, hanem az erősebb CFB (Cipher Feedback) vagy CBC (Cipher block chaining) módot kell alkalmazni.
Ennek ellenére az általam látott DES-t alkalmazó programokban az ECB-t alkalmazzák. Beszéltem néhány ilyen program készítőjével, és kiderült, hogy egyesek nem is hallottak a CBC és FCB módokról, sem az ECB ismert gyengeségeiről. Már az a tény is felháborító, hogy az ilyen témában programozónak halvány sejtelme sincs a kriptográfia alapjairól. És ezek a szoftverek ráadásul szoktak egy alternatív algoritmust is tartalmazni, melyet a lassú DES helyett javasolnak használni. A szerző talán abban a hitben ringatja magát {és a fogyasztókat}, hogy az alternatív rejtjelzés ugyanolyan biztonságos mint a DES lenne, de kikérdezve gyakran tapasztaltam, hogy az én előzőekben ismertetett "zseniális" algoritmusom egy változatáról van szó. Vagy a programozók másik csoportja egyszerűen semmit nem hajlandó elárulni a titkosítás módjáról, ugyanakkor elvárja, hogy feltétel nélkül megbízzak benne. Elhiszem, hogy meg van győződve, hogy az alkalmazott módszere zseniális, de hogyan lehetnék ebben biztos, ha nem láthatom?
A tárgyilagosság érdekében le kell szögeznem, hogy a fentiekben tárgyalt szoftverek nem olyan társaságoktól származnak, melyek kriptográfiára specializálódnak.
Van egy AccessData nevű társaság (87 East 600 South, Orem, Utah 84058, tel: 1-800-658-5199), mely 185 dollárért árul egy olyan programot, mely megfejti a WordPerfect, Lotus 1-2-3m MS Excel, Symphony, Quattro Pro, Paradox és MS-Word 2.0 programok beépített titkosítását. És nem egyszerűen kitalálja a jelszót, hanem valódi kriptoanalízist használ. Az emberek jó része saját -- elfelejtett jelszóval védett -- adatainak visszafejtéséhez vásásrolja meg az említett programot. Meg törvényes végrehajtással foglalkozó társasá- gok, amikor a lefoglalt fájlokba szeretnének beleolvasni. Beszéltem Eric Thompsonnal, a program szerzőjével, ő mondta, hogy a program a másogperc tört része alatt végez a megfejtéssel, csak beleépített jópár lassító ciklust, hogy a vásárló szemében a megfejtés komoly munkának tűnjön. Azt is közölte, hogy a PKZIP jelszavas védelme ugyanúgy könnyen feltörhető és a végrehajtók máris hozzájutnak ehhez a szolgáltatáshoz egy másik cég által.
A rejtjelzés bizonyos tekintetben hasonló a gyógyszerekhez. Az integritása a döntő. A rossz penicillin kívülről pont ugyanolyan mint a rossz penicillin. A táblázatszámoló szoftverről ránézésre meg tudod mondani, hogy rossz, de hogy állapítod meg a titkosítóról hogy az? A rossz titkosító által létrehozott kódszöveg pont olyan jónak tűnik mint a jó titkosítóé. Ez jó terepet kínál a "kuruzslóknak". De szemben a gyógyszert hamisítókkal, a rossz titkosítók készítői még csak nincsenek is tisztában azzal, hogy amit eladnak, az a hamis biztonság. A készítők általában jó programozó szakemberek, de életükben nem láttak még kriptográfiáról szóló irodalmat. És meg vannak győződve róla, hogy jó titkosítót tudnak készíteni. Miért is ne? Hisz a feladat nem tűnik olyan nehéznek. És a program látszólag jól is működik.
Az az ember, aki kitalált egy szerinte megtörhetetlen titkosítást vagy egy rendkívül ritka zseni, vagy naív és tapasztalatlan a területen.
Emlékszem, hogy Brian Snow, az NSA {USA biztonsági szolgálat} egyik sokra tartott elöljáró kritográfusa azt mondta: sose hinne egy olyan ember által kitalált algoritmusban, aki előzőeg nem szerzett komoly tapasztalatokat a rejtjelfejtés területén. Az ilyen tapasztalat nagyon sokat ér. Ahogy megfigyeltem, a titkosításra szakosodott cégeknél csupa ilyen tapasztalt embert látni. "Igen", folytatta Snow, "ez jelentősen megkönnyíti a munkánkat itt az NSA-ban". Magam is osztom ezt a véleményt.
A hamis biztonsággal maga a kormány is kereskedik. A II. világháború után pl. eladták a németektől zsákmányolt Enigma rejtjelző készülékeket a fejlődő országok kormányainak. De azt nem közölték, hogy a Szövetséges hatalmak már a háború alatt megfejtették az Enigma rejtjelezést. Ezt a tény a háború után sokáig titokként őrizték. A ma elterjedt Unix rendszerek közül elég sok ma is az Enigma kódolást használja a fájlok titkosítására, részben azért, mert a kormány akadályokat gördített a jobb sémák alkalmazásának útjába. Az RSA algoritmus 1977-ben való publikálását is szerettték volna megakadályozni. És azóta is megakadályozzák a gyártók minden olyan törekvését, mely valóban biztonságos telefonokkal látná el a köznépet.
Az USA biztonsági hivatalának (NSA) is az a legfőbb munkája, hogy információkat gyűjtsön. Elsősorban a privát telefonbeszélgetések lehallgatásával (lásd James Bamford "The Puzzle Palaze" c. könyvét). Az NSA-nál jelentős tudás és erőforrás áll rendelkezésre a különféle titkosítások megfejtéséhez. Ha az emberek nem jutnak jó titkosító- programhoz, az csak az öröm az NSA-nak. Ugyanez a szervezet foglal- kozik a titkosító algoritmusok minősítésével és előírásával is. Egyesek szerint ez komoly érdekkonfliktust jelent. Olyan, mintha a kecskére bíznák a káposztát. Az NSA a saját algoritmusának használatát erőlteti, melynek működésébe nem lehet betekinteni (lévén titkos), ugyanakkor elvárja, hogy bízzunk benne és használjuk. Ezzel szemben bármelyik kriptográfus megmondhatja, hogy egy jó titkosító algoritmust nem kell titokként őrizni, a nyilvánosságra hozatal semmiben nem jelent támpontot a megfejtéshez. Csak a titkosító kulcsokat kell titokban tartani. Az NSA emberein kívül ki tudhatja, hogy az algo- ritmus megbízható? És mindenki tudja, hogy nem nehéz egy olyan algoritmust tervezni, amelynek alapján azután csak ők tudnak kódot visszafejteni, amíg nem hozzák nyilvánosságra. Elképzelhető hogy szándékosan hamis biztonságot árulnak?
Én nem vagyok annyira bizonyos a PGP megbízhatóságában, mint annak idején a saját "zseniális" algoritmusomban hittem. Ha így lenne, azt rossz jelnek tartanám. Viszont abban biztos vagyok, hogy az RSA nem tartalmaz semmilyen könnyen felfedhető gyengeséget. A PGP-ben alkal- mazott algoritmusokat a civil szféra kiemelkedő kriptográfusai tervezték, és ezek egyenként komoly gyakorlati próbáknak voltak alávetve. A program forráskódja széles körben hozzáférhető, tehát bárki beletekinthet. A program sok éven át készült, és ezalatt rengetegen áttekintették. És én nem az NSA-nak dolgozom. Remélem, hogy ennyi elegendő ahhoz, hogy valaki megbízhasson a PGP-ben.
PGP gyors áttekintés
Ime a PGP parancsainak gyors áttekintése:
Nyersszöveg kódolása a fogadó nyilvános kulcsával:
>PGP -e textfile f_userId
Nyersszöveg aláírása a saját titkos kulcsoddal:
>PGP -s textfile [-u s_userId]
Nyersszöveg aláírása a saját titkos kulcsoddal, majd kódolásaa a fogadó nyilvános kulcsával:
>PGP -es textfile f_userId [-u s_userId]
Nyersszöveg kódolása hagyományos kriptográfiával:
>PGP -c textfile
Kódszöveg kibontása, és aláírás ellenőrzése {illetve kibon- tás/ellenőrzés bármilyen kombinációja}:
>PGP ciphertextfile [-o plaintextfile]
Nyersszöveg kódolása több fogadó nyilvános kulcsával:
>PGP -e textfile f_userId1 f_userId2 f_userId3 f_userId4 ...
--- Kulcskezelő funkciók
Kulcspár generálása:
>PGP -kg
Kulcs importálása egy fájlból a kulcsfájlba:
>PGP -ka file [kulcsfile]
Kulcs exportálása a kulcsfájlból:
>PGP -kx[a] userId file [kulcsfile]
A kulcsfájltartalmának listázása:
>PGP -kv[v] [userId] [kulcsfile]
A nyilvános kulcs kivonatának megjelenítése (pl. telefonon való egyeztetéshez):
>PGP -kv[c] [userId] [kulcsfile]
A kulcsfájl listázása az egyes kulcsok aláírásaival együtt:
>PGP -kc [userId] [kulcsfile]
A titkos kulcs userId-jének vagy jelszavának módosítása:
>PGP -ke userId [kulcsfile]
Kulcs vagy userId törlése a kulcsfájlból:
>PGP -kr userId [kulcsfile]
Más kulcsának saját kulccsal való aláírása a kulcsfájlban:
>PGP -ks f_userId [-u s_userId] [kulcsfile]
Egyes aláírások eltávolítása egy kulcsról:
>PGP -krs userId [kulcsfile]
Saját kulcs végleges érvénytelenítése:
>PGP -kd s_userId
Kulcs letiltása/engedélyezése a saját nyilvános kulcsfájlodban:
>PGP -kd userId
---- Még néhány parancs az ínyenceknek:
Kódszöveg dekódolása az aláírás rajtahagyásával:
>PGP -d ciphertextfile
Aláírás létrehozása külön fájlba:
>PGP -sb textfile [-u s_userId]
--- Más opciókkal kombinációban használható opciók
Csak ASCII kódokat fogadó terjesztőhálózaton való továbbításhoz a Radix-64 kódolást eredményező -a opciót kell használni. Kulcs-export vagy kódszöveg létrehozásakor a parancssor:
>PGP -kxa userId file [kulcsfile]
>PGP -sea textfile f_userid
Ahhoz, hogy a nyersszöveg fájlt a sikeres kódolás után a PGP felülírja és letörölje, a -w opcióval kell kiegészíteni a parancssort.
>PGP -sew textfile f_userid
Ha a nyersszöveg nem bináris, hanem szövegfájl, és a fogadó oldalon át kell esnie a helyi szövegformázásnak, a patancssoron a -t opciót kell alkalmazni:
>PGP -seat message.txt f_userid
Ahhoz, hogy a kifejtett szöveget ne fájlba írjuk, hanem csak a képernyőre és ott képernyőnkénti megállás (more) mellett olvassuk:
>PGP -m ciphertextfile
Ahhoz, hogy kódoláskor megakadályozzuk a kibontáskor a fájlba írást (a kibontott szöveget kizárólag a képernyőn lehet olvasni), a kódoló sorban kell a -m opciót alkalmazni a többi mellett.
>PGP -steam message.txt f_userid
Ahhoz, hogy a kibontáskor az eredeti nyersszöveg-fájlnevet kapjuk vissza, a -p opció szükséges:
>PGP -p ciphertextfile
Unix filterként való viselkedéshez a -f opció szükséges. A program ilyenkor a standard inputot olvassa, a standard outputra ír.
>PGP -feast f_userid <input >output
Jogi kérdések
A témával kapcsolatos részleteket a dokumentáció második részében olvashatod ugyanilyen című fejezet alatt.
A PGP-ben használt nyilvános-kulcsos eljárás az USA területére a #4,405,829 patent alatt van bejegyezve. A patent USA területén való használatának kizárólagos joga a californiai Public Key Partners (PKP) nevű társaságé. Amennyiben a PGP-t az USA területén használod, ez jogsértő lehet. Az ezzel kapcsolatos részletekről a dokumentáció II. részében olvashatsz.
a PGP ún. "gerilla" freeware, így szabadon beszerezheted és terjesztheted. Csak ne engem kérj, hogy küldjek neked egy példányt. Szerezd be magad valamelyik BBS-ről, Internet FTP helyről vagy ismerőseidtől.
Köszönetnyilvánítás
Köszönetet szertnék mondani az alábbi embereknek, akik segítettek nekem a PGP program létrehozásában. A PGP 1.0 verzióját még én megam írtam, a későbbi verziókban nagy részeket több más szerző implementálta, nemzetközi összefogásban, az én felügyeletem alatt.
Branko Lankester, Hal Finney és Peter Gutmann rengeteg munkát fektetett a PGP 2.0 számos funkciójának megírásába és a szoftver számos unix variáns alá való adaptációjánál. Hal és Branco herkulesi erővel dolgozott az új kulcskezelési sémám megvalósításánál. Branco több időt töltött a PGP írásával mint bármely más segítőtársam.
Hugh Kennedy írta át VAX/VMS alá, Lutz Frank Atari ST gépre, Cor Bosman and Colin Plumb pedig Commodore Amigára.
A program különféle nyelverke fordítását és nemzeti adaptációját az alábbi emberek végezték: Jean-loup Gailly -- Franciaország, Armando Ramos -- Spanyolország, Felipe Rodriquez Svensson és Branko Lankester -- Hollandia, Miguel Angel Gallardo -- Spanyolország, Hugh Kennedy és Lutz Frank -- Németország, David Vincenzetti -- Olaszország, Harry Bush és Maris Gabalins -- Lettország, Zygimantas Cepaitis -- Litvánia, Peter Suchkow és Andrew Chernov -- Oroszország, és Alexander Smishlajev -- eszperanto. Peter Gutmann felajánlotta az Új-Zélandi angolba való fordítást, de végül úgy döntöttünk, hogy az USA angol elég lesz.
Jean-loup Gailly, Mark Adler és Richard B. Wales publikálta a ZIP tömörítő rutinokat és engedélyezte ezek felhasználását a PGP-ben. Az MD5 rutinokat Ron Rivest írta és adta át Public Domain-be. Az IDEA(tm) kódoló eljárást Xuejia Lai és James L. Massey fejlesztette ki az ETH- ban, Zurich-ben. Az IDEA PGP-ben való alkalmazásához az Ascom-Tech AG adott engedélyt.
Charlie Merritt tanította nekem erederileg a RSA-ban szükséges nagypontosságú számítások kivitelezését, Jimmy Upton pedig egy gyors szorzó/modulószámító eljárást készített. Thad Smith készített egy még gyorsabb moduló-számító algoritmust. Zhahai Stewart számos ötlettel járult hozzá a PGP fájlformátum és hasonlók tervezéséhez, ideértve azt, hogy egy kulcshoz több userId tartozhasson. A kulcs-aláírókra vonatkozó ötletet Whit Diffie vetette fel. Kelly Goen a PGP 1.0 elekronikus úton való elterjesztésén dolgozott.
Colin Plumb, Derek Atkins, és Castor Fu a kódolásban segített. Szinkén a kódolásban valamint sok egyéb dologban segítettek még Hugh Miller, Eric Hughes, Tim May, Stephan Neuhaus és sok-sok más ember, akiknek a neve éppenn nem jut eszembe. Zbigniew Fiedorwicz és Blair Weiss irányítása alatt két Macintosh project is fejlesztés alatt áll.
A PGP 2.0 publikálása óta számos programozó küdtött patch-eket és hibajavításokat, valamint segítséget az új rendszerekre való átírá- sokhoz. Túl sokan vannak ahhoz, hogy mindegyiküknes személyesen mondjak köszönetet.
A PGP projekt önálló életre kelt. Nagy poitikai jelentőségére való tekintettel számos önkéntes programozót vonzott szerte a világban. Emlékszel a kőlevesről szóló mesére? Az egyre sűrűbb levesen keresztül már alig látszik az a kő, amelyet én dobtam bele annak idején útjára indítva a PGP-t.
A szerzőről
Philip Zimmerman egy 19 éves gyakorlattal rendelkező programozó.
Kiemelt területei a real-time rendszerek, a rejtjelezés, az autenti- káció és az adattovábbítás. Gyakorlata kiterjed a pénzügyi információs hálózatokban alkalmazott adatbiztonsági rendszerek, kulcskezelési protokollok, valós idejű multitaszk renddszerek, operációs rendszerek és heyi hálózatok tervezésere és megvalósítására.
Boulder Software Engineering
3021 Eleventh Street
Boulder, Colorado 80304 USA
Tel: 303-541-0140 (voice/FAX) (10:00am - 7:00pm Mountain Time)
Internet: prz@acm.org
<Itt az dokumentáció I. részének vége.>
___--------------------------------------------------<<<---------
Nincsenek megjegyzések:
Megjegyzés küldése