Google Authenticator

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Google Authenticator ist der Name der Mobilen App der Firma Google, die Two-Step-Token (Zwei-Faktor-Authentifizierung) gemäß RFC 6238[1] implementiert. Das Token besteht aus einer 6-stelligen Zahl, die zusätzlich zu Benutzernamen und Passwort zur Benutzer-Autorisierung für Google-Services und andere Dienste genutzt wird.

Funktionsweise[Bearbeiten]

Die App basiert auf dem Time-based One-time Password Algorithm der Internet Engineering Task Force. Der Server, der eine durch Google Authenticator geschützte Anmeldung anbietet, generiert einen 80-Bit-Geheimcode, den der Benutzer auf ein persönliches Gerät – in der Regel ein Smartphone – übertragen muss. Hierzu wird das Geheimnis meist als QR-Code oder Base64-String dargestellt. Der Übertragungsvorgang ist eine mögliche Schwachstelle: Da es sich hierbei um das Shared Secret des Verfahrens handelt, darf der Code nur von einem vertrauenswürdigen Rechner aus abgelesen werden. Auch eine Fotografie des QR-Codes würde das Geheimnis kompromittieren.

Nach diesem ersten Schritt ist das Geheimnis nur noch dem Server und dem persönlichen Gerät des Nutzers bekannt und verlässt diese idealerweise auch niemals. Zur Autorisierung wird ein Einmalpasswort generiert, das sich aus der aktuellen Uhrzeit und dem Geheimnis berechnet. Aus diesem Grund müssen die Uhren von Client und Server ungefähr gleich gehen. Der untenstehende Pseudocode liefert pro 30 Sekunden ein neues Passwort. In der Praxis kann der Server so programmiert werden, auch den Vorgänger- und Nachfolger-Code zu akzeptieren, um so Unterschiede über einer Minute abzudecken. Anstatt der Uhrzeit kann laut Spezifikation auch ein Zähler als Basis dienen, der auf beiden Seiten mit jeder Anmeldung hochgesetzt wird. Diese Variante wird derzeit jedoch nicht verwendet.

Bei der Anmeldung muss der Benutzer nun neben dem normalen Passwort auch das generierte Einmalpasswort eingeben. Das zum Erzeugen des Einmalpassworts notwendige Geheimnis wird nicht mehr übertragen und kann deswegen auch nicht abgehört werden.

Aufgrund seines Prinzips schützt Google Authenticator zuverlässig vor Keyloggern und dem Mitlesen von Passwörtern bei der Eingabe. Präsentiert ein Angreifer jedoch eine gefälschte Login-Seite, so kann er als Man in the middle das Einmalpasswort abfangen und anstelle des Benutzers verwenden, um sich anzumelden. Außerdem erlauben die meisten Anbieter, bestimmte Rechner als vertrauenswürdige Clients zu definieren, von denen aus die Anmeldung ohne Einmalpasswort erfolgen darf. Kann ein Angreifer sich Zugang zu einem solchen Rechner verschaffen, ist der Schutz selbstverständlich nicht gegeben.

Implementierung[Bearbeiten]

Google unterstützt Apple iOS, BlackBerry und Android. Es gibt zahlreiche weitere Implementierungen von Drittanbietern.

Verbreitung[Bearbeiten]

Google Authenticator kann u.a. bei folgenden Websites genutzt werden:

Pseudocode[Bearbeiten]

 function GoogleAuthenticatorCode(string secret)
     key := base32decode(secret)
     message := floor(current Unix time / 30)
     hash := HMAC-SHA1(key, message)
     offset := last nibble of hash
     truncatedHash := hash[offset..offset+3]  //4 bytes starting at the offset
     Set the first bit of truncatedHash to zero  //remove the most significant bit 
     code := truncatedHash mod 1000000
     pad code with 0 until length of code is 6
     return code 

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. RFC 6238 TOTP: Time-Based One-Time Password Algorithm
  2. Dropbox with Google Authenticator.
  3. How to set up Google Authenticator with Facebook. In: andrew.kvalhe.im. 2013, abgerufen am 6. Februar 2014 (englisch).
  4. www.joomla.org.
  5. https://www.kickstarter.com/help/faq/backer+questions?ref=faq_livesearch#faq_63004
  6. LastPass with Google Authenticator.
  7. www.mtgox.com/security.
  8. Plugin is needed.
  9. Added security for your App.net account.
  10. Enabling Multifactor Authentication.
  11. Registro.br HOTP/TOTP Token.
  12. github.com/blog/1614-two-factor-authentication.
  13. www.tumblr.com.
  14. support.cex.io/hc/en-us/articles/201517417-Guide-to-account-security.
  15. https://trustedspace.agitos.de/webgui/.