L'utility stunnel scritta da Michał Trojnara consente, se ho capito bene, di "avvolgere" i protocolli non SSL ( come ssh
) in una connessione SSL.
Ad esempio, immagina che tutte le porte di rete su una rete siano bloccate, tranne le porte 80
e 443
per il traffico HTTP e HTTPS rispettivamente. L'ispezione deep packet viene anche utilizzata per garantire che entrambe le porte vengano utilizzate solo per HTTP (S) e nient'altro, quindi non è possibile eseguire un server SSH sulla porta 443 e prevedere che sia in grado di connettersi attraverso questo firewall.
Ora, stunnel
può essere utilizzato in questo caso eseguendo un listener stunnel
sulla porta 443 del server (associato alla porta interna 22) e utilizzando il client stunnel
per connettersi alla porta 443 del server, in effetti connettendosi al suo daemon SSH. Il firewall non ha idea che ciò avvenga perché
- La connessione è crittografata e verificata dall'integrità in base alla progettazione, quindi il firewall non sa quali dati vengono scambiati - HTTP o meno.
- Poiché si tratta di una connessione SSL ed è in esecuzione su 443, il server non può distinguere tra un server HTTPS e dire, ssh.
La mia domanda è - quale sarebbe un modo per rilevare effettivamente l'utilizzo di stunnel
e bloccarlo? Supponiamo che i metodi di analisi come guardare i modelli di dati ( hmm, un sacco di scambio di dati è insolito su una connessione HTTPS, quindi questo tunnel SSL deve essere usato per qualcos'altro ) non sono disponibili. Inoltre non possiamo installare software o certificati sui dispositivi degli utenti.
C'è davvero un modo pratico per fermarlo, considerando che mantenere HTTPS in funzione è fondamentale?