Sobes.tech
Junior

Milyen kulcsokat továbbít a szerver a kliensnek?

sobes.tech MI

Válasz az MI-től

A fejléc nem szükséges a szabályok szerint.

A szerverről a kliensre különböző kulcsok továbbíthatók a kontextustól és a használt protokolltól függően. A fő típusú kulcsok, amelyeket továbbíthatnak vagy egyeztethetnek:

  1. Nyilvános kulcsok: Aszimmetrikus kriptográfiában a szerver átadhatja nyilvános kulcsát a kliensnek. Ez a következőkre szolgál:

    • Adatok titkosítása a kliens által, amit csak a szerver (a megfelelő privát kulccsal) tud dekódolni.
    • Digitális aláírás ellenőrzése, amit a szerver a privát kulcsával hozott létre.
  2. Session ID-k / Session Tokenek: Ezek nem kriptográfiai kulcsok a szó szoros értelmében, de szerepet játszanak a felhasználói session azonosításában. A szerver egy egyedi azonosítót generál a kliens hitelesítése után, és elküldi azt a kliensnek (gyakran cookie formájában). A kliens ezt az ID-t tartalmazza a későbbi kérésekben a session állapotának fenntartásához.

  3. Szimmetrikus titkosítási kulcsok: Bár a szimmetrikus kulcsokat ritkán továbbítják közvetlenül nyílt formában, gyakran generálódnak vagy egyeztetnek a biztonságos kapcsolat felépítése során (például TLS/SSL protokollokkal). A szerver és a kliens a Diffie-Hellman algoritmust vagy annak változatait használhatja a közös szimmetrikus kulcs biztonságos egyeztetéséhez anélkül, hogy közvetlenül továbbítanák. Ez a szimmetrikus kulcs ezután a teljes forgalom titkosítására szolgál a session során.

  4. Hitelesítési és jogosultsági tokenek (pl. JWT): A szerver kiadhat a kliensnek egy tokent (pl. JSON Web Token) sikeres hitelesítés után. Ez a token információkat tartalmaz a felhasználóról és jogairól. A kliens minden kérésnél elküldi ezt a tokent a szervernek, hogy igazolja személyazonosságát és jogait. Bár a token nem kriptográfiai kulcs, aláírt vagy titkosított a szerver által ismert kulcsokkal.

  5. API kulcsok / Ügyfél titkos kulcsok: Bizonyos architektúrákban a szerver statikus API kulcsot vagy titkos kulcsot adhat az ügyfélnek (pl. mobilalkalmazás vagy más szolgáltatás), amelyet a kérés hitelesítéséhez használnak. Ez azonban kevésbé biztonságos az ügyfélalkalmazások számára, mivel a kulcs kinyerhető.

  6. Tanúsítványok: A szerver az SSL/TLS tanúsítványát átadja a kliensnek a biztonságos kapcsolat kezdetén. A tanúsítvány tartalmazza a szerver nyilvános kulcsát, és megbízható tanúsítványkiadó által van aláírva. A kliens a tanúsítványt használja a szerver hitelességének ellenőrzésére és a nyilvános kulcsának megszerzésére.

Példa a nyilvános kulcs használatára a HTTPS/TLS kontextusában:

  1. A kliens elindítja a TLS kézfogást.
  2. A szerver elküldi a kliensnek a tanúsítványát, amely tartalmazza a szerver nyilvános kulcsát.
  3. A kliens ellenőrzi a tanúsítványt (megbízhatósági lánc, érvényesség stb.), és kivonja a szerver nyilvános kulcsát.
  4. A kliens ideiglenes szimmetrikus kulcsot generál a session számára.
  5. A kliens ezt a szimmetrikus kulcsot a szerver nyilvános kulcsát használva titkosítja.
  6. A kliens elküldi a titkosított szimmetrikus kulcsot a szervernek.
  7. A szerver a saját privát kulcsával dekódolja a szimmetrikus kulcsot.
  8. A további adatcsere a kliens és a szerver között titkosítva és dekódolva történik a megállapodott szimmetrikus kulccsal.

Fő pontok:

  • A titkos vagy privát kulcsok közvetlen átadása a szerverről a kliensre rendkívül nem ajánlott biztonsági okokból.
  • Leggyakrabban a szerver nyilvános kulcsokat, session azonosítókat, tokeneket vagy szimmetrikus kulcsok egyeztetését végzi.
  • A konkrét kulcstípusok használata a szcenáriótól függ (autentikáció, titkosítás, session fenntartás stb.).