Како шифровати и дешифровати датотеке помоћу ГПГ-а на Линуку

Zaštitite svoju privatnost koristeći Linux gpg komandu. Iskoristite enkripciju svetske klase da osigurate svoje tajne. U ovom vodiču, pokazaćemo vam kako da upotrebite gpg za upravljanje ključevima, enkriptovanje i dekriptovanje fajlova.

GNU Privacy Guard (GPG) omogućava vam da bezbedno šifrujete fajlove, tako da ih samo ovlašćeni primalac može dešifrovati. Konkretno, GPG je usklađen sa OpenPGP standardom. Razvijen je na osnovu programa Pretty Good Privacy (PGP), koji je 1991. godine kreirao Phil Zimmermann.

GPG se oslanja na princip korišćenja dva ključa za šifrovanje po osobi. Svaka osoba ima privatni i javni ključ. Javni ključ može da dešifruje ono što je šifrovano privatnim ključem.

Da biste bezbedno poslali fajl, šifrujete ga svojim privatnim ključem i javnim ključem primaoca. Da bi dekriptovao fajl, primalac mora da ima svoj privatni ključ i vaš javni ključ.

Iz ovoga je jasno da javni ključevi moraju biti dostupni. Morate imati javni ključ primaoca da biste šifrovali fajl, a primalac mora imati vaš javni ključ da bi ga dešifrovao. Nema rizika u tome da vaši javni ključevi budu upravo to – javni. U stvari, postoje serveri javnih ključeva baš za tu svrhu, kao što ćemo videti. Privatni ključevi moraju biti strogo privatni. Ako je vaš javni ključ dostupan javnosti, onda vaš privatni ključ mora ostati tajan i siguran.

Podešavanje GPG-a zahteva više koraka nego samo korišćenje. Srećom, ovo se obično radi samo jednom.

Generisanje ključeva

Komanda gpg je unapred instalirana na svim proverenim Linux distribucijama, uključujući Ubuntu, Fedoru i Manjaro.

Ne morate koristiti GPG sa e-poštom. Možete šifrovati fajlove i učiniti ih dostupnim za preuzimanje ili ih fizički poslati primaocu. Međutim, morate povezati adresu e-pošte sa ključevima koje generišete, zato izaberite koju adresu e-pošte ćete koristiti.

Evo komande za generisanje vaših ključeva. Opcija --full-generate-key generiše vaše ključeve u interaktivnoj sesiji unutar prozora vašeg terminala. Takođe ćete biti upitani za pristupnu frazu. Obavezno zapamtite svoju pristupnu frazu. Tri ili četiri jednostavne reči povezane interpunkcijom su dobar i siguran način za kreiranje lozinki i pristupnih fraza.

gpg --full-generate-key

Od vas će se tražiti da izaberete tip šifrovanja iz menija. Ako nemate poseban razlog da to ne uradite, unesite 1 i pritisnite Enter.

Morate izabrati bitnu dužinu za ključeve šifrovanja. Pritisnite Enter da prihvatite podrazumevanu vrednost.

Morate navesti koliko dugo treba da traje ključ. Ako testirate sistem, unesite kraće trajanje, na primer 5 za pet dana. Ako ćete zadržati ovaj ključ, unesite duže trajanje, kao što je 1y za jednu godinu. Ključ će trajati 12 meseci i biće potrebno obnoviti ga nakon godinu dana. Potvrdite svoj izbor sa Y.

Morate uneti svoje ime i adresu e-pošte. Možete dodati komentar ako želite.

Od vas će se tražiti da unesete pristupnu frazu. Ova pristupna fraza će vam biti potrebna kad god radite sa vašim ključevima, pa se pobrinite da je zapamtite.

Kliknite na dugme OK kada unesete pristupnu frazu. Ovaj prozor ćete viđati dok radite sa gpg-om, stoga, obavezno upamtite pristupnu frazu.

Generisanje ključa će se odvijati, a vi ćete biti vraćeni u komandnu liniju.

Generisanje sertifikata za opoziv

Ako vaš privatni ključ postane poznat drugima, moraćete da odvojite stare ključeve od svog identiteta kako biste mogli da generišete nove. Da biste to uradili, potreban vam je sertifikat o opozivu. Uradićemo to sada i čuvaćemo ga na sigurnom mestu.

Opciju --output mora pratiti ime datoteke sertifikata koji želite da kreirate. Opcija --gen-revoke nalaže gpg-u da generiše sertifikat o opozivu. Morate da navedete adresu e-pošte koju ste koristili prilikom generisanja ključeva.

gpg --output ~/revocation.crt --gen-revoke [email protected]

Od vas će se tražiti da potvrdite da želite da generišete sertifikat. Pritisnite Y i pritisnite Enter. Bićete upitani za razlog zbog kojeg generišete sertifikat. Pošto ovo radimo unapred, ne znamo sigurno. Pritisnite 1 kao verodostojnu pretpostavku i pritisnite Enter.

Možete uneti opis ako želite. Pritisnite Enter dva puta da biste završili svoj opis.

Od vas će se tražiti da potvrdite svoja podešavanja, pritisnite Y i pritisnite Enter.

Sertifikat će biti generisan. Videćete poruku koja naglašava potrebu da ovaj sertifikat čuvate bezbednim.

Pominje se neko po imenu Malori. U raspravama o kriptografiji, dugo se koriste Bob i Alisa kao dva lika koja komuniciraju. Postoje i drugi sporedni likovi. Eva je prisluškivač, Malori je zlonamerni napadač. Sve što treba da znamo je da sertifikat moramo čuvati na sigurnom mestu.

Za početak, uklonimo sve dozvole sa sertifikata osim naših.

chmod 600 ~/revocation.crt

Hajde da proverimo sa ls da vidimo koje su dozvole sada:

ls -l

To je savršeno. Niko osim vlasnika datoteke – nas – ne može ništa da uradi sa sertifikatom.

Uvoz tuđeg javnog ključa

Da bismo šifrovali poruku koju druga osoba može da dešifruje, moramo imati njen javni ključ.

Ako ste dobili ključ u fajlu, možete ga uvesti sledećom komandom. U ovom primeru, datoteka ključa se zove „mari-geek.key“.

gpg --import mary-geek.key

Ključ je uvezen i biće vam prikazano ime i adresa e-pošte povezana sa tim ključem. Očigledno, to bi trebalo da odgovara osobi od koje ste ga primili.

Takođe, postoji mogućnost da je osoba od koje vam je potreban ključ učitala svoj ključ na server javnih ključeva. Ovi serveri čuvaju javne ključeve ljudi iz celog sveta. Serveri ključeva se povremeno sinhronizuju jedni sa drugima, tako da su ključevi univerzalno dostupni.

MIT server javnih ključeva je popularan server ključeva koji se redovno sinhronizuje, pa bi pretraga trebala biti uspešna. Ako je neko tek nedavno otpremio ključ, može proći nekoliko dana da se pojavi.

Opciju --keyserver mora pratiti ime servera ključeva koji želite da pretražujete. Opciju --search-keys mora pratiti ili ime osobe koju tražite ili njena adresa e-pošte. Mi ćemo koristiti adresu e-pošte:

gpg --keyserver pgp.mit.edu --search-keys [email protected]

Rezultati pretrage su prikazani i numerisani. Da biste ga uvezli, unesite broj i pritisnite Enter. U ovom slučaju postoji jedno poklapanje, pa kucamo 1 i pritisnemo Enter.

Ključ je uvezen i prikazano nam je ime i adresa e-pošte povezana sa tim ključem.

Verifikacija i potpisivanje ključa

Ako vam je neko koga poznajete dao fajl javnog ključa, možete sa sigurnošću reći da pripada toj osobi. Ako ste ga preuzeli sa servera javnih ključeva, možda ćete osetiti potrebu da proverite da li ključ pripada osobi kojoj je namenjen.

Opcija --fingerprint nalaže gpg-u da kreira kratku sekvencu od deset skupova od četiri heksadecimalna znaka. Možete zamoliti osobu da vam pošalje otisak svog ključa.

Zatim možete koristiti opciju --fingerprint da generišete istu sekvencu otiska prsta od heksadecimalnih znakova i uporedite ih. Ako se poklapaju, znate da ključ pripada toj osobi.

gpg --fingerprint [email protected]

Otisak prsta je generisan.

Kada se uverite da je ključ originalan i da je u vlasništvu osobe sa kojom treba da bude povezan, možete da potpišete njen ključ.

Ako to ne uradite, i dalje možete da ga koristite za šifrovanje i dešifrovanje poruka od i za tu osobu. Ali, gpg će vas svaki put pitati da li želite da nastavite jer je ključ nepotpisan. Koristićemo opciju --sign-key sa odgovarajućim imenom i adresom e-pošte osobe, tako da gpg zna koji ključ da potpiše.

gpg --sign-key [email protected]

Videćete informacije o ključu i osobi i od vas će se tražiti da potvrdite da zaista želite da potpišete ključ. Pritisnite Y i pritisnite Enter da potpišete ključ.

Kako podeliti svoj javni ključ

Da bismo podelili vaš ključ kao datoteku, moramo da ga izvezemo iz lokalnog skladišta ključeva gpg-a. Da bismo to uradili, koristićemo opciju --export, koju mora pratiti adresa e-pošte koju ste koristili za generisanje ključa. Opciju --output mora pratiti ime datoteke u koju želite da se izveze ključ. Opcija --armor nalaže gpg-u da generiše ASCII oklop umesto binarne datoteke.

gpg --output ~/dave-geek.key --armor --export [email protected]

Možemo pogledati unutar datoteke ključeva sa less.

less dave-geek.key

Ključ je prikazan u svom svom sjaju:

Takođe možete podeliti svoj javni ključ na serveru javnih ključeva. Opcija --send-keys šalje ključ na server ključeva. Opciju --keyserver mora pratiti web adresa servera javnih ključeva. Da biste identifikovali koji ključ treba poslati, otisak prsta za ključ mora biti naveden u komandnoj liniji. Imajte na umu da nema razmaka između skupova od četiri znaka.

(Možete da vidite otisak prsta za svoj ključ pomoću opcije --fingerprint.)

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

Dobićete potvrdu da je ključ poslat.

Šifrovanje datoteka

Konačno smo spremni da šifrujemo datoteku i pošaljemo je Meri. Datoteka se zove Raven.txt.

Opcija --encrypt nalaže gpg-u da šifruje datoteku, a --sign opcija da je potpiše vašim detaljima. Opcija --armor nalaže gpg-u da kreira ASCII datoteku. Opciju -r (primalac) mora da prati adresa e-pošte osobe kojoj šaljete datoteku.

gpg --encrypt --sign --armor -r [email protected]

Datoteka se kreira sa istim imenom kao original, ali sa .asc dodatkom imenu datoteke. Hajde da pogledamo unutra.

less Raven.txt.asc

Datoteka je potpuno nečitka i može je dešifrovati samo neko ko ima vaš javni ključ i Merin privatni ključ. Jedina osoba koja ima oba ključa bi trebalo da bude Meri.

Sada možemo poslati datoteku Meri sa uverenjem da niko drugi ne može da je dešifruje.

Dešifrovanje datoteka

Meri je poslala odgovor. On se nalazi u šifrovanoj datoteci pod imenom coded.asc. Možemo ga vrlo lako dešifrovati koristeći opciju --decrypt. Preusmerićemo izlaz u drugu datoteku koja se zove plain.txt.

Imajte na umu da ne moramo da kažemo gpg-u od koga je datoteka. On to može da zaključi iz šifrovanog sadržaja datoteke.

gpg --decrypt coded.asc > plain.txt

Pogledajmo plain.txt datoteku:

less plain.txt

Fajl je uspešno dešifrovan za nas.

Osvežavanje ključeva

Povremeno možete tražiti od gpg-a da proveri ključeve koje ima u odnosu na server javnih ključeva i da osveži sve koji su promenjeni. To možete raditi svakih nekoliko meseci ili kada dobijete ključ od novog kontakta.

Opcija --refresh-keys nalaže gpg-u da izvrši proveru. Opciju --keyserver mora pratiti server ključeva po vašem izboru. Kada se ključevi sinhronizuju između servera javnih ključeva, ne bi trebalo da bude važno koji ćete izabrati.

gpg --keyserver pgp.mit.edu --refresh-keys

Gpg odgovara tako što navodi ključeve koje proverava i obaveštava vas da li su neki promenjeni i ažurirani.

Privatnost je vruća tema

Privatnost ovih dana nikada nije daleko od vesti. Bez obzira na razloge zbog kojih želite da vaše informacije budu bezbedne i privatne, gpg pruža jednostavno sredstvo za primenu neverovatno jake enkripcije na vaše datoteke i komunikacije.

Postoje i drugi načini korišćenja gpg-a. Možete dobiti dodatak za Thunderbird pod nazivom Enigmail. Povezuje se direktno sa vašom gpg konfiguracijom da vam omogući šifrovanje e-poruka iz Thunderbirda.