Salta el contingut

Pràctica: Correu Electrònic Segur amb GPG/PGP

Objectius

En aquesta pràctica aprendràs a:

  • Generar claus GPG/PGP per signatura digital i xifrat
  • Configurar Thunderbird per utilitzar claus GPG
  • Enviar correus signats digitalment
  • Enviar correus xifrats de punt a punt (E2EE)
  • Intercanviar claus públiques entre usuaris
  • Verificar signatures digitals de correus rebuts
  • Entendre la diferència entre transport encryption (TLS) i end-to-end encryption (GPG)

Durada estimada

3-4 hores

Requisits previs

  • Pràctica de Mailcow completada (servidor de correu funcional)
  • Mozilla Thunderbird instal·lat
  • Coneixements bàsics de criptografia asimètrica
  • Mínim 2 comptes de correu configurats

Introducció

GPG (GNU Privacy Guard) i PGP (Pretty Good Privacy) són sistemes de criptografia que permeten:

  1. Signatura Digital: Garantir que el correu realment prové de qui diu ser-ne l'autor i que no ha estat modificat
  2. Xifrat End-to-End (E2EE): Assegurar que només el destinatari pot llegir el contingut del missatge, ni tan sols el servidor de correu pot accedir-hi

Diferències amb SMTP/TLS: - SMTP/TLS (STARTTLS): Xifra la comunicació entre servidors, però el correu es guarda desxifrat al servidor - GPG/PGP: Xifra el contingut del missatge de manera que només el destinatari amb la clau privada pot desxifrar-lo

Cas d'ús real: Periodistes, activistes, metges, advocats i qualsevol persona que necessiti confidencialitat absoluta utilitza GPG per protegir comunicacions sensibles.


Part 1: Generació de Claus GPG

Pas 1: Instal·lar GPG

Windows: - Descarrega Gpg4win - Instal·la amb les opcions per defecte - Verifica: gpg --version

Linux:

sudo apt install gnupg
gpg --version

macOS:

brew install gnupg
gpg --version

Pas 2: Generar la primera parella de claus

Per al primer usuari (VOSTRENOM1@NOMCOGNOM.local):

gpg --full-generate-key

Opcions: 1. Tipus de clau: (1) RSA and RSA (per defecte) 2. Mida de clau: 4096 bits (màxima seguretat) 3. Caducitat: 1y (1 any) 4. Nom real: VOSTRENOM VOSTRECOGNOM 5. Adreça de correu: VOSTRENOM1@NOMCOGNOM.local 6. Comentari: Clau GPG pràctica M0375 7. Contrasenya: GPG_VOSTRENOM_2024!

El procés pot tardar uns minuts mentre genera entropia.

Pas 3: Verificar la clau creada

gpg --list-keys

Hauries de veure:

pub   rsa4096 2025-01-XX [SC] [caduca: 2026-01-XX]
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid           [ultimate] VOSTRENOM VOSTRECOGNOM (Clau GPG pràctica M0375) <VOSTRENOM@NOMCOGNOM.local>
sub   rsa4096 2025-01-XX [E] [caduca: 2026-01-XX]

Còpia l'identificador de la clau (els 40 caràcters hexadecimals).

Pas 4: Generar una segona parella de claus

Repeteix el procés per al segon usuari (VOSTRENOM2@NOMCOGNOM.local):

gpg --full-generate-key
  • Nom: VOSTRENOM2 VOSTRECOGNOM
  • Email: VOSTRENOM2@NOMCOGNOM.local
  • Contrasenya: GPG_VOSTRENOM2_2024!

Part 2: Exportar i Intercanviar Claus Públiques

Pas 1: Exportar la clau pública del primer usuari

gpg --armor --export VOSTRENOM@NOMCOGNOM.local > clau-publica-VOSTRENOM.asc

Aquest fitxer conté la clau pública en format ASCII que pots compartir amb altres usuaris.

Pas 2: Visualitzar la clau pública

cat clau-publica-VOSTRENOM.asc

Veuràs un bloc de text com:

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBGXXXXXXXXXXX...
...
-----END PGP PUBLIC KEY BLOCK-----

Pas 3: Exportar la clau pública del segon usuari

gpg --armor --export VOSTRENOM2@NOMCOGNOM.local > clau-publica-VOSTRENOM2.asc

Pas 4: Simular l'intercanvi de claus

En un escenari real, els usuaris s'enviaran aquestes claus per correu o les publicaran a un servidor de claus. Per a aquesta pràctica:

Usuari 1 importa la clau pública d'Usuari 2:

gpg --import clau-publica-VOSTRENOM2.asc

Usuari 2 importa la clau pública d'Usuari 1:

gpg --import clau-publica-VOSTRENOM.asc

Pas 5: Verificar i confiar en les claus importades

Llista totes les claus:

gpg --list-keys

Edita la confiança de la clau importada:

gpg --edit-key VOSTRENOM2@NOMCOGNOM.local

Dins de l'editor GPG:

gpg> trust

Selecciona: 5 = I trust ultimately

Després:

gpg> quit

Repeteix per a la clau de l'altre usuari.


Part 3: Configurar Thunderbird amb GPG

Pas 1: Habilitar OpenPGP a Thunderbird

  1. Obre Mozilla Thunderbird
  2. Ves a Menú → Preferències → Seguretat → Xifrat de punt a punt (E2E)
  3. Activa OpenPGP

Pas 2: Importar claus GPG a Thunderbird

Per al primer compte (VOSTRENOM@NOMCOGNOM.local):

  1. Ves a Eines → Gestor de claus OpenPGP
  2. Fes clic a Fitxer → Importa claus secretes des d'un fitxer
  3. Navega fins al directori de claus GPG:
  4. Windows: C:\Users\USUARI\AppData\Roaming\gnupg\
  5. Linux: ~/.gnupg/
  6. Selecciona el fitxer de clau privada o importa des de la línia de comandes:
gpg --armor --export-secret-key VOSTRENOM@NOMCOGNOM.local > clau-privada-VOSTRENOM.asc
  1. Importa clau-privada-VOSTRENOM.asc a Thunderbird
  2. Introdueix la contrasenya: GPG_VOSTRENOM_2024!

Pas 3: Assignar la clau al compte

  1. Ves a Configuració del compte → Xifrat de punt a punt
  2. A OpenPGP, selecciona Afegeix clau
  3. Tria Utilitza la teva clau externa mitjançant GnuPG
  4. Introdueix l'identificador de la clau (obtingut amb gpg --list-keys)
  5. Desa els canvis

Repeteix per al segon compte.


Part 4: Enviar Correus Signats Digitalment

Pas 1: Redactar un correu amb signatura

Des del primer usuari (VOSTRENOM@NOMCOGNOM.local):

  1. Fes clic a Redacta
  2. A: VOSTRENOM2@NOMCOGNOM.local
  3. Assumpte: Prova de signatura digital - VOSTRENOM VOSTRECOGNOM
  4. Cos: "Aquest correu està signat digitalment amb la meva clau GPG per verificar la meva identitat."
  5. IMPORTANT: Abans d'enviar, activa Seguretat → Signa digitalment aquest missatge
  6. Envia el correu
  7. Introdueix la contrasenya GPG quan ho demani

Pas 2: Verificar la signatura al destinatari

Al segon usuari (VOSTRENOM2@NOMCOGNOM.local):

  1. Obre el correu rebut
  2. Hauries de veure una icona de segell o firma al costat de l'assumpte
  3. Fes clic a la icona per veure els detalls de la signatura
  4. Comprova que diu: "Signatura vàlida de VOSTRENOM VOSTRECOGNOM VOSTRENOM@NOMCOGNOM.local"

Pas 3: Verificar signatura des de la línia de comandes

Exporta el correu en format .eml des de Thunderbird i executa:

gpg --verify correu-signat.eml

Hauries de veure:

gpg: Signatura correcta de "VOSTRENOM VOSTRECOGNOM <VOSTRENOM@NOMCOGNOM.local>"


Part 5: Enviar Correus Xifrats (E2EE)

Pas 1: Redactar un correu xifrat

Des del primer usuari:

  1. Redacta un nou correu
  2. A: VOSTRENOM2@NOMCOGNOM.local
  3. Assumpte: Correu confidencial xifrat - VOSTRENOM
  4. Cos: "Aquest missatge està xifrat de punt a punt. Només tu, amb la teva clau privada, pots llegir aquest contingut. Ni tan sols el servidor de correu pot accedir-hi."
  5. Activa Seguretat → Xifra aquest missatge
  6. Opcional: També activa Signa digitalment per combinar signatura + xifrat
  7. Envia

Thunderbird xifrarà automàticament el missatge utilitzant la clau pública del destinatari.

Pas 2: Llegir el correu xifrat al destinatari

Al segon usuari:

  1. Obre el correu rebut
  2. Hauries de veure una icona de cadenat indicant que està xifrat
  3. Thunderbird desxifrarà automàticament el missatge utilitzant la teva clau privada
  4. Si et demana la contrasenya, introdueix: GPG_VOSTRENOM2_2024!
  5. Comprova que pots llegir el contingut

Pas 3: Intentar llegir el correu xifrat sense la clau

Per demostrar que realment està xifrat:

  1. Exporta el correu xifrat en format .eml
  2. Obre'l amb un editor de text (Notepad++, VS Code)
  3. Veuràs que el contingut està xifrat i il·legible:
-----BEGIN PGP MESSAGE-----

hQIMAxxxxxxxxxxxxxx...
-----END PGP MESSAGE-----

Part 6: Proves Avançades

1. Correu signat + xifrat simultàniament

Envia un correu activant tant signatura com xifrat. Això proporciona: - Autenticació: Pots verificar qui l'ha enviat - Confidencialitat: Només el destinatari pot llegir-lo - Integritat: Detecta si ha estat modificat

2. Revocar una clau

Si la teva clau privada es veu compromesa, pots revocar-la:

gpg --gen-revoke VOSTRENOM@NOMCOGNOM.local > revoke-VOSTRENOM.asc

Guarda aquest certificat de revocació en un lloc segur.

3. Publicar la clau a un servidor de claus

gpg --send-keys --keyserver keys.openpgp.org <ID-DE-CLAU>

Això permet que altres usuaris trobin i verifiquin la teva clau pública.

4. Crear una còpia de seguretat de les claus

gpg --armor --export-secret-keys VOSTRENOM@NOMCOGNOM.local > backup-clau-privada.asc

MOLT IMPORTANT: Guarda aquest fitxer en un lloc segur i xifrat. Qualsevol que tingui accés a aquest fitxer i la contrasenya pot suplantar la teva identitat.


Qüestions

Qüestió 1: Criptografia Asimètrica

Explica com funciona la criptografia asimètrica (clau pública/privada) en el context de correu electrònic:

a) Quina clau s'utilitza per xifrar un missatge? Qui la té?

b) Quina clau s'utilitza per desxifrar un missatge? Qui la té?

c) Quina clau s'utilitza per signar un missatge?

d) Quina clau s'utilitza per verificar una signatura?

Qüestió 2: Signatura vs Xifrat

Completa la següent taula:

Característica Signatura Digital Xifrat (E2EE) Signatura + Xifrat
Garanteix confidencialitat
Garanteix autenticació
Garanteix integritat
Pot ser llegit pel servidor
Requereix clau pública del destinatari

Qüestió 3: TLS vs GPG

Explica les diferències entre:

a) SMTP amb STARTTLS: Quin tipus de xifrat proporciona? Qui pot llegir els correus?

b) GPG/PGP E2EE: Quin tipus de xifrat proporciona? Qui pot llegir els correus?

c) Per què és recomanable utilitzar ambdós (TLS + GPG)?

Qüestió 4: Escenaris d'Ús

Per a cadascun d'aquests escenaris, indica si caldria utilitzar signatura, xifrat, o ambdós:

a) Un metge envia un informe mèdic confidencial a un pacient

b) Una empresa envia una factura a un client (no confidencial, però ha de ser autèntica)

c) Un periodista rep informació sensible d'una font anònima

d) Un advocat envia un contracte legal a un client


Lliurament

Captures de pantalla obligatòries

  1. gpg --list-keys mostrant les 2 parelles de claus generades amb els teus noms
  2. Clau pública exportada (clau-publica-VOSTRENOM.asc) oberta amb editor de text
  3. Thunderbird amb OpenPGP configurat mostrant la clau assignada
  4. Correu signat enviat amb la icona de signatura visible
  5. Verificació de signatura mostrant "Signatura vàlida"
  6. Correu xifrat enviat amb la icona de cadenat visible
  7. Correu xifrat desxifrat al destinatari mostrant el contingut llegible
  8. Fitxer .eml xifrat obert amb editor de text mostrant el contingut il·legible
  9. Correu amb signatura + xifrat simultanis
  10. Gestor de claus OpenPGP de Thunderbird mostrant les claus importades

Fitxers a incloure

  • clau-publica-VOSTRENOM.asc (clau pública del primer usuari)
  • clau-publica-VOSTRENOM2.asc (clau pública del segon usuari)
  • 1 fitxer .eml d'un correu xifrat

Document PDF

Crea un document que inclogui:

  1. Portada amb el teu nom complet i data
  2. Captures de pantalla amb els teus noms visibles
  3. Explicació del procés de generació i intercanvi de claus
  4. Respostes a les qüestions amb exemples pràctics
  5. Reflexió final (200-300 paraules):
  6. Importància de la signatura digital i el xifrat E2EE
  7. Diferències entre TLS i GPG que has experimentat
  8. Dificultats trobades durant la configuració
  9. Escenaris reals on utilitzaries GPG (periodisme, medicina, legal, etc.)
  10. Avantatges i desavantatges de l'ús de GPG per a usuaris normals

Criteris d'Avaluació

Criteri Puntuació
2 parelles de claus GPG generades correctament 1,5 punts
Claus públiques exportades i intercanviades 1,0 punt
Thunderbird configurat amb OpenPGP per als 2 comptes 1,5 punts
Correu signat digitalment enviat i verificat 2,0 punts
Correu xifrat (E2EE) enviat i desxifrat correctament 2,5 punts
Captures de pantalla completes amb personalització 1,0 punt
Respostes a qüestions correctes 0,5 punts
TOTAL 10,0 punts

Penalitzacions: - -2,0 punts si les claus no tenen els noms dels estudiants - -1,5 punts si no funciona el xifrat E2EE - -1,0 punt si no funciona la signatura digital - -0,5 punts si no s'inclou un fitxer .eml xifrat

Bonificacions opcionals: - +0,5 punts per publicar clau a servidor de claus (keys.openpgp.org) - +0,5 punts per generar i documentar certificat de revocació - +0,5 punts per demostració de correu signat+xifrat simultàniament

Màxim bonificació total: +1,5 punts (nota màxima limitada a 10,0)


Recursos Addicionals


Data de creació: Gener 2025 Autor: Curs M0375 - Serveis de Xarxa i Internet