de Andrea Zanin

HTTPS explicat cu porumbei purtători

HTTPS explicat cu porumbei purtatori

Traducere coreeană
Traducere în portugheză
traducere in spaniola
Traducere mongolă
Traducere persană
Traducere vietnameză

Criptografia poate fi un subiect greu de înțeles. Este plin de dovezi matematice. Dar, cu excepția cazului în care dezvoltați sisteme criptografice, o mare parte din această complexitate nu este necesară pentru a înțelege ce se întâmplă la un nivel înalt.

Dacă ați deschis acest articol în speranța de a crea următorul protocol HTTPS, îmi pare rău să spun că porumbeii nu vor fi suficienți. În caz contrar, preparați niște cafea și bucurați-vă de articol.

Alice, Bob și … porumbei?

Orice activitate pe care o faceți pe Internet (citirea acestui articol, cumpărarea de lucruri pe Amazon, încărcarea de imagini de pisică) se reduce la trimiterea și primirea de mesaje către și de la un server.

Acest lucru poate fi un pic abstract, deci să ne imaginăm că acele mesaje au fost livrate de porumbei voiajori. Știu că acest lucru poate părea foarte arbitrar, dar credeți-mă că HTTPS funcționează în același mod, deși mult mai rapid.

De asemenea, în loc să vorbim despre servere, clienți și hackeri, vom vorbi despre Alice, Bob și Mallory. Dacă nu este prima dată când încercați să înțelegeți conceptele criptografice, veți recunoaște aceste nume, deoarece acestea sunt utilizate pe scară largă în literatura tehnică.

O primă comunicare naivă

Dacă Alice dorește să îi trimită un mesaj lui Bob, ea atașează mesajul pe piciorul porumbelului purtător și îl trimite lui Bob. Bob primește mesajul, îl citește și totul este bine.

Dar dacă Mallory ar intercepta porumbelul lui Alice în zbor și ar schimba mesajul? Bob nu avea de unde să știe că mesajul trimis de Alice a fost modificat în tranzit.

Așa se face HTTP lucrări. Destul de înfricoșător nu? Nu mi-aș trimite acreditările bancare prin HTTP și nici tu nu ar trebui.

Un cod secret

Ce se întâmplă dacă Alice și Bob sunt foarte vicleni. Sunt de acord că își vor scrie mesajele folosind un cod secret. Vor schimba fiecare literă cu 3 poziții în alfabet. De exemplu, D → A, E → B, F → C. Mesajul text simplu „mesaj secret” ar fi „pbzobq jbppxdb”.

Acum, dacă Mallory interceptează porumbelul, nu va fi capabil să schimbe mesajul în ceva semnificativ și nici să înțeleagă ce spune, pentru că nu știe codul. Dar Bob poate pur și simplu să aplice codul invers și să decripteze mesajul în care A → D, B → E, C → F. Textul cifrat „pbzobq jbppxdb” ar fi decriptat înapoi în „mesaj secret”.

Succes!

Aceasta se numește criptografie cu cheie simetrică, pentru că dacă știi cum să criptezi un mesaj știi și cum să îl decriptezi.

Codul pe care l-am descris mai sus este cunoscut sub numele de Cifrul Cezar. În viața reală, folosim coduri mai sofisticate și mai complexe, dar ideea principală este aceeași.

Cum decidem cheia?

Criptografia cheii simetrice este foarte sigură dacă nimeni în afară de expeditor și receptor nu știe ce cheie a fost utilizată. În cifrul Cezar, cheia este un offset din câte litere schimbăm fiecare literă. În exemplul nostru am folosit un offset de 3, dar am fi putut folosi și 4 sau 12.

Problema este că, dacă Alice și Bob nu se întâlnesc înainte de a începe să trimită mesaje cu porumbelul, nu ar avea nicio modalitate de a stabili o cheie în siguranță. Dacă trimit cheia în mesaj, Mallory ar intercepta mesajul și ar descoperi cheia. Acest lucru i-ar permite lui Mallory să citească sau să schimbe mesajul după cum dorește înainte și după ce Alice și Bob încep să-și cripteze mesajele.

Acesta este exemplul tipic al unui Omul în atacul de mijloc și singura modalitate de a o evita este de a schimba sistemul de criptare împreună.

Porumbei care transportă cutii

Așadar, Alice și Bob vin cu un sistem și mai bun. Când Bob dorește să îi trimită lui Alice un mesaj, ea va urma procedura de mai jos:

  • Bob îi trimite un porumbel lui Alice fără niciun mesaj.
  • Alice trimite porumbelul înapoi, ducând o cutie cu încuietoare deschisă, dar păstrând cheia.
  • Bob pune mesajul în cutie, închide încuietorile și îi trimite cutia lui Alice.
  • Alice primește cutia, o deschide cu cheia și citește mesajul.

În acest fel Mallory nu poate schimba mesajul prin interceptarea porumbelului, deoarece nu are cheia. Același proces este urmat atunci când Alice vrea să îi trimită lui Bob un mesaj.

Alice și Bob tocmai au folosit ceea ce este cunoscut sub numele de criptografie cu cheie asimetrică. Se numește asimetric, deoarece chiar dacă puteți cripta un mesaj (blocați caseta) nu îl puteți decripta (deschideți o casetă închisă).
În discursul tehnic, caseta este cunoscută sub numele de cheie publică iar cheia de deschidere este cunoscută sub numele de cheie privată.

Cum am încredere în cutie?

Dacă ați acordat atenție este posibil să fi observat că încă avem o problemă. Când Bob primește acea cutie deschisă, cum poate fi sigur că a venit de la Alice și că Mallory nu a interceptat porumbelul și a schimbat cutia cu una pentru care are cheia?

Alice decide că va semna cutia, astfel când Bob primește cutia, verifică semnătura și știe că Alice a trimis cutia.

Unii dintre voi s-ar putea să se gândească, cum ar identifica Bob semnătura lui Alice în primul rând? Buna intrebare. Și Alice și Bob au avut această problemă, așa că au decis că, în loc de Alice să semneze cutia, Ted va semna cutia.

Cine este Ted? Ted este un tip foarte renumit, bine cunoscut și de încredere. Ted și-a dat semnătura tuturor și toată lumea are încredere că va semna doar cutii pentru persoanele legitime.

Ted va semna o cutie Alice numai dacă este sigur că cea care cere semnătura este Alice. Deci, Mallory nu poate obține o cutie Alice semnată de Ted în numele ei, deoarece Bob va ști că cutia este o fraudă, deoarece Ted semnează doar cutii pentru oameni după verificarea identității lor.

Ted în termeni tehnici este denumit în mod obișnuit ca Autoritatea de certificare iar browserul cu care citiți acest articol vine însoțit de semnăturile diferitelor autorități de certificare.

Deci, atunci când vă conectați la un site web pentru prima dată, aveți încredere în caseta acestuia, deoarece aveți încredere în Ted și Ted vă spune că caseta este legitimă.

Cutiile sunt grele

Alice și Bob au acum un sistem fiabil de comunicat, dar își dau seama că porumbeii care transportă cutii sunt mai lente decât cei care poartă doar mesajul.

Ei decid că vor folosi metoda casetei (criptografie asimetrică) numai pentru a alege o cheie pentru a cripta mesajul folosind criptografie simetrică cu (vă amintiți cifrul Cezar?).

În acest fel, ei obțin cele mai bune din ambele lumi. Fiabilitatea criptografiei asimetrice și eficiența criptografiei simetrice.

În lumea reală nu există porumbei lent, dar totuși criptarea mesajelor folosind criptografie asimetrică este mai lentă decât utilizarea criptografiei simetrice, așa că o folosim doar pentru a schimba cheile de criptare.

Acum știi cum HTTPS funcționează și cafeaua dvs. ar trebui, de asemenea, să fie gata. Mergi să-l bei, l-ai meritat?