Junior
Kuidas töötab HTTPS?
sobes.tech AI
Vastus AI-lt
HTTPS (Hypertext Transfer Protocol Secure) — see on protokoll, mis tagab turvalise andmete edastamise kliendi (näiteks brauseri) ja serveri vahel. See põhineb HTTP-l, kuid kasutab krüpteerimist edastatava teabe kaitsmiseks.
HTTPS-i töö põhineb TLS (Transport Layer Security) protokolli kasutamisel, mis varem nimetati SSL-iks (Secure Sockets Layer). TLS/SSL tagab kolm peamist turvafunktsiooni:
- Krüpteerimine: Andmed kliendi ja serveri vahel krüpteeritakse, muutes need kolmandate osapoolte jaoks loetamatuks.
- Andmete terviklikkus: Kontrollitakse, et andmed ei oleks edastamise ajal muutunud.
- Autentimine: Server kinnitab oma autentsuse kliendile.
HTTPS-i ühenduse loomise protsess hõlmab mitmeid etappe, mida nimetatakse "TLS/SSL Handshake":
- Client Hello: Klient saadab serverile "Client Hello", mis sisaldab:
- TLS toetatud versiooni.
- Loetelu toetatud krüpteerimisalgoritmidest (cipher suites).
- Juhuslik number.
- Server Hello: Server vastab "Server Hello"-ga, valides:
- TLS versiooni.
- Ühe krüpteerimisalgoritmi.
- Juhusliku numbri.
- Serveri sertifikaadi.
- Certificate: Klient saab serveri sertifikaadi ja kontrollib selle autentsust:
- Kontrollib digitaalset allkirja sertifikaadil, kasutades avalikku võtit sertifikaadi keskuse (CA) kaudu.
- Kontrollib sertifikaadi kehtivusperioodi.
- Kontrollib, kas domeeninimi vastab sertifikaadil märgitud nimele.
- Client Key Exchange: Klient genereerib pre-master secret (võtme), krüpteerib selle serveri sertifikaadist avaliku võtmega ja saadab serverile.
- Change Cipher Spec (Client): Klient teavitab serverit, et ta on valmis alustama krüpteeritud andmevahetust.
- Finished (Client): Klient saadab krüpteeritud sõnumi, mis sisaldab kõigi eelnevate Handshake sõnumite hash'i, kontrolli jaoks.
- Change Cipher Spec (Server): Server dekrüpteerib pre-master secret'i, kasutades oma privaatvõtit, ja genereerib sessiooni jaoks sümmeetrilised võtmed. Seejärel teavitab ta klienti, et on valmis alustama krüpteeritud andmevahetust.
- Finished (Server): Server saadab kliendile krüpteeritud sõnumi, mis sisaldab kõigi eelnevate Handshake sõnumite hash'i.
- Krüpteeritud andmevahetus: Pärast Handshake'i edukat lõpetamist kasutavad klient ja server genereeritud sümmeetrilisi võtmeid kõigi järgnevate andmete krüpteerimiseks.
Sel viisil tagab HTTPS turvalise ühenduskanali, muutes veebisirvimise turvalisemaks.