Qual è il rischio per la sicurezza di abilitare la connessione persistente (HTTP Keep-Alive)?

5

A mio parere, l'intestazione HTTP Keep-Alive impone se il prossimo pacchetto di comunicazioni verrà inviato tramite la stessa connessione o no, cioè se l'app Web viene eseguita su SSL e viene abilitata la funzione Keep-alive per, ad esempio 60 secondi, quindi:

- tutte le comunicazioni client-server avverranno sulla stessa connessione
-una comunicazione client-server dopo 60 secondi di inattività riavvierà l'handshake SSL e quindi procederà con richieste e ripetizioni.

Inoltre, in che modo è collegato al timeout di inattività della sessione di un utente?

    
posta Hrishabh Sobti 14.01.2017 - 21:42
fonte

2 risposte

1

whether the next packet of communication will be sent over the same connection or not

Quasi ma non esattamente. Non c'è "pacchetto" a questo livello di comunicazione, solo un flusso di dati. HTTP-Keep-alive consentirà più richieste HTTP sulla stessa connessione TCP / TLS invece di una sola non chiudendo la connessione immediatamente dopo la risposta HTTP ma mantenendo aperta per ulteriori richieste.

HTTP Keep-Alive header dictates

No, non impone nulla. Aggiungendo Connection: keep-alive alla query (o implicitamente utilizzando HTTP / 1.1 invece di HTTP / 1.0) il client chiede cortesemente al server di non chiudere la connessione TCP dopo che la risposta è stata eseguita. Il server potrebbe essere d'accordo o no.

any client-server communication will take place over the same connection

Non necessariamente. Potrebbero esserci più connessioni TCP / TLS aperte in parallelo tra browser e server.

any client-server communication after 60 seconds of inactivity will reinitiate the SSL handshake and then proceed with requests and repsonses.

Client e server possono decidere di chiudere la connessione inattiva (ovvero nessuna risposta in sospeso) in qualsiasi momento ed entrambi hanno le loro impostazioni e timer indipendenti. Se la connessione viene chiusa e il client desidera effettuare una nuova richiesta, è necessario creare una nuova connessione TCP e per HTTPS è necessario riprendere una sessione SSL esistente in cima a questa connessione TCP o eseguire un handshake TLS completo per una nuova connessione TCP. Sessione SSL.

Also, how is this connected to a user's session inactivity timeout?

Questo è completamente non correlato. Le sessioni utente sono gestite a livello di applicazione. HTTP keep alive è gestito a livello di protocollo HTTP. È possibile avere più sessioni utente all'interno di una singola connessione TCP (con più richieste HTTP) e si può anche tenere una sessione utente su più connessioni TCP (entrambe una dopo l'altra e anche connessioni parallele).

What is the security risk of enabling persistent connection (HTTP Keep-Alive)?

Non ce n'è.

    
risposta data 14.01.2017 - 22:24
fonte
-1

L'unico motivo per cui posso pensare che sia cattivo è che viene utilizzato negli attacchi DDoS.

Slowloris is a type of denial of service attack tool invented by Robert "RSnake" Hansen which allows a single machine to take down another machine's web server with minimal bandwidth and side effects on unrelated services and ports.

Slowloris tries to keep many connections to the target web server open and hold them open as long as possible. It accomplishes this by opening connections to the target web server and sending a partial request. Periodically, it will send subsequent HTTP headers, adding to—but never completing—the request. Affected servers will keep these connections open, filling their maximum concurrent connection pool, eventually denying additional connection attempts from clients.

Fonte: link

Simile al precedente attacco DDoS, un utente malintenzionato potrebbe aprire il maggior numero possibile di connessioni, a seconda della dimensione della botnet può essere un numero molto grande e potrebbe bloccare le connessioni di utenti reali.

    
risposta data 14.01.2017 - 23:37
fonte

Leggi altre domande sui tag