PGP (Pretty Good Privacy): definicija, šifriranje in varnost e-pošte
Pretty Good Privacy (PGP) je računalniški program, ki zagotavlja kriptografsko zasebnost in preverjanje pristnosti. PGP se pogosto uporablja za podpisovanje, šifriranje in dešifriranje elektronske pošte (e-sporočil), da se poveča varnost e-poštnih komunikacij. Prvotno ga je leta 1991 ustvaril Phil Zimmermann.
PGP in drugi podobni izdelki za šifriranje in dešifriranje podatkov uporabljajo standard OpenPGP (RFC 4880).
Kaj je PGP v praksi?
PGP je sistem za zaščito podatkov z uporabo javno-zasebnih ključev in simetričnega šifriranja. Namenjen je predvsem:
- šifriranju vsebine sporočil in datotek,
- digitalnemu podpisovanju sporočil, da se potrdi avtorstvo in neporaščanje (integriteta),
- upravljenju in izmenjavi javnih ključev med uporabniki.
Kako deluje PGP (poenostavljeno)
- Ustvarite par ključev: javni ključ (public key), ki ga delite z drugimi, in zasebni ključ (private key), ki ga varno hranite.
- Ko želite poslati šifrirano sporočilo, pošiljatelj ustvari naključni simetrični sejne ključ (kot AES) in s tem zakodira sporočilo — to je hitro in učinkovito.
- Ta simetrični sejni ključ se nato šifrira z javnim ključem prejemnika (asimetrično šifriranje) in skupaj s šifriranim sporočilom pošlje prejemniku.
- Prejemnik uporabi svoj zasebni ključ za dešifriranje sejnega ključa in nato s tem ključi dešifrira vsebino sporočila.
- Za podpisovanje se uporabi zasebni ključ pošiljatelja; prejemnik lahko nato preveri podpis z javnim ključem pošiljatelja in potrdi, da sporočilo ni bilo spremenjeno.
Ključi, prstni odtisi in »web of trust«
Ključi imajo edinstven prstni odtis (fingerprint), ki ga je priporočljivo preveriti z osebo izven elektronske poti (npr. po telefonu ali osebno). OpenPGP uporablja model zaupanja, imenovan web of trust, kjer uporabniki drug drugemu overjajo ključe s podpisi. To je decentraliziran model zaupanja, v nasprotju s centralizirano infrastrukturo S/MIME (ki uporablja certifikate iz izdajateljev – CA).
Implementacije in uporaba
- GnuPG (GPG) je najbolj razširjena prosta implementacija OpenPGP in je osnova za večino orodij in vtičnikov.
- Med priljubljenimi e-poštnimi odjemalci so tisti z vgrajeno ali razširjeno podporo OpenPGP (npr. Thunderbird z integrirano OpenPGP podporo, nekateri vtičniki in aplikacije).
- PGP se uporablja tudi za podpisovanje in preverjanje programske opreme, šifriranje datotek in varno izmenjavo gesel ali varnostnih kopij.
Osnovni koraki za uporabo
- Ustvarite par ključev (javni + zasebni) in izberite močno geslo za zasebni ključ.
- Izvozite in delite svoj javni ključ (npr. preko e-pošte, na spletnem mestu ali s prenosom v javne strežnike ključev).
- Preverite prstni odtis tujih javnih ključev pred zaupanjem — to prepreči napade man-in-the-middle.
- Redno varnostno kopirajte zasebni ključ in ustvarite revocation (preklicni) certifikat, ki ga hranite ločeno — omogoča preklic ključa v primeru izgube ali kompromisa.
Varnostne prakse in omejitve
- Varujte zasebni ključ: napad na končno točko (kompromitirana naprava) običajno pomeni izgubo varnosti, ne glede na moč kriptografije.
- Uporabljajte sodobne algoritme in dovolj dolgo velikost ključev (npr. RSA 3072/4096 ali kripto algoritemske alternative, kot so krivulje ECC, kjer jih podpira implementacija).
- Pozorni bodite na meta-podatke: PGP šifrira vsebino sporočila, vendar glave e-pošte (prejemnik, pošiljatelj, časovni žig) še vedno razkrivajo podatke.
- Historija ranljivosti: nekatere ranljivosti (npr. EFAIL) so izpostavile izpostavljenost med interpretacijo HTML vsebine v e-poštnih odjemalcih — te so bile naslovljene z varnostnimi popravki in priporočili za pravilno ravnanje z PGP v e-pošti (npr. uporaba PGP/MIME namesto inline PGP, izključitev avtomatskega nalaganja zunanjih vsebin v HTML e-pošti).
Priporočila za varno uporabo
- Ustvarite revocation certifikat takoj ob ustvarjanju ključa in ga shranite na varnem mestu.
- Redno posodabljajte GnuPG in e-poštne odjemalce, da dobite varnostne popravke.
- Preverjajte prstne odtise ključa po zanesljivih kanalih (osebno, po telefonu, varna spletna stran).
- Uporabljajte ločene podključe (subkeys) za podpisovanje, šifriranje in overjanje — to zmanjša tveganje pri izpostavitvi glavnega ključa.
Alternativa in primerjava
- S/MIME je alternativa za šifriranje e-pošte, ki temelji na centraliziranih certifikatih (PKI) iz izdajateljev (CA). PGP/OpenPGP pa uporablja decentraliziran pristop z web of trust.
- Za neposredno sporočanje (instant messaging) so na voljo sodobnejše rešitve, kot sta Signal ali Matrix z end-to-end šifriranjem, ki so pogosto prijaznejše za končne uporabnike kot PGP za e-pošto.
Kratek zgodovinski kontekst
PGP je bil objavljen leta 1991 s strani Phila Zimmermanna in je hitro postal pomembno orodje za zasebnost na internetu. V 90. letih se je znašel tudi v središču pravnih in regulativnih razprav o izvoznih omejitvah kriptografije, vendar je sčasoma postal široko sprejet standard, z odprtokodnimi implementacijami, kot je GnuPG, ki sledijo specifikaciji OpenPGP (RFC 4880).
Zaključek
PGP/OpenPGP je zmogljiv in dokazan način za zagotavljanje zaupnosti in avtentičnosti e-poštne komunikacije in datotek. Uspeh PGP pri varnosti pa je odvisen od pravilnega upravljanja ključev, previdnosti pri preverjanju identitete sogovornikov in posodabljanja programske opreme. Za večino uporabnikov, ki želijo varno komunicirati ali podpisovati datoteke, ostaja GnuPG skupaj z e-poštnimi vtičniki praktična in zanesljiva rešitev.
OpenPGP
OpenPGP je na seznamu Internet Standards Track; trenutna specifikacija je RFC 4880 (november 2007). OpenPGP se še vedno razvija, naslednik RFC 2440, to je RFC 4880, pa je postal predlagani standard. Številni odjemalci elektronske pošte zagotavljajo varnost elektronske pošte v skladu z OpenPGP, kot je opisano v RFC 3156.
Fundacija Free Software Foundation je razvila lasten program, skladen z OpenPGP, imenovan GNU Privacy Guard (skrajšano GnuPG ali GPG). GnuPG je skupaj z vso izvorno kodo prosto dostopen pod Splošno javno licenco GNU (GPL) in se vzdržuje ločeno od več grafičnih uporabniških vmesnikov (GUI), ki sodelujejo s knjižnico GnuPG za funkcije šifriranja, dešifriranja in podpisovanja (glej KGPG, Seahorse, MacGPG). Tudi več drugih ponudnikov je razvilo programsko opremo, združljivo z OpenPGP.
Sorodne strani
- FreeOTFE - Šifriranje diska
- PuTTY - šifriranje SSH