L'handshake TLS
Durante un Handshake TLS, viene utilizzato un algoritmo chiave pubblica per scambiare in modo sicuro le firme digitali e le chiavi di codifica tra un client e un server. Queste informazioni di identità e chiave vengono utilizzate per stabilire una connessione sicura per la sessione tra il client e il server. Una volta stabilita la sessione sicura, la trasmissione dei dati tra il client e il server viene crittografata utilizzando un algoritmo simmetrico, ad esempio AES.
Il client e il server eseguono le seguenti operazioni durante l'handshake TLS :
- Il client richiede una connessione TLS ed elenca la serie predefinita di suite di cifratura supportate.Nota: mentre è possibile modificare la serie di suite di cifratura utilizzata dal server Db2® , il client utilizza sempre la serie predefinita.

- Il server risponde con una suite di cifratura selezionata.
- Il server invia il certificato digitale al client.

- Il client verifica la validità del certificato del server ('Questo certificato è stato firmato da qualcuno di cui mi è stato detto di fidarmi? ') confrontando un hash decodificato del certificato con uno simile nel relativo keystore.

- Se il certificato del server è considerato attendibile dal client, il client utilizza la chiave pubblica del server per codificare un numero casuale e inviarlo al server. Il server utilizza quindi la chiave privata per decodificare il numero, che diventa la chiave di sessione.Nota: i valori assegnati al parametro dbm cfg SSL_CIPHERSPECS influenzano la dimensione della chiave di sessione.

- Il client e il server si scambiano informazioni in modo sicuro utilizzando la chiave di sessione negoziata.

Attenzione: il sistema di database Db2 supporta l'autenticazione (facoltativa) del client durante l'handshake TLS solo quando ci si connette a un server Db2 for z/OS® .