8Spesso potrebbe tornare utile effettuare dei test delle connessioni SSL/TLS da linea di comando *NIX senza scomodare un browser o un client del protocollo che si vuole verificare.
Di seguito alcuni esempi di come effettuare queste verifiche.
SSLv2 e SSLv3
SSLv2 risale al 1995 (la versione 1 non è mai stata rilasciata) e l’anno successivo è stata sostituita dalla versione 3 per problemi di sicurezza. Anche SSLv3 è risultato vulnerabile ed è meglio disabilitarlo. Nonostante ciò ci sono molti host che supportano ancora questi protocolli. Per verificare se un host supporta ancora SSLv2 o SSLv3 si forza l’utilizzo di quei protocolli in una connessione https in questo modo:
openssl s_client -ssl2 -connect siamogeek.com:443
openssl s_client -ssl3 -connect siamogeek.com:443
Se la connessione va a buon fine significa che il server accetta ancora quel protocollo, altrimenti si riceve un errore di handshake.
Protocolli di cifratura
I protocolli di cifratura utilizzati sono molto importanti perché se viene forzato un protocollo vulnerabile durante l’handshake, tutta la connessione risulterà poco sicura.
Per elencare i protocolli di cifratura utilizzati da un server si utilizza nmap:
nmap --script ssl-enum-ciphers -p 443 siamogeek.com
L’output di questo script elenca tutti i protocolli supportati per ognuno dei tipi di handshake SSL/TLS.
Certificato
Per vedere i dettagli del certificato SSL di un server si utilizza questo comando:
openssl s_client -showcerts -connect siamogeek.com:443 </dev/null | openssl x509 -noout -text
che visualizza il certificato in formato testuale leggibile.
Rinegoziazione sicura
Lo standard TLS prevede un nuovo handshake durante una sessione TLS. Questo è un comportamento tipico di Internet Information Server, che usa la rinegoziazione quando capisce quale dei siti (terminologia IIS per indicare gli host virtuali) deve essere servito al client.
Una vulnerabilità del protocollo è stata scoperta nel 2009, per verificare se un server è affetto da questo problema utilizzare questo comando
openssl s_client -connect siamogeek.com:443 < /dev/null
Nell’output ad un certo punto dovrebbe comparire la scritta
Secure Renegotiation IS supported
se invece compare la scritta
Secure Renegotiation IS NOT supported
significa che il server non è stato aggiornato ed è vulnerabile.
Lascia un commento