Vaši messengeri, stranice HTTPS protokola, autorizacija u internetskim uslugama, sigurna pohrana datoteka, a ponekad čak i budilice - sve te stvari koriste PGP. Ali što je to uopće? Wikipedia daje sljedeću definiciju:
Pretty Good Privacy ( PGP ) je program za šifriranje koji pruža kriptografsku privatnost i autentifikaciju za podatkovnu komunikaciju . PGP se koristi za potpisivanje , šifriranje i dekriptiranje tekstova, e-pošte , datoteka, direktorija i cijelih particija diska te za povećanje sigurnosti komunikacije e-poštom. Phil Zimmermann razvio je PGP 1991.
PGP i sličan softver slijede standard OpenPGP (RFC 4880), otvoreni standard za šifriranje i dekriptiranje podataka . Moderne verzije PGP-a su interoperabilne s GnuPG-om i drugim sustavima kompatibilnim s OpenPGP-om.
Riječima je jasno, ali pogledajmo kako funkcionira.
Zamislimo da imamo korisnika A i korisnika B. Oni trebaju početi komunicirati, ali tako da nitko ne može saznati sadržaj njihove korespondencije. Ovdje na scenu stupa enkripcija.
Moderni sustavi koriste Rjindael (trenutno AES), DES, RC4 i neke druge algoritme.
Neću ulaziti u detalje njihovog rada. Sve što trebate znati o njima je da ako im date ulazne podatke i ključ, dobit ćete šifrirani niz bajtova, koji se može obrnuti istim ključem. Poput lokota otvaraju se i zatvaraju, no bez ključa je to gotovo nemoguće (nema učinkovitih načina za razbijanje ovih algoritama). Takvi algoritmi šifriranja nazivaju se algoritmi simetričnog šifriranja.
I to je odgovor, zar ne? Neka korisnik A da svoj ključ korisniku B. Tada možete šifrirati svoje dopisivanje s obje strane i nitko neće znati što pišu jedni drugima.
Naravno, ako se oba korisnika poznaju u stvarnom životu, jedan drugom može dati flash pogon s ključem na njemu.
Ali na Internetu je to nemoguće učiniti, korisnici su daleko od dva, a jedna usluga može opsluživati milijune različitih korisnika dnevno. Također, nije uvijek moguće dati svoj osobni ključ za šifriranje svima s kojima se osobno dopisujete tijekom sastanka.
Budući da je prosljeđivanje vašeg privatnog ključa od istog AES-a kao ugrožavanje vaše sigurnosti, postavlja se pitanje - kako korisnik A može sigurno proslijediti svoj ključ korisniku B?
Rješenje je potpisivanje ključeva i e-mailova drugim ključem! Ali samo će ovaj drugi ključ biti iz algoritma asimetrične enkripcije. Suština je ista kao u simetričnom, ali sada nema jednog ključa od brave - postoje dva. Jedan je "javni", podaci se mogu šifrirati samo njime, a drugi je "privatni", koji može dekriptirati podatke obrađene javnim ključem svog para.
Takav proces vam omogućuje da slobodno objavite svoj javni ključ bez ugrožavanja vaše sigurnosti.
To je osnova principa rada “Elektroničkih potpisa”.
Oni su potrebni kako bi korisnik podataka B mogao biti siguran da su podaci kriptirani ključem koji pripada korisniku A i obrnuto.
Potpis se stvara iz hash-a izvornih podataka i prilaže se poslanom paketu.
Primatelj dekriptira potpis s javnim ključem, uspoređuje ga s hashom primljenih podataka, a ako se podudaraju, pošiljatelj je pravi korisnik, a ne prevarant.
OK, shvatili smo kako izvesti rukovanje (rukovanje je proces formiranja sigurnog komunikacijskog kanala).
Sada zamislite da između korisnika A i B postoji još jedan korisnik, C.
“C” je napadač koji mora znati o detaljima komunikacije A i B.
On stvara dva para ključeva za potpisivanje i još dva ključa za šifriranje podataka.
Korisniku A on se predstavlja kao korisnik B, a korisniku B kao korisnik A. Stvarnost je takva da se u realnostima interneta ne može biti 100% siguran da su dobiveni elektronički potpis i ključ autentični.
Dakle, ako je takav scenarij stvarno moguć, neće li naši A i B biti sigurni?
Ima spasa! Sada smo došli do glavne teme - "Mreža povjerenja".
Ova mreža se sastoji od toga da svi korisnici znaju javne ključeve međusobnih elektroničkih potpisa, a svakom članu mreže se može postaviti pitanje: „Da li ovaj ključ, koji mi je poslao korisnik B, pripada njemu, a ne nekome uljez?"
U tom slučaju mreža povjerenja može biti vrlo učinkovita i s malim brojem sudionika, jer ako jedan poznaje drugoga, treći će, pitajući prvog, znati javni ključ drugoga. Poput korijenja hrasta, Web of Trust je isprepleten, omogućujući korisnicima dijeljenje podataka.
Sada naš korisnik C više ne može oponašati druge korisnike. Tek ako pokuša, korisnik A će, upitavši bilo koga od članova mreže, shvatiti da netko stoji između njega i korisnika B i presreće poruke.
Kombinirajmo sada sve ove koncepte u jednu jednostavnu shemu.
I korisnik A i korisnik B su u istoj mreži povjerenja i žele započeti sigurnu komunikaciju.
“A” traži od više članova mreže javni ključ 'B'. Koristeći ovaj ključ, on šalje zahtjev za rukovanje korisniku B. "B" zauzvrat saznaje javni ključ korisnika A, generira simetrični ključ za daljnju komunikaciju i, koristeći javni ključ korisnika A, šalje simetrični ključ nazad.
Sve poruke u ovoj shemi također su potpisane elektroničkim potpisom.
Ovom komunikacijom nije moguće nikakvo vanjsko uplitanje, a naši se korisnici konačno mogu početi dopisivati.
Nema smisla koristiti ovu shemu ručno - već je ugrađena u sve moguće internetske komunikacijske protokole u vašim preglednicima i aplikacijama.
Nijedan sustav nije savršen. MITM (Čovjek u sredini, u našem slučaju - način krivotvorenja certifikata provjerom lažnih ključeva s potpisima kojima preglednik korisnika žrtve vjeruje) napadi se izvode i danas.
Ali ako vidite taj "zeleni katanac" u blizini adresne trake vašeg preglednika, vaši su podaci u sigurnim rukama PGP algoritma.