DNS e turchi (ancora splitting)

Di Uriel Fanelli, 2 aprile 2014

Ho finalmente il tempo di scrivere su cose che mi interessano di piu’, come il discorso di Google che si arrabbia perche’ i turchi prendono il controllo dei suoi DNS. Sebbene io possa capire OGGI la loro incazzatura, c’e’ da dire che nella tolleranza con cui le compagnie USA hanno accettato le pratiche del proprio governo non puo’ che spingere altri governi a tentare di imitare gli USA. E con questo, adesso inizia una gara su chi ha l’ NSA migliore.

Innanzitutto, la parte tecnica, che risponde alle domande che mi avete inviato.

DNS e’ un protocollo “debole”: e’ debole perche’ nasce e viene pensato quando Internet e’ un piccolo club di galantuomini, ove i server SMTP sono lasciati aperti a fare da relay, e anzi girano liste di server SMTP, casomai quello del tuo ISP non funzionasse. Non sto scherzando.

Si tratta di un protocollo su cui gira molto potere, perche’ e’ il protocollo che permette l’esistenza dei domini, cioe’ di pippo.com, o di qualsiasi altro nome, e quindi lo si e’ tenuto in vita per molto, troppo tempo. Dico “troppo” perche’ ormai le sue carenze tecniche sono cosi’ pesanti che persino HLR/VLR sembrano dei capolavori di ingegneria.

Innanzitutto, lavora principalmente su UDP. Si, esiste la possibilita’ di transfer e query “grosse” su TCP, ma lavora principalmente su UDP. Che differenza c’e’ e cosa significa?

La differenza tra TCP e UDP e’ la differenza che passa tra una cartolina ed una raccomandata con la ricevuta di ritorno. Quando inviate una cartolina, la imbucate e poi sperate che arrivi. La maggior parte delle volte arriva, ma si sa: in certi periodi dell’anno, qualcuna si perde. Certo, potete chiamare il vostro parente e chiedergli “ma hai ricevuto la mia cartolina?”, cosi’ come vengono implementati i servizi RPC per controllare che i pacchetti UDP siano arrivati, ma il concetto non cambia : fosse per UDP, non sapreste affatto se sia arrivato o meno.

TCP e’ piu’ simile ad una raccomandata, perche’ sapete se sia arrivato o meno, insomma c’e’ un ACK, che e’ come una  ricevuta di ritorno. Non vi garantisce sempre CHI ha ricevuto il pacchetto, per esempio, nel caso di NAT, o di load balancer, non sapete bene chi ci sia “dietro”, e’ come se la raccomandata arrivasse alla portineria di un palazzo.

In ogni caso, sebbene TCP in se’ non offra sicurezza o garantisca contro lo stato impiccione, il fatto che tra i due protocolli si usi il MENO robusto fa capire molte cose. Quando chiedete come trovare pippo.com , state inviando una cartolina a qualcuno. Se qualcun altro la legge e vi risponde indietro, non sapete di preciso se sia lui o meno.

MA anche ammesso di saperlo, il problema e’ che per come e’ disegnato un DNS, non e’ nemmeno illegale che una risposta arrivi da qualcuno che in teoria non sa la risposta e ha chiesto a qualcun altro. O da qualcuno che ha un’informazione vecchia.

Voi capite che usando un sistema cosi’ debole, la possibilita’ per qualcuno di intercettare tutte le “cartoline” e di rispondere al posto del destinatario sia allettante: in fondo, e’ semplice. Come se non bastasse, poi, si usa sempre la stessa porta, la 53. Il che significa che non solo ci scambiamo informazioni essenziali usando delle cartoline, ma abbiamo anche cura di colorarle tutte dello stesso colore, cosi’ che sia piu’ facile toglierle dal mucchio.

E’ ovvio che il DNS sia uno dei punti piu’ deboli di internet.

Come mai esso non e’ mai stato sostituito con qualcosa di piu’ robusto? Anche le implementazioni piu’ “sicure” non si pongono mai il problema di evitare che qualcuno catturi tutto il traffico per la porta 53 e lo spari da qualche parte, sul proprio DNS. Si pongono al massimo il problema di essere certi che la risposta arrivi proprio dal dns che dice di rispondere, ma non pone limiti al dns che dice di rispondere: insomma, se voi chiedete a pippo ma risponde pluto, l’unica cosa che potete sapere e’ che pluto sia davvero pluto.

Come mai un protocollo cosi’ debole non e’ stato sostituito da qualcun altro? Potere.

La potentissima associazione per il commercio americana ha sempre chiesto allo stato USA di non consentire che alcuni tlv fossero distribuiti anche all’estero all’inizio, poi fecero una ingiustificabile campagna per bloccare l’uso di ALTRI tlv, oltre ai soliti domini nazionali e a quelli .com, .net, eccetera. Insomma, avere quasi tutti i root servers e avere il potere sui tlv era un potere che non volevano mollare.

Va da se’ che per mantenere lo status quo  occorreva mantenere immobile tutto il settore, ma proprio tutto. Compreso il protocollo obsoleto che lo governa.

Soluzioni tecniche? Poche ed improbabili:

  • Iniziare ad usare porte diverse dalla 53, usando anche porte note, allo scopo di impedire o rendere troppo oneroso il blocco. A parte il fatto che facendo DPI (Deep Packet Inspection) la query al DNS e’ facile da riconoscere, molti sistemi operativi non consentono nemmeno di impostare una porta diversa per il DNS, ed accettano solo l’ IP. Quasi tutti i DNS non consentono di indicare nei campi NS la porta del DNS autoritativo, che rimane 53 per definizione.
  • Criptare il DNS. Interessante, ma questo porta alla solita merda: il vostro client dns deve avere una serie di certificati accettabili, ovvero una serie di CA i cui certificati sono accettati, come fa il browser. Cosi’, se il governo possiede una delle CA in questa lista, puo’ produrre certificati accettati per ogni dominio, nel nostro caso per ogni DNS. Poco efficace.
  • Usare proxy su SSL/IPSec. Ok, ma non tutti possono farlo, e’ costoso, e l’effetto di massa che si ottiene per quanto riguarda social network come Facebook e Twitter si perde. Esiste una soluzione cui si sta lavorando, ovvero quella in cui Google, Facebook e Twitter iniziano a fare da provider VPN, e Android arriva con il client VPN gia’ configurato, oppure viene configurato mediante un messaggio OTA. Buono, ma solo per telefoni, i computer vanno configurati a mano, e quelli aziendali NON consentono (di solito) di stabilire VPN.
  • Modificare i browser consentendo a loro di usare VPN o un proxy su SLL, allora IE fa una VPN verso Microsoft e voi girate usando un cloud di Microsoft, Google Chrome fa usa un proxy di google, diventa problematico per Firefox e Opera ed altri.La net neutrality va a farsi fottere, ma Google &co si riprendono dalla figura di merda di aver cooperato con NSA: noi vi diamo sicurezza.
  • Le aziende iniziano a rilasciare i LORO client. Ed i client stessi iniziano a fare VPN o usare proxy https. Allora se volete usare twitter sul PC non usate piu’ il browser ma un programma, “Twitter.exe”, che fa la VPN (o usa protocolli come I2P od altri) e se volete usare Facebook anche sul PC usate un programma, “Facebook.exe”, che  fa la sua VPN. Si torna, cioe’ , ai fat client, come  15 anni fa.
  • Si usano sempre dei fat client, ma si usano protocolli redistribuiti, tipo kademilla, I2P, torrent, o Jabber su SSL, implementando un servizio di risoluzione sul protocollo jabber in se’. Ogni azienda quindi rilascia il proprio client, ma il problema e’ che va rilasciato per un numero alto di piattaforme embedded, specialmente nel mondo dell’ “internet of things”, significa installarlo anche sulle console delle auto, sulle TV, e cosi’ via.

tutte queste soluzioni sono assolutamente improbabili, e credo che l’idea di Google, Twitter, Facebook di fare da provider SSL/IPsec mediante un fat client, verra’ stroncata in fase di fattibilita’, a meno che non siano DAVVERO pazzi.(1) Oppure disperati, ma di questo parlo sotto.

In definitiva, stiamo sbattendo la testa sul solito merdone fatto dalle lobby conservatrici. Hanno imposto all’industria uno standard obsoleto perche’ consentiva loro di mantenere il business, e quando l’obsolescenza tecnologica del loro standard li colpisce sulla fronte, cascano dalle nuvole.
I meccanismi di risoluzione alternativi al DNS esistono, e sono esistiti in diverse reti. Non credo proprio che si possano resuscitare netbeui o appletalk nella dimensione che Internet ha assunto oggi, pero’ . Le uniche alternative sono cjdns , il meccanismo di risoluzione distribuito di gnunet, e sono quasi tutte usate dalle cosiddette “darknet”.

Sebbene le soluzioni che ho elencato sopra (ovvero che gli OTT  si mettano a fare da proxy criptato e/o da provider VPN mediante fat client oppure tramite l’ OS) siano improbabili, pero’, vedo un pericolo grosso  in questo senso. La censura del governo turco, infatti, sta colpendo il CORE BUSINESS di Google, di Twitter, di Facebook.Quindi, per quanto sia improbabile che google sviluppi un fat client e offra insieme alle CDN anche delle VPN e/o dei proxy,  il punto e’ che quando e’ in pericolo la propria stessa sopravvivenza, OGNI azienda valuta OGNI possibilita’. Sui cellulari, dopotutto, c’e’ Android e ci sono gia’ dei client proprietari. Rilasciare un client (o un servizio proxy) per Linux, uno per Apple ed uno per Windows non e’ un’impresa impossibile.

Se andate a Twitter e Facebook, e’ ancora peggio: siccome hanno ancora meno attivita’ collaterali (non hanno shop come Google Play, non  fanno sistemi operativi come Android, etc) per loro l’urgenza e’ catastrofica: se tutti i governi prendono il controllo dei DNS avendo in mente di spegnere eventualmente i loro servizi, di fatto non possono piu’ garantire nulla ai clienti. Per questo dico “sono pazzi”: se anche non fossero pazzi a pensare soluzioni simili, potrebbero farlo perche’ sono disperati.
Se escludiamo il servizio di VPN da distribuire in tutto il mondo, qualcosa come server VPN ovunque, come le CDN, finanziariamente la cosa non pesa moltissimo. Android potrebbe implementare , per esempio, una serie di API elusive per arrivare ai DNS di google, sin dalla prossima patch. E questo vale per tutti i client proprietari.
Credo che se IEEE ed ICANN non si fanno una ragione di quanto accade, e non si preoccupano di scrivere il successore degli RFC 1034 e 1035,  le grandi aziende DOVRANNO difendere il loro business e disegnare i loro successori, implementandoli direttamente a livello di OS o di fat client.
Cosa fareste se foste un FAcebook, che guadagna solo di pubblicita’, e sapeste che in caso di manifestazioni di piazza perderete immediatamente il business del posto? Significa perdere la Russia se domani qualcuno fa dei casini a Mosca usando Facebook. Significa perdere l’ India, o qualsiasi altro mercato. Ovvio che offrirete anche un accesso VPN a livello di frontend, e poi implementerete il client VPN direttamente su un client proprietario. CHE SCELTA AVRESTE?

Lo splitting di Internet e’ sempre piu’ vicino, nella misura in cui i governi nel censurare distruggono il business degli OTT, mettendoli con le spalle al muro: se vogliono sopravvivere, DEVONO diventare elusivi! Nessuno ha ancora fatto notare che nella censura di youtube avvenuta in Turchia, GOOGLE ABBIA PERSO SOLDI?

Il punto di vista aziendale sta venendo totalmente ignorato, ma esiste:  maggiormente qualcuno cerca di tenerne il controllo, tantopiu’ internet si splitta. Sviluppare un nuovo meccanismo di risoluzione o un sistema di VPN e’ assolutamente alla portata degli OTT, e se sarebbe molto costoso, d’altro canto, li stanno mettendo con le spalle al muro.

Quando ci sara’ una specie di caos di protocolli, perche’ ogni OTT avra’ sviluppato la sua VPN di frontend e il suo risolutore di nomi, di fatto esisteranno tante “internet”, tutte con le caratteristiche tipiche di quelle che oggi chiamiamo “darknet”.

E a quanto pare, dei governi totalmente ciechi stanno procedendo in modo che per gli OTT dotarsi di questi mezzi elusivi sia una questione DI SOPRAVVIVENZA.
Se continuano cosi’, prima o poi google, facebook, gmail, twitter, non saranno piu’ siti web: saranno programmi che installerete, con una architettura dedicata e proprietaria  sul backend, e lo splitting sara’ completo, per la semplice ragione che gli OTT non hanno alcuna altra scelta che questa se vogliono sopravvivere.
Viene da chiedersi  se ne valesse la pena, ma questo e’ un problema dei governi.
Uriel
(1) Il che, conoscendoli, non esclude nulla. SONO pazzi furiosi. 🙂
Annunci

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...