Millorant la seguretat i la privacitat en les comunicacions amb Raspberry Pi

Les grans corporacions tecnològiques (Google, Facebook…) ens han acostumat a oferir-nos serveis de forma gratuïta. Com ja sabeu, que no ens costi diners no vol dir que sigui gratuïta, sinó que el preu que paguem es la nostra privacitat.

Però no sempre rebem un producte o servei a canvi de la nostra privacitat. Quan signem el contracte amb la majoria de plataformes digitals, tot i que no ens el llegim, estem acceptant que recollint informació sobre el que fem amb els seus productes/serveis digitals. En alguns casos inclús sense que nosaltres signem res, podem ser “estudiats”. Aquestes dades son molt valuoses ja que permeten millorar els seus productes/serveis no nomes per a la seva millora “perse” sinó també es poden utilitzar per condicionar-nos subliminalment.

Com més temps estem connectats (i això no deixa d’augmentar dia darrera dia) més és la informació que tenen de nosaltres i per tant més dades estem cedint sense donar-nos compte. Precisament per l’augment enorme d’hores, usos i dispositius “intel·ligents” als que ens estem acostumant s’ha tornat essencial que les nostres comunicacions siguin lo més segures possibles.

Per millorar aquests dos aspectes sense perdre les avantatges que ens dona la xarxa, podem prendre dos tipus d’accions:

  • Les tècniques: intentar no deixar rastre de la nostre activitat a la xarxa (més enllà de lo inevitable) i protegir les nostres dades mitjançant software i hardware.
  • Les costums: tractar de canviar la nostre manera d’utilitzar les eines informàtiques. Segurament aquestes son les més difícils ja que requereix un esforç més sostingut en el temps.

Coneixements previs

Si ja sabeu que es una IP y com funciona un DNS, podeu passar a la següent, secció, en cas contrari, os recamano que llegiu aquesta secció perquè no us sigui tant feixuc la resta de l’article.

Una adreça IP és una serie de números que identifiquen un dispositiu de forma inequívoca a la xarxa. Actualment, la adreça IP esta composta per 4 xifres de entre 1 i 3 números separades per punt. Aquestes xifres han de tenir un valor entre 0 i 255 (per exemple 145.254.84.2). Per accedir a qualsevol web hem de conèixer l’adreça IP del servidor on resideix. Com no seria gens pràctic que tinguéssim que recordar aquesta sèrie de xifres per cada un de les webs que visitem, molt sàviament es va decidir que es pugues emmascarar amb texts (anomenats dominis). Per exemple quan introduïm l’adreça www.google.es en el navegador, realment està establint comunicació amb l’ordinador 87.245.200.153

Algun servidor de DNS ens ha de donar la adreça IP del servidor web al que volem accedir.

Els nostres dispositius no saben la “traducció” de tots els ordinadors que hi ha a Internet, per tant abans d’accedir a una web el nostre ordinador ha de consultar-la a un servidor DNS quina és l’adreça IP a la que s’ha de dirigir per accedir. En el vostre router i/o mòbil venen pre-configurades les adreces IP d’aquests servidors DNS ja que el vostre proveïdor d’internet (Movistar, Vodafone…) ja s’encarrega de que no t’hagis de preocupar-te d’això. De fet cada proveïdor, te els seus servidors DNS i per tant, per aquestes companyies és molt fàcil recopilar la informació sobre la teva navegació.

Les tècniques

DNS

Heu de saber que molts dels servidors DNS guarden les “traduccions” que sol·licitem, de manera que poden saber quines pàgines hem visitat, a quina hora, etc i aprofitar-la o vendre-la a tercers. A més a més es poden utilitzar per no deixar-te accedir a alguna web (normalment no coneixes la IP del servidor de la web a la que vols accedir). El control dels DNS és un dels sistemes utilitzats pel govern xines perquè els ciutadans no accedeixin a webs que consideren perilloses pel seus interessos, però no cal anar tant lluny, també es va fer servir l’1-O per tractar de limitar l’accés de les meses electorals al cens universal. Com veieu no és un tema menor. La velocitat amb la que accedeixes i et responen aquests servidors DNS també afecta a la rapidesa amb la que accedeixes a les webs. Per tots aquests assumptes, es poden configurar els dispositius per a que consultin uns altres DNS diferents als pre-fixats pel vostre proveïdor.

Diferencia entre tenir que demanar la IP a un DNS public o al teu personal

Per sort, actualment la majoria de webs funcionen sota HTTPS, per tant, un cop el nostre dispositiu coneix l’adreça IP de la web on estem accedint, les dades viatgen entre els dos aparells de forma segura.

Però això no és així amb la comunicació entre els teus dispositiu i gran part dels servidors DNS ja que es realitza per text pla (sense encriptar) i per tant pot ser interceptada e inclús ens les poden intervenir i enviar-nos una adreça IP que no sigui l’autèntica. Per exemple, al voler accedir a una web de comerç electrònic o banc, algú podria interceptar la petició que fas contra el teu DNS, de manera que el delinqüent respon al teu dispositiu una IP d’una web amb una aparença pràcticament idèntica a la de la que vols accedir. Confiat poses les teves credencials i tot i que la falsa web no et mostri res o et digui que les credencials son incorrectes ja s’ha guardat les que has introduït, que molt possiblement son les correctes i per tant es podran fer passar per tu en aquella web. És més, probablement fins que te n’adonis de que la web és falsa, seguiràs donant informació intentant esbrinar quines credencials son les que et deixen accedir a la web (altres credencials, la teva adreça de correu, preguntes de recuperació de contrasenya, etc)

Existeixen serveis de DNS alternatius als de la teu ISP (proveïdor d’Internet) tant de DNS gratuïts com de pagament. Els gratuïts… bé ja sabeu que succeeix amb els serveis gratuïts… normalment acaben sortint cars (menys velocitat, menys privacitat, menys seguretat…). Per exemple podeu veure en la pàgina de les condicions d’ús dels serveis de DNS de Google son gratuïts, però a canvi es queden teves dades de navegació fins a 48h. Per altra banda els de pagament afegeixen un extra de protecció bloquejant pàgines que poden ser perilloses, protegint-te contra alguns tipus d’atacs i generalment responen més ràpid que la resta.

VPN o tunel SSH

Amb un DNS privat arreglem part del problema, però encara ens queda el tram previ (del teu dispositiu fins al router). Sempre que utilitzem xarxes inalambriques, tant en xarxes públiques com (cafeteries, aeroports, botigues…) com si estem a casa, encara correm el perill de que algú observi el que s’hi mou i pugui quedar-se amb informació que després pugui emprar en contra nostre. Per evitar això, podem encriptar les nostres comunicacions i per aquest fi, tenim almenys dos opcions:

  • Tunnel SSH.
  • VPN.

Possiblement us soni aquesta última opció i es que pràcticament tota la gent que treballa des de casa accedeix als recursos de l’empresa mitjançant una connexió a la VPN corporativa. Aquesta tecnologia no només ens dona accés als recursos d’una xarxa com si estiguéssim connectats directament a ella sinó que a demés tota la comunicació entre el teu dispositiu i la xarxa corporativa és encriptada. Habitualment es fa servir criptografia asimètrica de manera que has d’accedir físicament a un dispositiu autoritzat per poder entrar a la xarxa (almenys fins que sigui accessible la computació quàntica).

Si teniu quelcom de domòtica a casa vostre, heu de tenir en compte que aquests aparells (càmeres, endolls, panys, persianes…) habitualment tenen una carència molt gran en quant a la seguretat i per tant es gairebé obligació que aquests no tinguin accés a Internet i que nomes pugueu accedir vosaltres a traves de comunicacions segures, per exemple una VPN.

Diferencia entre els dos tipus de criptografia

Igual que amb les DNS, es possible contractar una VPN privada (tot i que estic força segur que no son VPN sinó túnels SSH, que veurem en el següent paràgraf) per un preu força reduït (3 – 5€ al més). Un cop connectat a una VPN, estàs navegant a traves d’un servidor i per tant de cara a la resta de dispositius i webs amb les que comuniquis nomes veuran la IP d’aquest servidor. Això permet també evitar les restriccions per regions (geogràfiques). Per exemple alguns continguts de les plataformes streaming com Netflix, HBO… només es poden veure des de certs països. Els serveis de VPN privada, normalment tenen servidors localitzats a diferents països i et deixen connectar-te al que més et convingui. Normalment t’interessarà fer-ho al que estigui més a prop per tenir menor temps de resposta, pots escollir un servidor que estigui en un dels països on es permet veure el contingut que estàs buscant.

L’altre opció, el túnel SSH, és semblant a una VPN però no et dóna accés als recursos de la xarxa directament, només als de l’ordinador amb el que has establert el túnel i amb l’inconvenient que s’ha de configurar l’accés a cada una de les aplicacions que desitges que utilitzin el túnel. Teniu una explicació més detallada en un post que vaig fer un temps.

Que he fet en el meu cas?

Com soc desconfiat de mena, conscient de que no em llegiré tot el contracte per saber exactament que faran amb les meves dades i tinc suficients coneixement com per fer-ho, he optat per crear el meu propi servidor de DNS i VPN. Pensareu que no compensa tenir un ordinador a casa tot el dia encès per la “collonada” de la privacitat (que els hi ho expliquin als de Cambridge Analitica) i l’hipotètic cas de que algú s’interessi per les meves comunicacions. Bé, és subjectiu, però i si et digues pel que et gastes en un dinar a la carta en un restaurant de preu mig a Barcelona, podeu gaudir de totes les avantatges durant molts anys:

  • Velocitat de resposta (especialment quan estic a casa).
  • Màxima privacitat.
  • Bloqueig d’anuncis, tot i cada cop hi ha més webs que detecten que bloqueges i has de permetre-la si vols entrar-hi.
  • Control total sobre les webs a les que s’accedeix des de els meus dispositius, podent-lo aprofitar per fer un control parental propi.
  • Comunicació xifrada a tots els nivells.
  • Accedir a tots els serveis que tingui a la meva xarxa domèstica des de qualsevol lloc i de forma segura.

Sempre s’ha d’intentar trobar quelcom positiu en tot, i la pandèmia (que sembla que encara li queden forces mesos) no es una excepció. Aprofitant que es pràcticament impossible realitzar activitats fora de casa, i que tinc moltes “freakades” per aprendre, m’he decidit a “trastejar” amb una Raspberry pi.

La nova Raspberry Pi 4 model B
La nova Raspberry Pi 4 model B

Per a qui no estigui familiaritzat, es tracta d’un mini-ordinador molt econòmic (des de 35$ en el cas de l’últim model) però molt potent per la seva mida, totalment lliure (hyperconfigurable) i al que, amb traça i coneixements d’electrònica i programació es pot controlar gairebé qualsevol aparell. Aquest trastos son ideals per fer proves de concepte i aprendre sense “embrutar” o posar en risc el teu ordinador principal.

La vaig rebre fa pocs dies, però el primer que he fet amb aquesta petita meravella és augmentar molt significament la meva privacitat i seguretat en les comunicacions. Com consumeix molt poc i fa un soroll gairebé imperceptible es ideal per deixar-la funcionant 24×7 (sempre i quan adeqüis el voltatge del ventiladors, però aixo es un altre assumpte).

Per augmentar la seguretat de tot el conjunt, la Raspberry esta connectada per cable al router (així evito la possible captura de les dades per via inalàmbrica), he instal·lat un software DNS (Pihole), un software de DNS invers (unbound) i un servidor VPN (WireGUard) tots tres de codi lliure.

Sí, crec que el codi lliure és l’únic del que et pots refiar per aquests assumptes, ja que arribat el cas podries revisar el codi del programa i verificar el que fa, però normalment es suficient en que tingui bona reputació dintre del “món” del software lliure (de la mateixa manera que se que no em llegiria un contracte d’un servei de DNS o VPN extern tampoc revisaré milers de línies de codi). No entraré en el debat de si software lliure si o no (potser en un altre article), però no crec que hi hagi cap alternativa comercial que permeti assegurar la teva privacitat.

Donat que per raons obvies no es pot configurar un domini com a servidor de DNS (necessitaries un segon servidor DNS que et traduís el domini del primer que has configurat) i de que pretenia tenir totes les fases de la comunicació cobertes, he acabat per instal·lar un servidor de VPN en la mateixa maquina (Raspberry Pi).

Al servidor de VPN sí que em puc dirigir mitjançant un nom de domini, per tant nomes vaig tenir que donar-me d’alta en un servei de DNS dinàmic (per exemple el noip.com). Aquests serveis et faciliten un subdomini dintre d’un dels seus dominis i et proporcionen la manera de que els actualitzis de forma automàtica la IP a la que l’han de traduir. Com el meu router ja te per defecte l’opció d’informar del canvi de IP a aquests tipus de serveis, nomes he hagut de configurar-li les credencials del servei. D’aquesta manera em puc connectar al domini (per exemple raspberry.ddns.net) sense preocupar-me de si el meu router ha canviat de IP.

Esquema de la estructura muntada

Aquesta “arquitectura” em permet la comunicació entre els meus dispositius inalàmbrics i el servidor DNS sigui encriptada sempre que estigui connectat a la VPN. A més a més, puc accedir a tots els serveis que ofereixen els dispositius de la meva xarxa (ara mateix estàn tots en la Raspberry Pi) sense que estiguin oberts a tot Internet. Òbviament la primera sol·licitud a la DNS no la puc realitzar al meu DNS, ja que necessito saber la IP que te en aquell moment el meu router per tant no es farà encriptada, però nomes serà aquesta primera i un cop establerta la comunicació amb la VPN la resta de comunicacions si que ho seran.

Per la instal·lació i configuració de tota aquesta plataforma em va ser de moltíssima ajuda aquesta web.

Per no avorrir i no copiar l’enllaç anterior no explicaré tot el proces realitzat, però si algú ho vol fer pel seu compte i te algun dubte, que ho posi en comentaris o m’escrigui un e-mail i mirem de solucionar-ho. Nomes una advertència, sinó voleu més mal de caps, es millor que us oblideu d’utilitzar-los des de contenidors, ja que Docker gestiona les xarxes dels respectius contenidors i haureu de jugar amb tres xarxes a la vegada (la de Docker, la interna de la VPN i la pròpia xarxa local)

Costums

Aquí ja entrem en assumptes més subjectius i en alguns casos no hi ha gaire espai per la millora, especialment quan arribem a nivell de servei, m’explico.

A nivell de navegador, podem migrar a navegadors que es preocupin per la nostre privacitat en comptes d’utilitzar els “standard” (Chrome, Edge…). Com sempre per tenir la seguretat hauríem de mirar navegadors de codi obert. El que té major quantitat d’usuaris (i per tant el que recomano) es Firefox.

A més a més, Firefox per defecte te incrustat un mètode de “DNS over https” utilitzant el servei de DNS de Cloudfare. Si investiguem una mica veiem que aquests servei de DNS guarda la petició durant 24h, en quan a privacitat no guanyem, però almenys a nivell seguretat estem coberts. De totes maneres si munteu una arquitectura com la de la imatge anterior, podríeu deshabilitar aquesta protecció i mantenir la funcionalitat completa de la nostre plataforma (en l’aplicació per a mòbils no he aconseguit desactivar-ho).

Opcions -> Parametres de xarxa -> Habilitar DNS sobre HTTPS

En temes de privacitat, tot el que estem veient no té sentit si seguim fent servir el buscadors típics (Google, Bing…) mentrestant estem identificats amb el seu compte. Tot i no estar identificats i que utilitzem Firefox hi ha mètodes per que el buscador guardi tots els enllaços pels que ens estem movent, per tant el millor mètode es fer servir un cercador que respecti la nostre privacitat, com per exemple Duck Duck go.

Com és obvi, en general com menys serveis en línia fem servir mes privacitat ens quedarà, però alguns serveis son especialment difícils de deixar per la seva utilitat i la falta d’alternatives “reals”. Si busquem, gairebé sempre trobem alternatives lliures, però moltes vegades ens veiem obligats a utilitzar les comercials per l’us generalitzat en la societat actual. Si realment estem conscienciats podem intentar transformar el nostre voltant donant a conèixer alternatives i utilitzant-les però haurem de mantindre l’ús en les comercials per mantenir-nos dins la societat. Aquí teniu algunes alternatives més conegudes a aquests tipus de serveis:

Servei comercialAlternativa lliure
FacebookDiaspora
WhatsAppSignal
Google FotosSyncthing
Google DriveownCloud
GoogleDuck Duck Go
Google MapsOpenStreetMaps

Una altre comoditat a la que hauríem de renunciar es registrar-nos/identificar-nos a altres webs utilitzant el compte de Google/Facebook… ja que els estem dient a on estem accedint a aquestes corporacions.

Finestra que et permet identificar-te utilitzant el compte que tenim en Google o Facebook

Un altre exemple de la dificultat de mantenir la privacitat és que es pràcticament impossible comprar un dispositiu mòbil que no funcioni sota Android (2500 milions de dispositius) o iOS (2000 milions de dispositius) per tant, mentrestant estiguem utilitzant aquests sistemes operatius en els nostres dispositius, serà molt difícil mantenir la nostre privacitat totalment controlada.

Conclusions

No crec que hi hagi dubte sobre la importància de intentar augmentar la seguretat en les nostre comunicacions tant com ens sigui possible. Hem vist que hi ha formes que requereixen major formació tècnica però que sempre tenim alternatives comercials que per un mòdic preu ens ho posen molt fàcil.

En quant a la privacitat, és un tema molt personal, però crec que al final lo important és ser conscients de la nostra privacitat i de la falta d’aquesta. Un cop hi hem reflexionat, podem arribar al punt d’equilibri personal entre el valor que ens donen els serveis comercials respecte a les alternatives lliures existents i el valor que li donem a la nostre privacitat.

Leave a comment

Your email address will not be published. Required fields are marked *