GPG/PGP kas tai?

GPG (GNU Privacy Guard) kas tai? Tai yra nemokama ir atviro kodo PGP (Pretty Good Privacy) alternatyva. Kadangi šis tinklapis skirtas FOSS, PGP daugiau neminėsiu, tiesiog turėkit omeny jog tai tas pats tik autoriai skirtingi. GPG tai yra programa duomenų šifravimui ir iššifravimui. Dažnai naudojama el. laiškų pasirašymui ar/ir šifravimui.

Diegimas

Turbūt visi distributyvai savo saugyklose turi paketą „gnupg“ (arba panašiai pavadintą). Kaip diegti nepasakosiu, visi žino.

Raktai

Yra 3 raktai:

Viešas įkeliamas į kelis raktų saugojimo puslapius, kartais prisegamas prie laiško, dažniausiai paraše būna parašomas tik rakto numeris pvz. GPG: 0x21C70548
Privatus su juo šifruojama/iššifruojama. Neduokdie papuls į blogas rankas.
Atšaukimo raktas, su šiuo raktu atšaukiamas rakto galiojimas, jis pažymimas kaip neveikiantis. Šio rakto prireiks tada jei pamiršite slaptažodį arba privatus raktas pateks į blogas rankas. Jeigu ką, tai laikyt privatų ir atšaukimo raktą toje pačioj laikmenoj visiškai neprotinga :)

Generavimas

Pačio rakto generavimas

Komanda:

ir atsakom į visus klausimus, numatytosios reikšmės visiškai tinkamos naudoti. Tik aš siūlyčiau nustatyti galiojimo laiką, pvz. 1 metus. Po metų bus galima pratęsti jo galiojimą. Pametus raktą ir jo neatšaukus tikrai žinosime jog jo nepanaudos niekas kitas.

Viešojo rakto failo generavimas
Sugeneravus raktą reikia sukurti viešą raktą:
pirmiausia pažiūrim kokie raktai saugomi raktinėj

matom maždaug:

mūsų rakto id yra 21C70548 (toliau visur bus naudojamas šis skaičius, o ne „rakto_id“, nes taip lengviau skaityt)

sukuriamas failas „21C70548.asc“ jį galima dalinti bet kam ir bet kur, pvz. prisegti prie pasirašyto/užšifruoto laiško.

Yra daug raktų serverių, aš siunčiu į šiuos 3:

Dabar mūsų raktas yra raktų serveryje ir visi kiti žmonės galės patikrinti mūsų raktą turėdami tik rakto ID t. y. „21C70548“, nebūtina duoti failo „21C70548.asc“. Tam skirta programa jį parsiųs iš serverio ir patikrins.

Privataus rakto failo generavimas

Atšaukimo rakto generavimas

ir atsakom į užduotus klausimus. Jei raktas tampa sukompromituotas, pvz. piktavaliai pavagia slaptažodį ar šiaip privatų raktą. Atšaukiam mūsų rakto galiojimą:

tada išsiunčiam jį į serverį jog visi žinotų jog šis raktas sukompromituotas:

Naudojimas

Rakto importavimas
Jei reikia importuoti raktą ir to nepadarė jūsų pašto programa ar failų tvarkyklė:

Failo užšifravimas

Failo iššifravimas

Rakto redagavimas, galiojimo laiko keitimas

Patenkam į gpg shell, parašius „help“ gausim visas galimas komandas, dėl savaime suprantamų priežasčių aš neaprašinėsiu jų.
Parašom „key“ matom maždaug:

galima redaguoti ne pagrindinį raktą, bet ir papildomus raktus. Pvz. norint redaguoti tą kuris pavadintas „archlinux“ turėčiau parašyt „key 3“.
Tada parašom „expire“ matom maždaug:

ir įrašom galiojimo laiką, aš noriu jog mano raktas galiotų metus, skaičiuojant nuo šiandien, todėl parašau „1y“. Patvirtinus pakeitimus išsaugom pakeitimus parašydami „save“. Pakeitimai kol kas yra tik mūsų kompiuteryje, juos reikia išsiųsti į serverį, kad visas pasaulis žinotų kada baigsis mūsų rakto galiojimas.

Savaime aišku yra ir tam skirtų programų kurios gali kurti ir redaguoti raktus ir jos turi GUI. Pvz. „seahorse“. Ten savaime viskas aišku todėl nerašysiu kas ir kaip.

Praktika

Aš asmeniškai paštui naudoju programą „thunderbird“, ji pagal nutylėjimą nesusitvarko su gpg. Tam yra plėtinys „enigmail“. Įdiegus jį ten viskas aišku kas ir kaip, todėl taipogi nerašysiu kaip naudotis.

Praktiniai panaudojimo pavyzdžiai:

  1. Siunčiat ne viešus duomenis el. paštu, net jei ir piktavaliai nenulauš jūsų pašto dėžutės vistiek tuos duomenis gali perskaityt pašto serverio administratorius, teisėsauga ir google bot’as :D kai duomenys vieši tai nebėda, bet jei reik perduot neviešus duomenis tada į pagalbą ateina laiškų šifravimas. Užšifravus laišką jį gali perskaityt tik žmogus kuriam skirtas tas laiškas(siuntėjas užšifruoja laišką viešu gavėjo raktu, jį iššifruoti galima tik to gavėjo privačiu raktu).
  2. Failų tapatumo patikrinimas, jei parsisiunčiat ubuntu cd atvaizdį ir jis yra išskirstytas į daug .rar failų jų tapatumą/vientisumą galima patikrinti su kartu pridėtu .sfv failu, bet jei žmogus jums atsiuntė programą kuriai reikia „root“ teisių tai jūs tikrai nepasitikėsit nežinia kieno parašytu sfv failu ir nediegsit tokios programos į savo sistemą. Čia į pagalbą ateina gpg, jūs turit siuntėjo viešą raktą ir galit patikrint ar gavote tikrai tą failą kurį siuntė siuntėjas. Siuntėjas jums atsiųs, jūsų viešu raktu pasirašytą failą ir iššifruoti tą failą galėsite tik jūs. Praktikoj „archlinux“ paketai yra pasirašyti gpg raktais ir diegiant yra patvirtinamas jų tapatumas, įsitikinama ar tikrai tai tie failai kuriuos įdėjo „archlinux“ kūrėjai, o ne piktavaliai įsilaužę į „archlinux“ paketų saugyklas. Apie tai plačiau galima paskaityti archwiki.

P. S. dar daug ko neparašiau, bet ir taip labai jau ilgas tekstas gavosi. Gali būt jog kada nors parašysiu antrą šio straipsnio dalį, taip sakant pratęsimą.