Skip to content

2-wege Authentifizierung

Das Passwort als Mechanismus für die Authentifizierung von Benutzern ist tot, es hat es nur noch nicht bemerkt. Benutzer sind es gewohnt mit Passwörtern umzugehen, und sie funktionieren für eine breite Palette an Anwendungen, Protokollen und Geräten. Allerdings ist "funktionieren" zu viel gesagt. Denn die Sicherheits- und Supportprobleme bei vergessenen, erratenen, weitergegebenen, zu einfachen oder wiederverwendeten Passwörtern sind sehr hoch. Auch die großen sozialen Dienstbetreiber haben dies schon bemerkt, und versuchen auf zusätzliche Sicherheitsmerkmale zu setzen. So versucht Facebook zum Beispiel zu erraten welcher Login aus einem fremden Netzwerk unerwartet ist, oder welches Endgerät noch nicht benutzt wurde. Google und Amazon (bei den AWS Diensten) gehen hier schon einen Schritt weiter. Beide setzen auf Mehrfaktoren Authentifizierung. Google nennt es entsprechend 2-wege Verifizierung und Amazon AWS nennt es kurz MFA (für Multi Factor Authentication). Beiden gemeinsam ist die Option einmalpasswörter von einem (Hardware) Token erzeugen zu lassen, das sind 6-stellige Zahlen die sich alle 30 Sekunden ändern. Neben dem traditionellen Passwort muss dieser Code angegeben werden. Somit können sich nur Anwender anmelden, die das Hardware Gerät besitzen und das Passwort kennen. Statt einem Hardware Gerät bieten beide Anbieter auch an eine App auf dem Mobilfunkgerät zu verwenden. Google bietet dazu zum Beispiel den freien und kostenloses Google Authenticator für Android, iPhone oder Blackberry an. Einmalig überträgt dabei der Dienstanbieter ein gemeinsames Geheimnis via QR-Code (zum abfotografieren) oder als base32 String zum abtippen an das Soft Token (oder Virtuelles Token wie Amazon es nennt). Das Token gerät benutzt dieses Geheimnis und die aktuelle Uhrzeit (in 30 Sekunden Intervallen seit Unix Epoche) um daraus eine dezimale Ziffernfolge ähnlich einer PIN zu erzeugen. Alternativ bietet Google an mittels SMS den Code zugeschickt zu bekommen, oder aber eine Liste von Abstreichcodes (vergleichbar mit einer TAN Liste) für Notfälle auszudrucken. Alles in allem ein gutes Konzept bei Google, das man nutzen sollte. Im Web Browser kann ein Cookie nach jeder erfolgreichen Token Authentifizierung hinterlegt werden, so dass man diese Prozedur nur alle 30 Tage durchführen muss. Anwendungen wie Messenger, E-Mail Clients oder Mobile Apps können mit einem von Google erzeugten sekundären Passwort betrieben werden, das dann in einer Liste der bekannten Anwendungen steht und dort jederzeit wieder gesperrt werden kann. Amazon bietet auch eine ganze Reihe von zusätzlicher Authentifizierungsverfahren (Zertifikate und Zugriffsschlüssel) für Anwendungen an. Übrigens verwenden Google als auch Amazon dasselbe Token Protokoll TOTP das in RFC 6238 spezifiziert wird. Die 20byte Geheimnisse werden dabei in base32 codiert, erzeugt wird ein 6 stelliger Response Code mit dynamischer Offsetberechnung und die im HMAC eingesetzte Hashfunktion ist SHA-1. Genau für diese Parameter habe ich auch eine kleine Java (Swing) Anwendung für den Desktop geschrieben. Ich habe diese sowohl mit Google als auch Amazon getestet und sie funktioniert. Aktuell wird das dabei notwendige Geheimnis noch AES-128 verschlüsselt auf der Platte abgelegt, was die Sicherheit dieses Verfahrens im Vergleich zu einem reinen Hardware Token natürlich etwas einschränkt. Ich denke aber ich werde es noch um ein DPAPI oder TPM Modul zur Aufbewahrung des Geheimnisses erweitern. Das Projekt findet sich bei GitHub unter dem Namen et-otp.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

Add Comment

BBCode format allowed
Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA