De App voor alle andere Apps
Even je saldo checken in de rij bij de supermarkt. Een betaalverzoek van een vriend afhandelen terwijl je op de bank zit. Een rekening overmaken terwijl de koffie doorloopt. We staan er niet meer bij stil, maar bankieren is in korte tijd enorm veranderd. Wie wat ouder is, weet nog hoe het ging. Voor veel bankzaken moest je naar het kantoor, tijdens openingstijden, en daar op je beurt wachten. Overschrijven deed je met een papieren formulier dat je in de bus deed. Daarna kwam de computer thuis, en kon het vanaf de keukentafel. En nu regel je bijna alles met de telefoon in je hand, waar je ook bent. Achter dat gemak zit een van de lastigste vraagstukken uit de softwarewereld: hoe weet een bank zeker dat jij het bent? Aan het loket was dat geen vraag. De medewerker zag je staan, kende je misschien al jaren en kon anders om je paspoort vragen. Op afstand valt dat allemaal weg. De bank ziet geen gezicht, alleen een verzoek dat binnenkomt over het internet. En dat verzoek kan van iedereen zijn.
Een bank mag zich daarin geen vergissing veroorloven. Te streng, en klanten haken af omdat inloggen een gedoe wordt. Te soepel, en het geld van klanten is niet veilig. Innovatief bankieren is daarom vooral zoeken naar de balans tussen gemak en zekerheid. In deze blog kijken we naar hoe die balans in de loop der jaren is verschoven, van de paslezer op de keukentafel naar de smartphone in je broekzak. En naar wat softwareontwikkelaars daarvan kunnen leren, ook als ze nooit iets voor een bank bouwen.
Bank applicatie
De eerste vormen van thuisbankieren vroegen nogal wat van de klant. Er moest software op de computer worden gezet. Die software moest worden bijgehouden, en bij een nieuwe computer begon het verhaal opnieuw. Wie er niet handig in was, belde een helpdesk of wachtte tot er een kennis langskwam die er verstand van had. Voor de bank was het een nog grotere opgave. Een bank met miljoenen klanten heeft ook te maken met miljoenen verschillende computers, elk met een eigen besturingssysteem, eigen instellingen en eigen problemen. De software moest op al die computers werken, en als er een nieuwe versie kwam, moest die bij al die klanten terechtkomen. Bij bedrijven kwam daar nog bij dat meerdere medewerkers moesten kunnen bankieren, elk met eigen rechten.
Met de komst van internetbankieren verhuisde de bank naar de browser. Dat scheelde enorm. De klant hoefde niets meer te installeren, en de bank kon haar software op één plek bijwerken in plaats van op miljoenen. Maar de klant zat nog steeds vast aan een computer, en aan een los apparaatje om in te loggen. Lag dat apparaatje thuis en zat jij op je werk, dan kon je niets. De echte omslag kwam met de smartphone. Een bank applicatie op je telefoon is altijd bij de hand. Ze wordt automatisch bijgewerkt, zonder dat je er iets voor hoeft te doen. En ze kan gebruikmaken van alles wat de telefoon zelf al kan. De camera scant een code of een rekening. De vingerafdruksensor herkent de eigenaar. Meldingen laten direct zien dat er geld is bijgeschreven.
Er zit nog een voordeel aan dat minder opvalt. Een telefoon is persoonlijk. Een computer thuis wordt vaak gedeeld met het hele gezin, maar een telefoon heeft bijna altijd één eigenaar, die hem de hele dag bij zich draagt en hem met een eigen code afschermt. Daarmee is het toestel zelf al een stukje van het bewijs dat jij het bent. Voor een bank is dat een geschenk: het apparaat waarmee je bankiert en het apparaat waarmee je je identiteit aantoont, zijn hetzelfde geworden. Daarmee veranderde ook wat mensen van een bank verwachten. Niemand wil meer wachten tot hij thuis is om iets te regelen. De app moet het altijd doen, snel zijn en in één oogopslag duidelijk maken wat er op je rekening gebeurt. Een storing van een uur, vroeger iets wat nauwelijks iemand merkte, is nu binnen een paar minuten landelijk nieuws. Voor de gebruiker voelt een goede bankapp simpel. Een paar knoppen, een lijst met bedragen, klaar. Voor de ontwikkelaars is het tegenovergestelde waar: hoe eenvoudiger het scherm, hoe meer er op de achtergrond geregeld moet zijn. Achter elke knop zit een keten van controles, en elke stap die de gebruiker niet meer hoeft te zetten, moet de software voor hem zetten.
Betalen en transacties
Inloggen is één ding, geld overmaken is iets anders. Wie alleen inlogt, kan kijken. Wie een betaling doet, verplaatst geld, en dat is in de meeste gevallen niet zomaar terug te draaien. Bij een betaling wil de bank daarom niet alleen weten wie je bent, maar ook zeker zijn dat jij precies deze transactie wilt doen: dit bedrag, naar deze rekening. Daarom wordt een betaling apart ondertekend. Vroeger deed je dat op papier, met een handtekening onder een overschrijvingsformulier. In de tijd van de paslezer toetste je cijfers in op het apparaatje en typte je de code die je terugkreeg over op het scherm. Dat werkte, maar het was omslachtig, en een tikfout was snel gemaakt. Wie een stapel rekeningen moest betalen, was er een avond mee bezig.
Tegenwoordig bevestig je een betaling in de app, vaak met een vingerafdruk of gezichtsherkenning. Je ziet het bedrag en de ontvanger, je keurt goed en het is gebeurd. Dat tonen van bedrag en ontvanger is geen detail. Het is de kern van de beveiliging. Je tekent niet voor zomaar iets, je tekent voor precies wat er op je scherm staat. Probeert iemand onderweg het rekeningnummer te veranderen, dan klopt de ondertekening niet meer. De app is daarmee meer geworden dan een plek om je saldo te bekijken. Reken je af in een webwinkel, dan word je doorgestuurd naar je bankapp om de betaling goed te keuren. Je hoeft bij de winkel geen gegevens achter te laten waarmee iemand anders later iets kan. De winkel krijgt alleen te horen dat er betaald is.
Voor ondernemers werkt het aan de andere kant net zo prettig. Een betaling die door de klant in zijn eigen bankapp is goedgekeurd, is een betaling waar je op kunt bouwen. Er hoeft niemand een bankafschrift na te lopen om te zien of het geld is binnengekomen. De bevestiging komt meteen, en de bestelling kan de deur uit. En het gaat verder dan betalen. Op steeds meer plekken gebruik je je bank om te bewijzen wie je bent. De app is zo de sleutel geworden die ook op andere deuren past. Vandaar de titel van deze blog: de app voor alle andere apps. Dat legt wel een grote verantwoordelijkheid bij die ene app. Hoe meer deuren een sleutel opent, hoe belangrijker het is dat hij niet in verkeerde handen valt. En daarmee komen we bij de vraag waar alles om draait.
Authenticatie
Het is zo makkelijk om een smartphone in je zak te hebben waarmee de bankwereld aan je voeten ligt. Toch was dat niet zo lang geleden nog anders. Mensen moesten thuis met een paslezer identificeren. Het uitrollen van de software en het installeren bij de mensen thuis en bij bedrijven was dan ook een hele onderneming. Het principe achter die paslezer is nooit verdwenen. Veilige authenticatie rust op een combinatie van factoren: iets wat je hebt, iets wat je weet en iets wat je bent. Bij de paslezer waren dat je bankpas en je pincode. Bij de smartphone zijn dat het toestel zelf, een toegangscode en steeds vaker je vingerafdruk of gezicht. De techniek is veranderd, het idee is hetzelfde gebleven: één factor alleen is nooit genoeg. Wie je telefoon vindt, kan zonder jouw code of vingerafdruk niets. Wie je code afkijkt, heeft nog steeds je telefoon nodig. Een dief moet twee dingen tegelijk in handen krijgen, en dat is veel moeilijker dan één.
Vergelijk het met een wachtwoord alleen. Een wachtwoord kan worden geraden, afgekeken of buitgemaakt bij een lek op een heel andere website. De eigenaar merkt daar niets van. Een telefoon die weg is, mis je binnen een uur. Dat verschil maakt de combinatie zo sterk. De zwakke plek zit tegenwoordig dan ook zelden in de techniek. Ze zit bij de mens. Oplichters proberen niet meer de beveiliging te kraken, ze proberen jou zover te krijgen dat je zelf de deur opendoet. Een bericht dat van je bank lijkt te komen, een telefoontje van een zogenaamde medewerker die haast heeft. Goede software houdt daar rekening mee. Ze laat duidelijk zien wat je op het punt staat goed te keuren, en ze vraagt nooit om iets wat een echte bank niet zou vragen.
Voor softwareontwikkelaars is dit een mooi voorbeeld van goed ontwerp, en er zijn drie lessen uit te halen. De eerste: veiligheid en gemak hoeven elkaars vijanden niet te zijn. Lange tijd gold dat veiliger ook lastiger betekende. Meer codes, meer stappen, meer apparaatjes. De vingerafdruk laat zien dat het anders kan. Het is veiliger dan een code die je kunt afkijken, en tegelijk sneller. De tweede: maak het juiste het makkelijkste. Als veilig inloggen omslachtig is, gaan mensen op zoek naar een omweg. Ze schrijven codes op een briefje of kiezen overal hetzelfde wachtwoord. Is de veilige weg ook de snelste, dan kiest iedereen hem vanzelf. De derde: denk na over wat er misgaat. Een telefoon raakt kwijt, gaat kapot of wordt vervangen. De eigenaar moet dan weer toegang kunnen krijgen, zonder dat een ander via dezelfde route binnenkomt. Die herstelprocedure krijgt zelden de aandacht die ze verdient, terwijl een keten zo sterk is als haar zwakste schakel. De beveiliging is in al die jaren sterker geworden, terwijl de gebruiker er minder van merkt. En zo hoort het ook: de beste authenticatie is de authenticatie waar je nauwelijks bij stilstaat.
Bouw je zelf een applicatie waarin gebruikers moeten inloggen, betalen of gevoelige gegevens beheren? Basecode denkt graag mee over een aanpak die veilig is en prettig werkt. Neem contact met ons op voor een vrijblijvend gesprek.