In questa fase i due host devono concordare quali algoritmi verranno utilizzati nelle fasi successive.
- utilizzo di un agoritmo di cifratura asimmetrico per effettuare uno scambio sicuro della chiave che verrà usata per il trasferimento dei dati che avverà con cifratura simmetrica che è più veloce e sicura.
- utilizzo di un algoritmo per l’autenticazione degli host. Molto spesso l’autenticazione TLS è unilaterale: è il solo server ad autenticarsi presso il client (il client, cioè, conosce l’identità del server, ma non viceversa cioè il client rimane anonimo e non autenticato sul server). Il browser valida il certificato del server controllando che la firma digitale dei certificati del server sia valida e riconosciuta da una certificate authority conosciuta utilizzando una cifratura a chiave pubblica. Nel caso di una connessione effettuata da un browser per mezzo del protocollo HTTPS, dopo questa autenticazione il browser indica una connessione sicura mostrando una specifica icona, di solito un lucchetto, di fianco all’URL. Questa fase è molto importante, basti pensare al caso in cui ci si voglia connettere al proprio servizio di home banking: è importante che il client sia sicuro di essersi connesso al giusto server e non ad un server fittizio creato per truffare i cilienti della banca.
All’interno di una sessione tipicamente vengono utilizzati i seguenti protocolli:
Puoi approfondire l’argomento alla pagina di wikipedia dedicata a TLS.