HTTPS

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 Navigatori jaoks.
pisi|306x306px|Näide HTTP-veebilehest, mille Google Chrome on tuvastanud ebaturvalisena
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 . 

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.

pisi|Turvalise URL algus kasutades HTTPS protokolli.|268x268px
 Ülevaade 
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. Sellise algoritmiga kasutatakse paralleelselt ka digitaalsertifikaate, et serverit autentida ning vältida vahendajaründeid. 

 TLS/SSL 
pisi|368x368px|Näide usaldusväärsest veebilehest, millel on digisertifikaat
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. 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. Järgnevalt on toodud TLS andmevahetuse kulgemine TLS 1.2 näitel.pisi|282x282px|TCP kätlus (vasakul kujutatud klient, paremal server).|vasakul
 TCP kätlus 
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.

TLS kätlus
pisi|386x386px|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.

 Jagatud võtme genereerimine 
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.

 Sessioonivõtmete genereerimine 
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". Kuna sessioonivõtmed on ainult serveril ja kliendil, kasutatakse sessiooni lõpuni neid võtmeid turvaliseks andmevahetuseks.

 TLS versioonid 
Andmed on 2024. aasta aprilli seisuga. Aegunud TLS protokollide turvaauke on võimalik rünnete jaoks ära kasutada, mistõttu nende kasutus on rangelt mittesoovituslik.
TLS versioonKirjeldusKasutus 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).Aegunud, ei soovitata kasutadaTLS 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 kasutadaTLS 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.KasutusesTLS 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

 Pordid 
Veebilehed kasutavad porte, et eristada eri 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 .  

HTTPS-portide näiteid:

 Port 443
 Port 631 (Internet Printing Protocol Secure (IPPS) jaoks)
 Port 664
 Port 832
 Port 1129
 Port 1184

 HSTS 
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 kaua brauser peaks poliitikat meeles hoidma (max-age) ning kas seda rakendatakse ka alamdomeenidele. Saadetava päisesõnumi näide:Strict-Transport-Security: max-age=31536000;

 Puudujäägid 
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. 

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 .

 Kasutus 
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. Ilma turvalise ühenduseta on igasuguste andmete sisestamine veebilehele väga suur turvarisk.

 2024. aasta andmetel möödub 93,2% Chrome'i kasutajate veebi sirvimise ajast HTTPS-lehtedel.
 2020. aasta andmetel kasutab 79% Alexa top 100 000 populaarsematest veebilehtedest vaikeseadena HTTPS-protokolli.
 2024. aasta andmetel kasutab 85,6% kõikidest veebilehtedest vaikeseadena HTTPS-protokolli.

Vaata ka 
 HTTP
 Transpordikihi turbeprotokoll
 Avaliku võtme taristu
 ID-kaart
 Avatud süsteemide sidumise arhitektuur
 SSL/TLS
 Vahendajarünne
 HSTS

 Viited 

Kategooria:Internet
Kategooria:Võrguprotokollid