0ms
TLSrunsoverareliabletransport(TCP),whichmeansthatwemustfirstcompletetheTCPthree-wayhandshake,whichtakesonefullroundtrip.
56ms
WiththeTCPconnectioninplace,theclientsendsanumberofspecificationsinplaintext,suchastheversionoftheTLSprotocolitisrunning,thelistofsupportedciphersuites,andotherTLSoptionsitmaywanttouse.
84ms
TheserverpickstheTLSprotocolversionforfurthercommunication,decidesonaciphersuitefromthelistprovidedbytheclient,attachesitscertificate,andsendstheresponsebacktotheclient.Optionally,theservercanalsosendarequestfortheclient’scertificateandparametersforotherTLSextensions.
112ms
Assumingbothsidesareabletonegotiateacommonversionandcipher,andtheclientishappywiththecertificateprovidedbytheserver,theclientinitiateseithertheRSAortheDiffie-Hellmankeyexchange,whichisusedtoestablishthesymmetrickeyfortheensuingsession.
140ms
Theserverprocessesthekeyexchangeparameterssentbytheclient,checksmessageintegritybyverifyingtheMAC,andreturnsanencryptedFinishedmessagebacktotheclient.
168ms
Theclientdecryptsthemessagewiththenegotiatedsymmetrickey,verifiestheMAC,andifalliswell,thenthetunnelisestablishedandapplicationdatacannowbesent.
riferimento
In teoria dovrebbe essere possibile ottenere la chiave di sessione sul lato mittente o destinatario della comunicazione ... tuttavia questa chiave (dovrebbe) durerà solo la durata della sessione (se non è più breve a causa della rinegoziazione di una chiave) . La maggior parte delle applicazioni protegge la memorizzazione di questa chiave di sessione in modo che non possa essere facilmente ottenuta.
Va notato che la chiave di sessione potrebbe anche essere usata per un cifrario diverso da AES ... vedi qui