Hyper Text Transfer Protocol Secure (HTTPS) este o extensie a HTTP (Hypertext Transfer Protocol). Aceasta utilizează criptarea pentru a asigura o comunicare securizată într-o rețea de calculatoare. În HTTPS, protocolul de comunicare este criptat folosind TLS (Transport Layer Security) sau SSL (Secure Sockets Layer).
Principalele motive pentru utilizarea HTTPS sunt autentificarea site-ului web accesat și protecția confidențialității și integrității datelor schimbate în timpul transmisiei. Acesta protejează împotriva atacurilor de tip man-in-the-middle, iar criptarea bidirecțională cu algoritmi de cifrare pe bloc a comunicațiilor dintre un client și un server previne interceptarea și modificarea datelor. Aspectul de autentificare al HTTPS necesită o terță parte de încredere pentru a semna certificatele digitale ale serverului.
Istoric, acest proces era costisitor, ceea ce însemna că conexiunile HTTPS complet autentificate se găseau, de obicei, doar pe serviciile securizate de tranzacții de plată și pe alte sisteme de informații corporative de pe World Wide Web. În 2016, o campanie a Electronic Frontier Foundation, susținută de dezvoltatorii de browsere web, a dus la o adoptare mai largă a protocolului. În prezent, HTTPS este utilizat mai frecvent decât HTTP-ul nesecurizat, în principal pentru a proteja autenticitatea paginilor web de toate tipurile, pentru a securiza conturile și pentru a menține confidențialitatea comunicațiilor utilizatorilor, a identității acestora și a activității lor de navigare pe web. În 2017, HTTPS era utilizat pentru 19,24% din totalul domeniului românesc.
Descriere miniatura|URL începând cu schema HTTPS și eticheta de nume de domeniu www HTTPS semnalează browserului să utilizeze un strat de criptare adăugat prin SSL/TLS pentru a proteja traficul. Față de HTTP, acesta poate oferi protecția chiar dacă doar o parte a comunicării este autentificată.
Printr-un canal securizat în rețeaua nesigură, HTTPS asigură protecție împotriva interceptării și atacurilor de tip man-in-the-middle dacă condițiile de criptare sunt adecvate și dacă certificatul serverului este verificat și de încredere. Deoarece HTTPS folosește complet HTTP peste TLS, întregul protocol HTTP de bază poate fi criptat. Elementele criptate pot include: URL-ul cererii, parametrii de interogare, antetele și cookie-urile (care de obicei conțin informațiile de identificare ale utilizatorului). Cu toate acestea, deoarece adresele de website și numerele de port sunt nevoite să facă parte din protocoalele de bază TCP/IP, HTPS nu poate proteja divulgarea acestora: în practică, chiar și dacă un server web este configurat corect, interceptatorii pot deduce adresa IP, numărul de port al serverului web, numele domeniului (de exemplu, www.ro.wikipedia.org, dar nu restul URL-ului), cantitatea de date transferate și durata comunicării.
Browserele web știu cum să aibă încredere în site-urile HTTPS pe baza autorităților de certificare care sunt preinstalate. Dezvoltatorii de browsere web se bazează pe autoritățile de certificare pentru a furniza certificate valide. Un utilizator ar trebui să aibă încredere într-o conexiune HTTPS către un site doar dacă următoarele sunt adevărate:
Utilizatorul are încredere că dispozitivul său și navigatorul web nu sunt compromise (nu există un atac asupra lanțului de aprovizionare). Utilizatorul are încredere că navigatorul web implementează corect HTTPS cu autoritățile de certificare preinstalate corect. Utilizatorii are încredere că autoritatea de certificate garantează doar site-uri web legitime (autoritatea de certificare nu este compromisă și nu există o emitere greșită a certificatelor). Site-ul furnizează un certificat valid, ceea ce înseamnă că a fost semnat de o autoritate de încredere. Certificatul identifică corect site-ul (de exemplu, când navigatorul vizitează „https://exemplu.ro”, certificatul primit este pentru „exemplu.ro” și nu pentru altă entitate). Utilizatorul are încredere că stratul de criptare al protocolului este suficient de sigur împotriva interceptării.
HTTPS este deosebit de important pe rețele nesigure care pot fi supuse manipulării. Rețelele nesigure, cum ar fi punctele de acces Wi-Fi publice, permit oricui se află pe aceeași rețea locală să intercepteze pachetele și să descopere informații sensibile care nu sunt protejate de HTTPS. Unele rețele locale manipulează paginile web prin injectarea de pachete pentru a servii propriile lor reclame pe alte site-uri sau pentru a injecta viruși sau pentru a fura informațiile private ale utilizatorilor.
Pe măsură ce sunt dezvăluite mai multe informații despre supravegherea globală în masă și infractorii care fură informații personale, utilizarea securității HTTPS pe toate site-urile devine din ce în ce mai importantă, indiferent de tipul de conexiune la Internet utilizat. Chiar dacă metadata despre paginile individuale vizitate de un utilizator ar putea să nu fie considerată sensibilă, când este agregată, aceasta poate revela multe despre utilizator și poate compromite confidențialitatea acestuia.
Implementarea HTTPS permite, de asemenea, utilizarea HTTP/2 și HTTP/3 (și a predecesorilor lor SPDY și QUIC), care sunt noi versiuni ale protocolului HTTP concepute pentru a reduce timpul de încărcare al paginilor, dimensiunea și latența. Este recomandat să se folosească HTTP Strict Transport Security (HSTS) împreună cu HTTPS pentru a proteja utilizatorii de atacurile de tip man-in-the-middle, în special de SSL stripping.
Integrare în navigatoare web Majoritatea browserelor afișează un avertisment dacă primesc un certificat invalid. Browserele mai vechi, atunci când se conectau la un site cu un certificat invalid, prezentau utilizatorului o fereastră de dialog în care li se cerea să confirme dacă doresc să continue. Browserele mai noi afișează un avertisment pe întreaga fereastră și informațiile de securitate ale site-ului.
HTTPS este important pentru conexiunile din rețeaua Tor, deoarece nodurile Tor ar putea să distrugă sau să injecteze viruși în conexiune. Aceasta este un motiv pentru care Electronic Frontier Foundation și Tor Project au început dezvoltarea HTTPS Everywhere. Electronic Frontier Foundation susține că „într-o lume ideală, fiecare cerere web ar putea fi setată implicit pe HTTPS” și a creat extensia numită HTTPS Everywhere pentru Mozilla Firefox, Google Chrome, Chromium și Android, care activează HTTPS implicit pentru sute de site-uri frecvent utilizate. Datorită adoptării pe scară largă a HTTPS pe World Wide Web și integrării modului „numai HTTPS” pe browserele majore, extensia a fost retrasă în ianuarie 2023.
Securitate Pentru ca HTTPS să fie eficient, un site trebuie să fie complet găzduit prin HTTPS. Dacă unele dintre conținuturile site-ului sunt încărcate prin HTTP (scripturi sau imagini, de exemplu), sau dacă doar o anumită pagină care conține informații sensibile, cum ar fi o pagină de autentificare, este încărcată prin HTTPS, în timp ce restul site-ului este încărcat prin HTTP simplu, utilizatorul va fi vulnerabil la atacuri și supraveghere. În plus, cookie-urile de pe un site servit prin HTTPS trebuie să aibă atributul „secure” activat. Pe un site care conține informații sensibile, utilizatorul și sesiunea vor fi expuși de fiecare dată când acel site este accesat prin HTTP în loc de HTTPS.
Utilizatorii trebuie să fie atenți și să se asigure că certificatele digitale ale site-urilor pe care le vizitează sunt valide și semnate de o autoritate de certificare de încredere. Utilizarea unor certificate valide ajută la prevenirea atacurilor de tip „man-in-the-middle”, care pot intercepta și modifica traficul dintre utilizator și server.
Diferență față de HTTP URL-urile HTTPS încep cu „https://” și folosesc portul 443 în mod implicit, în timp ce URL-urile HTTP încep cu „http://” și folosesc portul 80 în mod implicit.
HTTP nu este criptat și, prin urmare, este vulnerabil la atacuri de tip „man-in-the-middle” și la atacuri de interceptare a comunicațiilor, care permit atacatorilor să obțină acces la conturi de pe site-uri și informații sensibile, precum și să modifice paginile web pentru a injecta viruși sau reclame.
Straturi ale rețelei HTTP operează la cel mai înalt strat al modelului TCP/IP (stratul de aplicație). Protocolul de securitate TLS operează ca un substrat inferior. Acesta criptează un mesaj HTTP înainte de transmitere și decriptează un mesaj la sosire. Strict vorbind, HTTPS nu este un protocol separat, ci se referă la utilizarea HTTP obișnuit printr-o conexiune SSL/TLS criptată. HTTPS criptează toate conținuturile mesajelor, inclusiv anteturile HTTP și datele de solicitare/răspuns.
Limitări Criptarea SSL și TLS poate fi configurată în două moduri: simplu și mutual. În modul simplu, autentificarea este realizată doar de server. Versiunea mutuală necesită ca utilizatorul să instaleze un certificat personal de client în browserul web pentru autentificarea utilizatorului. În ambele cazuri, nivelul de protecție depinde de corectitudinea implementării software-ului și a algoritmilor criptografici utilizați.
SSL/TLS nu previne indexarea site-ului de către un crawler web, iar în unele cazuri, URI-ul resursei criptate poate fi dedus doar prin cunoașterea dimensiunii cererii/răspunsului interceptate.
Deoarece TLS operează la un nivel de protocol sub cel al HTTP și nu are cunoștință despre protocoalele de nivel superior, serverele TLS pot prezenta strict un singur certificat pentru o anumită combinație de adresă și port.
Un tip sofisticat de atac man-in-the-middle numit SSL stripping a fost prezentat la Conferința Blackhat din 2009. Acest tip de atac înfrânge securitatea oferită de HTTPS prin schimbarea linkului https: într-un link http:, profitând de faptul că puțini utilizatori de Internet tastează efectiv „https” în interfața browserului: aceștia ajung pe un site securizat făcând clic pe un link și astfel sunt înșelați să creadă că utilizează HTTPS, când de fapt folosesc HTTP. Atacatorul comunică apoi cu clientul.
HTTPS a fost demonstrat ca fiind vulnerabil la o gamă de atacuri de analiză a traficului. Atacurile de analiză a traficului sunt un tip de atac de canal lateral care se bazează pe variațiile în timpul și dimensiunea traficului pentru a deduce proprietăți ale traficului criptat în sine. Analiza traficului este posibilă deoarece criptarea SSL/TLS schimbă conținutul traficului, dar are un impact minim asupra dimensiunii și timpului traficului.
În mai 2010, o lucrare de cercetare realizată de cercetători de la Microsoft Research și Universitatea Indiana a descoperit că datele sensibile detaliate ale utilizatorului pot fi deduse din canale laterale, cum ar fi dimensiunile pachetelor. Cercetătorii au constatat că, în ciuda protecției HTTPS în mai multe aplicații web de top din domeniul sănătății, impozitelor, investițiilor și căutării web, un intermediar ar putea deduce bolile/medicamentele/intervențiile chirurgicale ale utilizatorului, venitul familiei acestuia și secretele de investiții.
Faptul că majoritatea site-urilor web moderne, inclusiv Google, Yahoo! și Amazon, folosesc HTTPS cauzează probleme pentru mulți utilizatori care încearcă să acceseze puncte de acces Wi-Fi publice, deoarece o pagină de conectare la portalul captive Wi-Fi nu se încarcă dacă utilizatorul încearcă să acceseze o resursă HTTPS.
Configurarea serverului Pentru a pregăti un server web să accepte conexiuni HTTPS, administratorul trebuie să creeze un certificat de cheie publică pentru serverul web. Acest certificat trebuie semnat de o autoritate de certificare de încredere pentru ca browserul web să îl accepte fără avertismente. Autoritatea certifică faptul că titularul certificatului este operatorul serverului web care îl prezintă. Navigatoarele web sunt distribuite cu o listă de certificate de semnătura ale autorităților de certificare majore.
Obținerea certificatelor