Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2009  »  08  »  Fremde Finger  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

© 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.

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Zwerg am Drücker USBprog - universeller Adapter für Embedded-Programmierer
Auf die Finger geschaut Biometrische Erkennung anhand des Tippverhaltens
Preisverdächtig Linux New Media Award 2009
Grenzen überwinden Mit Qt Mobility in QML und C++ Apps für mobile Geräte entwickeln
Viel Holz für den Rahmen PHP-Frameworks im Überblick
Software nach Standardmaß Linux Standard Base 3.0
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)
Kommentare (1)
von
stefan.m,
23.07.2009 09:51
Single Sign On mit Open Kubus
Hallo,

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