Twitter heeft een bijgewerkte versie van zijn two-step-authentication aangekondigd, die ook werkt in Nederland en België. Gebruikers kunnen vanaf nu vanuit de Twitter-app logins goedkeuren. Voorheen werkte de implementatie van Twitter via sms.
De verbeterde two-step-authentication werd dinsdag aangekondigd door Twitter. In mei werd de veiligere loginmethode, waarbij naast een wachtwoord nog een extra challenge nodig is om in te loggen, al ingevoerd, maar die methode werkte nog niet in Nederland en België. Die implementatie leunde namelijk op codes die werden verstuurd via sms-berichten, en Twitter ondersteunt vooralsnog geen Nederlandse of Belgische providers. De nieuwe implementatie, die naast de oude bestaat, maakt gebruik van de officiële Twitter-apps, en is daardoor ook in de Benelux te gebruiken.
De nieuwe loginmethode, die overigens niet verplicht is, verschilt van de two-step-authentication van onder meer Facebook, Google en Dropbox. Die sites maken gebruik van codes die door een applicatie worden gegenereerd, en die de gebruiker vervolgens moet intypen tijdens het inloggen. Twitter doet dat anders: elke loginpoging moet vanuit de mobiele Twitter-app worden goedgekeurd. Dat heeft als voordeel dat er geen code hoeft te worden overgetikt tijdens het inloggen, maar er is daardoor wel een internetverbinding op de telefoon vereist om loginpogingen goed te keuren. Wanneer er geen internetverbinding is, of wanneer een gebruiker zijn telefoon kwijt is, kunnen gebruikers een backup-code intikken om toch te kunnen inloggen. Voor applicaties met Twitter-ondersteuning die een gebruikersnaam en wachtwoord vereisen, kan een one time password worden aangemaakt.
De veiligere loginmethode kan ingeschakeld vanuit het instellingenpaneel van de officiële Twitter-apps, al lijken er op dit moment nog wat problemen te zijn: op een toestel van Tweakers kreeg de gebruiker wel een waarschuwing van een loginpoging, maar kon hij nog niet worden goedgekeurd.
Na het inschakelen genereert Twitter twee cryptografische RSA-sleutels van 2048-bits: een public en een private key, zo leggen ontwikkelaars van Twitter uit. De privésleutel blijft op het toestel van de gebruiker; de publieke sleutel wordt geüpload naar de Twitter-servers. Bij een loginpoging verstuurt de Twitter-server een challenge van 190 bit naar de mobiele applicatie, evenals wat meta-informatie over de login, zoals de locatie en de tijd. Keurt de gebruiker de loginpoging goed, dan wordt op basis van de privésleutel een tweede challenge gegenereerd, die terug wordt gestuurd naar de Twitter-server. Die kijkt of de challenge authentiek is; zo ja, dan wordt de loginpoging goedgekeurd.
Daarmee leunt de loginbeveiliging van Twitter op een andere methode dan de eerder genoemde two-factor-authenticatie van Facebook, Google en Dropbox. Die sites gebruiken een zogenoemde shared secret, die zowel op de telefoon als op de server is opgeslagen. Op basis van die shared secret en de actuele tijd wordt de code gegenereerd die tijdens het inloggen moet worden ingetypt. Twitter zegt daar niet voor te hebben gekozen, omdat als de server wordt gehackt, de sleutel die nodig is om in te loggen op straat ligt. In dit geval is dat niet zo: de private key staat immers enkel opgeslagen op de telefoon van de gebruiker. De backup-code wordt tijdens het inschakelen van two-step-authentication ook op de telefoon gegenereerd; op de Twitter-servers is daarvan enkel een hash aanwezig.
Als gebruikers zowel hun telefoon als de backup-codes verliezen, kunnen gebruikers nog steeds toegang krijgen tot hun account, maar dat zal niet eenvoudig worden. Een ontwikkelaar van Twitter zegt tegenover Wired dat daar strikte regels voor zullen gelden. Wired schrijft daarnaast dat Twitter van plan is om betere ondersteuning in te voeren voor accounts die door meer dan één persoon worden gebruikt. Op dit moment kunnen loginpogingen op slechts één telefoon worden goedgekeurd, wat lastig is als meerdere personen hetzelfde account gebruiken.