Inloggen met Facebook, is dat veilig?
Nog niet zo gek lang geleden schreef ik een blogpost over de veiligheid van je WordPress website. Als reactie op mijn post kreeg ik een vraag van Jolanda, die zich afvroeg hoe veilig het nu eigenlijk is om in te loggen met een Facebook of Google wachtwoord.
Een heel goede vraag en ik vond het eigenlijk een goed idee om hier iets meer over te schrijven. Want hoe ziet het nu eigenlijk met de privacy van jouw bezoekers, wanneer ze Facebook of Google gebruiken om bij jou in te loggen? En hoe zit het met de veiligheid van je eigen website? Is de kans gehackt te worden niet groter, wanneer mensen zomaar overal hun Google of Facebook wachtwoord achterlaten?
Je logt niet in met je Facebook wachtwoord!
Wanneer je aangeeft op een website, dat je in wilt loggen met je Facebook wachtwoord, dan moet je in ieder geval één ding goed begrijpen. Jouw Facebook wachtwoord wordt aan niemand doorgegeven. Ook niet aan de eigenaar van de website.
Er is dus geen enkele kans, dat de eigenaar van de website waar je op in wilt loggen jouw wachtwoord op de één of andere manier onderschept… tenminste, wanneer je werkelijk inlogt op de Facebook of Google site. Want er is ook nog zoiets als phishing. En net zo goed als je op moet letten of je werkelijk inlogt bij je bank, wanneer een website beweert, dat het je bank is, zal je ook op moeten letten of je inlogt op Facebook, Google of welke dienst dan ook die je gebruikt om in te loggen.
Phishing
Dus kijk naar de URL, is dat inderdaad de URL van de dienst waar je op in denkt te loggen? Let ook op de toplevel domeinnamen. Kloppen die wel? Inloggen op ‘facebook.website’, ‘fecabook.com’ of ‘facebook.45gt01.com’ zouden direct alarmbellen moeten laten rinkelen. Maar diezelfde bellen zou je moeten horen wanneer de URL waarop je in wilt loggen ‘rabobank.store’, ‘robabank.nl’ of ‘rabobank.509126.nl zou zijn.
Klopt de URL? Ga er dan rustig vanuit dat je veilig in kan loggen. Tenminste veilig voor wat betreft je wachtwoord. Voor wat betreft je privacy is het een kwestie dat je toch nog even heel alert blijft!
Sta niet teveel toe
Kies je ervoor om in te loggen met je Facebook, Google of andere gegevens, dan zal die dienst aan jou om een bevestiging vragen, maar gelijktijdig ook aangeven tot welke gegevens die website waar je op het punt staat een account aan te maken toegang toe wilt.
Kijk naar welke toegang gevraagd wordt en sta er serieus bij stil, of die dienst inderdaad al die gegevens nodig heeft, waar om wordt gevraagd.
Je naam, email adres en eventueel woonplaats zijn nog redelijk begrijpelijke zaken om om te vragen. Per slot van rekening wil de dienst je kunnen mailen, het staat wel aardig wanneer ze je ‘Wilko’ noemen inplaats van ‘user21345’ en mocht het een webshop betreffen, is in ieder geval een deel van mijn adres al ingevuld.
Maar ’toegang tot mijn contacten’? ‘Mail lezen en verzenden uit mijn naam’? Dat zijn typisch de dingen die je niet wilt toestaan.
Hoe krijg je nu eigenlijk toegang?
Wanneer je Google. Facebook of één van de vele andere diensten gebruikt om in te loggen op een website, dan wordt er door die dienst en die website gebruik gemaakt van een technologie die ‘OAuth’ genoemd wordt.
Voor dat een website eigenaar ‘inloggen met één van de diensten’ – vanaf nu ga ik het gewoon ‘inloggen met OAuth’ noemen – mogelijk heeft kunnen maken, heeft deze voor een integratie met zo’n OAuth dienst moeten zorgen. En heel stiekem hebben ze samen een geheime sleutel afgesproken die ze gebruiken om gegevens de controleren.
Op het moment, dat jij aangeeft, dat je via een OAuth provider wilt inloggen op die website, vertel je dat in principe tegen je OAuth provider, niet tegen de eigenaar van de website! Die heeft op dat moment nog geen flauw idee wie je bent.
Wanneer je bent ingelogd bij je OAuth provider en je komt op de website en klikt op de knop dat je wilt inloggen bij die website, dan gebeurt er eigenlijk iets vreemds. Je logt namelijk helemaal niet in op die website!, maar je vraagt om een zogenaamd ’token’. Dat ’token’ is niet veel meer dan een digitaal ‘papiertje’ waarop ongeveer het volgende staat.
‘Bij deze verklaar ik dat jamesdoe@familydoe.tld is wie hij zegt te zijn. Deze verklaring is echter slechts geldig tot datum-tijd. Hoogachtend, F.B. Google’
Je online ID kaart
En natuurlijk met een mooie handtekening eronder. Er wordt dus aangegeven wie je bent, en tot wanneer dit ’token’ geldig is. Eigenlijk dus net zoiets als een paspoort of een ID kaart. En net zoals er een stempel en een handtekening op een paspoort staan, staat er een digitale handtekening op jouw token.
Wat nu eigenlijk het grappige hier is, is dat -net zoals bij een ID kaart- dit ’token’ niet aan de website wordt gegeven, maar juist aan jou. Jij krijgt de beschikking over dat token en je wordt vriendelijk verzocht het op te slaan in een cookie. Iedere keer wanneer je een pagina opvraagt op de website dan geef je dat token mee.
Omdat de OAuth provider en de website samen een geheim delen, is de website in staat om te zien of het token wel de juiste informatie bevat. Want wanneer je met een flesje Tip-ex ‘jamesdoe’ veranderd in ‘joedoe’, dan klopt die digitale handtekening niet meer. In die handtekening is een code opgenomen die als een soort ‘checksum’ controleert of je stiekem niets in de informatie in het token hebt gewijzigd.
Is inloggen met Facebook veilig?
Dan nu de hamvraag. Is inloggen met Facebook of één van die vele andere OAuth providers veilig?
Ja
En nee.
Wanneer je gesteld bent op je privacy, moet je niet vergeten dat met name Facebook en Google heel veel interesse hebben te weten wie je bent en wat je doet. Nu geven beide bedrijven aan, dat ze dit soort gegevens niet voor marketingdoeleinden zullen gebruiken, maar geloof je ze op hun woord en -nog veel belangrijker- stoor je je eraan wanneer dit bekend zou zijn? Het inloggen met Facebook en Google kan een privacy issue zijn.
Op veel technische fora is het mogelijk in te loggen met een ‘Github’ ID. Github is een platform waarin softwareontwikkelaars wereldwijd hun open source software kunnen delen, inclusief versiebeheer van deze software. Veel mensen die op technische fora komen hebben dus een ‘Github’ ID en Github heeft niet het soort financiële belangen als Google en Facebook hebben.
Dan is er ook nog Auth0, Auth0 is het bedrijf wat ‘OpenID’ als platform aanbiedt. Het enige doel van OpenID is dus om de authenticatie van bezoekers mogelijk te maken. En tot 7000 geregistreerde bezoekers is dat helemaal gratis, daarna moet je betalen.
Hoe ‘veilig’ het inloggen via een OAuth provider is, is dus sterk afhankelijk van hoezeer jij die partij vertrouwt met betrekking tot wat ze met jouw gegevens kunnen of willen gaan doen. Want één ding is zeker, Zo’n OAuth dienst heeft een overzicht bij welke sites jij je hebt geregistreerd.
OAuth vs. password managers
Wat je je nu wellicht af zal vragen is hoe OAuth zich verhoudt met betrekking tot zogenaamde ‘password managers’, online diensten die ‘voor jou’ de wachtwoorden online opslaan, zodat je ze altijd bij de hand hebt. Je hoeft maar één keer in te loggen bij de password manager en die geeft gebruikersnaam en wachtwoord automatisch door.
Laten we in beide gevallen er nu eens vanuit gaan, dat deze diensten worden gehackt. In het geval van een password manager liggen op dat moment al jouw wachtwoorden op straat. En wanneer je voor 400-500-800 sites wachtwoorden hebt opgeslagen -geloof me, het loopt snel op- dan mag je op al die sites je wachtwoorden gaan aanpassen. En hopen, dat je dit sneller voor elkaar krijgt dan de hackers.
Wanneer een OAuth provider wordt gehackt, dan is het allemaal wat complexer… tenminste voor de hacker. Want om in jouw account op een website te komen, heeft de hacker namelijk twee gegevens nodig : Jouw password bij de OAuth provider en het ‘gedeelde geheim’ tussen de website en de OAuth provider.
Nadat de hack ontdekt is, hoef jij maar één ding te doen. Je wachtwoord aanpassen bij de OAuth provider. Dat is er dus maar één in plaats van zo’n 400-800. De OAuth provider zal nieuwe ‘gedeelde geheimen’ moeten gaan delen met de websites, maar dat is ook redelijk snel gedaan.
Met andere woorden de schade blijft beperkt.
Inloggen met OAuth is dus veilig!
Inloggen met OAuth is veilig. Tenminste, wanneer je je hoofd gebruikt. Natuurlijk moet je opletten, dat een willekeurige website geen nep Facebook or Google inlog gebruikt. Maar dat is een kwestie van opletten op de URL van je inlogscherm.
Ook moet je opletten, dat je de website niet meer rechten en informatie geeft, dan nodig voor datgene waarvoor je je registreert. Maar wanneer je met deze zaken rekening houdt, dan is OAuth een zeer veilige manier van inloggen.
OAuth aanbieden op je website
Nu zijn er verschillende plugins waarmee je het je klanten mogelijk kan maken om met hun sociale profiel of andere OAuth providers in te loggen in je webshop of online leeromgeving. Dit artikel is geen bespreking van dergelijke plugins, maar wellicht komt zo’n artikel wel in de nabije toekomst. Dit artikel is vooral bedoeld om je een idee te geven hoe veilig het is. En eigenlijk is het dus superveilig.
Bij klanten waarbij ik het geïmplementeerd heb, merk ik echter dat het nauwelijks gebruikt wordt. En dat komt omdat er bij veel mensen nog heel veel wantrouwen bestaat over ‘wat men met die gegevens gaat doen’.
Wil je in je shop of online leeromgeving inloggen met Facebook (bijvoorbeeld) mogelijk maken, zorg dan vooral, dat de bezoekers aan jouw website goed geïnformeerd worden. En hoewel het ‘inloggen met Facebook’ eigenlijk iets is, wat je in een kwartier tot een half uur kan implementeren, behandel het als een project.
Stappenplan
- Stel een datum waarop je het in wil gaan voeren.
- Begin met het informeren van jouw publiek. Gebruik hiervoor je gebruikelijke kanalen… je social media, je mailinglijst en schrijf eventueel ook een blogpost over het ‘waarom’ van het aanbieden van deze nieuwe inlogmogelijkheden. Link hierbij aan andere bronnen (zoals bijvoorbeeld dit artikel) zodat jouw publiek zich goed kan informeren.
Overweeg ook om in jouw blogartikel een kleine ‘poll’ op te nemen waar de lezer de voorkeur voor de favoriete OAuth provider uit kan spreken (noem het alleen niet zo, spreek over ‘inloggen met Facebook, Google, Pinterest’ etc.) - Kies OAuth providers die bij jouw doelgroep passen. Heb je veel volgers op Facebook, dan ligt het voor de hand, dat je inloggen met Facebook mogelijk wilt maken, maar heb je een voornamelijk technische site, dan ligt inloggen met Github meer voor de hand.
- Blijf het ‘inloggen met e-mail’ aanbieden. Je wilt de klandizie niet missen van die mensen -hoe slecht geïnformeerd ook- die denken, dat ‘inloggen met Facebook’ onveilig is.
Laat van je horen!
Heb jij ervaring opgedaan met het inloggen via social media op jouw website, of gebruik je juist een ‘neutrale’ dienst als OpenID? Deel je ervaringen, uitdagingen en tips in de commentaren onder deze post. Jouw mede-lezers zullen het zeker waarderen!