Pređi na sadržaj

Pretty Good Privacy

S Vikipedije, slobodne enciklopedije
Pretty Good Privacy
Programer(i)Symantec
Prvo izdanje1991. (1991)
Tipsoftver za šifrovanje
Licencakomercijala vlasnički softver
Veb-sajtwww.broadcom.com/products/advanced-threat-protection/encryption

Pretty Good Privacy (PGP) je softver - protokol za šifrovanje i dešifrovanje podataka koji obezbeđuje kripto privatnost i autorizaciju za prenos podataka. Često se koristi za potpisivanje, šifrovanje i dešifrovanje tekstova, imejlova, fajlova, imenika i ceo disk particije i da se poveća bezbednost imejl komunikacije. Ovaj softver je kreirao Phillip R. Zimmermann 1991. godine.[1][2]

Nastanak Pretty Good Privacy-a

[uredi | uredi izvor]

PGP je nastao 1991. godine. U američkom Senatu predstavljen je predlog zakona prema kojem bi svi proizvođači opreme za sigurnu komunikaciju bili prisiljeni ugrađivati u svoje proizvode mogućnost za državu da prema potrebi dekriptuje zaštićene oblike komunikacije. Ovaj predlog nikada nije zaživeo kao važeći zakon, ali je i inspirisao Phillipa R. Zimmermanna da te iste godine napiše, program čija je osnovna uloga zaštita sadržaja elektronske pošte. Probnu verziju svog programa Zimmermann je dao prijateljima i ubrzo se PGP pronašao na Internetu i tako napustio granice SAD. Ovim je Zimmermann prekršio ITAR, te je postao meta višegodišnjeg sudskog progona američkih vlasti tokom čega je dobar deo tog vremena proveo u zatvoru. Sudski proces protiv Zimmermanna obustavljen je 1996. godine, pa su odmah počele kružiti glasine kako se Zimmermann nagodio sa državom i ugradio u svoj proizvod mehanizam pomoću kojeg bi država imala uvid u podatke zaštićene PGP-om. Ova glasina pokazala se neistinitom, a najbolji dokaz je dostupnost izvronog koda čijom bi se analizom lako otkrio enetualni back door. Godine 1997. pojavila se prva legalna verzija PGP-a izvan SAD. Strogi zakoni izričito su zabranjivali izvoz kriptografskog softvera, pa je PGP izvezen u obliku knjige koja je sadržala njegov izvorni kod. Izvan SAD knjiga je skenirana i pomoću OCR2 softvera PGP je vraćen u elektronski oblik. Ovom operacijom uklonjena je i zakonska prepreka svetskom širenju PGP-a.[3]

Princip rada

[uredi | uredi izvor]

PGP je hibridni kriptosistem. Pridev hibridni potiče od činjenice da PGP prilikom zaštite podataka koristi kombinaciju najboljih odlika simetrične i asimetrične zaštite podataka. Pošto je njegova osnovna uloga zaštita podataka koji putuju po raznim računarskim mrežama i sistemima, PGP se ne sastoji samo od kriptografskog algoritma već od više različitih celina. Zbog toga se PGP naziva kriptosistem ili protokol.[4] Zbog lakšeg razumevanja, postupak zaštite podataka koje pošaljilac želi poslati može se razložiti na tri dela:

  • kompresija podataka
  • enkripcija podataka
  • enkripcija ključa sesije

Kompresija podataka

[uredi | uredi izvor]

Ukoliko se ne podesi drugačije, PGP će u prvom koraku izvršiti kompresiju podataka ZIP algoritmom. Postoje dva razloga za ovaj postupak. Prvi i očigledniji je smanjivanje količine podataka koja će putovati po mreži. Drugi razlog je taj što postupak kompresije podataka jača kriptografsku zaštitu. Naime, većina metoda kriptoanalize3 temelji se na prepoznavanju pojedinih uzoraka u podacima. Ukoliko su podaci kompresovani pre enkripcije, prepoznavanje uzoraka biće u velikoj meri otežano.

Enkripcija podataka

[uredi | uredi izvor]
Rad enkripcije podataka

U ovom koraku PGP generiše 128-bitni ključ sesije (engl. session key) koji će biti upotrebljen samo jednom, tj. za svaku enkripciju biće generisan novi ključ. Podaci se dele na blokove dužine 64-bita i enkriptuju se pomoću ključa sesije korišćenjem simetričnog kriptograskog algoritma IDEA4. IDEA je pretpostavljeni algoritam i umesto njega mogu se upotrebiti i neki drugi simetrični algoritmi, kao što su: Triple-DES, Cast-128, Blowfish, AES i drugi.

Enkripcija ključa sesije

[uredi | uredi izvor]

Kao što je u prethodnom koraku rečeno, podaci su enkriptovani pomoću simetričnog algoritma, što znači da je ključ koji je iskorišćen za enkripciju neophodan i za dekripciju podataka. Iz toga proizilazi činjenica da je ključ sesije neophodno dostaviti primaocu poruke. Ključ sesije se enkriptuje pomoću javnog ključa primaoca koristeći simetrični algoritam RSA. Nakon što je to obavljeno, enkriptovana poruka šalje se zajedno sa enkriptovanim ključem koji se koristi za njenu dekripciju. Postupak dekripcije obavlja se obrnutim redosledom opisanog postupka. Kada primalac primi poruku, prvo pomoću svog privatnog ključa dekriptuje ključ sesije. Nakon toga, ključem sesije dekriptuju se zaštićeni podaci i nakon toga se vrši dekompresija podataka. Dekopresijom podataka izvršen je i poslednji korak dekripcije i podaci su dostupni primaocu za dalje korišćenje.

Digitalni potpis

[uredi | uredi izvor]

Osim zaštite podataka kriptografskim algoritmima, PGP nudi još jednu meru zaštite: digitalni potpis. Digitalni - elektronski potpis ostvaruje se pomoću hash funkcije i njegova svrha je potvrda autentičnosti sadržaja poruke (dokaz da poruka nije promenjena na putu od pošaljioca do primaoca), kao i garantovanje identiteta pošaljioca poruke. Elektronski potpis ima istu namenu kao i svojeručni potpis. Jedina razlika je u tome što je svojeručni potpis moguće falsifikovati, dok je falsifikacija digitalnog potpisa takoreći nemoguća. Pošaljilac primenom određenih kriptografskih algoritama prvo od svoje poruke koja je proizvoljne dužine stvara zapis fiskne dužine koji u potpunosti oslikava sadržaj poruke.[5]To prektično znači da svaka promena u sadržaju poruke dovodi do promene potpisa. Ovako dobijeni zapis pošaljilac enkriptuje svojim tajnim ključem i tako formira digitalni potpis koji se šalje zajedno sa porukom. Kada primalac primi poruku, koristeći javni ključ pošaljioca dekriptuje digitalni potpis i ukoliko su potpisi identični potvrđen je identitet pošaljioca kao i integritet poruke.

Digitalni sertifikati

[uredi | uredi izvor]

Čak i sa sigurnosnim metodama zaštite koje poseduje PGP, ipak postoji mogućnost prevare. U svakom trenutku neko može zlonamerno podmetnuti javni ključ neke druge osobe, presresti i izmeniti podatke namenjene osobi za koju je pošaljilac smatrao da je vlasnik pomenutog ključa. Da bi se takvi slučajevi sprečili, PGP koristi digitalne - elektronske sertifikate. Možemo ih zvati i digitalnom ličnom kartom, jer to oni i jesu – digitalna lična karta na Internetu. Sastoje se od: ° javnog ključa; ° sertifikata (informacije o vlasniku, npr. ime, korisnički ID i sl.); ° jednog ili više digitalnih potpisa. Uloga digitalnih potpisa na digitalnom sertifikatu je potvrda da je istinitost informacija sadržanih u sertifikatu potvrđena od strane jedne ili više pouzdanih osoba. Digitalni sertifikati distribuiraju se pomoću servera za sertifikaciju (eng. Certificate server) i baze javnih ključeva (eng. Public key infrastructure). Server za sertifikaciju i baza javnih ključeva su baze podataka koje korisnicima omogućavaju čuvanje i pretragu javnih ključeva. Baza javnih ključeva ima nekih manjih prednosti jer pruža različite usluge upravljanja i manipulisanja digitalnim sertifikatima. Glavna odlika sistema digitalnih sertifikata je postojanje „treće strane“ koja se naziva. To su najčešće kompanije koje imaju zadatak da provere i utvrde nečiji identitet, i nakon toga mu izdaju digitalni sertifikat. Na ovaj način smanjena je mogućnost zloupotrebe elektronskih sertifikata na minimum.[4]

Analiza sigurnosti

[uredi | uredi izvor]

PGP kao kriptosistem sastoji se od četiri kriptografska elementa:

  • simetričnog algoritma
  • asimetričnog algoritma
  • hash funkcije
  • generatora slučajnih brojeva.

Simetrični algoritam

[uredi | uredi izvor]

Kao što je ranije navedeno, pretpostavljeni simetrični algoritam koji PGP koristi je IDEA. Do danas nisu javno objavljene bilo kakve napredne metode razbijanja ovog algoritma, pa je moguće koristiti jedino metodu „brutalne sile“ (eng. brutal force attack). IDEO koristi 128-bitni ključ. To znači da postoji 2128 različitih kombinacija. Brojnim proračunima došlo se do podatka da bi superračunar koji obavlja 1012 operacija u sekundi, za period od 317 godina obavio oko 1022 operacija. Ovo vreme nije čak dovoljno ni za testiranje 1022 ključeva, što predstavlja samo deo od 2128 mogućnosti, jer za testiranje pojedinog ključa nije dovoljna samo jedna operacija. Iako se iz ove ilustracije može zaključiti koliko je 128-bitni ključ siguran, stalni razvoj tehnologije vrlo je upozoravajući. 1993. godine Michael Wiener iz Northern Telecoma u Ottawi, na jednoj konferenciji, predstavio je nacrte u potpunosti razvijenog i testiranog čipa koji se odlikuje velikom brzinom pogađanja 56-bitnih DES ključeva. Proizvodnja ovog čipa u velikim serijama koštala bi 10.5 dolara po komadu. Za milion dolara moguće je konstruisati uređaj sa 57 000 takvih čipova koji bi mogao isprobati svih 256 kombinacija za samo 7 sati. Za uloženih 10 miliona dolara potrebno vreme se smanjuje na 21 minut, a za 100 miliona dolara vreme pada na neverovatnih dva minuta. [6]

Asimetrični algoritam

[uredi | uredi izvor]

Faktorizacija je trenutno najbolji poznati način razbijanja asimetričnog algoritma RSA, koji koristi PGP. Međutim, postupak rastavljanja vrlo velikih brojeva na faktore računarski je vrlo zahtevan, gotovo nemoguć. Danas je poznato nekoliko različitih algoritama za faktorizaciju, a najboljim se pokazao GNFS5, koji je posebno pogodan za brojeve sa više od 110 znakova. Tim algoritmom 1999 godine faktorizovan je broj sa 155 znakova. Postupak faktorizacije trajao je nešto više od 5. meseci paralelno na 292 računara, uz četvoromesečne pripreme na CRAY superračunarima. inimalna dužina ključa kod algoritma RSA je 1024 bita, što odgovara broju sa 309 znakova, dok dužina ključa od 2048 bita odgovara broju sa 617 znakova. Iz ovih podataka jednostavno je zaključiti da se RSA algortam smatra vrlo sigurnim algoritmom koji je prilične teško razbiti.

Haš funkcije

[uredi | uredi izvor]

Prilikom izrade digitalnog potpisa PGP koristi haš funkciju koja se naziva MD56. Reč je o dvosmernoj funkciji koja za ulaz proizvoljne dužine da je jedinstveni izlaz dužine 128-bita. Haš funkcija je tako konstruisana da za dva ulaza koja se razlikuju samo u jednom bitu daje dva potpuno različita izlaza. Teoretski postoji mogućnost da za dva različita ulaza hash funkcija ponudi identičan izlaz, ali je ta verovatnoća ekstremno mala.[7]

Vidi još

[uredi | uredi izvor]

Reference

[uredi | uredi izvor]

Literatura

[uredi | uredi izvor]

Spoljašnje veze

[uredi | uredi izvor]