De eerste vraag van mij uit is: Wat vind je goedkoop? Wat bedoel je precies met: het mag niet teveel kosten?
Een mogelijke oplossing welke je zoekt is al beschikbaar vanaf ongeveer EUR 18,- per gebruiker per jaar als je een ASP gebruikt om je van deze oplossing te voorzien en het gaat om een kleine gebruikers gemeenschap.
Als je een grotere gebruikers gemeenschap hebt, liggen de kosten (veel) lager.
Het gebruik van SSL certificaten server-side is feitelijk een must-have, maar waarom ook niet client-side?
Je hoeft geen "echt" certificaat te gebruiken (zoals uitgegeven door Verisign etc) maar wordt zo te lezen in eerdere reacties vooral aangeraden omdat je anders met een beheers-uitdaging zit, om alle werkplekken van je gebruikers je eigen CA-tree te laten vertrouwen etc.
Er zijn echter gerenomeerde partijen welke een gemanagde PKI omgeving aanbieden. Uiteraard kan je er voor kiezen om het zelf te hosten (implementatie duurt ongeveer 3-5 dagen inclusief client roll-out). Deze omgevingen kunnen jouw gebruikers volledig secure en geautomatiseerd voorzien van client side certificaten, welke kort levend zijn (bijv 1 uur of 4 uur geldig). Je gebruikers kunnen vervolgens op de door jouw gehoste webmail omgeving inloggen, op basis van client certificate authenticatie.
De certificaten worden verstrekt op basis van een door jouw gehoste identity-store, zoals een LDAP/AD, welke bijvoorbeeld middels LDAPS of een andere vorm van encryptie met de gehoste PKI omgeving communiceert, voor het verifieren van authenticatie gegevens.
Daar het jouw eigen LDAP/AD is, kan je zelf bepalen aan welke eisen het wachtwoord moet voldoen om het certificaat te verkrijgen. Je kan er zelfs voor kiezen om zogenaamde "device-fingerprint" te combineren met de wachtwoorden. Kortweg kan een gebruiker dan enkel een certificaat krijgen als deze zijn username/wachtwoord opgeeft vanaf zijn geregistreerde pc/laptop (dit werkt op veel meer dan enkel het device MAC/IP). In dit geval zou je kunnen volstaan met een relatief eenvoudig of door de gebruiker zelf verzonnen wachtwoord, daar een derde die beschikt over het username/wachtwoord (phishing) zeer waarschijnlijk(!!) niet beschikt over de geburiker zijn/haar device. Het vaststellen van een gebruiker zijn/haar device fingerprint is over het algemeen een eenmalige aktie welke geautomatiseerd kan worden en ook opgeslagen word in je eigen LDAP/AD.
In een standaard PKI omgeving krijg je te maken met veel zaken welke het leven van een PKI beheerder een redelijke hel kunnen maken. Certificaat uitgifte, Certificaat installatie, revocatie, heruitgifte, CRL-lijsten, vertrouwen van de CA-tree op de gebruikers pc/laptop/pda etc. De eerder omschreven gemanagde PKI omgeving heeft al dit beheer zelfs uit handen gehaald van de ASP aanbieder.
- CRL is niet nodig omdat certificaten al vervallen voordat je de tijd hebt om een CRL te updaten
- CA tree vertrouwen gebeurd automatisch door een benodigde client installatie (5-8MB), welke de tree importeerd in je cert stores, waardoor zowel de ASP zijn user als server certificaten vertrouwd worden.
- (Her)uitgifte en installatie van certificaten gebeurd automatisch op basis van deze zelfde client.
- Wissen van vervallen certificaten bij de gebruiker gebeurd automatisch via dezelfde client
Vanuit security point of view, loggen je gebruikers zeer veilig in. 2 Zijdige SSL verbindingen zijn defacto bestand tegen bijvoorbeeld Man-in-the-Middle attacks. Omdat elk certificaat slechts zeer kort geldig is, is de kans dat een 1024 bits sleutel gekraakt wordt nagenoeg nul, waardoor de data-stroom tussen webmail omgeving en user device gegarandeerd is.
De aannames zijn uiteraard wel dat het device van de gebruiker secure is (Geen trojans/virusen, afdoende anti malware/firewall) en dat je netwerkomgeving waar je mailserver etc draait voldoende beveiligd is.
EDIT: Een aantal spelfouten gecorrigeerd. Tevens verwijzing naar externe url's verwijder, ik wi natuurlijk niet spammen :)