TLS kézfogási protokoll
A Transport Layer Security (TLS) kézfogási protokoll felelős a biztonságos munkamenetek létrehozásához vagy folytatásához szükséges hitelesítésért és kulcscseréért. Biztonságos munkamenetlétrehozásakor a kézfogási protokoll a következőket kezeli:
- Titkosítási csomag egyeztetése
- A kiszolgáló és opcionálisan az ügyfél hitelesítése
- Munkamenetkulcs-információk cseréje.
Titkosítási csomag egyeztetése
Az ügyfél és a kiszolgáló kapcsolatba lép, és kiválasztja azt a titkosítási csomagot, amelyet az üzenetváltás során használni fog.
Hitelesítés
A TLS-ben a kiszolgáló igazolja az ügyfél identitását. Előfordulhat, hogy az ügyfélnek igazolnia kell az identitását a kiszolgálón. A PKI, a nyilvános/privát kulcspárokhasználata a hitelesítés alapja. A hitelesítéshez használt pontos módszert a titkosítócsomag határozza meg.
Kulcscsere
Az ügyfél és a kiszolgáló véletlenszerű számokat cserél, és egy speciális számot, az úgynevezett Pre-Master Secret-et. Ezek a számok olyan további adatokkal vannak kombinálva, amelyek lehetővé teszik az ügyfél és a kiszolgáló számára, hogy létrehozzák a megosztott titkos kódjukat, az úgynevezett mestertitkot. A mesterkulcsot az ügyfél és a kiszolgáló használja az írási MAC-titkos kód létrehozásához, amely a kivonatolásihasznált munkamenetkulcs, valamint az írási kulcs, amely a titkosításhoz használt munkamenetkulcs.
Biztonságos munkamenet létrehozása TLS használatával
A TLS kézfogási protokoll a következő lépéseket foglalja magában:
- Az ügyfél "Ügyfél hello" üzenetet küld a kiszolgálónak az ügyfél véletlenszerű értékével és a támogatott titkosítási csomagokkal együtt.
- A kiszolgáló úgy válaszol, hogy "Kiszolgálói hello" üzenetet küld az ügyfélnek a kiszolgáló véletlenszerű értékével együtt.
- A kiszolgáló elküldi a tanúsítványát az ügyfélnek hitelesítés céljából, és tanúsítványt kérhet az ügyféltől. A kiszolgáló elküldi a "Kiszolgáló hello kész" üzenetet.
- Ha a kiszolgáló tanúsítványt kért az ügyféltől, az ügyfél elküldi.
- Az ügyfél létrehoz egy véletlenszerű elő-master titkos kulcsot, és titkosítja azt a kiszolgáló tanúsítványából származó nyilvános kulccsal, és elküldi a titkosított előtitkot a kiszolgálónak.
- A kiszolgáló megkapja a főkulcs előtti titkos kódot. A kiszolgáló és az ügyfél mindegyike létrehozza a főkulcsot, és munkamenetkulcsokat a főkulcs előtti titkos kód alapján.
- Az ügyfél "Titkosítási specifikáció módosítása" értesítést küld a kiszolgálónak, amely jelzi, hogy az ügyfél elkezdi használni az új munkamenetkulcsokatkivonatolási és üzenetek titkosításához. Az ügyfél "Ügyfél befejezve" üzenetet is küld.
- A kiszolgáló megkapja a "Titkosítási specifikáció módosítása" lehetőséget, és a rekordréteg biztonsági állapotát a szimmetrikus titkosításia munkamenetkulcsokkal. A kiszolgáló "Kiszolgáló befejezve" üzenetet küld az ügyfélnek.
- Az ügyfél és a kiszolgáló mostantól az általuk létrehozott biztonságos csatornán keresztül cserélheti az alkalmazásadatokat. Az ügyfélről a kiszolgálóra és a kiszolgálóról az ügyfélre küldött összes üzenet titkosítva van a munkamenetkulcs használatával.
Biztonságos munkamenet folytatása TLS használatával
Az ügyfél "Ügyfél hello" üzenetet küld a folytatni kívánt munkamenet munkamenet-azonosítójával.
A kiszolgáló egyező munkamenet-azonosítót keres a munkamenet-gyorsítótárban. Ha talál egyezést, és a kiszolgáló folytatni tudja a munkamenetet, a munkamenet-azonosítóval ellátott "Kiszolgálói hello" üzenetet küld.
Jegyzet
Ha nem található munkamenet-azonosító egyezés, a kiszolgáló létrehoz egy új munkamenet-azonosítót, és a TLS-ügyfél és a kiszolgáló teljes kézfogást hajt végre.
Az ügyfélnek és a kiszolgálónak meg kell cserélnie a "Titkosítási specifikáció módosítása" üzeneteket, és el kell küldenie az "Ügyfél befejezve" és a "Kiszolgáló befejeződött" üzeneteket.
Az ügyfél és a kiszolgáló mostantól folytathatja az alkalmazásadatok cseréjét a biztonságos csatornán keresztül.