Hoe dan? Als iemand denkt dat het een legit site/login is en zijn pass ingeeft dat zal hij de MFA token ook gewoon ingeven.
Klopt, min of meer, MFA wordt veel verkeerd begrepen en de term heeft meerdere interpretaties.
In de meeste stricte zin betekent MFA alleen dat je meerdere authenticatiemethodes gebruikt.
Dat voorkomt inderdaad niet dat mensen hun wachtwoord (en andere codes) laten lekken aan een man-in-the-middle. Het enige dat MFA daar doet is zorgen dat de aanvaller niet later opnieuw in kan loggen met de gestolen gegevens. MFA voorkomt zeg maar niet dat een inbreker binnen komt door met iemand mee naar binnen te glippen door een openstaande deur. MFA voorkomt wel dat de inbreker 's nachts terug komt en de deur zelf open maakt.
MFA is er niet om phishing te voorkomen, maar omdat phishing niet te voorkomen is.
MFA is er om de gevolgen van phishing te beperken.
De term MFA wordt helaas op verschillende manieren gebruikt. Strict genomen is het alleen een
een verzamelterm voor alle authenticatiemethodes (zolang je er maar meer dan 1 doet). Daar zitten goede en slechte methodes bij en we nemen aan dat het combineren van methodes een sterker geheel is dan de losse delen.
Vaak bedoelen mensen met MFA één specifiek combinatie (je had het bv over een MFA-token) en vaak worden er ook neveneffecten meegerekend. Als je MFA veel breder neemt dan zijn er meer mogelijkheden.
Zo kun je bijvoorbeeld naar het IP-adres van de gebruiker kijken en kijken of dat overeen komt met de ip-range van de werkgever. Dat is een beetje ouderwets en niet erg betrouwbaar maar het is weer een extra factor. Nog zo'n factor is tijd. Je zou kunnen instellen dat een applicatie alleen tijdens kantooruren beschikbaar is. Dat is geen grote hobbel maar wel weer een extra hobbel.
Strict genomen helpt MFA zelf dus niet, maar de "neveneffecten" kun je wel nuttig gebruiken om phishing moeilijker te maken. Bijvoorbeeld door authenticatie via verschillende routes te laten lopen die de aanvaller dan allemaal moet onderscheppen zodat het gewoon veel meer werk is en dus minder aantrekkelijk.
Als je nog iets verder gaat kun je ook de activiteiten van de gebruiker meenemen. Als gebruiker het menu van de kantine wil bekijken dan is het niet nodig om heel streng te controleren. Als de gebruiker toegang wil tot de gegevens van een klant wil je waarschijnlijk wel een extra controle doen. Als gebruiker alle klantgegevens opvraagt dan wil je misschien wel 3 extra controles doen.
Dat richt je uiteraard zo in dat je meestal de makkelijke methodes mag gebruiken zoals een pincode, vingerafruk, of een simpel knopje om op te drukken. Pas als je meer gevoelige dingen gaat doen moet je vaker authenticeren en met zwaardere middelen. Dat betekent ook dat de meeste mensen in de meeste gevallen niet al hun authenticatiemethodes hoeven te gebruiken. Die kunnen dan ook niet onderschept worden door een aanvaller.
Als je via de website van mijn werkgever je bankrekeningnummer verandert dan wordt je bv persoonlijk gebeld door een medewerker van HR op je privé-telefoon en bij de minste twijfel wordt je gevraad om even met je paspoort op kantoor langs te komen ter controle. Dat is een hele zware vorm van authenticatie die
niet eenvoudig te onderscheppen is door een hackertje op internet.
Dat helpt ook tegen authenticatiemoeheid. In plaats van voortdurend alles uit de kast te halen moet je af en toe iets extra doen en wat je moet doen is niet altijd hetzelfde. Als je het goed doet kunnen mensen aanvoelen dat er iets niet goed gaat als ze opeens een extra zware controle moeten doen waar dat normaal niet nodig is.
Daarmee komen we /misschien/ bij wat @Verwijderd bedoelde met "goede" MFA. MFA voorkomt phishing niet, maar een goed authenticatiesysteem had de schade wel kunnen beperken, bv door om extra authenticatie te vragen op het moment dat de hacker de gegevens van meerdere klanten opvroeg.
Even overschakelende op de grotere vraag hoe je phishing voorkomt is een ander "probleem" met de term MFA is dat we het meestal hebben over authenticatie van de gebruiker naar de website toe. Om phishing te voorkomen heb je het omgkeerde nodig. Je wil dat de website (of wat dan ook) zich authenticeert naar de gebruiker toe. Technisch gezien kun je dat ook authenticatie noemen (of zelfs MFA) maar typisch doen we dat niet.
In praktijk doen we deze vorm van authenticatie meestal door de gebruiker op te dragen om het adres van de website in de URL-balk te controleren. Vroeger moest je dan ook nog naar "het groene slotje" kijken maar dat hebben de aanvallers tegenwoordig zelf ook en dat doen we dus niet meer.
Een van mijn persoonlijke hacks is dat ik een speciale CSS-stylesheet op mijn computer heb staan. Die stylesheet herkent de inlogpagina van mijn werkgever en een aantal andere belangrijke sites en zet er een opvallende overlay overheen. Die overlay is echter afhankelijk van de URL waarop die elementen worden aangetroffen. Als iemand een tool gebruikt om een een-op-een kopie van zo'n website maakt op een andere URL dan zal mijn browser hopelijk een aantal elementen herkennen en daar aparte (knalrode) styling op toepassen die niet alleen opvallend is maar het ook onmogelijk maakt om mijn wachtwoord in te vullen.
Het mooie ervan is dat het helemaal op mijn eigen PC draait. Een man-in-the-middle kan niet zien dat ik dit doe. Deze methode is nogal gevoelig voor fouten en vereist veel technisch inzicht om goed op te zetten en is dus niet voor iedereen.
Deze methode lijkt misschien een beetje off-topic maar het is ook een vorm van authenticatie. Het fijne is dat het automatisch gaat en ik niks extra hoef te doen bij normaal gebruik. Het is geen super zware of sterke beveiliging maar dat hoeft ook niet niet, het is extra en alle beetjes helpen.
Enigszins verwant is dat het ook helpt om toegang tot authenticatiemethodes te controleren. Zo kijken sommige passwordmanagers naar de URL van je webbrowser en geven alleen toegang tot een wachtwoord als die URL past bij het wachtwoord waar om gevraagd wordt (liefst na controle van het SSL-certificaat). Dan kan de site pixel-voor-pixel gekopieerd worden zodat mensen het verschil niet zien maar de computer trapt daar niet in en geeft het wachtwoord niet.
Een password manager wil je soweiso goed beveiligen en misschien ook wel met een vorm van MFA.
In deze post heb ik dus al vier vormen van authenticatie aangestipt: Van de gebruiker naar de website (of applicatie), van de website naar de gebruiker, van de website naar de password manager, van de gebruiker naar de password manager. Voor al die vormen zijn er meerdere authenticatiemethodes te bedenken. Op iedere vorm zou je dus MFA kunnen toepassen.
Ik ben een securityfreak en computernerd en over dit soort dingen nadenken en ze testen hoort bij mijn vak. Ik doe het dus allemaal. Deze week telde ik dat ik acht actieve vormen van authenticatie nodig had om mijn laptop te starten en op een bepaalde vergadering in te loggen en dat is nog heel normaal, soms zijn het er nog meer en dan zijn er ook nog passieve controles. Om knettergek van te worden dus. Gelukkig kan ik ook bepaalde stappen combineren waardoor het allemaal niet meer dan 3 minuten kost maar het is wel een hele dans met tokens, telefoons, wachtwoorden, pincodes, biometrie, etc..
Dit bedoel ik niet advies en ik probeer niet te zeggen dat iedereen het zo moet doen. In tegendeel,
voor de meeste mensen zou het totaal niet werken en het zo verwarrend maken dat ze alleen maar makkelijker te phishen zijn. Ik vertel dit om te illustreren dat er niet één "MFA" is maar een hele hoop authenticatieprocessen die allemaal op hun eigen manier beveiligd kunnen/moeten worden.
Absolute veliigheid bestaat niet. Niks is 100% veilig en dat moet je dus ook niet proberen. De kunst is om de behoeftes en de middelen op elkaar af te stemmen zo dat je de gebruikers zo min mogelijk belast als het niet nodig is. Vertrouw niet op één super hoge en dikke muur met gewapende bewakers die alle bezoekers fouilleren bij binnenkomst met maar bouw een paar muurtjes die hoger en dikker worden als je dichter bij de schatkamer komt met steeds strengere controles.
Verlies daar bij niet uit het oog wat je probeert te controleren of te beveiligen in een bepaalde stap. Soms controleer je de gebruiker. Soms moet de gebruiker iets controleren. Soms controleer je hardware. Soms controleert de hardware iets. Soms controleer je software. Soms controleert de software iets.
Ieder authenticatieproces heeft z'n eigen behoeftes en die zijn ook nog eens afhankelijk van de omstandigheden.
Best wel veel dus om allemaal onder de term "MFA" te schuiven.