Sobes.tech
Junior

Kaip veikia HTTPS?

sobes.tech AI

Atsakymas iš AI

HTTPS (Hypertext Transfer Protocol Secure) — tai protokolas, kuris užtikrina saugų duomenų perdavimą tarp kliento (pavyzdžiui, naršyklės) ir serverio. Jis pagrįstas HTTP, tačiau naudoja šifravimą perduodamai informacijai apsaugoti.

HTTPS veikimas grindžiamas TLS (Transport Layer Security) protokolo naudojimu, kuris anksčiau vadinosi SSL (Secure Sockets Layer). TLS/SSL užtikrina tris pagrindinius saugumo aspektus:

  1. Šifravimas: Duomenys tarp kliento ir serverio yra šifruojami, todėl jie tampa neskaitytini trečiosioms šalims.
  2. Duomenų vientisumas: Patikrinama, ar duomenys nebuvo pakeisti perdavimo metu.
  3. Autentifikacija: Serveris patvirtina savo autentiškumą klientui.

HTTPS ryšio nustatymo procesas apima keletą etapų, vadinamų "TLS/SSL Handshake":

  1. Client Hello: Klientas siunčia serveriui "Client Hello", kuriame yra:
    • TLS versija, kurią palaiko.
    • Sąrašas palaikomų šifravimo algoritmų (cipher suites).
    • Atsitiktinis skaičius.
  2. Server Hello: Serveris atsako "Server Hello", pasirinkdamas iš siūlytų:
    • TLS versiją.
    • Vieną iš šifravimo algoritmų.
    • Atsitiktinį skaičių.
    • Serverio sertifikatą.
  3. Certificate: Klientas gauna serverio sertifikatą ir patikrina jo autentiškumą:
    • Patikrina skaitmeninį parašą naudojant viešąjį raktą iš sertifikato centro (CA).
    • Patikrina sertifikato galiojimo laiką.
    • Patikrina, ar domeno vardas atitinka sertifikate nurodytą.
  4. Client Key Exchange: Klientas generuoja pre-master secret (raktą), jį šifruoja viešu raktu iš serverio sertifikato ir siunčia serveriui.
  5. Change Cipher Spec (Client): Klientas praneša serveriui, kad pasiruošęs pradėti šifruotą duomenų mainus.
  6. Finished (Client): Klientas siunčia šifruotą žinutę su visų ankstesnių Handshake žinučių hash'u, patikrinimui.
  7. Change Cipher Spec (Server): Serveris dešifruoja pre-master secret naudodamas savo privatų raktą ir sukuria simetrinius raktus sesijai. Tada jis praneša klientui, kad pasiruošęs pradėti šifruotą duomenų mainą.
  8. Finished (Server): Serveris siunčia klientui šifruotą žinutę su visų ankstesnių Handshake žinučių hash'u.
  9. Šifruoto duomenų perdavimo: Sėkmingai užbaigus Handshake, klientas ir serveris naudoja sukurtus simetrinius raktus visų būsimų duomenų šifravimui.

Taip HTTPS užtikrina saugų ryšio kanalą, padarydamas naršymą internete saugesnį.