Veilig inloggen via iPhone of Android

Het tiqr-project maakt een veilige en gebruiksvriendelijke authenticatie mogelijk via een smartphone-app. Daar zijn al uitvoeringen van voor iPhone en Android, en ook de broncode is beschikbaar.

Voor de gebruiker is tiqr heel eenvoudig. Wanneer die met de webbrowser van zijn computer op de loginpagina van een website komt die tiqr ondersteunt, krijg hij bij het inlogscherm een QR-code van tiqr te zien. Die 'grafische streepjescode' moet hij inscannen met de tiqr-app op zijn smartphone. Die er dus ook is voor Android-toestellen.

Inlog via app

De ingescande QR-code van de website levert de gebruiker dan zijn inlognaam op voor die webapplicatie, zoals het loket voor internetbankieren van een bank of betaalsysteem. De identiteit voor de gebruikte webservice is dus opgeslagen in de app. Vervolgens voert de gebruiker zijn PIN-code in op de smartphone, waarna de daarop draaiende app zijn identiteit bevestigt naar de website toe.

De authenticatie is dan door de smartphone veilig verzorgd voor de webdienst op de computer. Met tiqr hoef je dus geen gebruikersnaam of wachtwoord meer in te voeren op de computer zelf om je aan te melden. Er is een demo-website voor nieuwsgierigen die dit eens willen uitproberen.

Tweefactor

Tiqr wil een veilig maar toch gebruiksvriendelijk alternatief bieden voor wachtwoorden. Het doet dat in de vorm van tweefactor authenticatie: met tiqr heb je immers twee zaken nodig, je smartphone die een QR-code inleest en de PIN-code van je tiqr-account. Bij veel andere methodes voor tweefactorauthenticatie, zoals een SecurID hardware-token van RSA of een via sms toegestuurde code, moet je nog een complexe code invoeren op je computer.

Een ander alternatief voor tweefactor authenticatie is het gebruik van hardware-tokens die je moet aansluiten op de computer. Daarvoor zijn echter speciale drivers nodig en dus installatierechten. Bovendien zijn die drivers vaak niet voor alle besturingssystemen beschikbaar, waardoor bijvoorbeeld Mac-gebruikers in de kou kunnen staan. In de praktijk werkt zulke inlog-hardware vaak bij slechts één website, bijvoorbeeld van een bank.

Bij gebruik van tiqr heb je alleen je smartphone nodig en hoef je geen (lange) code over te typen, met het risico van inlogweigering door tikfouten. Het programma werkt met een challenge-response systeem. In de QR-code zit een challenge gecodeerd. Na het invoeren van de pincode wordt deze challenge samen met het correcte antwoord naar de website gestuurd, die het antwoord verifieert en het aanmelden toelaat.

Open source

Dit open source-project voor veilige en toch ook makkelijke authenticatie is in september 2010 gestart door SURFnet. Die educatieve ict-dienstverlener heeft de onderliggende technologie ontwikkeld met gebruik van open standaarden van het Open Authentication Initiative (OATH) en de OCRA-suite ((OATH Challenge-Response Algorithms).

Onder de motorkap werken ook het HOTP-algoritme (RFC 4226) voor eenmalige wachtwoorden en AES 256-bit encryptie mee. De Nederlandse app-ontwikkelaar Egeniq heeft de smartphone-applicaties gemaakt. De broncode van zowel de serversoftware als de smartphone-applicaties is op de website beschikbaar onder een BSD-licentie.

Eenvoudig voor ontwikkelaars

Voor ontwikkelaars van webapplicaties is tiqr relatief eenvoudig te integreren. Eigenlijk zijn er maar twee plaatsen in een applicatie waar code moet worden aangepast, vertelt Joost van Dijk van SURFnet: "De eerste wijziging betreft de inlogpagina: waar normaal gesproken een gebruikersnaam en wachtwoord wordt gevraagd, zal de applicatie de tiqr-bibliotheek gebruiken, zodat een QR-code wordt getoond."

Die wordt dan door de smartphone-applicatie gelezen, gecombineerd met de daar ingevoerd pin-code wat dan als authenticatiecode naar de server wordt gestuurd. De authenticatiecode is dus gekoppeld aan de gebruiker en de sessie van de webbrowser op de computer, legt Van Dijk uit.

"De tweede wijziging betreft het verifiëren van authenticatiegegevens. Waar normaal gesproken de opgegeven gebruikersnaam en het wachtwoord worden gecontroleerd, zal de applicatie de tiqr-bibliotheek gebruiken om de authenticatiecode te controleren."

De code voor de serverkant die het tiqr-project nu beschikbaar heeft gesteld, is geschreven in PHP. Daardoor moet de code eerst nog geport worden om op andere platformen te kunnen draaien. Volgens Van Dijk zijn er al ontwikkelaars geïnteresseerd om versies voor Python en Java te schrijven. Het meest complexe onderdeel is het genereren van QR-codes, maar daarvoor bestaan voor alle gangbare programmeertalen diverse open source-bibliotheken.

Ivo Jansch van Egeniq voegt daar nog aan toe dat webapplicaties die gebaseerd zijn op het Zend Framework gebruik kunnen maken van een integratielaag. "Als de applicatie al het SAML-protocol ondersteunt voor single-sign-on, dan hoef je niets meer te programmeren bij gebruik van SimpleSamlPHP en de authTiqr plugin. Configureren van je SAML-componenten is dan voldoende", stelt hij.

Security-audit

De ontwikkelaars hebben een security&code audit van de volledige code uitbesteed aan security-consultancy Madison Gurkha. Van Dijk vertelt dat het gaat om een zogeheten Crystal Box Application Audit, inclusief inspectie van de broncode en een design review met threat analysis. "We zullen het rapport beschikbaar stellen zodra de audit is afgerond en we eventuele aanbevelingen daarin hebben uitgevoerd."

De tiqr-ontwikkelaars zouden hun applicatie graag op BlackBerry en andere mobiele platformen zien. Ze zijn nog op zoek naar partijen die hieraan willen meewerken. Op korte termijn zal er meer aandacht worden besteed aan documentatie. Tot slot wil Van Dijk tiqr gebruiken binnen SURFnet zelf: "Zo zouden we onze klanten kunnen aanbieden om in te loggen op onze diensten met tiqr, bijvoorbeeld op onze domeinportal om DNS-zones te beheren."

Op donderdag 12 mei presenteren Ivo Jansch van Egeniq en Joost van Dijk van SURFnet tiqr op de NLUUG Voorjaarsconferentie, met als thema Open is efficiënt.

App-maker Egeniq legt (in het Engels) de tiqr-inlog uit om je smartphone te gebruiken voor veilige tweefactor authenticatie op webapplicaties, zoals internetbankieren:

[youtube]te_sgFo5wdo[/youtube]

Deel dit artikel
Voeg toe aan favorieten