TLS Handshake : under hætten

Server — Serverkeyudveksling

denne meddelelse bærer de nøgleudvekslingsalgoritmeparametre, som klienten har brug for fra serveren for at udlede intermiate hemmeligheder, der vil blive brugt, når de konstruerer de endelige sessionsnøgler til symmetrisk kryptering af begge parter. Det er valgfrit, da nogle nøgleudvekslingsalgoritmer som RSA-nøgleudveksling ikke kræver disse parametre, fordi serverens certifikat i sig selv vil være nok til, at klienten kan konstruere og sikkert kommunikere pre-master-hemmeligheden med serveren.

f.eks. hvis metoden til nøgleudveksling valgt af serveren i et tidligere trin er Diffie–Hellman (DH), inkluderer serveren denne meddelelse efter certifikatet, som inkluderer de offentlige komponenter, der kræves for at generere masterhemmeligheden.

Server — certifikatanmodning

denne meddelelse sendes, hvis SSL-klientgodkendelse er aktiveret på serveren. Dette er normalt ikke påkrævet i de fleste af internetserverne, men for høje sikkerhedskrav kan serveren kræve klientens certifikat til godkendelse. Sammen med certifikatanmodningen sender sever de klienttyper, der er acceptable, og angiver også en liste over fremtrædende navne på certifikatmyndigheder, som serveren har tillid til. Denne liste inkluderer de CA-myndigheder, der er tilgængelige i serverens truststore.

Server — ServerHelloDone

endelig sender serveren ServerHelloDone-meddelelsen, der angiver til klienten, at serveren er færdig med at passere sikkerhedsparametre. Denne meddelelse afslutter serverens del af håndtryksforhandlingen. Denne meddelelse indeholder ingen andre oplysninger.

Client — Certificate

klienten svarer med et klientcertifikat, hvis serveren anmoder om klientgodkendelse med Certifikatanmodningsmeddelelse. Men før afsendelse certifikatet, vil kunden kontrollere udstederens DN af kundens certifikat kan findes i listen over fornemme navne på betroede CAs sendt af serveren. Hvis udstederens DN ikke blev fundet, sender klienten ikke sit certifikat til serveren. På serversiden, hvis klientcertifikatgodkendelse er obligatorisk, mislykkes TLS-håndtrykket her. Ellers sender klienten sit certifikat og eventuelle nødvendige mellemliggende certifikater, der kædes til den matchede DN, der er angivet i Certifikatanmodningsmeddelelsen.

Client — Clientkeyudveksling

Clientkeyudveksling-meddelelsen indeholder pre-master-hemmeligheden, som genereres af klienten. Dette udføres i henhold til cipher suite aggreed af begge parter i et tidligere trin. Både klienten og serveren vil bruge dette til at generere en masterhemmelighed, hvorfra de begge vil udlede de endelige kryptografiske nøgler, der kræves for at etablere den krypterede kanal. Klienten krypterer pre-master-hemmeligheden med serverens offentlige nøgle, således at hvis en aflytter skulle opfange denne bit data, vil han ikke være i stand til at dekryptere den, da han ikke har adgang til serverens private nøgle. Hovednøglen giver serveren de nødvendige data til at generere nøglerne til den symmetriske kryptering. Men hvis den cipher suite, der blev valgt til denne session, var DH, indeholder Klientenøgleudvekslingen klientens offentlige DH-parametre i stedet for en pre-master hemmelighed.

Client — CertificateVerify

denne meddelelse bruges af klienten til at bevise serveren, at den har den private nøgle, der svarer til dens public key-certifikat. Meddelelsen indeholder hashede oplysninger (hash af alle de meddelelser, der hidtil er udvekslet under håndtryksprocessen), som er digitalt underskrevet af klienten. Det er påkrævet, hvis serveren udstedte et certifikatanmodning til klienten, så klienten har sendt et certifikat som svar, som skal verificeres i serversiden.

Client — ChangeCipherSpec

ChangeCipherSpec-meddelelsen er kun en besked fra klienten for at informere serveren om, at alle data, som klienten sender herfra, krypteres ved hjælp af de aftalte sikkerhedsparametre. På dette tidspunkt har både klienten og serveren alle de komponenter, der er nødvendige for at generere masterhemmeligheden og derefter udlede kryptografiske sessionsnøgler.
begge sider kontrollerer, at håndtrykket er gået som planlagt, og at begge har genereret identiske nøgler ved at sende en endelig krypteret færdig besked, der angiver hinanden, at CipherSuite er aktiveret.

klient — færdig

først sender klienten en krypteret færdig besked til serveren. Denne meddelelse er en kryptografisk hash (message digest) af alle tidligere håndtryksmeddelelser kombineret efterfulgt af et specielt nummer, der identificerer klientrollen, master secret og padding. Dette krypteres med den nyligt genererede sessionsnøgle og sendes til serveren.

Server — ChangeCipherSpec

nu sender serveren en changecipherspec-meddelelse tilbage til klienten for at fortælle klienten, at alle data efter denne meddelelse vil blive krypteret.

Server — færdig

ChangeCipherSpec besked efterfølges af en krypteret færdig besked fra serveren til klienten. Dette er en kryptografisk hash genereret af serveren, af alle komponenter, der bruges under hanshake-processen sammen med et specielt nummer, der identificerer serverrolle.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.