page header photo

december 2013 Archieven

E-mail: van briefkaart naar verzegelde envelop


Geplaatst door Stefan op 2013-12-23 14:30:35 | Permanente link | Categorie: Tips and Tricks, Open Source, Open Standaarden | Reacties: 0

Van alle manieren om met elkaar te communiceren over het internet is email nog steeds het meest gebruikte en ingeburgerde medium. [1] Nagenoeg iedereen die actief gebruik maakt van het internet heeft een e-mailadres. Je hebt zo'n adres ook vaak nodig om je bij websites te kunnen registreren, alvorens je gebruik kunt maken van een bepaalde dienst of bijvoorbeeld iets kunt kopen bij een webwinkel.

Weet je dat communiceren via de elektronische post zelfs ouder is dan het "Internet" zelf? Het stamt nog uit de tijd dat dit netwerk "ARPANET" heette en al zodanig een significante rol heeft gespeeld in de ontwikkeling van het "Internet" zoals wij het vandaag de dag kennen [2]. Door de jaren heen is email zich blijven ontwikkelen en is er allerlei functionaliteit aan toegevoegd. Reuze interessant natuurlijk, maar dat is niet waar ik het vandaag over wil hebben. Als je hier meer over wilt weten dan is The Technical Development of Internet Email een leuk document.

Elektronische briefkaart

Eigenlijk is e-mail "elektronische post" noemen een beetje misleidend. Want dan vormt al snel het beeld van een brief, verstopt in een envelop, met daarop weer de geadresseerde. Dat beeld wordt nog eens versterkt doordat voor e-mail vaak die envelop als icoon wordt ingezet. Maar laat je niet kisten: e-mail zit niet in een envelop! De tekst die jij typt wordt niet in een elektronisch equivalent van een envelop gestopt voordat je ze over de lijn naar buiten stuurt. Aan jouw tekst wordt wat informatie toegevoegd, zoals de geadresseerde en waar de e-mail vandaan komt, om het bericht op de plaats van bestemming te krijgen. Maar die tekst gaat in principe onveranderd over de lijn. Wie een e-mail van een ander opvangt kan deze dus prima lezen! Je e-mail is dus meer een elektronische briefkaart die door de postbode gelezen kan worden. En niet alleen dat, die postbode kan het bericht ook nog eens aanpassen zonder dat je iets door zou hebben. Iets om in je achterhoofd te houden... [3]

Natuurlijk heeft de techniek niet stilgezeten en zijn er inmiddels standaarden waarmee e-mail die verstuurd wordt, beter beschermd wordt. Bijvoorbeeld door de verbinding die zender en ontvanger met elkaar opbouwen te versleutelen. De leesbare e-mail wordt dan over een versleutelde verbinding verzonden, waardoor simpelweg het netwerkverkeer opvangen veel minder nut heeft. Al hangt dat natuurlijk af van de gebruikte encryptie en de configuratie van de e-mailservers in kwestie. Het ondersteunen van dergelijke encryptie is geen vereiste voor e-mailservers voor het kunnen versturen van e-mail. [4] Er zijn er steeds meer die het wel ondersteunen, maar nog lang niet allemaal. Het hangt er dus maar net van af of de door jou gebruikte e-mailserver en ook de ontvangende e-mailserver allebei encryptie ondersteunen. En als ze dat beiden al doen dan zijn er nog zwakkere en sterkere varianten van encryptie. Erg veel zekerheid dat je e-mail onleesbaar voor anderen over de lijn gaat, biedt deze oplossing dus niet.

In het geval dat de hele route beschermd is door encryptie, dan zijn de eindpunten nog over. In het beste geval is alleen jouw eigen apparaat een eindpunt, een plek waar je het zelf voor het zeggen hebt en waar je zelf voor goede beveiliging hebt gezorgd (toch?). Maar vaak is zo'n eindpunt helemaal niet onder de controle van de ontvanger. Denk aan e-mailboxen bij internetproviders, of bijvoorbeeld een webmail-account (zoals bijv. Outlook.com en GMail). Of denk aan je e-mailbox binnen het bedrijf. Waarschijnlijk kan de systeembeheerder, als die tenminste de e-mailserver van het bedrijf beheert, al je e-mail lezen als hij/zij dat zou willen. En vergeet ook niet het andere eindpunt: het beginpunt; de afzender. Heeft die ook al zijn/haar zaakjes op orde?

In tegenstelling tot gewone post in een envelop, komt er bij e-mail veel meer vertrouwen in anderen bij kijken. Als je de beheerder van je mailbox persoonlijk kent vind je dat misschien geen probleem (of misschien juist wel?). Ik denk dat de meesten onder ons die persoon, of personen, helemaal niet kennen. En voor degene die gebruik maakt van de e-mailbox bij zijn/haar internetprovider, of van een "gratis" webdienst zoals GMail of Outlook.com, zijn de beheerders waarschijnlijk allemaal vreemden.

Terugnemen van je briefgeheim

Hier willen we eigenlijk drie dingen bereiken:

  1. Zorgen dat de boodschap alleen gelezen kan worden door de ontvanger door de boodschap te versleutelen.
  2. Met zekerheid kunnen bepalen of de boodschap onderweg niet gewijzigd is (=integriteit).
  3. Met enige zekerheid de identiteit van de afzender kunnen vaststellen. Dus kunnen aantonen dat de afzender ook daadwerkelijk is wie hij/zij zegt dat hij/zij is.

Voor een controle of een bericht daadwerkelijk afkomstig is van de afzender (3), en of het bericht onveranderd is (2), kan de afzender zijn/haar bericht digitaal signeren. De afzender verhaspelt zijn/haar bericht met het private deel van zijn/haar sleutelpaar, en voegt dit verhaspelde deel toe aan de e-mail. Jij als ontvanger kunt nu met het publieke deel van het sleutelpaar van de afzender dit verhaspelde deel weer omzetten tot het oorspronkelijke bericht. Als dat lukt en het bericht komt overeen dan kun je met zekerheid zeggen dat het bericht ongewijzigd is en daadwerkelijk afkomstig is van de afzender (of eigenlijk: de persoon in het bezit van het private deel van het sleutelpaar). [6]

Het principe dat hier gebruikt wordt is asymmetrische cryptografie [6], ook wel "public key cryptography" genoemd. Een andere bekende encryptievorm is de symmetrische encryptie. Daarbij versleutelt iemand een bericht, en deelt de "sleutel" of het "wachtwoord" met jou zodat jij het weer kunt ontcijferen. Bij asymmetrische cryptografie hebben jullie elk een sleutelpaar, twee sleutels dus. Een deel privaat, die je te allen tijde geheim wilt houden. En een publiek deel, die je met iedereen waarmee je wilt communiceren juist wilt delen. Het publieke deel wordt gebruikt om berichten te versleutelen. Iemand die jou een versleuteld bericht wil toesturen versleutelt de boodschap met jouw publieke sleutel. Vervolgens kan het bericht enkel ontcijferd worden met het bijbehorende private deel, jouw deel in dit geval. Zo hoef je dus geen codewoord met elkaar te delen en kan deze ook niet worden onderschept. Natuurlijk wil je wel zelf zorg dragen dat jouw private sleutel niet in andermans handen valt. Anders kan diegene immers alle berichten ook ontcijferen en zich voordoen als jou (dus berichten in jouw naam versturen; identiteitsdiefstal).

Software die hiervoor op PCs gebruikt kan worden is PGP, wat staat voor Pretty Good Privacy. Hieruit is de standaard OpenPGP voortgekomen, waaruit de free software community weer haar eigen open variant op PGP heeft gemaakt: GnuPG, vaak afgekort tot GPG.

In een volgend blog zal ik de installatie van GPG en het aanmaken van een sleutelpaar behandelen. Ter voorbereiding kun je wellicht eens kijken naar het idee achter asymmetrische cryptografie. En mocht je een leuk boek over het ontstaan er van willen lezen tijdens de feestdagen, dan kan ik het boek Crypto, van Steven Levy aanbevelen.

Referenties

  1. Interconnected World: Communication & Social Networking

  2. The Technical Development of Internet Email

  3. Weisband, S. P., & Reinig, B. A. (1995). Managing user perceptions of email privacy. Communications of the ACM, 38(12), 40-47.

  4. Hoffman, P. (1999). SMTP service extension for secure SMTP over TLS.

  5. GNU Privacy Handbook - Digital Signatures

  6. Wikipedia - Asymmetrische cryptografie