SITM: quando uno Stato (il Kazakistan) fa MITM

6

Nelle comunicazioni criptate con TLS (come HTTPS), si instaura una connessione tra il server e il client nella quale il server -appena chiamato- espone un certificato che lo identifica: se il client si fida della bontà del certificato, la connessione può andare avanti, altrimenti è il client a chiudere.

I certificati e il fidarsi di essi sono il cuore del sistema. Dato che un client non può portarsi dietro tutti i certificati esistenti, la verifica riguarda una catena: un certificato è firmato (garantito) da un altro, che può essere firmato sua volta, fino ad arrivare ad uno chiamato Certificate Authority (Autorità per i certificati): per poter validare tutti i certificati basta conoscere (e fidarsi di) solo questi certificati primari.

Gli attacchi Men In The Middle (MITM – uomo frapposto) prendono di mira queste comunicazioni cercando di far accettare il proprio certificato. frapponendosi tra server e client. In questo modo, sarà l’attaccante a fare da client con il server richiesto, ma anche da server al client: tutte le comunicazioni fra i vari componenti saranno ancora criptate, ma saranno in chiaro e leggibili all’attaccante.
A meno che la sicurezza usata (la criptazione) non sia molto debole, l’attaccante non è in grado di creare un certificato che sembri valido, quindi il modo per difendersi da questi attacchi è piuttosto semplice: non fidarsi. Passo necessario affinché l’attaccante si faccia passare per il server legittimo è fidarsi del certificato che usa.

Dal Kazakistan stanno arrivando (attraverso il bug-tracker di Mozilla) notizie per cui, provando a collegarsi ad un sito in HTTPS (Facebook, per dirne uno), si viene dirottati su una pagina che chiede di scaricare ed installare una nuova CA. Fornisce perfino le istruzioni.

una pagina di esempio in originale
la stessa pagina tradotta da Goole

Seguendo le istruzioni, si installerà la CA e la navigazione riprenderà -magicamente. Ma davvero cosa staremo facendo?
Accetteremo la nuova CA, che permetterà ad un altro server di far finta di essere Facebook usando un certificato -di fatto- contraffatto, firmato da questa CA. E permetteremo di intercettare tutte le comunicazioni trasmesse.

i dati del certificato valido (a sinistra) e quello contraffatto

A questo punto potremmo definire questo come un nuovo tipo di attacco, e potremmo chiamarlo State In The Middle (SITM – lo Stato che si frappone): non è un singolo attaccante a mettere in campo la tecnica, ma una intera nazione, come istituzione.
Il problema è molto grosso, nel senso che sono coinvolti gli ISP – i fornitori di connessione internet -, che si prestano a dirottare le chiamate verso questi server specifici, piazzandoli – appunto – in mezzo.

Mozilla, Google, Apple etc…, che forniscono le CA affidabili con il browser stesso (preoccupandosi anche di rimuovere quelle non più considerate tali), hanno solo un’arma: mettere in lista nera quella CA, in modo che anche se l’utente procede all’installazione, quella CA non sia comunque considerata valida. Ma l’effetto sarà togliere la navigazione WEB (sicura, con HTTPS) agli utenti del Kazakistan.
Una soluzione avanzata potrebbe essere l’uso di qualche VPN (o di TOR), ma rimangono riservate ad utenti esperti – e non sempre disponibili.

Insomma, per chi vive in quei paesi non ci sono soluzione facili, ma anche per chi non ci vive la notizia non è rassicurante: se finora era solo teorica la possibilità di una sorveglianza tanto invasiva, ora è realtà. Ed altri Stati (come Russia, o Cina) potrebbero non limitarsi più a bloccare alcuni contenuti, o filtrare alcune ricerche: avrebbero accesso a tutti i dati, anche quelli scambiati con server stranieri, al di fuori del loro (attuale) campo d’azione. E tutto senza che l’utente se ne renda davvero conto: dopo aver accettato la CA, la navigazione sarà del tutto normale.

Per ora la modifica sembra riguardare solo la capitale Nursultan (sì, ho guardato su Wikipedia), ma non c’è dubbio che riguarderà l’intera nazione. E forse, pure oltre…

Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.