Home | Spelletjes | Uitvindingen | Gps | Scouting | Meteo | Computers

Ict / Introductie Tot Gnu PG Menu

Introductie tot GnuPG

Slides van een presentatie over dit onderwerp

Dit zijn de plaatjes van een presentatie die ik aan een groep Linux-gebruikers heb gegeven over het veilig versturen van mails met de tool GnuPG. Klik op een plaatje om de vergroting te zien.

Ter voorbereiding moeten de deelnemers de mail-client Thunderbird hebben geïnstalleerd, zodat ze daadwerkelijk kunnen mailen. Ook moet gnupg en de Thunderbird add-on enigmail geïnstalleerd zijn op het systeem.


Titel

Gnu Privacy Guard is een fork van Pretty Good Privacy, ontwikkeld door Phil Zimmerman. Pgp is tegenwoordig closed source, en wordt verkocht door Symantec.

GnuPG (wat wij gebruiken) is onderdeel van de openPGP familie. Het is Open Source, gratis en op alle platformen beschikbaar. Meerdere mail-clients ondersteunen openpgp. Het wordt door experts beschouwd als volkomen veilig en onkraakbaar.


Programma

Eerst geef ik een korte introductie over privacy, daarna leg ik uit welke problematiek komt kijken bij veilig mailen, vervolgens leg ik uit hoe GnuPG werkt, en dan gaan we aan de slag met een workshop.


Iedereen mag alles van mij weten

Introductie van Privacy

Het dilemma: Iedereen mag alles van mij weten. Een zoekopdracht om uit te vinden wat de gevaren zijn van het koken met een snelkookpan lijkt onschuldig, Maar als een paar dagen later een zelfgemaakte bom ontploft ben je verdacht. Vooral als je toevallig een week eerder per webshop wat kunstmest besteld had voor je moestuin.

Loesje zei: "Ik heb niets te verbergen, en dat hoeft niemand te weten."


Mijn auto staat toch voor de deur

Als je auto in de straat geparkeerd staat, weten al je buren dat je thuis bent. Dat feit is dus geen inbreuk op je privacy. Als een auto van de parkeercontrole foto's maakt van alle auto-nummerborden in de straat, vinden velen dat ook geen inbreuk op de privacy. Als iedere dag iemand door de straat loopt en in een boekje alle nummerborden overschrijft wordt dat zeer verdacht gevonden.

Privacy is dus een kwestie van perceptie.


Niemand mag maar iets van mij weten

Je kunt je ook opstellen dat je niets over jezelf wil loslaten. Je wilt perfect anoniem zijn op het Internet.

Maar dan, als je een Pizzeria zoekt, krijg je ook adressen uit Maastricht en Groningen, en niet die bij jou om de hoek.

Zoekmachines gebruiken jouw gegevens om -op hun manier- jou van dienst te kunnen zijn. Is dat een dienst of een bedreiging?


Lijst van vijanden

Hier is een lijst van mogelijke vijanden van jou op het Internet. Het gevaarlijkst is de AIVD, omdat die mogelijk een profiel van jou heeft opgesteld die toevallig past op die pyromaan of serieverkrachter in de buurt. De NSA kan het je in het buitenland of op reis moeilijk maken. Criminelen uit verschillende landen kunnen de verbinding naar je bank afluisteren. Dat 'script kid' van de bovenburen kan op het Internet een app gevonden hebben waarmee hij jouw draadloos netwerk gekraakt heeft. Je werkgever zou niet mogen weten wat jouw radicale politieke opvattingen zijn. Op Facebook of Google+ kan je dingen schrijven die in andere tijden heel anders opgevat worden. Ook aan je eigen vrienden kun je vaak niet heel erg persoonlijke feiten toevertrouwen. En je eigen dochter mag niet weten welke websites je de avond van tevoren bezocht hebt...

Iedere groep heeft zijn eigen veiligheidsaspecten of -bedreigingen.


Strategisch vraagstuk

Problematiek van privé communicatie

Een klassiek strategisch probleem is een vijand die tussen twee vriendschappelijke legers ligt. De vijand is alleen te verslaan als beide andere legers tegelijkertijd en onverwacht aanvallen. Er moet dus afgesproken worden wanneer aan te vallen zonder dat de vijand daar kennis van heeft.

Op een gegeven ogenblik komt dus een koerier bij ons kamp, met zijn laatste kracht haalt hij een verzegeld perkament tevoorschijn en dan valt hij dood neer. In dat bericht staat wanneer wij moeten aanvallen. Is dit te vertrouwen?

Heeft de vijand het bericht niet veranderd? Komt het bericht daadwerkelijk van ons andere kamp? Is het bericht niet gelezen door de vijand? Deze en andere vragen staan open; eeuwenlang was dit een onoplosbaar probleem voor militaire strategen.


Cloud en Man in the Middle

Vergelijk deze situatie met het vorige plaatje. Veel overeenkomsten; de vijand is vervangen door de moderne Man in the Middle (MiM). Hij is degene die onderweg onze berichten afluistert, of onderschept, of ze wijzigt naar een vals bericht. Hij kan ze zelfs decoderen, eventueel vervalsen, en weer gecodeerd doorsturen.

De MiM kan ieder van de vijanden op het bovenstaande plaatje zijn. (Behalve dan je dochter, maar die is ook geen Man.)

GnuPG heeft tegenwoordig een antwoord op ieder van deze problemen.


3 manieren om veilig mail te versturen

Ook jouw Internet Service Provider (ISP) zorgt voor een veilige verbinding. Jouw mailclient zou moeten ingesteld zijn op StartTLS naar de SMTP server, of https naar je webmail. Dat is een veilige verbinding. En iedere hop naar volgende Mail Transfer Agents (MTA's) ook. Maar op de tussenliggende machines zelf is jouw mail tijdelijk ongecodeerd opgeslagen. Jouw ISP slaat zelfs de metadata van jouw berichten op!

Met End-to-End encryptie kun je ervoor zorgen dat mails onderweg niet gelezen kunnen worden. Ook niet op de MTA's. GnuPG zorgt voor end-to-end encryptie.

Als je daarbij ook niet wil dat metadata (To:, From:, Subject:, etc.) gelezen kunnen worden, gebruik je het Tor netwerk. Tor schiet je mail heen en weer over het Internet, zodat je volgers duizelig worden. Wij gaan hier niet verder in op Tor.


Wat kan PGP

Hoe werkt GnuPG

GnuPG is niet alleen maar geheimtaal. Het kan veel meer:

Het kan een mail sturen die alleen de ontvanger kan lezen; het kan aantonen dat alleen IK de afzender ben, en echt niemand anders; het kan aantonen dat het bericht onderweg niet door de MiM veranderd is. Verder kun je een kennis van een vertrouwde vriend ook als vertrouwd aannemen. (we gaan nu niet verder in over hoe dit werkt.) Ook kan je op een veilige manier bewijzen aan vriend en vijand dat je geheime sleutel niet meer werkt.


Ik wil veilig een mail sturen

Als je een mail versleuteld wil sturen naar een vriend, dan doe je kort samengevat het volgende: Je begint met eenmalig de publieke sleutel van je vriend te verkrijgen, bijvoorbeeld door het te downloaden. Met deze sleutel codeer je het bericht. Dit gecodeerde bericht stuur je dan op naar je vriend.

Jouw vriend kan dit bericht dan decoderen met hulp van zijn passende geheime sleutel.


Maak een sleutelpaar

GnuPG maakt gebruik van een passende set van een geheime sleutel en een publieke sleutel. Je begint met eenmalig zo'n set aan te maken. Er worden dan de volgende vragen gesteld: Naam; je echte naam zoals iedereen je kent, niet je Internet-alias. Mailadres; je echte mailadres, je kunt geen pgp-mail sturen naar een ander mailadres. Commentaar; ik gebruik dit veld om een versie- of koosnaam aan de sleutel te geven (bv abrikoos, banaan, citroen, etc). Wachtwoord; om toegang te geven tot jouw geheime sleutel. Vergelijk het met de pin-code van je betaalpas. Als je geheime sleutel ontfutseld wordt is de sterkte van je wachtwoord nog je enige hoop.

Daarna kan je nog meerdere mailadressen toevoegen als je die hebt, en een foto of jouw avatar eraan plakken zodat jouw publieke sleutel nog persoonlijker wordt.


Geheime en Publieke sleutel

De geheime sleutel houd je zelf. Niemand, herhaal: niemand mag deze sleutel in handen vallen. Gebeurt dat toch, bijvoorbeeld omdat je laptop gestolen wordt, of iemand ingelogd is op jouw account is je enige hoop dat het enige tijd duurt voordat de wachtwoordbescherming van jouw geheime sleutel gekraakt wordt. In die tijd stuur je je 'Revoke Key' op naar al je contacten zodat zij overtuigd kunnen worden van dit vreselijke feit. Vervolgens maak je een nieuw sleutelpaar aan.

De publieke sleutel mag iedereen hebben. Geen probleem. Zet hem op je persoonlijke blog-pagina of op een speciale key-server. Nadat je de publieke sleutel van je vriend verkregen hebt, sla je het op in een database, die hier key-ring genoemd wordt. Iedere publieke sleutel heeft een key-id en fingerprint, waarmee je kunt verifiëren dat het inderdaad de sleutel van je vriend is. Heb je op die manier vastgesteld dat dit de echte publieke sleutel van je vriend is, dan ga je hem ondertekenen.


Een mail wordt naar Piet gestuurd

Stel, je wil een mail sturen naar piet@linuxamsterdam.nl.

De allereerste keer: zoek je op een keyserver op de naam van je vriend zijn publieke sleutel, en haalt het op. Dan controleer je of hij de sleutel ondertekend heeft en zijn mailadres klopt. Dan vraag je je vriend zijn fingerprint op te sturen; liefst niet per mail, maar bv per sms. Plaats de sleutel in jouw key-ring en als de fingerprint klopt, en onderteken hem als vertrouwd. De Thunderbird plugin Enigmail biedt mogelijkheden dat te kunnen doen.

Alle volgende keren: Stel je mail op. Als je het mailadres van de ontvanger invult geeft Thunderbird al aan dat het bericht ondertekend gaat worden. Enigmail heeft de sleutel al voor je geselecteerd, en als je op Versturen klikt, wordt het bericht versleuteld met zijn publieke sleutel en opgestuurd naar Piet. De kopie van de mail wordt ook versleuteld opgeslagen, en is leesbaar met hulp van jouw geheime sleutel (!).

Let op dat het onderwerp, zender- en ontvanger-adres niet versleuteld worden, zodat de vijand altijd kan zien naar wie jij een gecodeerde mail stuurt!


Piet ontvangt een mail

Even later ontvangt Piet een gecodeerde mail. Wat moet hij dan doen?

Hij heeft zijn geheime sleutel nodig om het bericht te decoderen. Daarvoor moet hij het wachtwoord van zijn geheime sleutel intikken. Je kunt instellen of een ingegeven wachtwoord eenmalig gebruikt wordt, of voor bv 5 minuten, of tot je uitlogt. In volgorde van veilig naar minder veilig.

Dan wordt je mail leesbaar. Als je daarna je volgende mail leest, valt die mail weer terug in versleutelde toestand.


Aan de slag

Aan de slag

Met deze theorie ben je goed voorbereid om onder mijn begeleiding aan de slag te gaan.

Jouw opdracht voor vandaag is: Maak een sleutelpaar, kies een goed wachtwoord. Onderteken je publieke sleutel en plaats het op een keyserver. Haal dan de publieke sleutels op van de andere cursusleden, en vergelijk de fingerprints. Importeer ze in je key-ring en onderteken ze.

Stuur dan een versleutelde mail, en een mail die alleen maar ondertekend is.



Ben je niet op deze cursus aanwezig geweest en je komt er hier niet uit, dan zijn er de volgende mogelijkheden: Ga naar het Privacy Café van Bits of Freedom (website), of de Linux inloop in Amsterdam (website), of huur mij in voor een extra workshop (Mail Daniel).

Deze cursus is gegeven aan een groep van belangstellenden van http://linuxamsterdam.nl

Dit is mijn Public Key

Alle materiaal mag gebruikt worden bij jouw cursus, zie de Colofon voor de voorwaarden.

Departementen