HTTPS

Allikas: Vikipeedia
(Ümber suunatud leheküljelt 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 aastal 1995 oma veebibrauseri Netscape Navigator jaoks.[1]

HTTPS-i puhul toimub andmevahetus kasutaja ja veebiserveri vahel kõrvaliste 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.

Turvalise URL algus kasutades HTTPS protokolli.

Eelnevalt 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. Andmevahetus toimub TCP

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.[2]

Ülevaade[muuda | muuda lähteteksti]

Erinevalt HTTP protokollist, krüpteerib HTTPS informatsiooni, mis brauseri ja veebiserveri vahel toimub. Turvalise andmevahetuse jaoks kasutatakse asümmetrilist 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.[3] Sellise algoritmiga kasutatakse paralleelselt ka digitaalsertifikaate, et serverit autentida ning vältida vahendajaründeid.

TLS/SSL[muuda | muuda lähteteksti]

Näide usaldusväärsest veebilehest, millel on digisertifikaat

TLS (Transport Layer Security), varasemalt SSL (Secure Sockets Layer), on suhtlusprotokoll, mille abil luuakse kahe seadme või rakenduse vahel turvaline ühendus läbi võrgu.[4] Protokoll on põhjus, mis muudab HTTPS-i turvaliseks. Turvalise andmevahetuse jaoks peab informatsiooni saatval veebiserveril olema TLS või SSL digitaalsertifikaat, mille on loonud usaldusväärne sertifitseerimisasutus (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.

TCP kätlus[muuda | muuda lähteteksti]

TCP kätlus (vasakul kujutatud klient, paremal server).

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 varasemalt 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 ei vahetata.[6]

TLS kätlus

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 sihvrite 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 sihvreid soovib kasutada ning genereerib samuti suvalistest bittidest koosneva rea nimetusega "ServerRandom". Seejärel kontrollib klient, kas serveri esitatud TLS digisertifikaat on ametlikult kinnitatud sertifitseerimsiasutuse poolt, et kaitsta võimaliku vahendajaründe eest.[7]

Jagatud võtme genereerimine[muuda | muuda lähteteksti]

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]

Sessioonivõtmete genereerimine[muuda | muuda lähteteksti]

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.

TLS versioonid[muuda | muuda lähteteksti]

Andmed põhinevad 2024 aprilli andmetel[8][9].

TLS versioon Kirjeldus Kasutus
TLS 1.0 - SSL 3.0 põhinev.

- Toetab 33% veebilehtedest.

- Kasutab autentimiseks üsna vanu ja aegunud algoritme.

Aegunud, ei soovitata kasutada
TLS 1.1 Aegunud, ei soovitata kasutada
TLS 1.2 Kasutuses
TLS 1.3 Kasutuses

Kasutus[muuda | muuda lähteteksti]

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

Levik[muuda | muuda lähteteksti]

  • 2024 aasta andmetel möödub 93,2% Chrome'i kasutajate veebi sirvimise ajast HTTPS lehekülgedel
  • 2020 aasta andmetel 79% Alexa top 100000 populaarseima veebilehe seast kasutavad vaikeseadena HTTPS protokolli.[11]

Vaata ka[muuda | muuda lähteteksti]

Viited[muuda | muuda lähteteksti]

  1. Matthews, Tim (6. veebruar 2019). "The Origins of Web Security and the Birth of SSL". Exabeam (Ameerika inglise). Vaadatud 14. aprillil 2024.
  2. "A secure web is here to stay". Chromium Blog (inglise). Vaadatud 21. aprillil 2024.
  3. "HTTP to HTTPS | What is a HTTPS Certificate". web.archive.org. 12. veebruar 2015. Originaali arhiivikoopia seisuga 12. veebruar 2015. Vaadatud 14. aprillil 2024.{{netiviide}}: CS1 hooldus: robot: algse URL-i olek teadmata (link)
  4. "SSL vs TLS - Difference Between Communication Protocols - AWS". Amazon Web Services, Inc. (Ameerika inglise). Vaadatud 14. aprillil 2024.
  5. "What is a CA? Certificate Authorities Explained". www.digicert.com (Ameerika inglise). Vaadatud 14. aprillil 2024.
  6. 6,0 6,1 "Transmission Control Protocol (TCP) (article)". Khan Academy (inglise). Vaadatud 21. aprillil 2024.
  7. 7,0 7,1 7,2 "What happens in a TLS handshake? | SSL handshake". cloudflare.com. Vaadatud 21. aprill 2024.
  8. "TLS Versions: What They Are and Which Ones Are Still Supported?". cheapsslsecurity.com. 30. jaanuar 2023. Vaadatud 24. aprill 2024.
  9. "SSL vs TLS - Difference Between Communication Protocols - AWS". Amazon Web Services, Inc. (Ameerika inglise). Vaadatud 24. aprillil 2024.
  10. "HTTP to HTTPS | What is a HTTPS Certificate". web.archive.org. 12. veebruar 2015. Originaali arhiivikoopia seisuga 12. veebruar 2015. Vaadatud 14. aprillil 2024.{{netiviide}}: CS1 hooldus: robot: algse URL-i olek teadmata (link)
  11. "21 SSL Statistics that Show Why Security Matters so Much". WebTribunal (inglise). Vaadatud 21. aprillil 2024.