Sobes.tech
Middle

Hogyan történik az üzenetek titkosítása a böngésző és a szerver között?

sobes.tech MI

Válasz az MI-től

A böngésző és a szerver közötti titkosítás a HTTPS protokoll használatával történik, amely az HTTP felett egy kiegészítő réteg, SSL/TLS protokollokat (Secure Sockets Layer / Transport Layer Security) alkalmazva.

A biztonságos kapcsolat felépítésének folyamata (Handshake):

  1. Client Hello: A böngésző egy üzenetet küld a szervernek, amely tartalmazza az általa támogatott SSL/TLS verziókat, a cipher suite-okat, a tömörítési algoritmusokat és egy véletlenszerű számot (a kliensből).
  2. Server Hello: A szerver kiválasztja a legjobb protokollverziót, a cipher suite-ot és a tömörítési algoritmust a javasoltak közül, valamint generál egy saját véletlenszerű számot (a szerverből), és ezeket az SSL/TLS tanúsítvánnyal együtt küldi a böngészőnek.
  3. Hitelesítés: A böngésző ellenőrzi a szerver tanúsítványát:
    • A gyökér CA (Root CA) megbízhatósága.
    • A tanúsítvány érvényességi ideje.
    • A tanúsítványban szereplő domain név megfelelősége a weboldal címével.
    • A visszavont tanúsítványok hiánya a listán (CRL vagy OCSP).
  4. Premaster Secret: A böngésző generál egy véletlenszerű számot (premaster secret), azt a szerver nyilvános kulcsával (a tanúsítványból) titkosítja, és elküldi a szervernek.
  5. A munkamenet kulcsának generálása: Mind a böngésző, mind a szerver a kliens (Client Random), a szerver (Server Random) és a premaster secret felhasználásával generál egy szimmetrikus munkamenet kulcsot.
  6. Change Cipher Spec: A böngésző egy üzenetet küld a szervernek, amelyben jelzi, hogy a generált munkamenet kulcs használatára vált.
  7. Finished: A böngésző elküldi a szervernek az összes korábbi kézfogási üzenet hash-ét, titkosítva a munkamenet kulccsal. Ez az üzenet ellenőrzi a kézfogás helyességét.
  8. Change Cipher Spec: A szerver egy üzenetet küld a böngészőnek, amelyben jelzi a titkosított kapcsolatba való átállást.
  9. Finished: A szerver elküldi a böngészőnek az összes korábbi kézfogási üzenet hash-ét, titkosítva a munkamenet kulccsal.

A sikeres kézfogás után az összes adatátvitel a böngésző és a szerver között a generált munkamenet kulcson alapuló szimmetrikus titkosítással történik. A szimmetrikus titkosítás sokkal hatékonyabb, mint az aszimmetrikus, így alkalmas nagy adatmennyiség titkosítására.

Használt algoritmusok (példák):

  • Aszimmetrikus titkosítás (a munkamenet kulcsának cseréjéhez): RSA, Diffie-Hellman (DH), Elliptic Curve Diffie-Hellman (ECDH).
  • Szimmetrikus titkosítás (az adatok titkosításához): AES, 3DES, ChaCha20.
  • Hash-elés (az üzenetek integritásának ellenőrzéséhez): SHA-256, SHA-384.