Beste waterlelie, om te beginnen: goed om te zien dat je nadenkt over oplossingen tegen phishing en met concrete voorstellen komt (digitaal ondertekenen middels S/MIME).
Helaas vrees ik dat wat je voorstelt niet gaat werken, om de volgende redenen:
1) Ontvangers moeten dan
weten dat specifieke afzenders
nooit e-mails zullen verzenden die
niet digitaal ondertekend zijn, en
zelfs als ze dat weten, moeten ze niet in leugens trappen zoals "deze mail is niet digitaal ondertekend omdat ..." (vul zelf maar in). Ik heb vele jaren geleden met een klant gemaild die wederzijdse PGP verplichtte. De toenmalige versie van Outlook met PGP plugin van Symantec stuurde gewone mails netjes versleuteld en gesigneerd, maar vergaderverzoeken (ook die met bijlagen, waar ik een gloeiende hekel aan heb) werden -geheel onverwacht- onversleuteld en ongesigneerd verzonden - erg amateuristisch allemaal. Hopelijk is dat ondertussen verbeterd, maar met zeer weinig gebruikers krijgen noodzakelijke fixes meestal geen hoge prioriteit (dit geldt ook voor S/MIME, met certificaten dus).
Ter vergelijking: hoewel we met https veel verder zijn (de meeste webservers ondersteunen https) blijft het een probleem dat er nog steeds webservers zijn die
ook (nog) http ondersteunen, of https überhaupt (nog) niet ondersteunen (het http protocol kan dus nog niet de prullenbak in). Als ik bijvoorbeeld in Firefox onder Android
example.net invoer in de URL-balk en op "Enter" druk, kom ik uit op
http://example.net/ - met een streep door het slotje. Ik weet dus niet zeker of mijn browser verbinding heeft met de echte example.net of dat ik, bijv. via een DNS-aanval, verbinding heb met een heel andere server. Nu zou ik natuurlijk
https://example.net/ kunnen invoeren in de URL-balk van mijn browser, maar wat als er echt een DNS-aanval heeft plaatsgevonden (mijn browser niet het IP-adres van de echte maar van een fake server als antwoord heeft ontvangen) en de fake-server van de aanvallers bewust geen https ondersteunt? Dan
zou ik kunnen denken dat dit één van de webservers op internet is die nog niet met zijn tijd is meegegaan, en dan dus maar http gebruiken - en bijv. door in te loggen mijn naam en wachtwoord prijsgeven aan de aanvallers.
Omdat het voor e-mail-ontvangers veel te lastig is om te onthouden
welke organisaties (
al!) hun uitgaande e-mail digitaal ondertekenen, zou feitelijk
elke e-mail digitaal ondertekend moeten zijn (dan zou niet ondertekende mail bijv. in de spamfolder kunnen worden geplaatst en/of van een loeigrote waarschuwing worden voorzien). Dit is, net als bij http(s) sowieso een kip-ei probleem en daar komt bij dat digitale handtekeningen niet van begin af aan "in e-mail zaten" (een nieuw https-protocol is niet voor niets bedacht nadat http was uitgevonden; gelukkig zitten we nu niet opgescheept met een halfbakken oplossing waarbij http is "gepimpt" om tevens TLS te ondersteunen).
2)
Dat een e-mail digitaal is ondertekend, zegt nog niets: het gaat erom
wie heeft ondertekend
én of die persoon geautoriseerd is om een mail met de gegeven inhoud te sturen namens de kennelijke organisatie.
Ter vergelijking: bij https checkt de browser o.a. of de (in de URL-balk) getoonde domeinnaam voorkomt in het https-server-certificaat; het is de taak van de surfer om vast te stellen dat getoonde domeinnaam van de bedoelde organisatie is (naast controleren dat op de juiste plaats in de browser een slotje wordt getoond, ten teken dat de server is geauthenticeerd
én dat de verbinding met
die server is versleuteld). Een voordeel is hier ook dat het initatief bij de gebruiker ligt: als deze een bookmark/snelkoppeling voor een website heeft aangemaakt met de juiste domeinnaam erin (voorafgegaan door https://) en die altijd gebruikt, kan er weinig meer fout gaan (mits de gebruiker geen http:// gaat proberen na een certificaatfoutmelding of een time out).
Het stokoude e-mail protocol maakt het er niet eenvoudiger op: zo wordt meer dan één afzender ondersteund (ook sommige DMARC-implementaties hebben of hadden hier problemen mee). Zelfs als het e-mail-programma zorgvuldig vaststelt dat de (enige) afzender in het getoonde "From:" veld de e-mail ondertekend heeft (d.w.z. over de geheime private key beschikt passend bij de public key in het meegezonden -dus niet geheime- certificaat), zal de ontvanger sowieso
bij elke ontvangen mail
foutloos moeten vaststellen dat het afzenderdomein van de kennelijke organisatie is,
én dat de betrokken persoon geautoriseerd is om de gegeven mail te sturen namens die organisatie. Is bijvoorbeeld "no-reply" dat? En het initiatief ligt bij de verzender: vaak komen mails binnen op momenten die slecht uitkomen en is de ontvanger gehaast (Google: email fatigue). Daatnaast laten veel grotere organisaties het verzenden van mailings over aan derde partijen (die links in e-mails willen kunnen vervangen om clicks te tellen, zij willen meestal geen pre-signed mails doorsturen): hoe betrouwbaar is het als
zij ondertekenen? Een deel van dat soort bedrijven neemt het niet altijd even nauw met beveiliging, en er zijn al verschillende mibruikt geweest door scammers.
3) Het is voor kwaadwillenden veel te eenvoudig om een geldig e-mail-certificaat te verkrijgen, sowieso voor "lijkt-op" domeinnamen. Maar ook hoeven zij maar één e-mail account van een organisatie te hacken om een geldig certificaat te kunnen verkrijgen voor dat account (waarbij de bijpassende private key natuurlijk in hun bezit is). Gezien het grote aantal BEC's (Business Email Compromise) doordat steeds meer mensen thuiswerken en/of organisaties alles in de cloud flikkeren, is dit geen denkbeeldig risico - dat digitaal ondertekende e-mails wel eens zouden kunnen verergeren (immers, "de mail is betrouwbaar want ondertekend door de afzender"). In z'n algemeenheid: betrouwbare online authenticatie is een nog nauwelijks opgelost en zeer ingewikkeld probleem.
4) Er zijn al veel implementatiefouten in S/MIME (en PGP/GnpPG/GPG) aan het licht gekomen, en we hebben de laatste vast nog niet gezien, mede doordat "het e-mail protocol" er ondertussen uitziet als een poreuze fietsbinnenband die je door de vele plakkers zelf niet meer ziet. M.i. hebben we een nieuw, van de grond af secure ontworpen, protocol nodig om zoiets (los van de andere uitdagingen) zinvol te kunnen maken.
Sorry dat ik zoveel beren op de weg zie...