Devo tunnelare più connessioni TCP attraverso un tunnel TLS / SSL o usare TLS / SSL per ogni connessione?

8

Sto sviluppando un'applicazione che funziona su PC Windows. L'applicazione è in grado di connettersi ad alcuni tipi di dispositivi all'interno di una LAN. Può creare più connessioni TCP al dispositivo a cui è connesso. Voglio proteggere ogni singola connessione TCP con TLS / SSL.

La soluzione ingenua per questo sarebbe utilizzare TLS / SSL per ogni connessione TCP tra la mia applicazione e il dispositivo sull'altro lato. Tuttavia non sono sicuro di quanto sovraccarico questo produrrà dal momento che ogni connessione TCP dovrà passare attraverso l'intero processo di negoziazione / autenticazione TLS / SSL. Non vedo alcun bisogno di ciò dal momento che l'applicazione / PC ha solo bisogno di negoziare / autenticare. Tutte le connessioni TCP utilizzeranno quindi la stessa crittografia. C'è anche un server FTP sul dispositivo che voglio usare (sto pensando a FTP su SSL).

È possibile creare una singola connessione TLS / SSL dal mio PC al dispositivo e poi inoltrare tutti i miei dati TCP / FTP attraverso questo tunnel? È questa la soluzione giusta o sarebbe meglio creare una singola connessione TLS / SSL per ogni connessione che intendo realizzare tra la mia applicazione e il dispositivo?

    
posta WMEZ 14.11.2013 - 08:54
fonte

4 risposte

1

Sembra che tu stia cercando una VPN ma vuoi che TLS fornisca la sicurezza (invece di IPSec). Se la compatibilità della piattaforma non è la tua preoccupazione, Microsoft ha sviluppato un Secure Socket Tunneling Protocol che utilizza tale schema SSL-VPN.
Se il "qualche tipo di dispositivo" di cui parli è basato su Windows, allora potresti non aver nemmeno bisogno di software aggiuntivo per implementare SSTP.

Non ho più conoscenze su SSTP, ma il link di Wikipedia e le risorse MSDN collegate in questo articolo di Wikipedia dovrebbero fornire tutte le informazioni necessarie.

Un'alternativa sarebbe OpenVPN che può anche utilizzare TLS come protocollo di connessione sottostante, supportando i certificati lato server e lato client per l'autenticazione.

    
risposta data 27.04.2016 - 15:01
fonte
0

Dipende dal tipo di traffico che hai o, in altre parole, dalle esigenze della tua applicazione.

La latenza delle nuove comunicazioni è un punto critico? Quindi si consiglia di mantenere aperta la connessione TCP e di eseguire il tunneling di tutto attraverso la stessa sessione SSL. O forse hai bisogno di trasferire molti dati e può essere parallelizzato? Quindi, scegli definitivamente più connessioni TCP con il proprio layer SSL in cima.

    
risposta data 18.12.2015 - 14:24
fonte
0

È necessario utilizzare più connessioni TLS. Tuttavia, è necessario assicurarsi che l'applicazione apra la connessione multipla utilizzando l'handshake abbreviato TLS e la ripresa della sessione possibilmente con ticket di sessione.

L'utilizzo di una stretta di mano abbreviata e la ripresa della sessione consentono all'applicazione di riutilizzare i parametri di crittografia e la chiave master da un precedente handshake completo, riducendo in modo massivo il costo di stabilire una nuova connessione TLS. Un handshake TLS completo richiede più round trip per negoziare la versione TLS, i cifrari e la chiave master e comporta costose operazioni di certificati RSA per autenticare la catena di certificati; rispetto a una stretta di mano abbreviata che è solo un roundtrip e un'operazione di crittografia simmetrica a buon mercato.

Inoltre, potresti anche voler sperimentare con TLS False Start se la tua infrastruttura lo supporta. TLS False Start consente di iniziare a inviare dati molto prima, riducendo ulteriormente il tempo al primo byte.

    
risposta data 09.05.2016 - 20:52
fonte
-4

Se ti piace sfruttare la larghezza di banda, allora più TLS / SSL allo stesso tempo funzionerebbero. D'altra parte, se si desidera salvare la connessione e l'installazione, utilizzare l'una è la strada da percorrere.

Che fa sorgere la domanda, come farlo con il minimo sforzo. Potresti, progettare il tuo protocollo, o usare un qualche tipo di broker di connessioni ... ecc. Ciò significa in poche parole che sei bloccato a capire se sei nel ciclo di ottimizzazione iniziale, dove potresti essere sovradimensionando la soluzione.

    
risposta data 15.01.2015 - 02:18
fonte

Leggi altre domande sui tag