Ang iyong mga messenger, HTTPS protocol site, awtorisasyon sa mga serbisyo sa Internet, secure na pag-iimbak ng file, at minsan kahit mga alarm clock - lahat ng mga bagay na ito ay gumagamit ng PGP. Ngunit ano pa rin ito? Ang Wikipedia ay nagbibigay ng sumusunod na kahulugan:
Ang Pretty Good Privacy ( PGP ) ay isang encryption program na nagbibigay ng cryptographic privacy at authentication para sa komunikasyon ng data . Ginagamit ang PGP para sa pag-sign , pag-encrypt, at pag-decrypting ng mga text, e-mail , file, direktoryo, at buong disk partition at para mapataas ang seguridad ng mga komunikasyon sa e-mail. Binuo ni Phil Zimmermann ang PGP noong 1991.
Ang PGP at katulad na software ay sumusunod sa OpenPGP standard (RFC 4880), isang bukas na pamantayan para sa pag-encrypt at pag-decrypt ng data . Ang mga modernong bersyon ng PGP ay interoperable sa GnuPG at iba pang OpenPGP-compliant system.
Ito ay malinaw sa mga salita, ngunit tingnan natin kung paano ito gumagana.
Isipin natin na mayroon tayong user A at user B. Kailangan nilang magsimulang makipag-usap, ngunit sa paraang walang makakaalam tungkol sa mga nilalaman ng kanilang sulat. Dito pumapasok ang pag-encrypt.
Gumagamit ang mga modernong system ng Rjindael (kasalukuyang AES), DES, RC4, at ilang iba pang algorithm.
Hindi ko na iisa-isahin ang kanilang trabaho. Ang kailangan mo lang malaman tungkol sa mga ito ay kung bibigyan mo sila ng data ng input at isang susi, makakakuha ka ng isang naka-encrypt na byte array, na maaaring i-reverse gamit ang parehong key. Tulad ng isang padlock, nagbubukas at nagsasara ang mga ito, ngunit walang susi, halos imposibleng gawin ito (walang mga epektibong paraan upang masira ang mga algorithm na ito). Ang ganitong mga algorithm ng pag-encrypt ay tinatawag na mga symmetric encryption algorithm.
At iyon ang sagot, di ba? Hayaang ibigay ng user A ang kanyang susi sa user B. Pagkatapos ay maaari mong i-encrypt ang iyong mga sulat mula sa magkabilang panig, at walang makakaalam kung ano ang isinusulat nila sa isa't isa.
Siyempre, kung ang parehong mga gumagamit ay magkakilala sa totoong buhay, ang isa ay maaaring magbigay sa isa ng isang flash drive na may susi dito.
Ngunit sa Internet imposibleng gawin ito, ang mga gumagamit ay malayo sa dalawa, at ang isang serbisyo ay maaaring maghatid ng milyun-milyong iba't ibang mga gumagamit bawat araw. Gayundin, hindi laging posible na ibigay ang iyong personal na susi sa pag-encrypt sa lahat ng tao kung kanino ka makakausap nang personal sa panahon ng isang pulong.
Dahil ang pagpasa ng iyong pribadong key mula sa parehong AES ay tulad ng pagkompromiso sa iyong seguridad, ang tanong ay lumitaw - paano ligtas na maipapasa ng user A ang kanyang susi sa user B?
Ang solusyon ay lagdaan ang mga susi at e-mail gamit ang isa pang susi! Ngunit ang pangalawang key na ito lamang ang magmumula sa isang asymmetric encryption algorithm. Ang kakanyahan ay kapareho ng sa simetriko, ngunit ngayon, walang solong susi mula sa lock - mayroong dalawa. Ang isa ay "pampubliko", ang data ay maaari lamang i-encrypt kasama nito, at ang pangalawa ay "pribado", na magagawang i-decrypt ang data na naproseso ng pampublikong susi ng pares nito.
Ang ganitong proseso ay nagbibigay-daan sa iyong malayang i-publish ang iyong pampublikong susi nang hindi nakompromiso ang iyong seguridad.
Ito ang batayan ng prinsipyo ng pagpapatakbo ng “Electronic Signatures.”
Kinakailangan ang mga ito upang ang user B ng data ay makasigurado na ang data ay na-encrypt gamit ang susi na pagmamay-ari ng user A, at vice versa.
Ang lagda ay nilikha mula sa hash ng orihinal na data at naka-attach sa packet na ipinadala.
Ide-decrypt ng tatanggap ang lagda gamit ang pampublikong susi, ikinukumpara ito sa hash ng natanggap na data, at kung magkatugma ang mga ito, ang nagpadala ay isang tunay na user at hindi isang manloloko.
OK, naisip namin kung paano magsagawa ng handshake (ang handshake ay ang proseso ng pagbuo ng secure na channel ng komunikasyon).
Ngayon, isipin na sa pagitan ng mga gumagamit A at B, mayroong isa pang gumagamit, C.
Ang "C" ay isang umaatake na kailangang malaman ang tungkol sa mga detalye ng komunikasyon ni A at B.
Gumagawa siya ng dalawang key pairs para lagdaan at dalawa pang key para i-encrypt ang data.
Sa user A, ipinakita niya ang kanyang sarili bilang user B, at sa user B bilang user A. Ang katotohanan ay sa mga realidad ng Internet, hindi maaaring 100% na sigurado na ang nagreresultang electronic signature at key ay tunay.
Kaya, kung talagang posible ang ganitong senaryo, hindi ba magiging ligtas ang ating A at B?
May kaligtasan! Ngayon, naabot na natin ang pangunahing paksa - ang "Web of Trust."
Ang network na ito ay binubuo ng katotohanan na alam ng lahat ng mga gumagamit ang mga pampublikong susi ng mga elektronikong pirma ng bawat isa, at ang bawat miyembro ng network ay maaaring itanong: "Ang susi ba na ito, na ipinadala sa akin ng user B, ay pag-aari niya at hindi sa ilang nanghihimasok?”
Sa kasong ito, ang isang network ng tiwala ay maaaring maging napakahusay kahit na may isang maliit na bilang ng mga kalahok, dahil kung alam ng isa ang isa, ang pangatlo, sa pamamagitan ng pagtatanong sa una, ay malalaman ang pampublikong susi ng pangalawa. Tulad ng mga ugat ng isang puno ng oak, ang Web of Trust ay magkakaugnay, na nagpapahintulot sa mga user na magbahagi ng data.
Ngayon, ang aming user C ay hindi na maaaring magpanggap bilang ibang mga user. Kung susubukan lang niya, ang user A, na nagtatanong sa sinuman sa mga miyembro ng network, ay malalaman na may nakatayo sa pagitan niya at ng user B at humaharang ng mga mensahe.
Ngayon, pagsamahin natin ang lahat ng mga konseptong ito sa isang simpleng pamamaraan.
Parehong nasa iisang trust network ang user A at user B at gustong magsimula ng secure na komunikasyon.
Ang “A” ay humihingi sa maraming miyembro ng network para sa pampublikong key na 'B'. Gamit ang key na ito, nagpapadala siya ng kahilingan sa pakikipagkamay sa user B. “B,” sa turn, natutunan ang pampublikong key ng user A, bumubuo ng simetriko na key para sa karagdagang komunikasyon, at, gamit ang pampublikong key ng user A, ipinapadala ang simetriko key pabalik.
Lahat ng mga mensahe sa scheme na ito ay nilagdaan din gamit ang mga electronic na lagda.
Sa komunikasyong ito, walang posibleng panghihimasok sa labas, at ang aming mga user ay maaaring magsimulang tumugon.
Walang saysay na gamitin ang pamamaraang ito nang manu-mano - ito ay nakabuo na sa lahat ng posibleng mga protocol ng komunikasyon sa Internet ng iyong mga browser at application.
Walang sistemang perpekto. MITM (Man in the middle, in our case - a way to forge certificates by verifying fake keys with signatures trusted by the victim user's browser) na mga pag-atake ay ginagawa pa rin ngayon.
Ngunit kung makita mo ang "berdeng lock" na iyon malapit sa address bar ng iyong browser, ang iyong data ay nasa ligtas na mga kamay ng PGP algorithm.