Sie sind hier

DIY-Security-Token

Passwörter sind aus der modernen Computersicherheit nach wie vor nicht wegzudenken, zumindest solange der Durchbruch potentiell sicherer Verfahren wie Smartcards und andere Hardware-Token noch auf sich warten lässt. Es gibt jedoch kaum sichere und bequeme Methoden, der Vielzahl von Passwörtern Herr zu werden, so kranken (Software-)Passwortmanager meistens daran, ihre Passwortdatenbank nur unzureichend gegen Spionagetrojaner schützen zu können.

Dieser Artikel beschreibt daher ein Konzept für ein Selbstbau-Gerät, welches die folgenden Funktionen übernehmen soll:

  • Sichere Verwahrung von Benutzernamen und Passwörtern in einem eigenen und geschützten Speicher.
  • Senden von Benutzernamen und Passwörtern an einen Computer, so dass die Daten nicht manuell abgetippt werden müssen.
  • Der Token sollte mit möglichst jeder Software verwendbar sein.
  • Einfache Bedienung, möglichst auch portabel und an mehreren Computern.
  • Optionale Erweiterung: Hardware-Zufallszahlen-Generator, z.B. bestehend aus einem analogen Rauschgenerator mit Analog-Digital-Wandler.
  • Optionale Erweiterung: Passwort-Generator zum Erzeugen neuer hochwertiger zufälliger Passwörter.
  • Optionale Erweiterung: Verschlüsselung und/oder Signierung von vom PC gelieferten Daten, ohne dass die benutzten Schlüssel den Token verlassen müssen (basierend auf PGP/GPG).

Um ein gutes Sicherheitsniveau zu erreichen, sollten folgende Kriterien in das Design des Tokens einfließen:

  • Eigenständige, abgeschottete Hardware um PC-Trojanern eine möglichst geringe Angriffsfläche zu bieten. Wenn der PC verseucht ist, sollen maximal die Passwörter, die dort benutzt wurden, kompromittiert werden können. Es soll einem Trojaner aber nicht möglich sein, die komplette Passwortdatenbank ins Internet zu laden, wo sie dann offline mit großer Rechenpower gebrochen werden kann.
  • Mögliche Hardware-Plattformen: Prozessor-Smartcards, alte ausgediente Geräte mit serieller Schnittstelle (alter Palm-PDA? Handy mit deaktiviertem Funkmodul?) oder Mikrocontroller mit Tastatur und Display.
  • Das Gerät sollte nicht direkt via USB angeschlossen werden da USB-fähige Mikrocontroller oft Debugfunktionen haben, die u.U. zur Kompromittierung der Hardware verwendet werden könnten. Der Mikrocontroller sollte über eine serielle RS232-Schnittstelle mit einem separaten USB-Seriell-Wandler kommunizieren. Alternativ kann die Datenübertragung auch über Töne (einfaches Modem) erfolgen, z.B. in dem ein PDA über ein Audiokabel an die Soundkarte angeschlossen wird. Dieser Übertragungsweg ist möglicherweise für neuere Hardware ohne serielle Schnittstelle hilfreich.
  • Die Verbindung zwischen Token und PC muss über ein Kabel erfolgen, Funkprotokolle wie Bluetooth oder WLAN sind zu unsicher.
  • Der Token kann eine USB-Tastatur emulieren um die Zugangsdaten in z.B. einen Browser einzugeben, in diesem Fall ist kein Treiber auf dem PC erforderlich und der Token kann bereits für BIOS/Boot-Passwörter verwendet werden. Wahrscheinlich ist es jedoch günstiger, einen normalen USB-Seriell-Wandler zu verwenden und einen eigenen Daemon zu schreiben, welcher seriell mit dem Token kommuniziert und entsprechende virtuelle Tastendrücke erzeugt und an die aktive Anwendung schickt, was Low-Level-Keylogger im Tastaturtreiber umgehen würde. (Bei High-Level-Keyloggern ergibt sich kein Unterschied.) Grundsätzlich kann im Token auch eine PS/2-Tastatur-Schnittstelle implementiert und der Anschluss an den PC über einen PS/2->USB-Konverter erfolgen. Dies ist bedeutend einfacher als sich direkt als USB-Gerät am Bus anzumelden. Nachteilig ist die mangelnde Zukunftssicherheit der PS/2-Schnittstelle.
  • Über eine bidirektionale Verbindung kann der PC die gerade aktive Webseite mitteilen, so dass der Token die Navigation innerhalb der Passwortdatenbank beschleunigen kann. Passwörter werden jedoch immer erst auf einen direkt am Token ausgelösten Startbefehl hin an den PC übertragen.

(To be continued)