From Wikipedia, the free encyclopedia
HTTPS (inglise keeles Hypertext Transfer Protocol Secure ehk turvaline hüperteksti edastusprotokoll) on turvaline protokoll autenditud ja krüpteeritud informatsiooni edastamiseks arvutivõrkudes. HTTPS protokolli muudab HTTP-ga võrreldes turvalisemaks liikluse edastamine üle transpordikihi turbeprotokolli (TLS) või vanema turvasoklite kihi (SSL). Tegemist on HTTP protokolli laiendusega, mille avaldas Netscape Communications 1995. aastal oma veebibrauseri Netscape Navigator jaoks.[1]
See artikkel ootab keeletoimetamist. (August 2024) |
HTTPS-i puhul toimub andmevahetus kasutaja ja veebiserveri vahel kolmanda osapoole jaoks loetamatul kujul ning ühendus on kaitstud vahendajarünnete eest. HTTPS-ühendusi kasutatakse sageli veebis maksete tegemisel (pankade veebisaitidel) ning tundliku informatsiooni edastamiseks suurfirmade infosüsteemides.
Mainitud protokollidega puutub kasutaja kokku URL-i aadressireale sisestades. Kui HTTP-aadressid algavad "http://" ja kasutavad vaikimisi porti 80, siis HTTPS-aadressid algavad "https://" ja kasutavad vaikimisi porti 443 [2].
HTTPS protokolli kasutamisest olenemata on siiski oluline kontrollida URL-i usaldusväärsust ning veenduda, et veebiaadress ühtib otsitava sisuga.
Alates 2018. aasta juulist märgistab Google Chrome kõiki veebilehti, mis endiselt kasutavad HTTP protokolli, "not secure" sildiga, et julgustada veebiarendajaid HTTPS protokollile üle minema.[3]
Erinevalt HTTP protokollist krüpteerib HTTPS informatsiooni, mis brauseri ja veebiserveri vahel toimub. Turvalise andmevahetuse jaoks kasutatakse asümmeetrilist krüpteerimist, mille käigus kasutavad server ja brauser oma avalikku ja privaatset võtit, et jagada sessioonivõtit, mida saab kasutada andmete dekrüpteerimiseks.[4] Sellise algoritmiga kasutatakse paralleelselt ka digitaalsertifikaate, et serverit autentida ning vältida vahendajaründeid.
TLS (Transport Layer Security), varem SSL (Secure Sockets Layer), on suhtlusprotokoll, mille abil luuakse kahe seadme või rakenduse vahel turvaline ühendus läbi võrgu.[2] Tänu nendele suhtlusprotokollidele on HTTPS märkimisväärselt turvalisem kui HTTP. Turvalise andmevahetuse jaoks peab informatsiooni saatval veebiserveril olema TLS või SSL digitaalsertifikaat, mille on loonud usaldusväärne sertimisasutus (Certificate Authority, CA). Saadud sertifikaat kinnitab, et veebiserveri taga on autentitud ettevõte või isik, mistõttu erinevad brauserid (nt Chrome, Firefox või Safari) saavad seda usaldada ja pidada turvaliseks ning seda vastavalt oma brauseris kuvada.[5] Järgnevalt on toodud TLS andmevahetuse kulgemine TLS 1.2 näitel.
Pakettide ohutuks saatmiseks üle TCP peavad klient (kasutajaarvuti) ja server läbi viima TCP kätluse (TCP Handshake). Selleks saadab klient serverile paketi, milles SYN (Synchronize) biti väärtus on 1. Server saadab tagasi paketi, milles ACK (Acknowledge) biti väärtus on 1 koos varem saadetud SYN samuti väärtusega 1. Viimaks saadab klient tagasi paketi ACK bitiga. Eduka kätluse korral on serveri ja kliendi vahel loodud ühendus. TCP kätluse kogu eesmärk on luua privaatne ühendus ning selle käigus andmeid veel ei vahetata.[6]
TLS kätlus
TLS protokolli alustamiseks toimub TLS kätlus. Selleks annab esmalt klient serverile sõnumi kaudu teada (inglise k. "Client Hello message"), milliseid TLS protokolli parameetreid (sh TLS versioon ning kasutatavate šiffrite detailid) viimane toetab. Klient genereerib suvalistest bittidest koosneva rea "ClientRandom", mida kasutatakse hiljem sessioonivõtme loomiseks. Server saadab vastu TLS digisertifikaadi, et autentida end kui turvalist osapoolt, annab teada, millist TCP versiooni ning šifreid soovib kasutada ning genereerib samuti suvalistest bittidest koosneva rea nimetusega "ServerRandom". Seejärel kontrollib klient, kas serveri esitatud TLS digisertifikaat on ametlikult kinnitatud sertimisasutuse poolt, et kaitsta võimaliku vahendajaründe eest.[7]
Klient saab TLS digisertifikaadiga ka serveri avaliku võtme, mida klient kasutab pre-master võtit sisaldava sõnumi krüpteerimiseks. Seda sõnumit saab server dekrüpteerida ainult oma isikliku võtmega. Klient loob seejärel pre-master võtme abil jagatud võtme (shared key) ning hoiustab selle lokaalselt.[6][7]
Seejärel saavad server ja klient luua iseseisvalt sessioonivõtmed kasutades ClientRandom, ServerRandom ning pre-master võtmeid. Eduka genereerimise korral loovad nii klient kui ka server identsed võtmed ning saadavad üksteisele sõnumi "Finished".[7] Kuna sessioonivõtmed on ainult serveril ja kliendil, kasutatakse sessiooni lõpuni neid võtmeid turvaliseks andmevahetuseks.
Andmed on 2024. aasta aprilli seisuga.[8][9] Aegunud TLS protokollide turvaauke on võimalik rünnete jaoks ära kasutada, mistõttu nende kasutus on rangelt mittesoovituslik.
TLS versioon | Kirjeldus | Kasutus |
---|---|---|
TLS 1.0 | - Avaldatud 1999, põhineb SSL 3.0 peal.
- Toetab 33% veebilehtedest. - Kasutab autentimiseks üsna vanu ja aegunud algoritme ning haavatav erinevate vahendajarünnete vastu (nt POODLE ja BEAST)[10]. |
Aegunud, ei soovitata kasutada |
TLS 1.1 | - Avaldatud aastal 2006.
- Kasutab autentitud krüpteerimise šiffrit (authenticated encryption). - Kasutab tänaseks aegunud MDA ja SHA-1 algoritme - Toetavad 35,9% veebilehtedest. - Eelnevalt mainitud vahendajarünnetele siiski üsna haavatav. |
Aegunud, ei soovitata kasutada |
TLS 1.2 | - Avaldatud aastal 2008.
- Kõige laialdasemalt kasutuses olev TLS protokoll (99% veebilehtedeset toetab). - Valib krüpteerimisalgoritmi, mida toetab nii server kui ka klient. - TLS kätlemised ja sertifikaadid. - Vähem vastuvõtlikum TLS 1.0 ja 1.2 rünnete vastu. |
Kasutuses |
TLS 1.3 | - Avaldatud 2018.
- Toetab 59,8% veebilehtedest. - Kasutab lihtsaid, kuid väga turvalisi šiffreid. Rünnata on märkimisväärselt keerulisem, kui varasemate versioonide puhul. - Autentimine ja krüpteerimine toimuvad palju kiiremini. - Eemaldati ligipääs aegunud šiffritele, et vältida võimalust, et protokoll nende peale lülituks. |
Kasutuses |
Veebilehed kasutavad porte, et eristada erinevat liiki võrguliiklust. Portide numbrid annavad serverile informatsiooni protokollide parameetrite kohta. Näiteks port 80 vihjab serverile, et kasutuses on HTTP protokoll, samas port 443 vastab HTTPS-le [5].
Erinevaid kasutusel olevaid HTTPS porte[11]:
HSTS (inglise k. HTTP Strict Transport Security) on poliitika (inglise k. policy), mida veebiserverid saavad rakendada ühenduse loomisel brauseriga (kliendiga), mis ei luba ühendust luua ühegi teise protokolliga peale HTTPS-i. Veebiserverid annavad brauserile HSTS poliitikast teada kasutades HTTP päisesõnumit (inglise k. HTTP header), mis sisaldab ühenduse loomiseks vajalikke spetsifikatsioone ning parameetreid, sh kui pikalt brauser peaks poliitikat meeles hoidma (max-age) ning kas seda rakendatakse ka alamdomeenidele[12][13]. Näide saadetavast päisesõnumist:
Strict-Transport-Security: max-age=31536000;
HTTPS protokoll on haavatav netiliikluse analüüsimise rünnakute suhtes (inglise k. traffic analysis attack). Sellise rünnaku käigus analüüsitakse veebiliiklust ning proovitakse nii kliendi kui ka veebilehe kommunikatsioonis leida mustreid, mille abil saaks dekrüpteerida liikuvat informatsiooni. Mustrite leidmise muudab võimalikuks asjaolu, et SSL/TLS muudab saadetava info sisu, kuid selle edastamise ajastust ega andmete suurust ei muudeta[14].
Vahendajarünnete abil on võimalik kliendi ja serveri kommunikatsiooni vahelist SSL/TLS versiooni alandada (inglise k. downgrade attack või SSL stripping). Rünnaku käigus kasutatakse ära kätluse käigus saadetavat "Client Hello Message", kliendi poolt toetatud SSL/TLS protokolli versiooni deklaratsiooni, milles vahetatakse soovitud versioon aegunud variandi vastu ning selle käigus alandatakse HTTPS protokoll HTTP peale [3].
Krüpteeritud ja turvalise andmeedastuse tõttu puutub HTTPS protokolliga kõige enam kokku erinevatesse veebikeskkondadesse sisselogimisel. Oluliste isikuandmete kaitsmiseks on HTTPS eriti vajalik panga- või terviseandmete sisestamisel, et vältida pealtkuulamist ja andmete potentsiaalset varastamist.[4] Ilma turvalise ühenduseta on igasuguste andmete sisestamine veebilehele väga suur turvarisk.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.