© marc hericher, Fotolia.com
USB-Dongle zum Selbstbau tippt lästige Passwörter ein
Fremde Finger
von Benedikt Sauter, Michael Hartmann, Nils Magnus
Erschienen im Linux-Magazin
2009/08
Gute Passwörter sind schwer zu merken und aufwändig einzutippen. Das nimmt der USB-Stick Open Kubus bastelfreudigen Anwendern ab und implementiert zudem Einmalpasswörter.
Wenn es darum geht, einen Benutzer zu authentifizieren, nutzt das Gros der Linux-Anwender Passwörter. Die haben aber eine Reihe von Problemen: Denkt es sich der Benutzer aus, ist es oft zu kurz und lässt sich einfach erraten. Erzeugt es ein Zufallsgenerator, ist es so kompliziert, dass Benutzer es vergessen oder irgendwo notieren. Außerdem müssen Passwörter geheim bleiben, denn gerade in fremden Umgebungen drohen Keylogger oder neugierige Blicke über die Schulter. Einmalpasswörter lösen das Dilemma, sie sind nach einmaligem Gebrauch ungültig, sodass es nur wenig stört, wenn sie jemand abhört [1].
Einfach umzusetzen sind Kennwortlisten. Generatoren erzeugen Listen mit vielen Kennwörtern, hinterlegen eine Kopie auf dem Server, auf dem die Anwender sich authentifizieren sollen. Dazu tragen sie eine zweite Ausfertigung mit sich herum. Die meisten Banken sichern mit diesem TAN-Verfahren Überweisungen beim Onlinebanking.
Meldet sich der Anwender an, kann das System beispielsweise nach dem zehnten Passwort fragen. Wer die Kennwortliste besitzt, schaut das passende Passwort nach und authentifiziert sich so erfolgreich. Nachteil: Im Alltag erweist sich das Verfahren als unpraktisch. Benutzer müssen die Liste immer parat haben, sie bei jedem Anmeldevorgang rauskramen und das Passwort mühevoll abtippen. Außerdem darf niemand sonst die Liste zu Gesicht bekommen.
Gehirn zum Herumtragen
Praktischer wäre es, die Kennwörter dynamisch zu generieren. Software, die direkt auf dem PC läuft, kommt dafür nicht in Frage, wenn das System portabel sein soll. Zudem lässt sich diese Passwortliste beliebig kopieren - niemand hätte also etwas gewonnen. Daher liegt es nahe, dass externe Hardware-Token das jeweils gültige Passwort generieren. Das ist die Idee von Open Kubus.
Auf Grundlage der Hardwareplattform USBprog entstand dafür in einem früheren Artikel des Linux-Magazins ein universeller Programmieradapter [2]. Als Mikrocontroller kommt der weitverbreitete ATMega32 zum Einsatz. Er ist kostengünstig und es gibt für ihn eine Vielzahl freier Entwickleranwendungen. Ein weiterer Baustein, der USBN9604, ermöglicht den Zugriff auf USB. Diese Variante lässt sich nachbauen und durch einen Taster erweitern (siehe Abbildung 1). Platine, Bestückungsliste und Schaltplan bietet das Projekt unter der GPLv2 zum Download an [3].

|
Abbildung 1: Eine Variante des Projekts nutzt den Adapter USBprog und erweitert ihn um einen Taster. Damit lösen die Anwender das Übertragen des Passworts aus.
|
Da heute praktisch jeder Rechner eine USB-Schnittstelle besitzt, lässt sich der Stick fast überall verwenden. Er präsentiert sich dem Computer als USB-Tastatur, zu dem viele Betriebssysteme schon Treiber mitbringen. Drückt der Anwender den Taster, veranlasst dies den Stick dazu, ein Kennwort auszugeben, das sich nach dem in Abbildung 2 dargestellten Verfahren berechnet.

|
Abbildung 2: Das jeweilige Einmalpasswort berechnet das Token aus dem Datenblock und der Laufnummer. Beides verschlüsselt es mittels AES und kodiert es ähnlich zu Base-64.
|
Das Open-Kubus-Team hat zusätzlich eine zweite, funktional gleichwertige Schaltung entwickelt (siehe Abbildung 3). Sie passt in ein noch kleineres Gehäuse und besteht aus viel weniger Teilen. Als Mikrocontroller kommt ein Atmega16u4 zum Einsatz, ein Atmega16 mit integriertem USB-Controller. Damit entfällt der Baustein für einen externen USB-Controller. Außerdem befinden sich noch eine LED und ein Taster auf dem Stick. Wegen der komplexen Mehrlagen-Platine bietet das Projekt diese Hardware fertig im Internet an [4].

|
Abbildung 3: Wer nicht löten will, kauft Open Kubus fertig mit Gehäuse. Diese Version integriert den USB-Treiber im Mikrocontroller Atmega16u4.
|
Das auf dem Stick laufende Programm verwendet jeweils einen 14 Byte langen Datenblock aus entweder zufälligen Zeichen oder einer Stick-ID. Vor ihn hängt der Mikrocontroller eine 2 Byte lange Laufnummer. Drückt ein Benutzer den Taster, hängt er Laufnummer und Datenblock zusammen und verschlüsselt beides mit einem ebenfalls auf dem Stick gespeicherten 256-Bit-Schlüssel. Die drei Angaben speichert ein EEPROM, das sich auf dem Controllerchip befindet.
Als letzten Schritt wandelt Open Kubus die 16 Byte des verschlüsselten Onetime-Passworts in druck- beziehungsweise tippbare Zeichen und schickt sie an den USB-Tastaturtreiber (siehe Abbildung 2). Da der Stick nicht weiß, welche Tastaturvariante im angeschlossenen Rechner aktiv ist, sendet er vor dem Pad den Keycode für ein »y«, um zwischen deutschen und englische Layouts zu unterscheiden.
Einlass gewähren
Um eine Anmeldung zu überprüfen, müssen der Gegenstelle ebenfalls Datenblock, AES-Schlüssel und eine Laufnummer bekannt sein. Sie wandelt die Tastatureingabe wieder in die 16 Byte des Onetime-Passworts um und entschlüsselt es mit dem symmetrischen AES-Schlüssel. Die ersten zwei entschlüsselten Oktette müssen einen höheren als den im Server gespeicherten Wert haben - so erkennt das Verfahren Replay-Attacken. Aus diesem Grunde müssen Server die Laufnummer untereinander synchronisieren, falls sich Open Kubus gegen mehrere Geräten authentifiziert. Sowohl Server und Stick erhöhen nun die Laufnummer. Spätestens nach 65536 Anwendungen verweigert der Server jedoch weitere Anmeldungen, weil die aktuelle Firmware danach einen Wrap-Around macht.
Als Kryptopgraphie-Bibliothek nutzt Open Kubus auf dem Stick die AVR-Crypto-Lib, die viele kryptopgraphische Funktionen für Atmel-Mikroprozessoren bereits anbietet [5]. Sie berücksichtigt dabei die knappen Ressourcen an Flash- und Arbeitsspeicher. Die große Zahl unterstützter Algorithmen ermöglicht dem experimentierfreudigen Anwender auch andere Kryptoverfahren. Änderungen wie eine andere Handhabung des Wrap-Around oder ein Bit-Shift des Datenblocks in Abhängigkeit zur Laufnummer wären ebenfalls denkbar.
| Whitepaper |
|
The Role of Open Source in Data Integration
Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.
Download PDF (Registrierung erforderlich)
|
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)
Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|
stefan.m,
23.07.2009 09:51
Habe vorhin den Artikel gelesen.
Echt supper wusste nicht das es sowas als open source implementierung gibt
Weis einer vieleicht ob es ein Single Sign On portal gibt bei dem man sich mit so einem OTP einloggen kann?
gruß,
stefan