Email Encryptie Workshop
Workshop Email versleutelen/ondertekenen met S/MIME
Datum: ? Tijd: ?
Locatie: Revspace, gezamelijke ruimte
Duur: 1/2 uur tot 1 uur
Doel: introductie tot email encryptie en gebruikers certificaat laten maken, installeren en gebruiken.
Intro
E-mail is na Websurfen waarschijnlijk de meest populaire toepassing van het Internet. Wat veel mensen zich echter niet realiseren, is hoe makkelijk het is voor een e-mailtje om bij een ander te belanden dan de bedoelde ontvanger. Een tikfoutje in het adres, een foutje in de configuratie van een server, of de verkeerde naam uit het adresboek zijn allemaal simpele dingen waardoor een mailtje bij de verkeerde persoon terechtkomt. Ook bestaat er altijd het risico van hackers die de mailserver van een provider weten te kraken en zo toegang hebben tot de e-mail van alle gebruikers van dat systeem. De enige manier om te voorkomen dat de verkeerde personen een e-mailtje kunnen lezen is door encryptie te gebruiken.
Inhoud workshop
- Uitleg Email Encryptie, waarom?
- GPG vs. S/MIME
- S/MIME certificaat aanmaken
- S/MIME certificaat installeren
- Thunderbird
- Outlook
- OS X Mail
- Email versturen
- Hoe verder
Uitleg Email Encryptie, waarom?
Encryptie is een techniek om berichten met behulp van wiskundige technieken onleesbaar te maken. Alleen diegenen die beschikken over de juiste sleutel kunnen het oorspronkelijke bericht terugkrijgen. Dit betekent in het geval van e-mail dat zender en ontvanger vantevoren een sleutel moeten afspreken om berichten mee te versleutelen. Aangezien dit nogal onpraktisch is, wordt bij e-mail gebruik gemaakt van een systeem met twee sleutels. De eerste is de publieke sleutel, die openbaar is en door iedereen gebruikt kan worden om berichten mee te versleutelen. De tweede is de geheime sleutel, die de ontvanger gebruikt om de berichten mee te ontsleutelen. Deze sleutel moet hij dus strikt geheim houden als hij zijn berichten geheim wil houden.
De publieke sleutel kan bijvoorbeeld op een homepage worden geplaatst. Deze publieke en geheime sleutels zijn ook te gebruiken voor authenticatie van de afzender, waardoor het vrijwel onmogelijk wordt om een e-mail onder andermans naam te versturen.
Email is een plain-text protocol. Dit betekent dat het voor iedereen tussen jou en de persoon met wie je emailt zichtbaar is. Denk aan je internet provider, upstream providers, de NSA/AIVD die upstream aftapt en alles wat er bij de ontvangende partij nog tussen zit. Maar bijvoorbeeld ook iedereen in de trein die het onversleutelde WiFi verkeer afluistert.
Deze partijen kunnen dus inzien wat er in emails staat. Ook kunnen zij het verkeer aanpassen, en dus uit jou naam email versturen of aanpassen. Dit is wat lastig, maar zeker niet onmogelijk.
Twee hoofdredenen om email te versleutelen of te ondertekenen zijn dus:
- De inhoud van de email is alleen zichtbaar voor degene met de private key
- De authenticiteit van de email is aantoonbaar terug te leiden naar degene met de private key
Dit hangt natuurlijk samen met de keys die gebruikt worden, en hoe de identiteit van de personen gecontroleerd en gegarandeerd kan worden.
Het versleutelen/ondertekenen zelf gebeurt middels een publiek/prive sleutelpaar. De public key (het publieke deel) is, zoals de naam doet vermoeden, publiekelijk beschikbaar. De private key (prive deel) is alleen beschikbaar voor de eigenaar hiervan. De veiligheid van het systeem hangt samen met hoe goed de private key bewaakt wordt.
Het encrypten van een bericht gebeurt als volgt. Stel dat Alice Bob een bericht wil sturen. Alice heeft beschikking over de public key van Bob. Zij gebruikt deze public key om haar bericht te versleutelen. Dit stuurt ze naar Bob. omdat Bob de enige is met de private key kan alleen hij de ge-encrypte data ontcijferen en lezen.
Het ondertekenen (signen) van een bericht werkt omgekeerd. Stel dat Alice aan Bob wil bewijzen dat een bericht van haar afkomstig is. Ze maakt van het bericht een hash (wiskundige functie die over een gegeven invoer altijd dezelfde uitvoer teruggeeft) en versleuteld deze met haar private key. Ze plakt deze versleutelde hash bij haar bericht en stuurt dit bericht naar Bob.
Bob ontvangt het bericht en wil de ondertekening valideren. Hiervoor maakt hij over het leesbare deel van het bericht ook een hash, met dezelfde functie als Alice, en vergelijkt het resultaat hiervan met het resultaat van de hash van Alice. Hij gebruikt de public key van Alice om de hash te ontcijferen. Als zijn berekende hash hetzelfde is als de hash die alice gestuurd heeft dan weet hij zeker dat het bericht van Alice komt.
De public en private key zijn namelijk inwisselbaar. Wat met de private key versleuteld wordt kan door de public key ontcijferd worden, en wat met de public key versleuteld wordt kan met de private key ontsleuteld worden.
GPG vs. S/MIME
GPG/PGP en S/MIME certificaten zijn beide manieren om email te ondertekenen / versleutelen. De belangrijkste verschillen zijn:
- S/MIME (net als website ssl certificaten) maakt gebruik van een CA structuur (Certificate Authority)
- GPG/PGP gebruiken een Web-of-Trust model.
Dit betekent dus dat een S/.MIME certificaat uitgegeven wordt door een CA zoals Verisign of Comodo, en hiervoor vaak betaald moet worden. Het is wel mogelijk om een eigen CA op te zetten en S/MIME certificaten uit te geven, alleen worden deze door softwarepakketten niet standaard vertrouwd.
GPG certificaten worden zelf aangemaakt en dus niet uitgegeven door een CA. Men wisselt met elkaar keys uit en valideert daarbij de identiteit van die persoon. Hierna signt met met hun key de key van de ander en zo wordt een Web of Trust gebouwd. Als meerdere mensen bevestigen dat deze key bij deze persoon hoort dan is de kans groot dat dat ook zo is.
Voor beide modellen is wat te zeggen, o.a. de afhankelijkheid van een CA is voor velen een struikelblok.
Onderhuids verschilt ook het formaat van de certificaten (S/MIME == X509 certificaten, PKCS#7 berichten == ASN.1/DER, GPG == GPG == from scratch simpele binary encoding)
De ondersteuning voor S/MIME certificaten is aanwezig in o.a. Outlook, Thunderbird, iPhone mail en OS X Mail. Voor GPG zijn vaak plugins vereist, en voor Outlook is er geen ondersteuning.
In deze workshop wordt gebruik gemaakt van S/MIME certificaten ipv. PGP/GPG. Dit omdat de softwareondersteuning voor eindgebruikers standaard waarschijnlijk aanwezig is. In een volgende workshop wordt ingegaan op GPG/PGP.
S/MIME certificaat aanmaken
Er kan bij Comodo een gratis email signing certificaat aangemaakt worden. Bezoek daarvoor deze URL met Firefox: http://www.comodo.com/home/email-security/free-email-certificate.php - hierna krijg je een email met verdere instructies.
Bij startssl.com kan dit ook... en kan je ook gratis (SSL/Web) certificaten aanmaken. Tegen betaling ($60) kan je ook een gevalideerd certificaat krijgen.
Voor de workshop is dit voldoende. Voor dit certificaat wordt verder geen validatie gedaan, dus zal per persoon de hash van het certificaat nog gevalideerd moeten worden om authenticiteit te garanderen. Persoonlijk heb ik goede ervaringen met https://sslcertificaten.nl - hier komt mijn email certificaat ook vandaan. Het is mogelijk om bij verschillende leveranciers ook een certificaat te kopen waarbij wel meer validatie is en dus de identiteit van een persoon beter gegarandeerd kan worden.
S/MIME certificaat installeren
Thunderbird
Digitale Handtekening koppelen aan Mozilla Thunderbird
- Open Thunderbird en ga naar menu Extra –> Accountinstellingen.
- Klik onder het account waarvoor de digitale handtekening is aangevraagd op Beveiliging.
- Klik onder het kopje Certificaten op Certificaten bekijken.
- Klik Importen… en blader dan naar de locatie van het certificaat.
- Klik op Openen en typ uw wachtwoord.
- Klik op OK.
Het certificaat is nu gekoppeld.
Mozilla Thunderbird instellen om berichten te kunnen versleutelen
- Open Thunderbird en ga naar menu Extra –> Accountinstellingen.
- Klik onder het account waarvoor de digitale handtekening is aangevraagd op Beveiliging.
- Klik onder het kopje Versleuteling op Selecteren… Kies uit het pulldownmenu naast Certificaat: de digitale handtekening en controleer dat het e-mailadres overeenkomt.
- Klik vervolgens op OK.
Het is helaas niet mogelijk om het zo in te stellen dat berichten worden gecodeerd waar mogelijk - dit kan alleen handmatig per bericht worden ingesteld.
Om een bericht te kunnen coderen is het e-mail certificaat van de geadresseerde vereist: de geadresseerde moet reeds beschikken over een digitale handtekening, en moet naar de verzender een digitaal ondertekende e-mail hebben verzonden.
Wanneer de verzender het e-mailadres van de geadresseerde heeft toegevoegd als contactpersoon aan het adresboek, wordt ook automatisch de digitale handtekening van die persoon opgeslagen. Vanaf dat moment kan het gebruikt worden om gecodeerde berichten te verzenden.
Outlook
Wanneer het certificaat is gedownload is het vervolgens te installeren door erop te dubbelklikken: hiermee wordt de Certificaat Import Wizard opgestart. De stappen van de wizard kunnen met de standaardinstellingen worden doorlopen: klik driemaal op Volgende en vervolgens op Afsluiten om het certificaat te installeren.
Digitale Handtekening koppelen aan Outlook
- Open Outlook.
- Klik linksboven op de File ribbon en klik in het linkerpanel op Options.
- Klik in het options-menu helemaal onderaan op Trust Center, en daarna in het rechterpanel onderaan op Trust Center Settings… .
- Klik in het linkermenu op E-mail Security en daarna rechts onder het kopje Encrypted E-mail op Settings…
- Klik naast Signing Certificate: op Choose… en kies het e-mail certificaat uit de lijst. Het e-mailadres in het certificaat is te controleren door op View Details te klikken en onder tabblad Details te kijken naast Subject. Klik daarna op OK.
- Zet een vinkje naast de optie Add Digital Signature to outgoing messages; hierdoor worden verzonden berichten altijd digitaal ondertekend.
- Klik vervolgens tweemaal op OK en daarna op Close.
Outlook instellen berichten te kunnen versleutelen
- Open Outlook.
- Klik linksboven op de File ribbon en klik in het linkerpanel op Options.
- Klik in het options-menu helemaal onderaan op Trust Center, en daarna in het rechterpanel onderaan op Trust Center Settings… .
- Klik in het linkermenu op E-mail Security en daarna rechts onder het kopje Encrypted E-mail op Settings… .
- Klik naast Signing Certificate: op Choose… en kies het e-mail certificaat uit de lijst. Het e-mailadres in het certificaat is te controleren door op View Details te klikken en onder tabblad Details te kijken naast Subject. Klik daarna op OK.
OS X Mail
Wanneer het certificaat is gedownload is het vervolgens te installeren door erop te dubbelklikken: Sleutelhangertoegang zal opstarten en vragen of het certificaat moet worden geïnstalleerd. Door op ja te klikken wordt de installatie afgerond. Instellen Digitale Handtekening
Wanneer het e-mailadres in het certificaat overeenkomt met het e-mailadres in Mail en de installatie is gelukt, dan is Mail ook gelijk gereed om het certificaat te gebruiken. Door Mail opnieuw op te starten en vervolgens een nieuw bericht op te stellen worden deze instellingen zichtbaar. Er verschijnt helemaal rechts, net boven het onderwerp, twee extra knoppen: één met een slotje en één met een zwart tandwieltje met een wit vinkje erin. Het slotje geeft aan of het bericht gecodeerd wordt verzonden of niet; het tandwieltje geeft aan dat de e-mail digitaal wordt ondertekend.
Het is mogelijk dat het slotje grijs is, en niet ingedrukt kan worden. In dat geval kan het bericht niet gecodeerd worden. Om een bericht te kunnen coderen is het e-mail certificaat van de geadresseerde vereist: de geadresseerde moet reeds beschikken over een digitale handtekening, en moet naar de verzender een digitaal ondertekende e-mail hebben verzonden. Wanneer de verzender het e-mailadres van de geadresseerde heeft toegevoegd als als contactpersoon aan het adresboek, wordt ook automatisch de digitale handtekening van die persoon opgeslagen. Vanaf dat moment kan het gebruikt worden om gecodeerde berichten te verzenden.
Email versturen
Thunderbird
- Open een nieuw e-mailbericht.
- Klik bovenin op het pulldownmenu bij Beveiliging en kies de optie Dit bericht versleutelen. Het bericht wordt nu gecodeerd bij het verzenden, en kan alleen gelezen worden door de geadresseerde.
Outlook
- Open een nieuw e-mailbericht.
- Klik op de Opties-ribbon en druk op de knop Versleutelen.
OS X Mail
- Open een nieuw e-mailbericht.
- Er verschijnt helemaal rechts, net boven het onderwerp, twee extra knoppen: één met een slotje en één met een zwart tandwieltje met een wit vinkje erin. Het slotje geeft aan of het bericht gecodeerd wordt verzonden of niet; het tandwieltje geeft aan dat de e-mail digitaal wordt ondertekend.
Hoe verder
Bronnen:
https://www.enigmail.net/forum/viewtopic.php?f=7&t=67 https://www.sslcertificaten.nl/knowledgebase/Client_Certificaten/