Qüestió de confiança

Privacitat i seguretat a la xarxa

Privacitat i seguretat a la xarxa

En la actualitat, és difícil dir que confiem cegament en ningú; fins i tot el teu millor amic et pot clavar una daga a l’esquena, i només direm això de c’est la vie. Però per internet tot es complica: no només tenim que vore-nos les cares amb el problema de decidir qui és digne de la nostra confiança sinó que també és problemàtic el decidir si la persona amb qui tractes és realment qui afirma ser; i això sí que és greu.

Ja són quotidianes accions com comprar l’últim gadget del mercat directament des del nostre navegador, a colp de ratolí; tampoc ningú s’espanta d’enviar dades personals o del treball per correu electrònic. Però qui ens diu que eixe correu que hem rebut és realment de qui pensem?, o que eixa tenda on-line és realment la tenda del cantó però en versió virtual?: és tan fàcil usurpar l’identitat d’altre a la xarxa que hem tingut que aprendre a diferenciar a les genuïnes imitacions i acontentar-nos amb una relativa seguretat.

Posem l’exemple de les tendes on-line. Hem après a verificar que la barra de direcció del nostre explorador està blava o verda per a decidir que la pàgina és segura… però sabem realment que vol dir el color de la barra?, qui decideix realment quina barra és blanca, blava o verda?, això és el que vull explicar de la manera més planera possible: parlarem sobre els mecanismes d’autenticitat, seguretat i privacitat a la xarxa.

Els correus electrònics tenen els mateixos problemes que els postals

Els correus electrònics tenen els mateixos problemes que els postals

Primer anem a aproximar-nos al problema dels correus electrònics. Imagina’t que t’arriba un correu del teu veí de dalt convidant-te a una festa esta mateixa nit; com pots saber segur que és ell que t’ha convidat, i no altre fent-se passar per ell?. La primera solució i la més simple seria pujar a dalt i preguntar-li; o potser cridar-li per telèfon. Però clar, seria un poc estúpid cridar per telèfon sobre una invitació que ens arriba per correu, no?.

Altra opció seria respondre-li a la seua adreça personal: si ell no ha sigut el que ha originat el missatge, al vore la teua resposta s’adonaria de l’error i t’avisaria… però trobem un altre problema, i és que normalment no tenim control del que passa a la xarxa que hi ha entre el teu ordinador i el d’ell, i la persona malintencionada que ha començat el problema podria manipular esta prova igual que va manipular el primer missatge; fins i tot potser tinga les claus d’accés al correu del teu veí!.

La tercera opció seria introduir en tots els correus una clau prefixada amb ell; el problema d’això és que un tercer pot llegir un correu verídic i copiar la clau. És clar que pots crear un sistema complexe per a que cada correu tinga la seua pròpia clau generada d’alguna forma especial… però ens trobem amb un altre problema: tindries que convenir un sistema per a cadascú dels teus amics, diferent per a cada u d’ells. Si tens més de dos amics la cosa es complica molt. Estos sistemes s’anomenen de clau simètrica, ja que necessites la clau del problema tant per a signar-lo com per a comprovar la signatura.

En realitat nosaltres només volem un sistema simple i eficaç per a verificar que el correu és realment del nostre veí, però pareix que no és tan fàcil. Al començament dels anys ’70 del segle passat, al GCHQ del Regne Unit van començar a provar amb un nou sistema: el de clau asimètrica. Este es basa en què hi ha operacions mols simples de fer en un sentit, però realment complicades en el sentit invers: per exemple desfer un trencaclosques és molt senzill, però refer-lo amb només les peces i sense cap imatge de com era és realment difícil.

Signatura amb algoritme de clau asimètrica

Signatura amb algoritme de clau asimètrica

Per això, estos senyors van plantar la llavor dels sistemes més segurs que hem trobat fins ara: la idea és que el sistema per a signar siga públic, conegut per tots; i després cada usuari del sistema té una clau pública i una privada: la clau pública la coneixen tots, però la privada només l’usuari corresponent. Les claus públiques i privades estan relacionades però són diferents, de manera que és molt simple generar amb la clau privada un codi o identificador únic per a cada missatge, i verificar després que eixe codi és correcte amb la clau pública; però generar el codi amb la clau pública es realment complicat per no dir impossible amb les tecnologies actuals.

Este sistema també soluciona dos problemes dels que no hem parlat fins ara: l’intimitat i la seguretat de que el missatge no ha sigut canviat pel camí. Podem imaginar sense problemes una modificació en què l’operació de generar un missatge il·legible amb la clau pública d’un altre siga senzill i que amb la privada d’eixa altra persona desxifrar el galimaties siga simple. Però la màgia està que només amb la pública és computacionalment impossible desxifrar-lo. És el mateix sistema, però al revés.

I de la seguretat que el missatge no s’ha canviat, només hi ha que relacionar el codi únic del missatge amb el cos d’este, de manera que si canvies el missatge pel camí el codi no corresponga. Amb el nostre sistema imaginat tenim tots els problemes fins ara resolts.

Exemple de clau pública PGP

Exemple de clau pública PGP

Tots els problemes?, en realitat no. Estàvem tan pendents en resoldre els que es creaven quan hem començat a aplicar les primeres solucions simples, que ens hem oblidat del problema principal: verificar que el correu rebut és realment del veí de dalt. Ara tenim un sistema genial per a verificar que el correu és realment de l’amo de la clau pública amb el que verificarem el codi, però no tenim manera de saber si realment eixa clau pública (i la seua corresponent clau privada) són de qui clamen ser: ens falta confiar en eixes claus.

Clar, la solució simple en este cas és intercanviar personalment les claus amb els teus amics, de manera que pots estar segur que confies en elles. Però es pot donar el cas de que un amic d’un amic t’envie un correu… com confies en eixa clau?. O més encara, molt probablement mai has intercanviat claus amb el teu veí, a qui en realitat veus només un parell de vegades a la setmana a l’escala de l’edifici… ja estàs com al principi.

Però tranquil, que tot té solució excepte la mort i el sistema polític actual. Per este problema hi ha dos aproximacions diferents, i les dos són igualment vàlides: el sistema d’anell i el sistema de verificació jeràrquica. El primer s’utilitza sobre tot al correu electrònic i és el que implementen els programaris basats en PGP/GPG. El segon potser que siga més conegut per a la població en general i és el que s’utilitza en les connexions segures a les pàgines web, amb certificats x.509 (el de les barres de colors que podem trobar tots els dies al nostre explorador web).

Uh! Vaya lio! Los amigos de mis amigas son mis amigos!

Uh! Vaya lio! Los amigos de mis amigas son mis amigos!

Primer anem a parlar del sistema basat en anells, i en especial el cas del PGP/GPG. PGP són les sigles de Pretty Good Privacy (privacitat molt bona), i GPG és la seua implementació lliure, que vol dir GNU Privacy Guard (guardià de privacitat GNU). Com hem dit està basat en un sistema de clau asimètrica, però amb la peculiaritat de que són els mateixos usuaris qui decideixen en quines claus confien i en quines no.

Què vol dir això de que són els usuaris els que decideixen en qui confiar? en realitat és molt simple. Quan en un sistema en anell confies en una persona (per que la coneixes i t’ha donat personalment la seua clau pública) tu li signes la clau pública amb la teua clau privada i puges la signatura a un servidor de claus. Amb això s’utilitzen una sèrie d’algoritmes per a decidir la seguretat d’una clau basant-se en les signatures que ha obtingut. Un exemple per a clarificar-ho tot: tu no has intercanviat claus mai amb el teu veí, però potser que tu i ell compteu amb amics comuns que sí que s’han signat les claus corresponents. Com tu sí que confies en els teus amics, i els teus amics confien en ell, tu acabes confiant en ell. Simplificant-lo al màxim és la coneguda frase els amics dels meus amics són els meus amics; sí, com la cançó d’Objetivo Birmania.

Però clar, este sistema té també els seus inconvenients: una persona malintencionada però real pot aconseguir moltes signatures correctes per a la seua clau i signar altres claus fraudulentes. Com la seua clau té molta confiança, les falses que ell ha signat també la reben. Podem vore que el sistema es basa en la bona fe de les persones, i en què les xarxes de signatures siguen suficientment extenses com per a evitar estes possibles errades en la confiança.

Sempre hi ha algú més gran que tu

Sempre hi ha algú més gran que tu

I ara anem a vore l’altre sistema, el basat en jerarquies. Si en el sistema d’anell la seguretat queia en els usuaris, este altre està basat en arbres de confiança, a on dalt de tot hi ha una entitat certificadora que verifica que la persona és qui diu ser; o com a mínim que la entitat que hi ha baix d’ella en el arbre de jerarquia és vàlida per a certificar, i així fins arribar als usuaris.

Com comentava abans, este sistema és el que s’utilitza en els servidors web. Són estes autoritats certificadores les que diuen si la barra ha de ser blava o verda. També és el sistema que actualment està introduint el Ministeri de l’Interior espanyol, amb un certificat per a cada ciutadà espanyol dins del seu DNI. Utilitzant això com exemple, els certificats del DNI estan signats per la FNMT, que fa d’entitat certificadora arrel de l’Estat Espanyol.

Però clar, este sistema també té els seus problemes. Tornant al correu que volem verificar si és realment del veí, es pot donar el cas de que dubtem de l’entitat certificadora. Si el nostre veí ha utilitzat el certificat del seu DNI, estarà signat per la FNMT… però com validar que eixe certificat arrel de l’estat espanyol és valid?, qui certifica a les entitats certificadores?; o millor dit: qui vigila als vigilants?.

Ara per ara la solució actual és que cada aplicació té el seu contenidor de certificats arrels en qui tu confiaràs t’agrade o no. El que la barra en el teu navegador web es pose blava, verda o roja depén de si el certificat arrel de la entitat que ha signat el certificat de la web està o no en eixe contenidor del teu navegador específic. O en el cas del nostre mail del veí, que la nostra aplicació de correu tinga eixe certificat arrel; tornant a l’entitat de la FNMT, curiosament no està afegit en pràcticament cap contenidor de les aplicacions més utilitzades, i per tant totes les signatures apareixen com invàlides encara que siguen genuïnes.

Sempre el vil metall

Sempre el vil metall

I ací entren els diners a la trama, ja que les tasques de certificació es paguen a preu d’or. Resulta que és molt complicat i es necessita molt de temps per a que un certificat arrel d’una entitat certificadora entre en tots els contenidors de les aplicacions més utilitzades. I per això, quan una empresa aconseguís esta tasca titànica ven a preus moltes vegades poc raonables les signatures amb eixe certificat arrel acceptat.

Al començament, estes entitats eren molt poquetes, pràcticament un monopoli. Però amb el pas del temps moltes empreses van aconseguir ficar els seus certificats a tot arreu, amb la conseqüent pèrdua de seguretat del sistema: quan més certificats arrels i empreses pel mig, més fàcil és que una persona malintencionada aconseguisca un certificat vàlid però fraudulent.

Extended Validation al Firefox

Extended Validation al Firefox

Per això mateix, les empreses del sector van pegar una volta més al caragol del sistema i van inventar l’Extended Validation. Tot el món el coneixerà com el color verd que apareix en la barra de direccions de moltes de les pàgines de venta que utilitzem; en realitat només vol dir que l’amo de la pàgina ha passat més controls de seguretat que els necessaris per aconseguir un certificat normal.

Amb això i pensant només en les pàgines web, tenim 4 colors que poden aparèixer en la nostra barra de direccions de l’explorador web:

  • Blanc: El servidor no conté cap certificat, les dades s’envien en clar i qualsevol pot llegir-les pel seu camí.
  • Roig: El servidor si que conté un certificat, però o no és vàlid, o no està signat per una entitat arrel certificadora en què el teu navegador confie. Les dades van xifrades igualment.
  • Blau: El servidor conté un certificat correcte i que el teu navegador confia. Les dades van xifrades.
  • Verd: El servidor conté un certificat “extended validation”. Per la resta és idèntic a la barra blava
Certificat vàlid sense Extended Validation

Certificat vàlid sense Extended Validation

I ja per acabar este text tornem finalment amb el benvolgut correu del nostre (potser ja odiat) veí. Suposant que el seu missatge vinga signat amb un certificat que estiga recolzat per una entitat certificadora i el seu certificat arrel estiga dins del contenidor del teu client de correu, pots confiar en ell. En qualsevol altre cas la meua recomanació és… anar igualment a la festa i bufar-te tot el que pugues: que la vida són dos dies, i no estem com per a malbaratar-los!.

I com sempre, els crèdits: la foto de l’encapçalament és de Miguel Angel Herrero (cc-by-cn-sa), la foto de la carta és de Ulrich Dobiasch (cc-by-nc-nd), la clau GPG és de Michael Wheeler (cc-by-nc-sa), la de les nines matryoshka de Frangipani (cc-by-nc-nd) i la del monopoli de David Muir (cc-by-nc-nd). Vull donar les gràcies també a Antonio Pérez i a Jordi Carrillo per fer-me una revisió entre iguals del text.

Encara sense comentaris.

Deixa un comentari

Els comentaris no estan moderats; per favor, sigues correcte i no entres en descalificacions personals.