
S/MIME is een al lang bestaand methode voor het verzenden van versleutelde, ondertekende e-mails, gebaseerd op publieke internetstandaarden. We komen regelmatig vereisten voor S/MIME tegen, met name vanuit gereguleerde sectoren zoals banken, gezondheidszorg en financiën.
S/MIME is een lang bestaand methode voor het verzenden van versleutelde, ondertekende e-mails, gebaseerd op openbare internetstandaarden. We komen regelmatig eisen tegen voor S/MIME, vooral uit gereguleerde sectoren zoals banken, gezondheid en financiën. S/MIME is vaak nodig bij communicatie tussen bedrijven en overheidsinstanties, bijvoorbeeld.
Een andere veilige mailstandaard, PGP (grappig genoemd als “Pretty Good Privacy”), wordt meer gebruikt voor veilige persoon-tot-persoon communicatie. Het is nu minder populair omdat de consumentenversies van populaire webgebaseerde e-mailclients zoals Gmail en Outlook/Hotmail geen versleutelde e-mail kunnen weergeven. Dat is een reden dat veel persoon-tot-persoon communicatie die privacy vereist, is verhuisd naar platforms zoals WhatsApp (en vele anderen) die native end-to-end encryptie bieden.
Zowel PGP als S/MIME vereisen een mailclient die sleutels en certificaten kan gebruiken. Veel desktop- en mobiele clients, waaronder Apple Mail, Microsoft Outlook, en Mozilla Thunderbird voldoen, evenals zakelijke versies van sommige webclients zoals Microsoft Office 365. Het instellen van de sleutels kost werk, maar veel organisaties vinden het toch de moeite waard, ondanks recente kwetsbaarheidsrapportages die oplossingen vereisen om het laden van externe content te blokkeren.
S/MIME bestaat al sinds 1995 en heeft verschillende revisies doorgemaakt; de huidige versie wordt gedekt door RFC 5751. Het vereist uitwisseling van openbare sleutels, een niet-triviale taak die vaak de ondersteuning van een IT-team of vergelijkbare bron vereist. Voor organisaties met een eigen e-mailinfrastructuur vereist het implementeren van S/MIME aanvullende overwegingen voor platforms zoals PowerMTA en Momentum, die we behandelen in onze gids voor S/MIME voor eigen beveiligde e-mail. Er zijn echter geautomatiseerde benaderingen om dit proces te stroomlijnen, zoals het verzamelen van openbare sleutels van ontvangers via e-mailsystemen die het beheer van sleutels kunnen vereenvoudigen voor app-gegeneerde e-mailstromen. Dit is waar commerciële oplossingen van bedrijven zoals SparkPost partners Virtru en Echoworkx binnenkomen, die beveiliging eenvoudiger maken voor persoon-tot-persoon zakelijke mailing (zie onze SparkPost/Echoworkx how-to voor meer informatie).
Dat gezegd zijnde, laten we een beetje dieper ingaan op de gewone oude S/MIME en kijken wat we ermee kunnen doen.
Waarom zou ik me daar druk om maken?
De korte versie:
Encryptie geeft je berichtprivacy.
Ondertekening geeft je authenticatie (van de afzender), niet-weigering van oorsprong, en controle van de integriteit van berichten.
S/MIME werkt anders dan DKIM en DMARC en kan naast hen bestaan.
Privacy
Als je berichten niets persoonlijks, vertrouwelijks of juridisch belangrijks bevatten, is de kans groot dat je niet aan S/MIME hoeft te denken. Moderne e-mailbezorgsystemen zoals SparkPost gebruiken al "opportunistische TLS" om het berichttransport van de verzendende server naar de ontvangende server te beveiligen.
Het "opportunistische" gedeelte betekent echter dat als de verzendende server geen veilige verbinding kan onderhandelen, we de mail in platte tekst sturen. Dit is niet geschikt als je wilt dat het bericht over de hele weg veilig is. Je kunt een kijkje nemen bij welke mailboxproviders TLS-ondersteuning claimen en welke dat daadwerkelijk doen. Aangenomen dat de server van de ontvanger TLS ondersteunt, is je bericht als volgt beveiligd:

TLS beveiligt de gesprekken tussen mailservers (waarom het Transport Layer Security wordt genoemd). MIME (inclusief S/MIME) houdt zich bezig met de inhoud van berichten en de behandeling daarvan, en kan worden gezien als onderdeel van de "Presentatielaag".
S/MIME beveiligt de berichtinhoud helemaal van het berichtbegin tot de ontvangende mailclient, waarbij de berichttekst wordt ingekapseld.

S/MIME versleutelt de berichttekst met de openbare sleutel van de ontvanger. De tekst kan niet worden gedecodeerd zonder de privésleutel van de ontvanger—niet door een "persoon in het midden" zoals je ISP, SparkPost, of de mailserver van de ontvanger.
De privésleutel wordt nooit onthuld; deze is uitsluitend in het bezit van de ontvanger. Het versleutelde bericht reist over internet naar de ontvangende mailserver. Wanneer het in de inbox van de ontvanger belandt, wordt het (meestal automatisch) gedecodeerd met hun privésleutel en leesbaar.
Een paar S/MIME valkuilen om op te letten:
S/MIME encryptie heeft als bijwerking dat servergebaseerde inbox-scanning op malware wordt voorkomen omdat de berichtinhoud in versleutelde vorm is en daarom onherkenbaar.
Merk op dat de berichtheaders (Van:, Aan:, Onderwerp: enzovoort) niet versleuteld zijn, dus de inhoud van het onderwerp moet daar rekening mee houden.
Ondertekening – authenticatie
S/MIME biedt de ontvanger ook de mogelijkheid om te controleren dat de identiteit van de afzender is wie ze zeggen dat ze zijn.
De e-mail van de afzender heeft een certificaat bijgevoegd, dat, net als het certificaat op een beveiligde website, kan worden herleid tot een uitgevende instantie. Er is een volledige beschrijving van het ondertekeningsproces hier.
We nemen de aanpak om de e-mail eerst te ondertekenen en vervolgens te versleutelen, zodat het proces er als volgt uitziet.

Niet-weigering
Een ander nuttig voordeel van ondertekening voor de ontvanger is niet-weigering van oorsprong. Overweeg een situatie waarbij een e-mailbericht wordt gebruikt om een contract goed te keuren. De ontvanger krijgt het contract in een bericht van de afzender. Als de afzender later probeert te zeggen: "Nee, ik heb dat bericht nooit naar jou verzonden", dan laat het ontvangen bericht zien dat het certificaat van de afzender daadwerkelijk is gebruikt.
Berichtintegriteit
Het ondertekeningsproces creëert een vingerafdruk van het onbewerkte bronbericht (bekend als een berichtdigest), versleutelt de digest met de privésleutel van de afzender, en voegt deze toe aan het geleverde bericht. De mailclient van de ontvanger kan zien of er met de berichttekst is geknoeid.
Misschien zeg je: "Ik dacht dat DKIM me berichtintegriteitscontroles geeft!" Nou ja, DKIM biedt integriteitscontroles van berichttekst en berichtheaders – garanties tegen knoeien. Echter, DKIM-falen (of afwezigheid) zal meestal niet ervoor zorgen dat het inkomende bericht als volledig ongeldig wordt gemarkeerd, ...tenzij een DMARC beleid van `p=reject` van kracht is (meer over DMARC hier). DKIM is één van de vele factoren die door de ISP worden gebruikt voor betrouwbare toewijzing van reputatie aan een domein en is natuurlijk een essentieel onderdeel van je berichtenstack.
Je mailclient zal je duidelijk laten zien als een S/MIME-bericht faalt bij handtekeningcontroles:

Samenvatting: end-to-end (S/MIME) vs server-server (DKIM, DMARC, TLS)
S/MIME is een presentatielaagmogelijkheid die kan werken tussen twee e-mailgebruikers (met geldige certificaten/sleutels) zonder enige actie van de e-mailbeheerder. S/MIME biedt encryptie en ondertekening en is persoonlijk voor elke gebruiker.
S/MIME is gekoppeld aan het volledige verzendadres (lokaal deel en domeindeel), dus bijvoorbeeld alice@bigcorp.com en bob@bigcorp.com zouden verschillende certificaten moeten hebben. In tegenstelling hiermee valideert DKIM dat de e-mail afkomstig is van het ondertekenende domein. DKIM is een heel apart onderwerp; dit artikel is een goed startpunt.
DKIM en DMARC configuratie wordt gedaan door je e-mailbeheerder (werkzaam op de mailserver en DNS-records). Na de configuratie zijn ze actief voor domeinen, in plaats van individuele gebruikers.
Hoe verhoudt dit zich tot SparkPost?
Welke clients ondersteunen S/MIME?
Consumer Gmail
De gewone Gmail-webclient toont binnenkomende e-mailhandtekeningen (zie hieronder), maar is niet ingesteld om uw privésleutel te bewaren om versleutelde berichten te lezen. Zelfs als dat mogelijk was via invoegtoepassingen van derden, is het uploaden van uw privésleutel geen goed idee vanuit beveiligingsoogpunt.

Ik kon Yahoo! Mail nergens vinden om handtekeningen in berichten te decoderen.
De consumentversie van Microsoft Outlook/Hotmail-accounts waarschuwt u voor de aanwezigheid van een S/MIME-handtekening, maar geeft u geen volledige toegang om het certificaat te bekijken of te controleren.

Hosted business mail
Voor organisaties met gehoste mail hebben Microsoft Office 365 en G Suite Enterprise S/MIME-ondersteuning.
Outlook mail clients
Client-gebaseerde Microsoft Outlook (bijv. 2010 voor Windows) werkt:

Klikken op de iconen geeft u meer informatie:


Op Outlook 2010 / Windows wordt de certificaatopslag geopend via Bestand / Opties / Vertrouwenscentrum / Vertrouwenscentruminstellingen / E-mailbeveiliging / Importeren / Exporteren.

Thunderbird – cross-platform and free
Als u op zoek bent naar een gratis client, Mozilla Thunderbird voldoet. Het is beschikbaar op pc, Mac en Linux, en ondersteunt S/MIME op al deze platforms. Zo ziet een bericht eruit op Mac. Het 'gesloten envelop'-pictogram geeft aan dat het bericht is ondertekend, en het hangslot geeft aan dat het is versleuteld.

Klikken op de envelop/hangslot toont informatie over het bericht:

Thunderbird heeft zijn eigen sleutelopslag, toegankelijk op vergelijkbare manieren op elk platform:
Mac via Voorkeuren / Geavanceerd / Certificaten / Certificaten beheren
PC: menu ("hamburger" rechtsboven), Geavanceerd / Certificaten / Certificaten beheren
Linux: menu ("hamburger" rechtsboven), Voorkeuren / Geavanceerd / Certificaten beheren
Mac Mail
Mac Mail ondersteunt ook S/MIME. Het maakt gebruik van uw Mac-sleutelhanger om uw sleutels te houden.

iOS Mail
Importeer eerst het certificaat van uw e-mailaccount op deze manier, dan kunt u S/MIME ondertekende en versleutelde e-mails bekijken. Ze zien er op het kijkscherm niet echt anders uit.



Android
Sommige apparaten en apps ondersteunen S/MIME; er is veel variatie beschikbaar. Samsung heeft een gids.
Eindelijk…
Dat is ons korte overzicht van de praktische toepassingen van S/MIME. Als je je eigen mailcertificaten wilt krijgen, is er een lijst van aanbieders hier. Ik vond Comodo goed werken (gratis voor niet-commercieel gebruik – open dit in Firefox, niet Chrome).
In deel 2 zullen we onderzoeken hoe je S/MIME ondertekening en versleuteling toepast op berichten die je via SparkPost verstuurt.
Verder lezen
Microsoft heeft een goed inleidend artikel over S/MIME hier.
Voor meer info over de EFAIL-kwetsbaarheid en hoe het is aangepakt, is deze de definitieve site. Andere gemakkelijk te volgen uitleggen zijn hier en hier.