Per motivi di sicurezza, vorrei separare gli handshake SSL e tutto il traffico Internet e inviarli su due reti separate.
C'è già un modo per farlo, o devo scriverlo da solo? Se sì, qualche consiglio su come farlo?
Anche se non riesco a capire come tale suddivisione possa migliorare la sicurezza in qualsiasi modo ragionevole, è ragionevolmente facile distinguere l'handshake dal resto del traffico in una connessione SSL. In SSL, tutto viene inviato come record , con un formato regolare:
Per ottenere ciò che vuoi, dovresti esaminare il primo byte di intestazione, che codifica il tipo di record: questo valore è uguale a 20, 21, 22 o 23, con 23 che significa "dati dell'applicazione" mentre gli altri valori sono per l'elaborazione amministrativa (i messaggi di handshake utilizzano il tipo 22 e brevemente 21 per la commutazione dei parametri di sicurezza, gli avvisi utilizzano il tipo 20). Tutto questo è specificato in sezione 6 di RFC 5246 .
Con questa conoscenza, è piuttosto semplice implementare un filtro che manda i record con il tipo 23 in un modo e registra con altri tipi in un altro modo. Ciò che può essere difficile è l'interfacciamento con il sistema operativo e le applicazioni; soprattutto se si desidera farlo per le applicazioni esistenti che non è possibile modificare in alcun modo. Inoltre avrai bisogno sia del client che del server per implementare la suddivisione "su due reti separate".
Non sono a conoscenza di nessuno strumento esistente che faccia questo lavoro.
Non sono sicuro di come ciò migliorerebbe la sicurezza, a meno che il tuo traffico SSL non venisse decodificato prima di arrivare sul tuo computer (proxy, bilanciamento del carico, ecc.).
Se vuoi davvero uscire dal box, puoi guardare l'installazione di un router software su una macchina che esegue il routing del traffico in base al filtro suggerito da Tom. Ciò semplificherebbe probabilmente lo sviluppo di tale strumento.
Leggi altre domande sui tag encryption tls