Junior
Hogyan működik a HTTPS?
sobes.tech MI
Válasz az MI-től
A HTTPS (Hypertext Transfer Protocol Secure) egy olyan protokoll, amely biztosítja az adatok biztonságos átvitelét a kliens (például böngésző) és a szerver között. Az HTTP-n alapul, de titkosítást alkalmaz az átvitt információk védelme érdekében.
A HTTPS működése a TLS (Transport Layer Security) protokoll használatán alapul, amely korábban SSL (Secure Sockets Layer) néven volt ismert. A TLS/SSL három kulcsfontosságú biztonsági szempontot biztosít:
- Titkosítás: A kliens és a szerver közötti adatok titkosítva vannak, így azok olvashatatlanok a külső megfigyelők számára.
- Adatintegritás: Ellenőrzésre kerül, hogy az adatok nem változtak-e meg a továbbítás során.
- Hitelesítés: A szerver megerősíti saját hitelességét a kliens felé.
A HTTPS kapcsolat létesítése több lépésből áll, amelyeket "TLS/SSL Handshake"-nek neveznek:
- Client Hello: A kliens egy "Client Hello" üzenetet küld a szervernek, amely tartalmazza:
- A támogatott TLS verziót.
- A támogatott titkosítási algoritmusok listáját.
- Egy véletlenszerű számot.
- Server Hello: A szerver válaszol egy "Server Hello" üzenettel, amelyben kiválasztja a kliens által javasolt lehetőségek közül:
- A TLS verziót.
- Egy titkosítási algoritmust.
- Egy véletlenszerű számot.
- A szerver tanúsítványát.
- Certificate: A kliens megkapja és ellenőrzi a szerver tanúsítványának hitelességét:
- Ellenőrzi a tanúsítvány digitális aláírását a CA (hitelesítési hatóság) nyilvános kulcsával.
- Ellenőrzi a tanúsítvány érvényességét.
- Ellenőrzi, hogy a tanúsítványban szereplő domain név megegyezik-e a kért névvel.
- Client Key Exchange: A kliens generál egy pre-master secret-et, amit a szerver nyilvános kulcsával titkosít, majd elküldi a szervernek.
- Change Cipher Spec (Client): A kliens jelzi a szervernek, hogy készen áll a titkosított adatok cseréjére.
- Finished (Client): A kliens egy titkosított üzenetet küld, amely tartalmazza az összes korábbi Handshake üzenet hash-ét az integritás ellenőrzéséhez.
- Change Cipher Spec (Server): A szerver dekódolja a pre-master secret-et a saját privát kulcsával, és szimmetrikus kulcsokat generál a session titkosításához. Ezután jelzi a kliensnek, hogy készen áll a titkosított adatok cseréjére.
- Finished (Server): A szerver egy titkosított üzenetet küld, amely tartalmazza az összes korábbi Handshake üzenet hash-ét.
- Titkosított adatátvitel: A Handshake sikeres befejezése után a kliens és a szerver a generált szimmetrikus kulcsokat használva titkosítják az összes további adatot.
Így az HTTPS biztosít egy biztonságos kommunikációs csatornát, amely biztonságosabbá teszi a webes böngészést.