Visualizzazione post con etichetta Transport Layer Security. Mostra tutti i post
Visualizzazione post con etichetta Transport Layer Security. Mostra tutti i post

lunedì 6 luglio 2015

Kali Linux: Testare le connessioni SSL/TLS tramite openssl

Al fine di testare la sicurezza dei propri server può essere utile poter verificare le connessioni SSL/TLS e porre rimedio ad eventuali falle di sicurezza trovate.

SSLv2 e SSLv3
Il protocollo SSL (Secure Socket Layer) è un protocollo aperto e non proprietario nato al fine di garantire la privacy delle comunicazioni su internet. La versione 1 del protocollo non fu mai rilasciata. Nel 1995 fu introdotto il protocollo SSLv2 e fu sostituito l'anno successivo da SSLv3 (RFC6101) che rimediava a diverse falle di sicurezza presenti nella seconda versione. Tuttavia anche il protocollo SSLv3 si è dimostrato vulnerabile ad alcuni attacchi, in particolare risulta vulnerabile all'attacco POODLE (Padding Oracle On Downgraded Legacy Encryption) tramite il quale un malintenzionato può rubare informazioni sensibili.

Per verificare se un host supporta ancora il protocollo SSLv2 o SSLv3 possiamo forzare l'utilizzo di tali protocolli su una connessione https con il comando openssl da una finestra terminale di Kali Linux:

openssl s_client -ssl2 -connect glubrano.com:443

openssl s_client -ssl3 -connect glubrano.com:443

Ovviamente bisogna sostituire glubrano.com con l'host che si intende testare.

Se la connessione va a buon fine allora i protocolli sono ancora supportati dall'host, in caso contrario si riceverà un errore di handshake.

Entrambi i protocolli andrebbero disabilitati per questioni di sicurezza.


openssl s_client -ssl3
FIG 1 - openssl s_client -ssl3


TLS
Il protocollo TLS (Transport Layer Security) rappresenta il successore di SSL. Nel 2009 è stata scoperta una vulnerabilità di questo protocollo causata da una non corretta gestione delle rinegoziazioni.
Per verificare se un server è affetto da questa vulnerabilità si può eseguire il seguente comando da terminale
openssl s_client -connect glubrano.com:443 < /dev/null

se all'interno dell'output è presente la scritta
Secure Renegotiation IS supported
il server è aggiornato e non vulnerabile

se, invece, troviamo la scritta
Secure Renegotiation IS NOT supported
il server è vulnerabile


TLS Secure Renegotiation IS supported
FIG 2 - TLS Secure Renegotiation IS supported