Le chiavi di sessione TLS sono memorizzate nella cache di un browser?

3

Ad esempio, quando si effettua l'autenticazione su un servizio protetto TLS e quindi si chiude la scheda, a volte è possibile riconnettersi al servizio senza eseguire nuovamente l'autenticazione.

Per preservare la perfetta segretezza in avanti, la chiave dovrebbe essere cancellata al termine della sessione. La sessione si "interrompe" solo quando il browser si chiude, oppure c'è una scadenza "Time To Live", come le chiavi di sessione non utilizzate?

    
posta Gary Lasereyes 27.07.2015 - 19:55
fonte

1 risposta

4

Are TLS session keys cached in a browser?

Sì, a volte, ma non come stai descrivendo.

La risposta in linea più semplice per te è "Sì, le sessioni vengono memorizzate nella cache fino alla chiusura del browser." Questo non è assolutamente vero o vero in tutti i casi, ma è una convinzione ragionevolmente sicura per te basare le tue azioni su

when authenticating to a TLS protected service, and then closing the tab, you can sometimes reconnect to the service afterwards without re-authenticating.

Quello che stai descrivendo qui è che ti sei autenticato a una web application con cui hai navigato usando una connessione TLS. A meno che non ti sia stato richiesto di fornire un certificato client per la prima volta, l'autenticazione non è per TLS, è per l'app.

Probabilmente quell'app sta usando i cookie, e quei cookie significano che quando torni in un'altra scheda, ti riconosce e non devi autenticarti di nuovo. A seconda della configurazione, questo stato autenticato potrebbe persistere anche dopo la chiusura e il riavvio del browser, la sospensione del sistema e la modifica dell'indirizzo IP! Ho avuto sessioni web autenticate che funzionano su entrambi i lati di un giorno di viaggio aereo.

(Anche se ti è stato richiesto un certificato client ... i browser ricorderanno il tuo certificato selezionato e lo ripresenteranno come necessario fino a quando non chiudi il browser. La chiusura della scheda non influirà su questo.)

In preservation of perfect forward secrecy, the key should be deleted after the session terminates. Does the session only "terminate" when the browser closes, or is there a "Time To Live"-like expiration on session keys not in use?

Realisticamente, l'accelerazione fornita da ripresa della sessione supera il potenziale negativo del riutilizzo delle chiavi: tenere presente che la maggior parte delle transazioni HTTP sono sorprendentemente piccole, mentre PFS diventa un problema pratico più grande con protocolli come IPSec che andranno avanti per giorni / settimane / mesi e scambiano grandi quantità di dati. p>

Quindi, in termini pratici, i browser ricorderanno gli ID di sessione TLS recenti e li useranno per provare e abbinare il processo di negoziazione TLS. La chiusura di una scheda non li farà dimenticare (anche se la chiusura del browser probabilmente lo farà). Sono usati in modo invisibile; l'uso di uno riduce 4-8 pacchetti di back-and-forth quando si imposta TLS e quindi accelera la connessione.

Ma - ancora - questo non ha nulla a che fare con l'autenticazione che potresti vedere, e si svolge in silenzio, dietro le quinte.

Il "time-to-live" è determinato sia dal client (che deve ricordare l'ID della sessione) che dal server (che deve anche ricordare l'ID della sessione). C'è un buon articolo qui che parla di come modificare la cache per vari server per limitare la quantità di sessioni passate che sarebbero state compromesse se il server fosse stato compromesso.

E questo interessante la risposta suggerisce che Chrome e Opera memorizzano le chiavi di sessione fino al riavvio del browser (o in altre situazioni limitate).

    
risposta data 27.07.2015 - 20:41
fonte

Leggi altre domande sui tag