S/MIME: Wat is het, waarom zou ik er iets om geven, en wat heeft het te maken met SparkPost?

S/MIME: Wat is het, waarom zou ik er iets om geven, en wat heeft het te maken met SparkPost?

S/MIME: Wat is het, waarom zou ik er iets om geven, en wat heeft het te maken met SparkPost?

Dec 19, 2018

Gepubliceerd door

Gepubliceerd door

Bird

Bird

-

Categorie:

Categorie:

E-mail

E-mail

Ready to see Bird
in action?

Ready to see Bird
in action?

S/MIME: What is it, why should I care, and how does it relate to SparkPost?

S/MIME is a long-established method of sending encrypted, signed email, based on public Internet standards. We regularly come across requirements for S/MIME, particularly from regulated industries such as banking, health, and finance. S/MIME often is required when communicating between businesses and government agencies, for example.

Another secure mail standard, PGP (amusingly named as “Pretty Good Privacy”), is used more for secure person-to-person communications. It’s less popular now because the consumer versions of popular web-based email clients such as Gmail and Outlook/Hotmail aren’t able to display encrypted mail. That’s one reason much person-to-person communication that requires privacy has moved to platforms such as WhatsApp (and many others) that offer native, end-to-end encryption.

Both PGP and S/MIME require a mail client that can use keys and certificates. Many desktop and mobile clients, including Apple Mail, Microsoft Outlook, and Mozilla Thunderbird fit the bill, as do business versions of some web clients such as Microsoft Office 365. Setting up the keys takes work, but many organizations still consider it worthwhile, despite recent bekendmaking van kwetsbaarheden requiring remedies to block loading of remote content.

S/MIME has been around since 1995 and gone through several revisions; the current version is covered by RFC 5751. It requires exchange of public keys, a non-trivial task that often requires the support of an IT team or similar resource. This is whier commercial solutions from companies such as SparkPost partners Virtru and Echoworkx come in, making security easier for person-to-person business mailing (see our SparkPost/Echoworkx how-to for more information).

Dat gezegd zijnde, laten we eens wat dieper ingaan op gewoon S/MIME en kijken wat we ermee kunnen doen.

Wat kan mij dat schelen?

De korte versie:

  • Encryptie geeft u de privacy van uw berichten.

  • Ondertekening biedt u authenticatie (van de afzender), onweerlegbaarheid van de oorsprong, en controles van de integriteit van het bericht.

  • S/MIME werkt anders dan DKIM en DMARC en kan daarmee naast elkaar bestaan.

Privacy
If your messages contain nothing personal, private, or legally important, then you probably won’t need to think about S/MIME. Modern email delivery systems such as SparkPost already use “opportunistische TLS” to secure the message transport from sending server to recipient server.

De “opportunistic” part does mean however that if the sending server can’t negotiate a secure connection, we’ll send the mail in plain text. This isn’t suitable if you want to force the message to be secure all the way. You can take a peek at welke postbusaanbieders beweren TLS te ondersteunen and which doen. Assuming the recipient’s server does support TLS, your message is secured zoals dit:

TLS beveiligt de gesprekken tussen mailservers (daarom heet het Transport Layer Security). MIME (inclusief S/MIME) houdt zich bezig met de inhoud van berichten en de behandeling ervan, en kan worden beschouwd als onderdeel van de "presentatielaag".

S/MIME secures the message content all the way (“end to end”) from the message origin naar de recipient mail client, encapsulating the message body.

S/MIME versleutelt het bericht met de publieke sleutel van de ontvanger. De body kan niet worden gedecodeerd zonder de private sleutel van de ontvanger - niet door een "persoon in het midden" zoals uw ISP, SparkPost, of de mail server van de ontvanger.

De privésleutel wordt nooit vrijgegeven; deze is alleen in het bezit van de ontvanger. Het versleutelde bericht reist over het internet naar de ontvangende mailserver. Wanneer het op de inbox van de ontvanger terechtkomt, wordt het (meestal automatisch) gedecodeerd met hun privésleutel en wordt het leesbaar.

Een paar S/MIME gotchas om rekening mee te houden:

S/MIME-codering heeft als neveneffect dat het scannen van inkomende berichten op malware door de server wordt verhinderd, omdat de payload van het bericht in gecodeerde vorm is en dus niet kan worden geïdentificeerd.


Note that the message kopteksten (From:, To:, Subject: etc) are not encrypted, so the subject-line content needs to be created with that in mind.

 

Ondertekening - authentificatie
S/MIME also provides the recipient the ability to check that the identity of the message sender is wie ze zeggen dat ze zijn.

De sender’s email has a certificate attached, which, rather like the certificate on a secure website, can be traced back to an issuing authority. Thier’s a full description of the signing process hier.

We zullen de mail eerst ondertekenen en dan versleutelen, zodat het proces er als volgt uitziet.


Niet-afwijzing
Another useful benefit of signing naar de recipient is non-repudiation of origin. Consider a situation whier an email message is used to approve a contract. The recipient gets the contract in a message from the sender. If the sender later tries to say, “Nope, I never sent that message to you”, then the received message shows that the sender’s certificate was in fact used.

Integriteit van het bericht
The signing process creates a fingerprint of the plain source message (known as a message digest), encrypts the digest using the sender’s private key, and includes it in the delivered message. The recipient’s mail client can tell if the message body is tampered with.

Perhaps you might say, “I thought DKIM gives me message integrity checks!” Well yes, DKIM provides message body and message header integrity checks – anti-tampering guarantees. However, DKIM failure (or absence) will not usually cause the incoming message to be marked as completely invalid, …unless a DMARC policy of `p=reject` is in play (more on DMARC here). DKIM is one factor of many used by the ISP for reliable assignment of reputation to a domain and is, of course, an essential part of your messaging stack.

Uw e-mailprogramma zal u duidelijk tonen wanneer een S/MIME-bericht de handtekeningcontroles niet doorstaat:


Samenvatting: end-to-end (S/MIME) vs server-to-server (DKIM, DMARC, TLS)
S/MIME is a presentation-layer capability that can work between two email end-users (with valid certificates/keys) without any action by the email admin. S/MIME provides encryption and signing and is personal to each user.

S/MIME is tied to the full sending address (local part and domain part), so, for example, alice@bigcorp.com and bob@bigcorp.com would need to have different certificates. In contrast, DKIM validates the email is coming from the signing domain. DKIM is a whole subject in itself; dit artikel is a good place to start.

DKIM en DMARC worden ingesteld door uw e-mailbeheerder (via de mailserver en DNS-records). Eenmaal ingesteld, zijn ze actief voor domeinen, niet voor individuele gebruikers.

Wat heeft dit te maken met SparkPost?

Mail systems for person-to-person messaging, such as Microsoft Exchange Server, have lang ondersteunde S/MIME.

Als je SparkPost gebruikt om naar specifieke ontvangers te sturen met mail-clients die S/MIME kunnen lezen, dan kan het zinvol zijn om je berichten te ondertekenen met S/MIME. S/MIME ondertekening geeft extra zekerheid dat het bericht echt van jou (of jouw systeem) komt, en dat er niet mee geknoeid is, wat waardevol kan zijn in sommige use-cases. Alles wat je daarvoor nodig hebt is je eigen sleutel en wat gratis software die we zullen demonstreren in deel 2 van dit artikel.

Het gebruik van S/MIME-codering is een aparte keuze. U hebt de publieke sleutel nodig voor elk van uw ontvangers. Het verkrijgen hiervan kan zo eenvoudig zijn als ze jou (of je app) een ondertekende e-mail laten sturen. In een volgende post zullen we een praktische tool onderzoeken om S/MIME ondertekende en versleutelde mail te versturen via SparkPost.

Welke clients ondersteunen S/MIME?

Consument Gmail
The ordinary Gmail web client displays incoming mail signatures (see below), but it’s not set up to hold your private key to read encrypted messages. Even if that were possible via third-party plugins, uploading your private key is not a great idea from a security standpoint.

Ik kon Yahoo! Mail de handtekeningen in berichten niet laten decoderen.

De consumentenversie van Microsoft Outlook/Hotmail maakt u attent op de aanwezigheid van een S/MIME-handtekening, maar geeft u geen volledige toegang om het certificaat te bekijken of te controleren.


Gehoste bedrijfspost
For organizations with hosted mail, Microsoft Office 365 and G Suite Enterprise have S/MIME support.

Outlook-mailclients
Client-based Microsoft Outlook (e.g. 2010 for Windows) works:

Als u op de pictogrammen klikt, krijgt u meer informatie:

In Outlook 2010 / Windows is de certificaatopslag toegankelijk via Bestand / Opties / Vertrouwenscentrum / Vertrouwenscentruminstellingen / E-mailbeveiliging / Importeren / Exporteren.

Thunderbird - cross-platform en gratis
If you’re looking for a free client, Mozilla Thunderbird fits the bill. It’s available on PC, Mac, and Linux, and supports S/MIME across all of these. Here’s how a message looks on Mac. The “sealed envelope” icon indicates the message is signed, and the padlock indicates it was encrypted.

Klikken op de enveloppe/het slot geeft info over het bericht:

Thunderbird has its own key store, accessed in similar ways on each platform:
Mac via Preferences / Advanced / Certificates / Manage Certificates
PC: menu (“hamburger” top right), Advanced / Certificates / Manage Certificates
Linux: menu (“hamburger” top right), Preferences / Advanced / Manage Certificates

Mac Mail
Mac Mail also supports S/MIME. It relies on your Mac keychain to hold your keys.

iOS Mail
Firstly, import your email account’s certificate like this, then you can view S/MIME signed and encrypted emails. They don’t really look any different on the viewing screen.

Android
Sommige devices and apps support S/MIME; there’s a lot of variety out there. Samsung has a guide.

Eindelijk...

That’s our quick overview of the practical uses of S/MIME. If you want to get your own mail certificates, there’s a list of providers here. I found Comodo works well (free for non-commercial use – open this in Firefox, not Chrome).

In deel 2 onderzoeken we hoe je S/MIME ondertekening en encryptie toepast op berichten die je via SparkPost aanlevert.

Verder lezen
Microsoft has a good introductory article on S/MIME here.

For more info on the EFAIL vulnerability and how it’s been addressed, this is the definitive site. Other easy-to-follow explanations are here and here.

Your new standard in Marketing, Pay & Sales. It's Bird

The right message -> to the right person -> aan de right time.

Your new standard in Marketing, Pay & Sales. It's Bird

The right message -> to the right person -> aan de right time.