I certificati TLS e SSL
Scritto il | 1 marzo, 2012 | 1 Comment
Transport Layer Security (TLS) e Secure Sockets Layer (SSL) sono dei protocolli crittografici che permettono una comunicazione sicura e una integrità dei dati su reti TCP/IP come, ad esempio, Internet.
TLS e SSL cifrano la comunicazione dalla sorgente alla destinazione (end-to-end) al di sopra del livello di trasporto. Diverse versioni del protocollo sono ampiamente utilizzate in applicazioni come i browser, l’E-mail, la messaggistica istantanea e il Voice over IP.
Come funziona?
Il protocollo TLS consente alle applicazioni client/server di comunicare attraverso una rete in modo tale da prevenire il ‘tampering’ (manomissione) dei dati, la falsificazione e l’intercettazione.
Nell’utilizzo tipico di un browser da parte di utente finale, l’autenticazione TLS è unilaterale: è il solo server ad autenticarsi presso il client (il client, cioè, conosce l’identità del server), ma non viceversa cioè il client rimane anonimo e non autenticato sul server). L’autenticazione del server è molto utile per il software di navigazione e per l’utente. Il browser valida il certificato del server controllando che la firma digitale dei certificati del server sia valida e riconosciuta da una certificate authority conosciuta utilizzando una cifratura a chiave pubblica. Dopo questa autenticazione il browser indica una connessione sicura mostrando solitamente l’icona di un lucchetto. Questa autenticazione, però, non è sufficiente per garantire che il sito con cui ci si è collegati sia quello richiesto. Per esserne sicuri è necessario analizzare il contenuto del certificato rilasciato e controllarne la catena di certificazione. I siti che intendono ingannare l’utente non possono utilizzare un certificato del sito che vogliono impersonare perché non hanno la possibilità di cifrare in modo valido il certificato, che include l’indirizzo, in modo tale che risulti valido alla destinazione. Solo le CA possono generare certificati validi con un’URL incorporata in modo che il confronto fra l’URL apparente e quella contenuta nel certificato possa fornire un metodo certo per l’identificazione del sito. Molto spesso questo meccanismo non è noto agli utenti di internet ed è causa di varie frodi dovute, però, ad un incorretto utilizzo del browser, non ad una debolezza del protocollo TLS.
Il protocollo TLS permette anche un’autenticazione bilaterale, tipicamente utilizzata in applicazioni aziendali, in cui entrambe le parti si autenticano in modo sicuro scambiandosi i relativi certificati. Questa autenticazione (definita Mutual authentication) richiede che anche il client possieda un proprio certificato digitale cosa molto improbabile in un normale scenario.
In assenza di un’autenticazione bilaterale si possono utilizzare i protocolli TLS-PSK o Secure remote password (SRP) per garantire un’autenticazione sicura in assenza di un certificato.
Fasi di funzionamento.
Il funzionamento del protocollo TLS può essere suddiviso in tre fasi principali:
- Negoziazione fra le parti dell’algoritmo da utilizzare
- Scambio delle chiavi e autenticazione
- Cifratura simmetrica e autenticazione dei messaggi
Nella prima fase, il client e il server negoziano il protocollo di cifratura che sarà utilizzato nella comunicazione sicura, il protocollo per lo scambio delle chiavi e l’algoritmo di autenticazione nonché il Message authentication code (MAC). L’algoritmo per lo scambio delle chiavi e quello per l’autenticazione normalmente sono algoritmi a chiave pubblica o, come nel caso di TLS-PSK, fanno uso di una chiave precondivisa (Pre-Shared Key). L’autenticazione dei messaggi è garantita da un algoritmo di hash che usa un costrutto HMAC per il protocollo TLS o una funzione pseudorandom non standard per il protocollo SSL.
Commenti
One Response to “I certificati TLS e SSL”
Lascia un Tuo Commento
aprile 27th, 2012 @ 18:02
Articolo interessante!
Io mi soffermerei anche sulla necessità di controllare, prima di acquistare un certificato SSL, l’autorità certificante responsabile!
Le aziende più quotate e sicure, da questo punto di vista, restano GeoTrust e Symantec/VeriSign!