La connessione WSS WebSocket Secure di lunga durata è davvero sicura?

12

Sono ben lungi dall'essere un esperto di sicurezza, quindi ti preghiamo di perdonare qualsiasi approssimazione in questa domanda.

Come ho capito dalla questa (molto buona) risposta , una suite di connessioni HTTPS può essere riassunta come tale:

  1. Esiste una negoziazione tra il browser e il server che utilizza una costosa crittografia asimmetrica che si traduce in un master secret condiviso che durerà per il tempo di una "sessione", tempo deciso dal server.
  2. Ogni connessione successiva viene quindi crittografata con un algoritmo di crittografia simmetrico veloce la cui chiave viene dedotta dal master secret. Pertanto ogni connessione è crittografata con una chiave diversa, quindi qualsiasi "sniffer" non dispone di dati sufficienti per trovare la chiave di connessione specifica o il master secret.

Ora, sto lavorando a un'applicazione che utilizzerà socket web che potrebbero rimanere connessi per lunghi periodi di tempo. Per molto, intendo parecchi giorni. Le informazioni che transiteranno attraverso questa connessione web socket saranno altamente confidenziali.

Quindi, sapendo che un WebSocket non dovrebbe mai disconnettersi, c'è qualcosa nelle specifiche WSS per rinnovare periodicamente la chiave simmetrica?

A quanto ho capito, con un algoritmo simmetrico, più dati vengono crittografati con la stessa chiave, più debole diventa la crittografia.

HTTPS cambia questa chiave (ne deduce una nuova dal segreto principale) ad ogni nuova connessione, ma che dire di una connessione WebSocket in cui esiste una sola connessione per un lungo periodo di tempo?

    
posta Salomon BRYS 11.03.2016 - 15:59
fonte

1 risposta

4

A meno che tu non stia inviando l'ordine degli exabyte attraverso quella connessione, AES non dovrebbe degradare la sicurezza in quel periodo di tempo. La durata della quale il WebSocket è aperto non ne compromette la sicurezza, quindi solo il flusso di dati attraverso di esso può eventualmente (dopo un lotto di utilizzo) erodere la sicurezza fornita da AES. Tieni presente che l'intera Internet genera circa 1.000 exabyte al giorno , quindi a meno che tu non stia indirizzando una percentuale molto significativa di tutto il traffico Internet attraverso quel WebSocket di cui non hai bisogno per rinnovare le chiavi durante l'utilizzo di WebSocket.

Se vuoi ancora rinnovare le chiavi, il client o il server può, in qualsiasi momento durante la connessione, ri-emettere una richiesta di handshake che ri-deriva le chiavi master in base a due nuovi valori casuali. RFC5246

    
risposta data 11.03.2016 - 16:58
fonte

Leggi altre domande sui tag