L'ID sessione SSL è transitorio; designa i "parametri della sessione SSL" che il client ricorda su un precedente handshake SSL, in particolare il valore segreto simmetrico negoziato ottenuto dalla crittografia asimmetrica di quella stretta di mano. È tenuto solo nella RAM; se l'utente si riavvia, o semplicemente chiude tutte le finestre del suo browser, dimentica l'ID della sessione. Se utilizzi l'ID di sessione SSL come parte del meccanismo di autenticazione, gli utenti che chiudono e riapre il browser dovranno autenticarsi nuovamente con la loro password.
Se è quello che vuoi, allora, con tutti i mezzi, usa l'ID di sessione SSL. Conosco le banche che lo fanno per la loro gestione dei conti bancari basata sul Web.
Si noti che se il server si riavvia, anche l'ID di sessione SSL diventerà obsoleto: anche se è stato memorizzato nel database, il server riavviato ha dimenticato la chiave di sessione effettiva (anche il server, lo memorizza solo nella RAM) e quindi negozierà una nuova sessione con una stretta di mano completa alla prossima connessione dal client. Inoltre, la memoria del server delle sessioni precedenti è configurabile ma spesso limitata nel tempo (con Apache, vedere la documentazione , direttive SSLSessionCache
e SSLSessionCacheTimeout
). Badate anche che la memoria del client sia basata sul processo : su un PC, la chiusura di tutte le finestre tende a terminare il processo del browser; su smartphone e tablet, a cui piace tenere le cose in esecuzione per un numero eccessivo di tempo, uccidere realmente il processo è un processo più complicato (in genere, il browser "si chiude" solo quando l'utente esaurisce la batteria).
D'altra parte, per i siti meno critici (dal punto di vista dell'utente), gli utenti tendono a preferirlo quando autenticano una volta e vengono "ricordati" anche attraverso i riavvii o persino il browser vicino. Affinché una simile funzionalità funzioni, non c'è modo di evitarlo: deve esserci un segreto specifico dell'utente memorizzato sul lato client. I cookie non sono peggiori di altri meccanismi per questo, e sono l'unico che è prontamente disponibile e compatibile con tutti i browser.
Riepilogo: utilizza l'ID di sessione SSL se desideri sessioni molto transitorie, che scompaiono automaticamente quando il browser viene chiuso (il processo del browser, non solo la finestra pertinente) . Utilizza i cookie per l'autenticazione di lunga durata. Non sono intercambiabili; non operano sulla stessa scala temporale.