Sobes.tech
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:

  1. Krüpteerimine: Andmed kliendi ja serveri vahel krüpteeritakse, muutes need kolmandate osapoolte jaoks loetamatuks.
  2. Andmete terviklikkus: Kontrollitakse, et andmed ei oleks edastamise ajal muutunud.
  3. Autentimine: Server kinnitab oma autentsuse kliendile.

HTTPS-i ühenduse loomise protsess hõlmab mitmeid etappe, mida nimetatakse "TLS/SSL Handshake":

  1. Client Hello: Klient saadab serverile "Client Hello", mis sisaldab:
    • TLS toetatud versiooni.
    • Loetelu toetatud krüpteerimisalgoritmidest (cipher suites).
    • Juhuslik number.
  2. Server Hello: Server vastab "Server Hello"-ga, valides:
    • TLS versiooni.
    • Ühe krüpteerimisalgoritmi.
    • Juhusliku numbri.
    • Serveri sertifikaadi.
  3. 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.
  4. Client Key Exchange: Klient genereerib pre-master secret (võtme), krüpteerib selle serveri sertifikaadist avaliku võtmega ja saadab serverile.
  5. Change Cipher Spec (Client): Klient teavitab serverit, et ta on valmis alustama krüpteeritud andmevahetust.
  6. Finished (Client): Klient saadab krüpteeritud sõnumi, mis sisaldab kõigi eelnevate Handshake sõnumite hash'i, kontrolli jaoks.
  7. 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.
  8. Finished (Server): Server saadab kliendile krüpteeritud sõnumi, mis sisaldab kõigi eelnevate Handshake sõnumite hash'i.
  9. 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.