2010-01-05 17 views
5

Abbiamo una discussione impegnata (ma amichevole) tra colleghi sulla durata della sessione SSL alla base di una comunicazione https.Durata della sessione SSL in https

Quando si stabilisce una connessione https a un server utilizzando un normale browser, ssl sottostante crea una sessione (incluso un segreto condiviso) utilizzando la crittografia asimmetrica, il resto della comunicazione viene crittografato utilizzando la crittografia simmetrica (più veloce).

La domanda è: su una successiva richiesta https (fare clic su un collegamento) allo stesso server, la vecchia sessione ssl viene utilizzata nuovamente, evitando il sovraccarico della crittografia asimmetrica per stabilire una chiave di sessione? O è necessaria una nuova stretta di mano ssl crittografata asimmetrica per stabilire una sessione SSL?

O per dirlo in modo diverso: una sessione SSL rimane attiva tra le richieste https o termina con la fine della richiesta https?

Dato che siamo un gruppo di nitpicks qui, un riferimento ad una fonte autorevole sarebbe apprezzato.

risposta

1

Vedere la sezione 2.2 di http://www.ietf.org/rfc/rfc2818.txt e la sezione 8.1 di http://www.ietf.org/rfc/rfc2616.txt

In sostanza, la sessione SSL dovrebbe essere mantenuta mentre il client mantiene una connessione persistente.

Per ulteriori informazioni sulla realizzazione di connessioni persistenti nei browser più diffusi vedere http://en.wikipedia.org/wiki/HTTP_persistent_connection#Use_in_web_browsers

+0

è la sessione SSL utilizzata per la creazione di una nuova sessione HTTP? –

3

Se il browser supporta sessione di ripresa e il server ha nella cache della sessione, allora si può essere in grado di continuare una sessione tra le connessioni, supporti gnutls questo e si può vedere una demo qui:

https://test.gnutls.org:5556/

+0

Quel server non è più disponibile. –

8

Provato questo fuori con Chrome:

passare alla https://www.americanexpress.com. netstat mostra:

$ netstat -n -p tcp|grep 184.86.149.155 
tcp4  0  0 10.177.78.58.50311  184.86.149.155.443  ESTABLISHED 
tcp4  0  0 10.177.78.58.50310  184.86.149.155.443  ESTABLISHED 
tcp4  0  0 10.177.78.58.50309  184.86.149.155.443  ESTABLISHED 

Su navigazione verso altri link sul sito web, spettacoli netstat:

$ netstat -n -p tcp|grep 184.86.149.155 
tcp4  0  0 10.177.78.58.50311  184.86.149.155.443  ESTABLISHED 
tcp4  0  0 10.177.78.58.50310  184.86.149.155.443  ESTABLISHED 
tcp4  0  0 10.177.78.58.50309  184.86.149.155.443  ESTABLISHED 

La sessione è stata tenuta in vita. Quando ho chiuso la scheda del browser, e ri-aperto la scheda, un altro collegamento è stata aperta:

$ netstat -n -p tcp|grep 184.86.149.155 
tcp4  0  0 10.177.78.58.50398  184.86.149.155.443  ESTABLISHED 
tcp4  0  0 10.177.78.58.50311  184.86.149.155.443  ESTABLISHED 
tcp4  0  0 10.177.78.58.50310  184.86.149.155.443  ESTABLISHED 
tcp4  0  0 10.177.78.58.50309  184.86.149.155.443  ESTABLISHED 

sembrerebbe che i browser moderni utilizzano gli stessi timeout keep-alive come http. Questi timeout possono essere visualizzati qui:

http://gabenell.blogspot.com/2010/11/connection-keep-alive-timeouts-for.html

Problemi correlati