PGP - Pretty Good Privacy
Mire jó?
- Nyilvános-titkos kulcspárt generálhatunk magunknak titkos és/vagy biztonságos levelezéshez.
Ezek (a kulcsok és a pgp) azt tudják, hogy ha (akármilyen sorrendben) előbb egyikkel kódolunk egy levelet, aztán az így kapott (olvashatatlan) levelet a másikkal, akkor az eredetit kapjuk vissza.
A pgp program a kulcsok generálására is, azok használatára (kódolásra a kulcsokkal) is alkalmazható.
- A köldött leveleinket kódolhatjuk vele úgy, hogy
- Csak a címzett tudja elolvasni. Kell hozzá, hogy a címzettnek is legyenek kulcsai, és ismerjük a nyilvános kulcsát.
A levelet a címzett nyilvános kulcsával kódoljuk. A saját titkos kulcsával kódolja vissza (a pgp) a levelet.
- Mindenki tudja olvasni (ha hozzáfér), aki ismeri a nyilvános kulcsunkat(, és van pgp-je).
A levelet a saját titkos kulcssal kódoljuk. A címzettek pgp-je a nyilvános kulcsunkkal kódolja vissza a levelet.
- Csak a címzett tudja elolvasni, és biztos lehet benne, hogy mi írtuk a levelet. Kell hozzá egymás nyilvános kulcsainak ismerete.
A levelet a saját titkos kulcssal és a címzett nyilvános kulcsával kódoljuk. A saját titkos kulcsával és a mi nyilvános kulcsunkkal kódolja vissza a levelet a pgp.
Ezek mindegyike macerás, csak igen indokolt esetben használ ilyesmit az (igen fontos vagy igen titkolózó) ember (rendszeresen).
(Ez arra is vonatkozik, hogy lehetőleg senki ne írjon nekem ilyen levelet, pláne ne küldjön titkosan beadandó feladatokat.)
- A köldött leveleinket aláírhatjuk vele. Ez azt jelenti, hogy a levelet mindenki el tudja olvasni, aki hozzáfér.
Aki ismeri a nyilvános kulcsunkat, az a pgp-vel ellenőrízni tudja, hogy nem hamisították-e a levelet.
Azon alapul a dolog, hogy a nyilvános kulcsunk és a levél-szöveg felhasználásával a pgp olyan kódolt záradékot, "elektronikus aláírást" ("signature") tesz a levél végére,
ami a nyilvános kulcsunkkal és az eredeti levélszöveggel együtt "stimmel", különben nem.
Ezt a módszert sok cégnél kötelező használni, ezért nem árt vele megbarátkozni, annak ellenére, hogy enélkül egyszerűbb lenne az élet.
Használni fogom, mert a múlt félévben megtörtént, hogy egy hallgató a nevemben írt (hamisított) levelet kapott, amiről azt hihette, hogy igazi.
- Értelemszerű (az eddigiek alapján), hogy a kapott, PGP kódot tartalmazó leveleinket dekódolhatjuk ill. ellenőrízhetjük vele.
- Természetesen minden - nem csak levélként küldött - szöveg titkosítására is alkalmas a program.
A program installálása Linuxban
Töltse le, és a $HOME directoryjában csomagolja ki (a tar -xvzf pgp.tgz paranccsal) a pgp.tgz fájlt.
A pandora-n letöltés nélkül így installálhatjuk (a $HOME directoryn állva):
tar -xvzf /h/public/c/csa/public_html/pgp/pgp.tgz
A kapott .pgp directoryban levő fájlok közül
a pgp fájlt (ami maga a program) tegyük programkönyvtárba.
Maradhat a .pgp directoryban is, de akkor minden későbbi pgp parancsban írjunk "$HOME/.pgp/pgp"-t vagy "~/.pgp/pgp"-t helyette.
(Ez a pont csak otthoni gépen érdekes, a pandora-n a program rendszerkönyvtárban van.)
A program használata
- A pgp -h hívással kaphatjuk meg a program rövid leírását.
- Kulcspár generálás a "pgp -kg" hivással kezdeményezhető.
- Válasszunk 1024 bites kulcsot (régi lassú gépeken válasszunk kisebbet, vagy akkor, ha igen nagy fájlok kódolása várható).
- A megfelelő helyen (a program kérésére) a teljes nevünket, mellette "<>" zárójelek között az email címünket adjuk meg.
Ennek igazából nincs köze a levelezéshez, ez az információ kódolatlanul is látszik a kulcsokban.
Arra szolgál, hogy a pgp program a megfelelő kulcsfájlból a név (vagy egy része) vagy a pgp user_id (az email-cím @ előtti része) alapján tudja a kért kulcsot kiválasztani.
Ezen túlmenően az itt beírt dolgok a kulcsainkkal történő kódoláskor/dekódoláskor megjelennek a képernyőn.
- Kétszer kéri be a program a pgp jelszó-t. Ez egy olyan jelszó, amit a titkos kulcsunk minden használatakor bekér majd a pgp, enélkül azzal nem kódol/dekódol.
- Ezután zongorázni kell a billentyűzeten addig (mi vagyunk ekkor a véletlenszám generátor), amig a program vissza nem számlál nulláig. (Nem gond, ha feleslegesen sokat nyomtuk a billentyűzetet.)
- Annyit kell tudni a .pgp-beli "kulcs"-fájlokról, hogy:
- A pubring.pgp fájlban vannak a használt nyilvános kulcsok. Itt keletkezik a saját nyilvános kulcsunk, ide tudjuk (a programmal) betenni másokét is.
- A secring.pgp fájlban vannak a használt titkos kulcsok, többnyire csak a sajátunk. Ajánlani szokták, hogy ez legyen valamilyen, nem mindig elérhető fájlrendszerben (pl. floppyn, CD-n).
A fájl esetleges megszerzése nem elég annak használatára, ahhoz a pgp jelszavunkat is ismerni kell.
- A kulcsfájlok nem géphez kötöttek. Tehát másik gépre átvihetők, ott használhatók.
Pl. tudok a fi.inf.elte.hu-n (a <csa@fi.inf.elte.hu> email cím megadásával) generált
kulcsokkal az itthoni gépemen aláírt levelet a pandora-ról elküldeni. Annyi zavar származhat belőle összesen,
hogy a levelet visszakódoló pgp azt állítja majd, hogy a kulcs a generálásakor megadott címhez tartozik.
- Kétféleképpen küldhetünk ill. fogadhatunk kódolt vagy kóddal aláírt levelet.
- A küldés előtt kódoljuk a levélszöveget, aztán a kódolt fájlt küldjük el, ill. a kapott levélszöveget fájlba mentve dekódoljuk azt.
- Megtanítjuk a levelező programunkat (ha alkalmas rá), hogy hogyan kódolja elküldés előtt ill. dekódolja olvasáskor a kapott leveleket.
Ennek a részletei következnek.
Fájlok kódolása
A további parancsokban szereplő csa helyett értelemszerűen mindenki a saját pgp user_id-jét írja be (azt, amit a kulcs létrehozáskor megadott).
- A level.txt fájl kódolása a titkos kulcsunkkal: pgp -s level.txt -u csa
A pgp jelszó kell hozzá, a level.txt.pgp fájlban lesz az eredmény (ami a pgp által tömörített bináris fájl).
A "- csa" elmaradhat, ilyenkor a titkos kulcsok közül az elsőt veszi a program (ez a sajátunk szokott lenni).
- A feladat ugyanaz, de ASCII fájlt akarunk eredménynek: pgp -sa level.txt -u csa
A pgp jelszó kell hozzá, a level.txt.asc fájlban lesz az eredmény (akármilyen levelezőprogrammal elküldhetjük).
- A level.txt fájlhoz aláírás illesztése a titkos kulcsunkkal: pgp -sta level.txt -u csa
A pgp jelszó kell hozzá, a level.txt.asc fájlban lesz az eredmény (akármilyen levelezőprogrammal elküldhetjük).
- A level.txt fájl kódolása xyz nyilvános kulcsával: pgp -e level.txt xyz
A level.txt.pgp fájlban lesz az eredmény (bináris fájl). Az xyz a saját azonosítónk is lehet.
Az előző két pontnak megfelelően használhatjuk az "a" és "t" opciókat a "-e" mellett is, ugyanolyan módon és eredménnyel.
- A level.txt fájl kódolása a saját titkos kulcsunkkal és xyz nyilvános kulcsával: pgp -es level.txt xyz -u csa
A level.txt.pgp fájlban lesz az eredmény (bináris fájl). Az "a" és "t" opció itt is használható.
A parancs jóval egyszerűbb megoldás, mint két egymásutáni titkosítás (a pgp-beli, lényegében automatikus és kötelező fájl kiterjesztések miatt).
Az eddigi parancsokban "-u csa" helyett más azonosító is szerepelhet, ha rendelkezésre áll az illető titkos kulcsa (ld. alább).
Fájlok dekódolása
Ez egészen egyszerű.
- A level.txt.asc fájl dekódolása: pgp level.txt.asc
A pgp felismeri, hogy hogyan, hányszor lett kódolva a fájl, jelszót kér, ha titkos kulcsot is használ.
A level.txt fájlban lesz az eredmény, de további parancsparaméterként, "-o fájlnév" formában megadható az eredményfájl neve.
Levelek kódolása a pine levelezőprogramban, elküldéskor
Azt a lehetőséget használjuk ki, hogy a pine számára megadható egy szűrő, ami átalakítja a levél szövegét az elküldéskor.
Továbbá a pgp azon lehetőségét (már az előző pontokban is szerepelhetett volna), hogy a "-f" opció hatására a standard inputról a standard outputra dolgozik.
Ha a pine programot konfiguráljuk, akkor ajánlatos előtte a $HOME/.pinerc fájlról másolatot csinálni.
A rosszul sikerült vagy megunt konfigurálást így egy vissza-másolással törölhetjük. (Meg azt is megtanulhatjuk, hogy hogyan lehet ezen fájl szerkesztésével konfigurálni a levelezőprogramot.)
- A pine főmenüjében válasszuk ki a SETUP menüpontot, azon belül a "(C) Config:" almenüpontot. Ez rengeteg lehetőséget tartalmaz, a SPACE billentyű folyamatos nyomásával a végére mehetünk, majd egy
lapnyit (a "-" billentyű egyszeri lenyomásával vagy másfél tucat "felnyil"-al) a "sending-filters" menüpontra tudunk állni.
Azon Enter-t ütve beadhatjuk a szűrő nevét és paramétereit. Pl. ha a saját titkos kulcsunkkal akarjuk aláírni a leveleket, és a pgp program a /home/csa/.pgp könyvtárban van, akkor írjuk be azt, hogy "/home/csa/.pgp/pgp -fsta" (macsakakörmök nélkül), és üssünk Enter-t.
Ezután az "E" gombbal (Exit) befejezhetjük a SETUP-ot, a feltett kérdésre "Y"-t válaszolva menthetjük el a beállítást a $HOME/.pinerc fájlba.
- A beállítás mellett sem lesznek automatikusan "aláírva" a levelek, hanem a levél küldést indító "CtrlX" után megjelenik a Send message (unfiltered)? üzenet.
Ha Enter-t ütünk, aláírás nélkül megy el a levél. A lenyil-lal a Send message (filtered thru pgp)? üzenet jelenik meg. Ha ezen ütünk Enter-t, akkor aláírva megy el a levél.
- Természetesen azt is megtehetjük, hogy a pine-ba nem viszünk be levél kódolást, hanem az előző pontban leírt módon a pgp-vel előállított ".asc" fájlt hozzuk be a pine-ba levél szövegként (úgy, hogy CtrlR után megadjuk a fájl nevét és Enter-t ütünk).
Kapott levelek kódolásának ellenőrzése a pine levelezőprogramban, olvasáskor
Azt a lehetőséget használjuk ki, hogy a pine számára megadható egy szűrő, ami átalakítja a levél szövegét, mielőtt az a képernyőre kerül.
És ismét a pgp azon lehetőségét, hogy a "-f" opcióval szűrő.
Saját publikus kulcs átadása másoknak.
- Először ki kell szedni a "pubring" fájlból a kulcsot, lehetőleg ASCII formában (különben rossz ránézni). Az alábbi paranccsal tehetjük a kulcsot a $HOME/csa_kulcsa.asc fájlba:
pgp -kxa csa $HOME/csa_kulcsa $HOME/.pgp/pubring.pgp
- Az átadásra az alábbi lehetőségeket használhatjuk (ha nem találunk ki valami mást).
- A kapott fájlt a $HOME/.plan fájlba másoljuk, mert azt a fájlt megmutatja másoknak a finger parancs. A pandora-n a finger nem működik.
- A kapott fájlt feltesszük a WEB-re. Ezt tettem én is, a fájl neve csa_kulcsa.asc.
- A kapott fájlt elküldjük levélben. Pl. azzal a lehetőséggel, hogy a pine levelezőprogram minden küldött levélbe bemásolja a $HOME/.signature fájlt.
De manuálisan is behozthatjuk a fájlt a pine-ba, ha CtrlR-et követően megadjuk a behozandó fájl nevét.
Mások publikus kulcsának átvétele, ill. törlése.
- Pl. a $HOME/csa_kulcsa.asc fájlból vett kulcsot így vihetjük be a pgp által használt publikus kulcsok közé:
pgp -ka $HOME/csa_kulcsa.asc $HOME/.pgp/pubring.pgp
- Ha meguntuk, vagy mielőtt egy megváltozott kulcsot bevinnénk, így törölhetjük:
pgp -kr csa $HOME/.pgp/pubring.pgp
Források
|
|