Manual GnuPG - Primera part: conceptes

Pàgina d'inici

Els diferents episodis de revelació de les activitats dels diferents serveis d'espionatge, en especial de la NSA, han deixat ben clar el que alguns ja avançavem des de fa temps:

  1. Els Estats tenen una especial predilecció per saber de què parlem els ciutadans.
  2. Internet és, per la seva pròpia estructura, un camp llaurat, sembrat i a punt de recollir, amb els tractors i recollidores a engegades i punt per a que qualsevol amb la capacitat adient pugui recolectar una quantitat enorme d'informació.

Aquesta informació es compòn, entre d'altres, de comunicacions electròniques (email, FAX, SMS, trucades telefòniques...), tant el contingut com les meta-dades (qui parla amb qui, amb quina freqüència, de què parlen...); dels 'time-lines' de les 'xarxes socials', juntament amb els seus perfils. Aquests perfils proporcionen encara més informació sobre nosaltres que la que es pugués aconseguir mitjançant l'intervenció de qualsevol medi de comunicació.

L'ús de les eines de relació social com Facebook, o les micro-publicacions de Twitter no entren dins l'àmbit d'aquest petit manual, tot i que personalment en recomano el menor us possible, ja que cal tenir molt clar que qualsevol cosa que fem o diem a la xarxa, no només és públic, sino que quedarà flotant per l'éter fins que algú ho trobi i ho pugui usar en la nostra contra, fins i tot quan hagin passat molts anys i ja no compartim aquella visió o pensament.

Per tant, una de les opcions a tenir en compte a l'hora de comunicar-nos per Internet és l'ús d'eines de xifrat. Una d'elles és GnuPG

És personal. És privat. I no li importa a ningú més que a tu.

Així començava el manual de Pretty Good Privacy, un programari de xifrat creat per Phil Zimmerman als anys 90, que es va convertir en poc temps en l'estàndard criptogràfic a nivell d'usuari, i que amb el temps va donar forma a OpenPGP, l'estàndard criptogràfic d' Internet.

El Projecte GNU fa anys que va començar a desenvolupar una versió lliure de PGP anomenada GnuPG, GNU Privacy Guard (GPG). Aquest programari funciona en qualsevol sistema operatiu majoritari, i ve instalat per defecte en qualsevol distribució de GNU/Linux.

GPG no només permet xifrar missatges de correu electrònic, sino que també serveix per a xifrar arxius en un disc dur. A més, també es pot emprar en programes de missatgeria instantània basats en Jabber.

Per poder enviar missatges de correu electrònic xifrats amb GPG, cal instalar alguna de les extensions disponibles per a clients de correu electrònic, com pot ser Enigmail per al client Thunderbird. En altres clients de correu, com Kmail o Evolution, l'aplicació ja inclou la gestió de claus GPG.

El sistema OpenPGP es basa en un sistema de claus amb una part pública i un de privada. La clau pública és la que farem servir per a que els altres usuaris ens puguin enviar missatges xifrats, mentre que la part privada és la que servirà per a desxifrar. El mateix programari s'encarrega de separar aquestes dues claus. Només cal tenir en compte que la part privada és la que hem de guardar en un lloc segur.

Sistema de claus: part pública / part privada

En què consisteix la part pública? És un petit fitxer que inclou el número d'identificació únic de la clau, la nostra o les nostres adreces de correu electrònic associades, un xic d'informació sobre nosaltres que haurem de posar si volem, la petja digital de la clau (fingerprint o FPR) i les 'identitats', és a dir, les adreces de correu que han signat la nostra clau. En algunes versions, fins i tot podem afegir una fotografia.

En què consisteix la part privada? És la part que permet emprar la clau pública. Inclou una contrassenya per a desxifrar tot. Com deia més amunt, cal tenir aquesta part privada en un lloc segur, ja que si la perdem (s'esborra accidentalment) o per alguna raó ens la roben (molt poc probable), perdrem la possibilitat de llegir els missatges, futurs i passats, ni xifrar els que enviem nosaltres.

Què volen dir "claus públiques, privades i identitats que signen"?

El sistema de xifrat OpenPGP és un sistema asimètric, i per això funciona amb dos claus. La privada, que és la que ens permet enviar correu electrònic xifrat i la que ens permet llegir el correu que ens envien els altres.

La part pública seria com una mena de "tarja de visita". És la que emprem per 'donar-nos a conèixer' i que permet a algú a qui nosaltres no coneixem prèviament comunicar-se amb nosaltres. Aquesta pot ser un dels aspectes més importants, ja que tradicionalment, dues persones no poden comunicar-se de forma segura si prèviament no acorden unes normes: quin tipus de xifrat, quin codi, com s'enviaran els missatges, etc.

Un sistema assimètric de dues claus ens permet comunicar-nos amb qualsevol persona que el faci servir, només aconseguint l'adreça de correu electrònic i la part pública de la clau de l'altre. Mentre que la part privada ja hem dit (dues vegades!) que s'ha de guardar de forma segura, la part pública és la que s'haurà de publicitar a tort i a dret, per a facilitar les comunicacions.

En tant a les "identitats" i les "signatures", és la part que dona 'credibilitat' a la nostra clau de xifrat. Per exemple, tenim a en Miquel i en Joan, cadascú amb el seu propi joc de claus. En Miquel i en Joan es coneixen de fa anys, i per tant es signen les claus mutuament (seguint un protocol que veurem més endavant). Amb aquesta acció, en Miquel està afirmant que coneix a en Joan personalment, que està segur que en Joan sap com funciona el sistema i que la clau d'en Joan pertany realment a en Joan.

Això últim, especialment, és una part fonamental, ja que tot el sistema es basa en la confiança en que una clau pertany a qui realment diu que pertany. Com més signatures tinguem, és a dir, com més persones assegurin que la clau és nostra, més confiança tindrà el sistema.

Aquestes signatures es poden aconseguir de diferents formes. Una d'elles és anant a una "keyparty", una trobada d'usuaris de GPG o de PGP on s'intercanvien claus, es comproven i verifiquen les dades (es comprova que l'identitat de la clau correspòn a la persona física que tenim al davant) i, un cop a casa, es signen les claus dels assistents.

Per altra banda, també es poden signar claus de persona a persona. Posem per cas que coneixeu a algú, intercanvieu targes de visita i veieu que la tarja inclou el FPR o el número d'identitat de la clau. Cadascú mostra una identificació vàlida (DNI, passaport o similar) per a demostrar que és qui realment diu ser, li diu el compte de correu electrònic associat i li apunta tota la seqüència de la petja digital.

Un cop a casa, podrem buscar la clau pública del nostre nou conegut a un servidor de claus o al seu web personal, baixar-la i comparar les dades que hi apareixen amb els que ens ha donat en persona i, si tot és correcte i coincideix, podrem signar la seva clau, afegint el nivell de confiança que ens mereix. Un cop signada, l'etiqueta recomana exportar la clau a un fitxer i enviar-la al propietari per a que la pugi al servidor de claus o actualitzi el seu servidor personal.

L' anell de confiança

La tercera opció per a signar claus és mitjançant el que anomenem "l'anell de confiança". Com ja hem dit abans, no s'hauria de signar cap clau d'algú que no coneixem, ja que per començar, res ens garantitza que aquella clau pertanyi realment a aquella persona. Però gràcies al procés de verificació de les dades que hem vist, és possible establir un anell que ens mostri el nivell de confiança entre tots.

Quan jo 'signo' una clau, per exemple la d'en Miquel, estic afirmant de forma pública que el propietari de la clau és qui diu ser, de forma que quan algú que em conegui a mi però no conegui a en Miquel i vegi que jo he signat la clau d'en Miquel, sabrà què és una persona que es preocupa del procés de verificació i signat de claus de xifrat. Si aquesta tercera persona confia en el meu criteri, podrà signar la clau d'en Miquel sense necessitat de conèixe'l personalment i fer la comprovació. Això és l'anell de confiança.

Aquesta segona forma de signar claus té uns límits, dins la nostra 'agenda' de claus, podem canviar la confiança que donem als altres amb l'atribut "trust": desconegut, cap, marginal i total.

Si no sabem absolutament res del propietari d'una clau (per exemple volem comunicar-nos amb algú per primer cop i ens baixem la seva clau pública del seu servidor), el nivell serà "desconegut". Per a aquelles persones que sabem que signen les claus sense fer cap comprovació, marcarem "cap". Si sabem que el propietari coneix i entén les implicacions de signar una clau i fa les comprovacions pertinents, podem marcar com "marginal". I per acabar, si sabem que la persona comprèn a la perfecció el sistema i considerem que la seva signatura és tan vàlida com la nostra, marcarem "total".

Aquest atribut "trust" és informació que no s'exporta a les claus públiques. És informació per a nosaltres, que podem modificar quan sigui necessari.

Òbviament, jo podré signar les claus d'algú que no conegui, sempre i quan vegi que estan signades per persones de la meva confiança total i absoluta. No perque algú tingui una clau amb 100 signatures de persones que no conec, hi hauré d'afegir també la meva! Només les signaré, repeteixo, si veig que algú que jo sé que és responsable l'ha signat.

Posem que un dia importem la clau pública de la persona N, i veiem que està signada per B, C, D i E. En el passat, per exemple a una "keyparty", vam fer totes les comprovacions necessàries i varem signar les claus de B, C, D i E. Tot i que a N no la coneixem ni sabem res d'ella, si que sabem que B, C, D i E son conseqüents amb el xifrat i signat de claus i, per tant, els hem assignat un nivell de confiança marginal (o total si ho creiem adient). Com N té la seva clau signada per quatre persones de la nostra confiança, és a dir que sabem fefaentment que es preocupen per comprovar-ho tot, podrem signar la clau de N 'a cegues' i sense necessitat de comprovar la seva identitat (ja ho han fet per nosaltres quatre persones).

Això si, no li donarem una confiança "total" ni "marginal" d' entrada, si no que posarem "desconegut": cal tenir en compte que ens basem en el coneixement que tenim de les persones B, C, D i E, i que a N no el coneixem en persona encara.

Si en el futur ens trobem amb N i comprovem que és una persona que té cura de verificar l'identitat i fer totes les passes necessàries, podrem canviar el nivell de confiança, reforçant l'anell.

En termes generals, es pot signar una clau 'a cegues' si:

En el proper article veurem com fer servir GPG amb un gestor gràfic en qualsevol sistema operatiu i, d'aquesta manera, començar a comunicar-nos de forma segura.



Contacte: arnauh [a] arfues.net

Sóc observant del Shabbat Digital, un dia de descans tecnològic. Aquest domini, per tant, no es pot consultar entre la posta de sol del divendres i la de dissabte. Com que per a aquesta automatització empro un script genèric de holyclock.com, aquesta web també romadrà tancada durant les festes del calendari jueu.