TLS kézfogás: a motorháztető alatt

Server-ServerKeyExchange

Ez az üzenet hordozza a kulcscsere algoritmus paramétereit, amelyekre az ügyfélnek szüksége van a kiszolgálótól annak érdekében, hogy levezethesse az intermiate titkokat, amelyeket a végső munkamenet kulcsok összeállításakor felhasználnak a szimmetrikus titkosításhoz mindkét fél által. Ez opcionális, mivel egyes KULCSCSERE-algoritmusok, mint például az RSA KULCSCSERE, nem igénylik ezeket a paramétereket, mert maga a szerver tanúsítványa elegendő lesz ahhoz, hogy az ügyfél elkészítse és biztonságosan kommunikálja a mester előtti titkot a szerverrel.

pl. ha a kiszolgáló által az előző lépésben választott KULCSCSERE–módszer Diffie-Hellman (DH), akkor a kiszolgáló ezt az üzenetet tartalmazza a tanúsítvány után, amely tartalmazza a fő titok létrehozásához szükséges nyilvános összetevőket.

Server-CertificateRequest

Ez az üzenet akkor kerül elküldésre, ha az SSL kliens hitelesítés engedélyezve van a kiszolgálón. Ez általában nem szükséges a legtöbb webszervernél, de magas biztonsági követelmények esetén a szerver megkövetelheti az ügyfél tanúsítványát a hitelesítéshez. A tanúsítványkéréssel együtt a sever elküldi az elfogadható ügyféltípusokat, valamint jelzi a kiszolgáló által megbízható tanúsító hatóságok megkülönböztetett neveinek listáját. Ez a lista tartalmazza a kiszolgáló truststore-ban elérhető CA-hatóságokat.

Server-Serverhellodon

végül a szerver elküldi a Serverhellodon üzenetet, jelezve az ügyfélnek, hogy a szerver befejezte a biztonsági paraméterek átadását. Ez az üzenet befejezi a szerver részét a kézfogás tárgyalásnak. Ez az üzenet nem tartalmaz más információt.

ügyféltanúsítvány

az ügyfél ügyféltanúsítvánnyal válaszol, ha a kiszolgáló ügyfélhitelesítést kér Tanúsítványkérési üzenettel. A tanúsítvány elküldése előtt azonban az ügyfél ellenőrzi, hogy az ügyfél tanúsítványának kibocsátója megtalálható-e a kiszolgáló által küldött megbízható CAs-K megkülönböztetett neveinek listájában. Ha a kibocsátó DN-je nem található, az ügyfél nem küldi el a tanúsítványt a szervernek. A szerver oldalon, ha az ügyféltanúsítvány hitelesítése kötelező, a TLS kézfogás itt sikertelen lesz. Ellenkező esetben az ügyfél elküldi a tanúsítványt és a szükséges közbenső tanúsítványokat, amelyek láncolódnak a Tanúsítványkérési üzenetben felsorolt egyeztetett DN-hez.

Client-ClientKeyExchange

a ClientKeyExchange üzenet tartalmazza a mester előtti titkot, amelyet az ügyfél generál. Ezt a cipher suite szerint hajtják végre, amelyet mindkét fél az előző lépésben aggred. Mind az ügyfél, mind a szerver ezt használja egy mestertitok létrehozására, amelyből mindketten levezetik a kódolt csatorna létrehozásához szükséges végső kriptográfiai kulcsokat. Az ügyfél titkosítja a mester előtti titkot a szerver nyilvános kulcsával úgy, hogy ha egy lehallgató elfogja ezt a kis adatot, akkor nem tudja visszafejteni, mivel nincs hozzáférése a szerver privát kulcsához. A főkulcs biztosítja a kiszolgáló számára a szimmetrikus titkosításhoz szükséges kulcsok létrehozásához szükséges adatokat. Ha azonban az erre a munkamenetre választott rejtjelkészlet DH volt, akkor a ClientKeyExchange az ügyfél nyilvános DH paramétereit tartalmazza a mester előtti titok helyett.

Client-CertificateVerify

ezt az üzenetet az ügyfél arra használja, hogy bizonyítsa a kiszolgálónak, hogy rendelkezik a nyilvános kulcs tanúsítványának megfelelő privát kulccsal. Az üzenet kivonatolt információkat tartalmaz (a kézfogás során eddig kicserélt összes üzenet kivonata), amelyet az ügyfél digitálisan aláír. Ez akkor szükséges, ha a kiszolgáló kiadott egy CertificateRequest az ügyfél, hogy az ügyfél küldött egy tanúsítványt válaszul, amelyet ellenőrizni kell a szerver oldalon.

Client-ChangeCipherSpec

a ChangeCipherSpec üzenet csak egy üzenet az ügyféltől, amely tájékoztatja a szervert arról, hogy az ügyfél által innen küldött összes adat titkosítva lesz az elfogadott biztonsági paraméterekkel. Ezen a ponton mind az ügyfél, mind a szerver rendelkezik az összes összetevővel, amely szükséges a fő titok létrehozásához, majd a kriptográfiai munkamenet kulcsok levezetéséhez.
mindkét fél ellenőrzi, hogy a kézfogás a tervek szerint haladt-e, és hogy mindkettő azonos kulcsokat generált-e egy végső titkosított Kész üzenet küldésével, amely jelzi egymásnak, hogy a CipherSuite aktiválva van.

kliens-Kész

először az ügyfél titkosított kész üzenetet küld a kiszolgálónak. Ez az üzenet egy kriptográfiai hash (message digest), az összes korábbi kézfogási üzenet együttvéve, amelyet egy speciális szám követ, amely azonosítja az ügyfél szerepét, a mester titkot és a kitöltést. Ezt az újonnan létrehozott munkamenet kulcs titkosítja, és elküldi a kiszolgálónak.

Server-ChangeCipherSpec

most a szerver ChangeCipherSpec üzenetet küld vissza az ügyfélnek, hogy elmondja az ügyfélnek, hogy az üzenet után minden adat titkosítva lesz.

szerver-kész

a ChangeCipherSpec üzenetet egy titkosított Kész üzenet követi a szerverről az ügyfélnek. Ez egy szerver által generált kriptográfiai hash, a hanshake folyamat során használt összes összetevőből, valamint egy speciális számazonosító szerver szerepből.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.