"Hoe", "Wat" en "Waarom" van PGP versleuteling

Dit topic start met dezelfde vraag als mijn topic vaneen week geleden, maar ik snap nog steeds niet hoe het werkt, ik kan het niet voor me zien. Met dit topic nodig ik anderen uit hun uitleg of hun vraag toe te voegen zodat dit een soort wiki wordt. Zo zie ik nog steeds niet voor mij hoe een ontvanger van mijn versleutelde mail moet reageren om de inhoud te kunnen lezen.

Op dit moment ben ik mij aan het verdiepen in “end 2 end” versleuteling voor mijn drie e-mailadressen. Ik begrijp dat PGP daarvoor geschikt is.
Nu gebruik ik heel vaak de webmail functie van de aanbieders en thuis begin ik ook meer en meer gebruik te maken van Thunderbird. Als ik het goed begrijp dien ik het volgende doen:
Voor het Freedom e-mailadres en dan in de webmail denk ik dat ik bij “Instellingen > PGP sleutels > Nieuw aanmaken” het kan aanmaken en instellen.
In Thunderbird voor dat freedom e-mailadres kan ik dan die sleutel importeren.
Klopt dat?

Ook heb ik een e-mailadres op het domein “mijnnaam.nl”. Daar gebruik ik de webmail van Roundcube heel vaak. In de webmail van Roundcube zie ik bij: “Instellingen > (en ja, nog een keer) Instellingen > Versleuteling” de optie om een keyring aan te maken in Mailvelope. De extentie daarvan heb ik in Firefox geladen, maar nog niet geactiveerd. Ik begrijp het nog niet helemaal. Maar als ik hier de versleuteling heb aangemaakt, kan ik dan die ring ook importeren in Thunderbird bij dat e-mailadres?
Wie kan mij hierbij verder helpen?

Mijn derde e-mailadres zit bij /e/OS. Mailvelope zit ook in de webmailfunctie van /e/OS, daar zal ik dan hetzelfde moeten doen als bij Roundcube neem ik aan. Wie kan mij hier ook bij helpen?

Oké, stel dat ik het uiteindelijk ingesteld krijg, maar dan begrijp ik nog niet wat ik dan moet doen om er mee te gaan werken en hoe de andere persoon waar ik mee wil mailen de sleutel krijgt die hij / zij dient te gebruiken bij mijn versleutelde e-mails. Wie kan mij in begrijpelijk taal dit uitleggen? Ik heb daarop gezocht en heb de pagina’s van Thunderbird gelezen, maar het duizelt mij nog. En ik ga het pas instellen als ik het begrijp.
Bij voorbaat dank.

Vragen die in het vorige topic zijn toegevoegd:

  • Is het principe van versleuteling en haar “key” uitwisseling duidelijk ?
  • Is het lastig om te implementeren in/aan “welke” omgeving of met “welk” programma ?
  • Wordt het “te” complex om te gebruiken ?
  • Omdat je “ontvanger” dat mogelijk kunnen of begrijpen om te gebruiken ?

Het is ingewikkeld. Er zijn twee modellen. Web of trust (https://en.wikipedia.org/wiki/Web_of_trust) en Trust on first use (https://en.wikipedia.org/wiki/Trust_on_first_use)

WOT is erg moeilijk maar TOFU is redelijk bruikbaar. Sleutels werden vroeger naar cenrale “keyservers” gestuurd maar dit is unveilig (https://gist.github.com/rjhansen/67ab921ffb4084c865b3618d6955275f)

Wat redelijk bruikbaar is mits je de juiste midellen hebt is TOFU met WKD (https://wiki.gnupg.org/WKD)

In de praktijk stuur je een versleutelde mail de ontvanger kan het publieke deel van de sleutel vrij automatisch ontvangen als je deze op een WKD publiceert. Als je dan TOFU gevruikt kun je kiezen om een en ander te vertrouwen en dan gebruiken.

Dus stel ik heb email jan@foo.nl met een sleutel. het publieke deel van de sleutel staat op https://foo.nl/.well-known/openpgpkey/hu/it5sewh54rxz33fwmr8u6dy4bbz8itz4 en die kun je verkrijgen met gpg --locate-keys jan@foo.nl.

Omdat de website https is kun je er vrij zeker van zijn dar ik ben wie ik zeg dat ik ben. (het is geen persoonlijk paspoort maar het is een redelijk compromis. (WOT is veel moeilijker in gebruik en dat kans dat je steken laat vallen is groot)

Maar ja je moet dan dus wel je sleutel publiceren met WKD (domein moet gelijk zijn aan domain van je e-mail adres)

Dus puntje bij paaltje, je weet hoe en waar je de sleutel kunt halen en dat het redelijk betrouwbaar is. Daarna kun je met TOFU bepalen dat je de sleutel vertrouwd.

WOT: https://wiki.debian.org/Keysigning

2 likes

Als ik je vragen zo lees, vermoed ik dat er een groot misverstand is:
Er zijn voor jezelf twee sleutels, een public en een secret key, en daarnaast een passphrase.
Voor anderen is er alleen maar een public key de secret key en de passpharse hou je altijd zelf. De passphrase zit als het goed is alleen in jouw eigen hersenen en is nergens anders,

Met je eigen secret key en je passphrase kan je twee dingen doen:

  • Een bericht of file voor jezelf decrypten, een encrypted bericht of een file die door een andrer met jouw public key is gemaakt.
  • Een bericht of file voor een ander tekenen zodat de ander met behulp van jouw public key kan verifiëren dat het inderdaad van jou afkomstig is er nog geen bit in is gewijzigd.

Je hebt een ander zijn public key dus nodig om:

  • Een bericht of file voor die ander te encrypten
  • Een getekend bericht of file afkomstig van de ander te verifiëren dat het inderdaad van die persoon komt en er niet mee geknoeid is.

Een keyring (in een mail programma) bevat dus al jouw secret key(s), je public key(s) en de public keys van anderen. Je webmail of mail programma’s moeten dan die keyring hebben,

Alles valt of staat met het vertrouwen dat je hebt in iemand’s public key. Is dat echt van de persoon waarvan je denkt dat die is?
Om dat te verifiëren controleer je of de public key die je van de ander krijgt, ook echt van die persoon is. Het liefst via een ander communicatiekanaal. Of omdat iemand anders die je vertrouwt de betreffende public key getekend heeft als te vertrouwen
Om zelf een public key te controleren is er voor elke public key een fingerprint. Dan hoef je alleen nog maar de fingerprint van de public key te verifieren met de fingerprint die de eigenaar van de public key jou via een ander vertrouwd communicatie kanaal verstrekt. Dat is makkelijker dan de hele key verifiëren.

Er zijn mensen die public key van een ander alleen vertrouwen als die of de fingerprint ervan persoonlijk fysiek is overhandigd door de eigenaar van de public key.

Je kan keys (secret en public) altijd met webmail of mailprogramma’s expoteren en importeren.

Dit is trouwens ook wat ik waardeer aan Freedom. Hoewel freedom.nl waarschijnlijk zelf geen WKD ondersteund, kun je bij Freedom wel thuis een eigen mail and web server hosten. Zo heb je zelf de regie in handen. Als Freedom het heeft over privacy dan is dit waar ik aan denk. Cloud en shared is niet goed voor privacy en Internet in het algemeen. Mensen zouden actief aangemoedigd moeten worden om zelf zaken te regelen. Ironisch genoeg is er ook een project met een zelfde naam: https://freedombox.org/

Je stelt eigenlijk 3 vragen: Hoe, wat en waarom :slight_smile: dus ik ga ze ook apart beantwoorden.

Waarom
Email is nooit bedoeld als geheim/prive communicatiemiddel, dat is bijvoorbeeld ook goed te merken aan dingen als spam. In de loop van de tijd zijn er een hoop pogingen gedaan om e-mail veiliger en meer privé te maken, sommige zijn alternatieven voor elkaar (zoals s/mime en pgp), sommige zijn aanvullend aan elkaar.
Het probleem is dat jij nooit weet hoe een e-mail van jou naar een ontvanger over het internet wandelt. Bedenk dan dat iedere beheerder van een tussenliggende e-mail server jouw e-mail kan lezen. Vertrouw jij ze allemaal? Als je überhaupt al weet wie het zijn? Dit probleem wordt nog groter bij de big-tech mailboxen zoals gmail, daar weet je dat de provider meeleest en weet je dus zeker dat je bericht niet privé is tenzij je maatregelen neemt.
Daar komt GPG/PGP om de hoek kijken (GPG is een open source implementatie van PGP). Die versleuteld het bericht bij de verzender op een manier zodat alleen de bedoelde ontvanger het kan ontsleutelen.

Wat
PGP werkt daarvoor met asymetrische encryptie en daarbij heb je het altijd over keypairs: Een combinatie van een private en public key. De namen verraden hun doel al een beetje: De public key mag je aan iedereen geven die hem wil weten, de private key houd je voor jezelf.
De boel zit zo in elkaar dat je met een private key een bericht kan signen (voorzien van een echtheidskenmerk) en dat je die met de bijbehorende public key kan valideren. Je kan een bericht ook met de public key crypten, dan kan alleen de persoon met de juiste private key hem decrypten.

Dus stel A en B willen via PGP e-mails uitwisselen. Dan genereren ze beiden een keypair en geven elkaar de public keys. Dus A heeft zijn eigen keypair en de public key van B, B heeft zijn eigen keypair en de public key van A.
De catch die hierin zit: Hoe weet je welke key bij wie hoort? Daar komen concepten als Web of Trust om de hoek kijken. Daarbij zegt bijvoorbeeld C “Ik weet zeker dat deze key van A is”, stel dat jij nu al weet dat je C kan vertrouwen, dan kan je door je vertrouwen in C ook A vertrouwen.

A schrijft nu zijn bericht voor B. Die signed hij met zijn eigen private key en versleuteld hij met de public key van B. Dit eindresultaat stuurt hij via e-mail naar B.
B ontvangt het bericht. Doordat B de enige is met de juiste private key kan hij dit bericht ontsleutelen en weet A zeker dat B de enige is dit dit kan (zolang de private key van B geheim is). B heeft nu een leesbaar en gesigned bericht, de validatie daarvan kan hij uitvoeren met de public key van A. Als dit klopt weet hij zeker dat het bericht van A afkomstig is (zolang de private key van A geheim is).

Dus:

  • A weet zeker dat B de enige is die het bericht kan lezen
  • B weet zeker dat het bericht van A afkomstig is

Hoe
Thunderbird kan standaard PGP volgens mij, vroeger had je daar plugins voor nodig. Je hebt het ook over roundcube: Pas daar mee op. Als de PGP bewerkingen op de server plaats vinden betekend dat dat je private key op de server staat, dat is in algemene zin een slecht idee. Ik weet niet zeker of dat zo is.
Zelf ben ik niet zo goed in klik-hier-klik-daar omschrijvingen om dingen voor elkaar te krijgen, dus die vorm van hulp laat ik graag aan iemand anders over :slight_smile: .
Is het moeilijk? Het is inderdaad lastiger dan “vinkje aan en klaar ben je”. Het is vaak even gedoe om de boel aan de gang te krijgen. Heb je het eenmaal werkend dan heb je er vaak geen omkijken meer naar. PGP is op zich gestandaardiseerd en bestaat al heel lang, dus ik zou bij de meeste mail clients native ondersteuning of een plugin verwachten. Zelf gebruik ik alleen thunderbird, ik heb wel roundcube maar vanwege het probleem wat ik eerder benoemde doe ik daar geen PGP.

2 likes

Ja, ik denk dat ik zo verder kom. Weer wat vragen naar aanleiding van bovenstaande reacties:

  • Hoe gaat het met een mail naar een nog onbekende voor mij?

  • Hoe en waar genereer ik een keypair?

  • Is een keypair voor een mailwissel met één ander persoon of kunnen meerdere ontvangers van mail van mij met dezelfde sleutel, mail van mij ontsleutelen?

  • Zo niet, hoe gaat het dan met een mail die ik wil versleutelen naar meerdere personen?

  • Hoe krijgt de ander de public key?

  • Waar kan ik de public key eventueel publiceren?

  • Heb om het uit te testen een sleutel aangemaakt op webmail van Freedom. Hoe zie ik nu wat er gebeurd? Kan ik het aan of uitvinken?

Kan iemand dat visueel maken? Bijvoorbeeld een video-tje van opnemen?

Als je dat met PGP wil doen moet je eerst de juiste public key hebben (en de ontvanger die van jou). Dat is waar de keyservers waarover eerder in dit topic over gesproken werd voor gebruikt worden. Daar kan iedereen z’n pubkey neerzetten.
Sommigen kiezen ervoor om hun pubkey op een eigen webserver te zetten of als attachment met een eerste (niet PGP) mail mee te sturen.

Je mail client zou daar een optie voor moeten hebben.

Je hoeft maar 1 keypair gebruiken om met iedereen te communiceren. In het kader van het web of trust is dat zelf handig: Hoe meer mensen vertrouwen hebben in jouw key, hoe waardevoller hij is.

Als je een mail naar meerdere ontvangers stuurt dan versleutel je de email met alle public keys van alle individuele ontvangers. Althans, dat hoef jij niet te doen, dat doet PGP voor je. Die individuele ontvangers gebruiken dan hun eigen private key om de mail te lezen.

Het leuke is dat je public key niet geheim is, je mag hem overal laten slingeren :slight_smile:. Keyservers, eigen websites en emails zijn populaire opties.
Sommigen kiezen er daarnaast bijvoorbeeld voor om de fingerprint van hun key op een visitekaartje (of andere medium los van de keyservers) te zetten zodat iemand op zie manier kan valideren dat het de juiste key is, er is immers niets wat mij tegenhoudt om een key aan te maken voor dirk@jan.nl en die te publiceren.
Het enige irritante van keyservers is dat spammers ze ook weten te vinden … be prepared :slight_smile: .

Je hebt de focus te veel op email liggen.
Zet gewoon eens gnuPG op je computer.
Daarmee kun je sleutels maken en bestanden versleutelen.
Ga daar eerst eens mee testen, om de basisvaardigheden te leren.
Van het aangemaakte sleutelpaar kun je 2 bestanden maken.
Het publieke bestand en het geheime bestand.
De publieke deel je uit en de geheime leg je in de kluis.
Er zijn keyservers waar publieke sleutels gepost kunnen worden in b.v. kleopatra dat in het pakket zit.
Dat doe ik niet meer. Persoonlijk verstrekken is beter.
Sommige zetten de sleutel op hun website.

Mail naar meerdere personen, moet je vooraf aangeven dat die ook ontsleutelen mogen.
Je moet dan van al die mensen een publieke sleutel hebben.

Ook kunnen sleutels meerdere identiteiten hebben.
Er staat dan meer als 1 email adres in.

Dit doen in het email programma, heb ik nog nooit gedaan.
Ik maak meestal een .zip die ik inpak die dan een .gpg wordt.
Degene waarmee je mailt, moet ook die vaardigheden hebben.

Klungelen met dit systeem, is al menig crimineel opgebroken.
Zodra het pad naar je sleutelbos lek is, is het niet meer veilig.
Jouw sleutels in de webmail proppen, is zoiets als de sleutel ligt onder de deurmat.

Mail aan een onbekende gaat als volgt.
Jij stuurt jouw publieke sleutel naar de onbekende.
De onbekende stuurt zijn publieke sleutel naar jouw.
Dan moet je zeker zijn, dat het ook die persoon is.
Door b.v. de vingerafdruk van de sleutel persoonlijk te controleren.
Zodra dat duidelijk is, kun je de sleutel vertrouwen in jouw sleutelbos.
Ook kunnen sleutels handtekeningen bevatten van anderen, om aan te tonen dat zij die sleutel vertrouwen.
Dan kun je een mail aan maken en die versleutelen voor de onbekende.

@pa4wdh Dat is helder uitgelegd.

Dit gaat via het e-mailprogramma neem ik aan, bijvoorbeeld Thunderbird? (Als PGP daar is ingesteld)

En als ik op meerdere PC’s werk, dan maak ik de keypair aan op 1 pc en importeer het op de anderen. Klopt dat?

@Erik

Wat bedoel je met Kluis?

Wat doe ik met een publieke sleutel van iemand als ik die heb? Koppelen aan het e-mail adres of hoe gaat dat in z’n werk?

Wat bedoel je hiermee?

Het wordt dan een versleuteld bestand aan een niet versleutelde mail, klopt dat?

Ga ik doen, heb het zojuist gedownload!

Als je encrypted mail naar een ander stuurt hoef je alleen de public key van die persoon te hebben. De ontvanger heeft jouw public key niet nodig.
Alleen als de ontvanger een door jouw getekend bericht will controleren op jouw handtekening en het onngewijzigd zijn dan heeft hij ook jouw public key nodig.

1 like

Een kluis is een kast met een zware deur.
Of een memorystick met een slot er op.

Sleutels voeg je toe aan je eigen sleutelbos.
In de sleutel staan 1 of meer identiteiten met email adres.

Als je meer email adressen hebt, kun je die allemaal aan 1 sleutel koppelen.
Ik doe dit zelden, maar het kan.

Niet de hele mail is versleuteld.
Je kunt ook een versleuteld blok in de mail plakken.
Kleopatra heeft hiervoor een kladblok

Dat ziet er ongeveer zo uit.

-----BEGIN PGP MESSAGE-----

aSKLJIKLASDK.DASK.MKASDMDSLASLD;MLDASLM
ASL;WSKKLASKLASLSL/AHDHDHHkdaskdasjkksa
asdkjasdjkaskksdakasJKhgggffGGgfffffff

-----END PGP MESSAGE-----

In dit geval, zijn het willekeurige charkaters als voorbeeld.

Klopt. Als je meerdere ontvangers aan de email toevoegt en PGP aanzet zal dit automagisch onder water gebeuren.

Klopt. Het keypaar is gekoppeld aan je e-mail adres, dus als je dat adres op meerdere computers gebruikt zal je via een export/import de key ook naar de andere computers moeten brengen.

Fysiek snap ik dit, digitaal nog niet. Wat moet ik daarvoor doen?

Oké, heb met Kleopatra een sleutel aangemaakt voor 1 van mijn e-mailadressen niet zijnde die van Freedom. Bij het aanmaken en de vervolgstap daarop kon ik iets lokaal opslaan. Dat eindigt op “_SECRET.asc”. Dan klik ik op de vervolgstap om een e-mail met de sleutel te versturen en dan verschijnt deze tekst: “Als uw e-mailclient geen bijlage heeft, sleep dan het pictogram van Kleopatra naar het opstelvenster van uw e-mailclient”
Thunderbird opent een nieuwe mail maar zonder bijlage.
Ik zie geen pictogram.
emailversturen

En toen klikte ik op de vervolgstap en hebben ze het over een intrekkingscertificaat.
NaarServer

Ik snap nu 2x in dit proces niet wat ik verder moet doen. Heb de boel maar gesloten.

edit 15 minuten later: Hopeloos: nu ben ik in Kleopatra, in het eerste scherm als je het opent die regel kwijt waarin het betreffende e-mailadres staat en de datum aangemaakt etc. en geldig tot. Zou ik het verwijderd hebben? Vraagt het dan niet om een bevestiging?

Stel dat je je public key op een keyserver hebt staan, dan kunnen er situaties zijn waarbij je wil aangeven “Deze key moet je niet meer vertrouwen”, bijvoorbeeld omdat je zelf de private key kwijt ben of omdat die in verkeerde handen is gekomen. Op zo’n moment upload je het revocation certificate naar de keyserver en daarmee zal de key die status krijgen. Vanaf dat moment weet iedereen die gebruik maakt van die keyserver dat ze die key niet meer moeten gebruiken.
Het is dus verstandig zo’n certificaat aan te maken en op een veilige plaats te bewaren.

Ja, dat begrijp ik, mijn vraag is ook bedoelt: waar doe ik dat dan op dat moment dat dat venster verschijnt met die melding?

Even niet zo inhoudelijk:
Ik ben geen ict-er, maar ben niet zo onhandig met het gebruik van computers en zoek graag dingen uit. Maar, ik snap wel dat mensen voor een iets minder veilige mailwisseling kiezen als ze willen versleutelen. Ik zie dit (wat ik nu aan het doen ben om PGP onder de knie te krijgen) mijn vrienden niet doen. Dan is de mogelijkheid die Freedom biedt op hun webmail met PGP een heel mooie oplossing voor als men de eerste stap wil zetten. Oké, niet voor de purist, maar het is iets.
Voor vandaag stop ik er mee.

Edit half uur later: Sleutel toch weer gevonden. Hoe hij verdwenen was, dat weet ik niet.

Op Publiceren getikt, daar kwam de vraag weer over het intrekkingscertificaat.
Nu, op doorgaan geklikt en ik verwachtte daar een scherm om een intrekkingscertificaat te kunnen aanmaken. Nee dus, nu is de sleutel gepubliceerd!

Als je op een eigen certificate klikt, die ook een secret key heeft, kan je een Revoke Certificate alsnog aanmaken in Kleopatra:
Klik op Details van het certificaat
En dan zie je daar dat je een Revocation certificate (.rev) kan aanmaken.

Sla die op een veilige plek op voor het geval je hem in de toekomst nodig hebt. Bijvoorbeeld als je je passphrase vergeten bent.