TLS

uml diagram

TCP Handshake

001: Client -> Server: TCP SYN
Klienten sender en SYN-pakke for at initiere en TCP-forbindelse til serveren.

002: Server <- Client: TCP SYN + ACK
Serveren svarer med både en SYN (for at anerkende forbindelsen) og en ACK (for at bekræfte modtagelsen af klientens SYN-pakke).

003: Client -> Server: TCP ACK
Klienten sender en ACK-pakke tilbage for at fuldende den trevejs TCP-handshake.

Forbindelsen er nu etableret.

Certificate Check

004: Client -> Server: Client Hello
Klienten sender en Client Hello for at starte SSL/TLS handshake, inklusive oplysninger om understøttede krypteringsprotokoller.

005: Server <- Client: Server Hello
Serveren svarer med et Server Hello, som vælger en krypteringsmetode baseret på klientens muligheder.

006: Server <- Client: Certificate
Serveren sender sit SSL/TLS-certifikat til klienten, som indeholder serverens offentlige nøgle og identitetsoplysninger.

007: Server <- Client: Server Hello Done
Serveren indikerer, at den er færdig med sin del af handshake og venter på klientens respons.

Key Exchange

008: Client -> Server: Client Key Exchange
Klienten sender en hemmelig nøgle (session key) til serveren krypteret med serverens offentlige nøgle.

009: Client -> Server: Change Cipher Spec
Klienten indikerer, at den vil begynde at bruge den nye krypteringsalgoritme og session key til al efterfølgende kommunikation.

010: Client -> Server: Finished
Klienten sender en Finished-meddelelse som en verifikation af, at den har gennemført handshake korrekt.

011: Server <- Client: Change Cipher Spec
Serveren skifter også til den nye krypteringsalgoritme og session key.

012: Server <- Client: Finished
Serveren bekræfter, at den har modtaget klientens handshake-meddelelser og at handshake er fuldført.

Data Transmission

013: Client -> Server: Encrypted Data
Klienten sender krypterede data til serveren ved hjælp af session key. Begge parter har nu etableret en sikker kommunikationskanal.

014: Server <- Client: Encrypted Data
Serveren sender krypterede data tilbage til klienten.