Perché TLS 1.0 e 1.1 sono morti
TLS 1.0 è del 1999, TLS 1.1 del 2006. Entrambi i protocolli usano algoritmi di hash deboli (MD5, SHA-1), supportano cipher CBC vulnerabili a padding oracle attacks, e non hanno mai integrato AEAD. Il PCI Council li ha dichiarati non conformi nel 2018, il NIST e l'IETF hanno formalmente deprecato entrambi con la RFC 8996 nel 2021. Tutti i browser principali li hanno disabilitati nel 2020.
Conseguenze pratiche
Server che ancora rispondono in TLS 1.0/1.1 hanno problemi diversi a seconda del contesto:
- I browser moderni rifiutano la connessione con errore SSL_VERSION_OR_CIPHER_MISMATCH
- I report di compliance PCI DSS, HIPAA, ISO 27001 falliscono
- SSL Labs penalizza con voto C o inferiore
- Le polizze cyber-insurance richiedono dismissione esplicita
- I gateway di pagamento rifiutano integrazioni che usano i vecchi protocolli
Verifica versioni attive
Prima di disabilitare, verifica cosa risponde il server. Con OpenSSL:
openssl s_client -connect tuosito.it:443 -tls1
openssl s_client -connect tuosito.it:443 -tls1_1
Se il comando si connette, il protocollo è attivo. Alternativa con nmap:
nmap --script ssl-enum-ciphers -p 443 tuosito.it
Output completo elenca tutti i protocolli e cipher supportati. Strumenti online come SSL Labs danno un riepilogo immediato.
Disabilitare su Nginx
Sostituisci la riga ssl_protocols con:
ssl_protocols TLSv1.2 TLSv1.3;
Ricarica con nginx -t && nginx -s reload. Verifica subito il sito da browser moderno per accertarti che HTTPS funzioni; poi rilancia il test di compliance.
Disabilitare su Apache
Nel file httpd.conf o nel VirtualHost SSL:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Riavvia o ricarica Apache. Ricordati di aggiornare anche eventuali file specifici per i singoli VirtualHost.
Disabilitare su IIS
Modifica le chiavi di registro:
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server
Imposta Enabled = 0 e DisabledByDefault = 1. Ripeti per TLS 1.1. Per applicare le modifiche serve un reboot del server. Lo strumento IIS Crypto di Nartac semplifica il processo con preset preconfigurati.
Disabilitare su load balancer e CDN
Cloudflare, Fastly, Akamai, AWS ALB e simili hanno tutti pannelli per impostare la minimum TLS version. Verifica che la chiusura non sia solo sul tuo origin server ma anche sul layer pubblico, altrimenti i client esterni continuano a parlare con il CDN in TLS 1.0.
Disabilitare client legacy
Spesso il problema non è il server ma client interni: cron job, integrazioni B2B, vecchi software CRM che chiamano API in TLS 1.0. Inventario tipico:
- Script PHP con cURL su PHP < 5.6 (usa OpenSSL legacy)
- Applicazioni .NET che non hanno impostato
ServicePointManager.SecurityProtocol - Java 7 senza patch (default TLS 1.0)
- Vecchi POS e dispositivi embedded
- Browser legacy (IE 8, IE 9, Android < 4.4)
Strategia di rollout
- Censimento dei client che si connettono al servizio (log analyzer su protocol)
- Comunicazione preventiva ai partner B2B con scadenza
- Disabilita prima TLS 1.0 in finestra di manutenzione
- Monitora i log per errori SSL nelle 48-72 ore successive
- Disabilita TLS 1.1 quando i numeri sono ok
- Mantieni TLS 1.2 e TLS 1.3 come baseline
Hai bisogno di aiuto?
Se vuoi gestione SSL dal team di G Tech Group, scrivici tramite il modulo di contatto.