PGP - utajenie posty adigitalny podpis

(R.Drutarovsky)

Na co mi moze posluzit PGP?

PGP (Pretty Good Privacy) mi dava moznost ochranit postu a subory so zarukou sukromia, autenticity a pohodlia. Iba adresat posty ju moze skutocne citat. Autenticita je zabezpecena systemom digitalnych podpisov. Digitalny podpis poskytuje jednoznacnu informaciu o pisatelovi posty a zarucuje,ze posta nebola po jeho podpise zmenena. Pohodlie je zabezpecene metodou verejnych klucov, cize nie su potrebne ziadne hesla a klucove subory prenasane utajenymi a bezpecnymi cestami.

Pomocou PGP mozem odosielanu postu podpisat. Adresat sa moze presvedcit, ze ide naozaj o postu odo mna. Odosielanu postu mozem zasifrovat. Rozsifrovat ju moze iba adresat. Ak dostanem podpisanu postu, mozem sa presvedcit, ze pochadza od autora podpisu a nebola zmenena alebo sfalsovana niekym inym. Ak dostanem zasifrovanu postu, mozem ju citat iba ja.

Pri pouzivani PGP ide o zasadne inu a dokonalejsiu metodu sifrovania ako je metoda popisana v Mozem zasifrovat text odosielanej posty?.



Ako vytvorim svoj verejny kluc? Ako spravovat zvazok verejnych klucov?

Aby som vobec mohol vyuzivat moznosti PGP, musim na zaciatku vytvorit svoj jedinecny kluc. Vskutocnosti budem vytvarat dvojicu klucov, svoj verejny kluc a svoj sukromny kluc. Sukromny kluc bude sluzit na rozsifrovanie posty. Musim ho dobre strazit aby sa nedostal do "cudzich ruk". Naopak, svoj verejny kluc by som mal dobre zverejnit. Cim lepsie ho zverejnim, tym lepsie pre mna. Moj verejny kluc musi mat k dispozicii kazdy, kto mi chce poslat zasifrovanu postu alebo si overit moj digitalny podpis.

Predpokladom je, ze na systeme je k dispozicii programovy balik PGP. Pred prvym volanim prikazu pgp je vhodne, ak zavolam prikaz prepgp, ktory pripravi adresarovu strukturu pre PGP a skontroluje ci je vsetko v poriadku.

Tento program bol vytvoreny pre ccsun (na inych pocitacoch mi poradi spravca systemu). Prikaz prepgp predpoklada existenciu niektorych suborov a ich obsahov. Novsi pouzivatelia pocitaca ccsun ich uz maju pripravene, starsich navedie prepgp ako to urobit. V zasade sa jedna o vytvorenie suboru .profile s obsahom

PGPPATH=$HOME/.pgp
export PGPPATH
a v subore .cshrc musi byt
setenv PGPPATH $HOME/.pgp
a v domovskom katalogu musi byt podkatalog .pgp, pristupny iba pre mna.

Teraz uz mozem zavolat prikaz pgp -kg. Program sa ma spyta na dlzku kluca, obycajne zadam moznosti 1 alebo 2:

Pick your RSA key size:
1) 512 bits- Low commercial grade, fast but less secure
2) 768 bits- High commercial grade, medium speed, good security
3) 1024 bits- "Military" grade, slow, highest security
Choose 1, 2, or 3, or enter desired number of bits:
Potom musim zadat svoj identifikacny retazec. Identifikacny retazec by mal obsahovat moje skutocne meno, priezvisko a v ostrych zatvorkach elektronicku adresu, napr.
Richard DRUTAROVSKY <Richard.Drutarovsky@tuke.sk>
Nasleduje poziadavka programu na prve zadanie hesla, ktore budem musiet v buducnosti zadavat vzdy pri desifrovani posty a pri vytvarani elektronickeho podpisu. Heslom si chranim sukromny kluc pred zneuzitim. Zasadne ho volim ine ako heslo na prihlasei o UNIX-u! Zadavane heslo sa nezobrazuje na obrazovku:
You need a pass phrase to protect your RSA secret key.
Your pass phrase can be any sentence or phrase and may have many words, spaces, punctuation, or any other printable characters.
Enter pass phrase:
Enter same pass phrase again:
Potom ma este program poziada, aby som na klavesnici stlacal lubovolne klavesy az do zaznenia zvukoveho signalu. Na zaklade toho program vygeneruje moj sukromny a verejny kluc. Vytvaranie klucov moze trvat az niekolko desiatok sekund. Kluce su ulozen tzv. zvazkov, ktore maju podobu suborov v adresari .pgp.

Generovanie dvojice klucov spravidla vykonavam iba jediny raz. Viac o programe PGP a jeho moznostiach sa dozviem, ak zavolam prikaz pgp -h.

Ako prezerat svoj zvazok verejnych klucov?

Svoj zvazok verejnych klucov si prezeram zavolanim prikazu pgp -kv. Na zaciatku je tam len moj verejny kluc, postupne do neho pridavam cudzie verejne kluce ludi, s ktorymi komunikujem. Vypis zvazku verejnych klucov vyzera napr. takto:

Key ring: '/home/drutarov/.pgp/pubring.pgp'
Type bits/keyID Date User ID
pub 512/41C0AAB5 1995/01/12 Peter Maly <Peter.Maly@tuke.sk>
pub 512/1522E291 1994/08/22 Jozef Palko <Jozef.Palko@tuke.sk>
pub 1024/C6847FF5 1994/08/22 Richard DRUTAROVSKY <Richard.Drutarovsky@tuke.sk>
3 matching keys found.

Co urobit, ak chcem zverejnit svoj verejny kluc?

V prvom rade musim verejny kluc ulozit do suboru, kde mi bude k dispozicii na dalsie pouzitie.Urobim tak zavolanim prikazu pgp -kxa. PGP poziada o identifikacny retazec kluca, ktory chcem ulozit do suboru. Staci zadat iba cast retazca, ak sa jednoznacne vyskytuje v ukladanom kluci. Nerozlisuju sa male a velke pismena. Spravidla staci iba priezvisko alebo jeho cast:
A user ID is required to select the key you want to extract. Enter the key's user ID: drutarov
Program este poziada o meno suboru, kde ma kluc ulozit, obycajne k nemu prida priponu .asc a ulozi donverejny kluc. Verejny kluc vyzera napr. takto:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.i
mQCNAi5YXaQAAAEEALvsUzs8FTxlfqY0wQAc/++7yDmTP9rfyhLCr8ZFDHOnKO6r
OaumCDYoePdr10TlNCO4uZZPz23UEpDMAfVPoQ+ZkwD3dqjTNUGIh9EdjFx+w3MG
oI0lHyUBCDo4kCjSnOom0tqSbiaq9xYNigXu82U6xxFrUxDfhaY2TAPGhH/1AAUT
tDFSaWNoYXJkIERSVVRBUk9WU0tZIDxSaWNoYXJkLkRydXRhcm92c2t5QHR1a2Uu
c2s+iQCVAgUQL2f+AKY2TAPGhH/1AQH6+QP/Zto4qkOj079teF8stRFhMbAH6JSA
4nOdyb2ZHI8TPctwybI+J9AjHOAVp43C7ydpnDj6UZG77tkFsNkBo904FD6xptPn
gmHbzVJRkUv1IveWash/2wmoE7X6YL3QeJCeHor7sFQYWCXa20k96JjVRfz9YcQG
RORcKf5BbYbHt5E= =Ks5V
-----END PGP PUBLIC KEY BLOCK-----

Pri zverejneni sa drzim zasady: "Cim je moj verejny kluc lepsie a sirsie pristupny, tym lepsie". V kazdom pripade by malo ist o sposob, ktory je z hladiska mojich partnerov doveryhodny. Ak doveruju, ze posta odo mna je naozaj posta odo mna, kludne ju mozem posielat aj cez e-mail prostrednictvom nacitania suboru do editora posty.

Druhy sposob je, ze ulozim svoj verejny kluc do suboru .plan vo svojom domovskom adresari a dam do signatury svojej posty upozornenie, ze moj kluc je dostupny cez finger.

Mozem poslat svoj verejny kluc na verejny PGP klucovy server, napriklad http://www.cl.cam.ac.uk/PGP/pks-commands.html alebo http://www.uit.no/cc/tjenester/PGP/servkom.eng.html. Tiez mozem vystavit svoj kluc na anonymny FTP server, ako to maju napriklad na SAV v Bratislave:

ftp.savba.sk/pub/PGPkeys

Ako pridat a odstranit cudzi verejny kluc so zvazku verejnych klucov?

Predpokladom je, ze som od niekoho ziskal jeho verejny kluc a mam ho ulozeny v subore. Pokojne to moze byt aj folder, ak som kluc dostal postou. Po zavolani prikazu pgp -ka <meno_suboru> program zobrazi identifikacne retazce e vsetkych klucov v subore a vyziada si potvrdenie na ich zaradenie do zvazku verejnych klucov. Potom program poziada o certifikaciu pridavaneho kluca mojim digitalnym podpisom. Urobim tak len vtedy, ak som si isty, ze kluc pochadza zo spolahliveho zdroja a naozaj patri jeho majitelovi. Pri podpisovani musim napisat svoje heslo. Na zaver ma caka otazka, ci ma program v buducnosti automaticky doverovat klucom, ktore certifikoval majitel pridavaneho kluca. Odporucam odpovedat zaporne (No).

Verejny kluc odstranim zo zvazku zavolanim prikazu pgp -kr.


Ako urobit, aby ELM spolupracoval s PGP?

Povodne existovali programy PGP a ELM samostatne a az neskor vznikol napad zintegrovat ich. Tak vznikla dvojica programov morepgp a mailpgp. ELM vola tieto programy ako externy prezerac a editor, ich moznosti su preto do istej miery obmedzene.

Pre zaistenie spoluprace ELM s PGP staci, ak nahradim vo volbach ELM podla (Ako mozem zmenit volby priamo v ELM?) prezerac prijatej posty a editor posty programami morepgp a mailpgp takto:

D)isplay mail using : /usr/local/morepgp
E)ditor (primary) : /usr/local/mailpgp
Nesmiem zabudnut stlacit klavesu > (save). Spravanie ELM sa od tohoto okamihu zmeni tak, ze po ukonceni editora posty sa budu objavovat dve otazky:
Sign this message? [Y]: (pripojit podpis ku poste?)
Encrypt this message? [Y]: (zasifrovat postu?)

Program morepgp pracuje s prezeracim programom LESS, ktory je pohodlnejsi ako standardny editor +builtin. Ked som zvyknuty na standardny editor +builtin, potom nemenim prezerac vo volbe D)isplay mail using:. Na pocitaci ccsun bol upraveny program mailpgp tak, ze umoznuje posielat zasifrovanu postu viacerym adresatom naraz (pozri Ako poslat zasifrovanu postu viacerim adresatom naraz? ).


Ako poslat zasifrovanu a podpisanu postu?

Ak po ukonceni editora posty odpoviem kladne (y) na otazku Sign this message?, PGP vyziada heslo. Po jeho napisani a uplynuti potrebnej doby (az niekolko sekund pre niekolkoriadkovu postu) je ku odosielanej poste pripojeny moj digitalny podpis. Adresar prirodzene musi mat moj verejny kluc uz vopred vo svojom zvazku verejnych klucov, aby si mohol overit moj podpis. Text posty vsak ostava v citatelnom tvare a moj partner si ju vie precitat aj bez PGP.

Ak odpoviem kladne (y) na otazku Encrypt this message?, PGP vyziada identifikacny retazec verejneho kluca adresata a postu zasifruje. Samozrejme, uz vopred musim mat ulozeny adresatov verejny kluc kluc vo svojom zvazku. V pripade, ze pracujem na ccsun, postup je trocha odlisny (pozri Ako poslat zasifrovanu postu viacerim adresatom naraz?).

Mozem odpovedat kladne aj na obidve otazky. Ak odpoviem zaporne na obidve otazky, posta ostava nedotknuta programom PGP.


Ako prijat zasifrovanu a podpisanu postu?

Ak je prijata posta zasifrovana, vyvola sa pri jej prezerani v ELM automaticky PGP. Poziada o zadanie hesla, rozsifruje postu a zobrazi ju. Ked som v ELM nezmenil prezerac vo volbe D)isplay mail using: na morepgp, potom musim po nastaveni sa na zasifrovanu postu stlacit klavesu | (pipe) a zadat po vyzve Pipe to: meno prezeraca: morepgp. V tomto pripade sa nevyhnem pouzitiu prezeracieho programu LESS (vyskocim z neho pomocou klavesy q, napoved vyvolam klavesou h).

Ak je prijata posta digitalne podpisana, vyvola sa pri jej prezerani automaticky program PGP. Po uplynuti doby potrebnej na overenie podpisu zobrazi na niekolko sekund informaciu o autorovi podpisu a potom postu. Pravdaze, verejny kluc autora podpisu musi mat vopred vo svojom zvazku verejnych klucov.

Obycajna posta sa zobrazuje obvyklym sposobom.

Ako poslat zasifrovanu postu viacerym adresatom naraz?

Na ccsun bol upraveny program mailpgp tak, ze mozem posielat zasifrovanu postu viacerym adresatom naraz. Je samozrejme, ze vo svojom zvazku verejnych klucov musim mat kluce vsetkych adresatov, ktorym chcem postu poslat.

Komunikacia s programom mailpgp sa zmenila oproti povodnej verzii tak, ze po kladnej odpovedi na otazku

Encrypt this message? [Y]:
sa objavi nova vyzva
Enter recipients' user IDs:
po ktorej zadam identifikatory viacerych adresatov sucasne, napr.:
Enter recipients' user IDs: drutarov panko csonto
alebo v pripade nejednoznacnosti aj
Enter recipients' user IDs: "Richard Drutarovsky" panko csonto
Pri posielani posty jedinemu adresatovi postupujem z bezpecnostnych dovodov nasledovne:
  1. Na vyzvu "Enter recipients' user IDs:" nepisat nic, iba stlacit ENTER
  2. Identifikator adresata napisat az na vyzvu
    Recipients' public key(s) will be used to encrypt. A user ID is required to select the recipient's public key. Enter the recipient's user ID:

Ako mozem archivovat odoslanu zasifrovanu postu?

Ked som zvyknuty na automaticku archivaciu odoslanej posty, vznika problem, ze archivovane zasifrovane posty nie som schopny precitat (to vie iba adresat !!). Ked si chcem zachovat kopiu odoslanej posty v zasifrovanej podobe, poslem ju okrem adresata aj sam sebe (pozri Ako poslat zasifrovanu postu viacerym adresatom naraz?) - svojim sukromnym klucom ju potom viem kedykolvek precitat (pozri Ako prijat zasifrovanu a podpisanu postu?).

Co je to odtlacok verejneho kluca?

Odtlacok verejneho kluca (fingerprint) je dalsi prostriedok, ako sa presvedcit o pravosti verejneho kluca mojho partnera. Ak zadam prikaz pgp -kvc dostanem vypis mojho zvazku verejnych klucov aj s ich odtlackami:


Key ring: '/home/ELF/KKUI/csonto/.pgp/pubring.pgp'
Type bits/keyID    Date       User ID
pub  1024/C6847FF5 1994/08/22 Richard DRUTAROVSKY 
         Key fingerprint =  D7 C5 05 07 65 DE 4F 81  81 B4 A9 22 CE 4A A3 37
pub   512/1522E291 1994/08/22 Juraj Panko 
         Key fingerprint =  FE CF B8 02 05 01 50 63  9A AF D2 90 B9 BE FD CD
pub   512/5BCDAD01 1995/05/29 Julius Csonto 
         Key fingerprint =  9B 5D 23 01 B9 97 03 9D  4E DB 34 88 79 B8 CF E2
3 matching keys found.

Na co sluzia odtlacky? Je to reakcia na nasledujucu situaciu. Odniekadial ziskam verejny kluc svojho partnera. Ked si chcem overit, ci kluc patri naozaj jemu, zatelefonujem mu. Cez telefon ho uz spravidla spolahlivo poznam, tak ho poziadam aby mi povedal odtlacok svojho kluca (je to iba 32 znakov). Skontrolujem si zhodnost jeho odtlacku s odtlackom jeho kluca u seba. Napriklad niektori autori v Bajte uvadzaju odtlacok kvoli moznosti overenia spravnosti svojho verejneho kluca (zverejneneho podla odseku Co urobit, ak chcem zverejnit svoj verejny kluc?), kedze vytvorit podvrh v casopise je velmi tazke. Algoritmus vytvarania odtlacku je taky, ze je velmi malo pravdepodobne, ze by dva kluce na svete mali ten isty odtlacok (podobne ako s odtlackami prstov ludi).