Lose Blätter - Software

Projektvorstellung: Sicherer Hardware-2FA-Authenticator (USB-Dongle)

Dieses Projekt beschreibt den Eigenbau eines Hardware-Authenticators auf Basis eines Raspberry Pi Pico. Ziel ist es, den oft stressigen Login-Prozess am PC zu vereinfachen, ohne dabei Kompromisse bei der Sicherheit einzugehen.

Ausgangslage & Idee

Wer sich häufig bei verschiedenen Diensten einloggen muss, kennt das Problem: Man greift zum Smartphone, entsperrt es, öffnet die Authenticator-App, sucht den richtigen Dienst und tippt den 6-stelligen Code dann händisch am PC ab. Aber Zack-Zack! Der Timer läuft!

Die Lösung: Ein kompakter USB-Dongle mit einem kleinen Display und einer Bedientaste. Auf diesem Dongle sind die TOTP-Secrets gespeichert. Über die Taste lässt sich bequem durch die verschiedenen Dienste scrollen. Ein etwas längerer Tastendruck reicht aus, und der Dongle tippt den aktuellen 6-stelligen Code via HID (emulierte Tastatur) automatisch am PC ein – inklusive abschließendem "Enter".

Das Sicherheitskonzept

Offensichtliche Sicherheitsbedenken bei Hardware-Token: Jeder, der physischen Zugriff auf den Dongle hat und das Passwort des jeweiligen Dienstes kennt, könnte sich einloggen. Das muss zwingend verhindert werden.

Die Lösung: Die Secrets werden auf dem Dongle AES-verschlüsselt abgelegt. Der Dongle selbst kennt den Schlüssel zum Entschlüsseln nicht – dieser liegt ausschließlich auf dem PC.

Diese Hürde ist enorm hoch und vergleichbar mit dem Diebstahl eines entsperrten Smartphones inkl. bekanntem Zugriffscode. Dieser Ansatz stellt somit einen hervorragenden und vertretbaren Kompromiss aus maximalem Komfort und hoher Sicherheit dar.

Realisierung

1. Hardware

Pico auf Steckboard

Das Herzstück bildet ein Raspberry Pi Pico (RP2040). Dieser Mikrocontroller ist in verschiedenen Ausführungen erhältlich, unter anderem auch direkt im kompakten USB-Dongle-Format. Das Referenzdesign wurde mit einem Standard-Pico aufgebaut. Warum kein ESP32? Es gibt ähnliche Projekte, die auf einem ESP32 basieren und drahtlos funktionieren. Drahtlose Verbindungen stellen jedoch immer einen potenziellen Angriffsvektor dar. Der kabelgebundene Pico bietet hier die bessere Stabilität, einfacheres Handling und vor allem eine striktere Sicherheitsebene.

2. Software

Das Software-Setup besteht aus drei ineinandergreifenden Komponenten:

Bedienung im Alltag

  1. Einstecken: Der Dongle initialisiert sich und ist in wenigen Sekunden einsatzbereit.
  2. Auswählen: Ein kurzer Druck auf die Taste wechselt zum nächsten Dienst auf dem Display.
  3. Authentifizieren: Ein etwas längerer Tastendruck tippt den 6-stelligen Code am PC ein und bestätigt automatisch mit Enter.

Fazit zur Architektur

Die Sicherheitstrennung ist bestmöglich umgesetzt: Der PC kann die rohen, unverschlüsselten Secrets niemals dauerhaft aus dem Speicher des Picos auslesen, und der Pico hat umgekehrt keine Möglichkeit, an Passwörter oder Login-Daten des PCs zu gelangen.

⚠️ Best Practices & Wichtige Sicherheitshinweise

Wer dieses Projekt nachbaut, geht mit extrem sensiblen Daten um. Folgende Regeln sind zwingend einzuhalten:

  1. Restriktionen bei der Datenhaltung: Alle sicherheitsrelevanten Dateien sollten ausschließlich auf einem verschlüsselten USB-Speicherstick verarbeitet und danach sicher (z. B. in einem Tresor) verwahrt werden. Nach der erfolgreichen Programmierung des Picos müssen die secrets.h und alle anderen exportierten Rohdaten restlos vom PC gelöscht werden! Lediglich die AES-Schlüsseldatei darf und muss auf dem PC verbleiben.
  2. Absolute Vorsicht beim Export (Flugmodus!): Wenn Secrets vom Google Authenticator zu Aegis übertragen und als JSON-Datei exportiert werden, muss das Smartphone zwingend in den Flugmodus (offline) versetzt werden!
    • Der Grund: Fast alle modernen Smartphones laden erstellte Screenshots automatisch in die Cloud (Google Fotos, iCloud etc.) hoch. Ein sofortiges Löschen auf dem Gerät reicht oft nicht aus, um den Cloud-Sync abzubrechen.
    • Die Regel: Offline gehen -> Exportieren -> Daten auf den USB-Stick ziehen -> JSON-Dateien und Screenshots auf dem Handy restlos löschen -> USB-Stick freigeben -> Erst danach den Flugmodus wieder deaktivieren.

Hinweis zur Kompatibilität: Dieses Projekt und der Export-Workflow wurden primär mit Android-Smartphones (Aegis Authenticator) getestet. Nutzer von iOS-Geräten müssen für den sicheren Export ihrer TOTP-Secrets gegebenenfalls alternative Wege nutzen.

Wer nun Lust verspürt, das Projekt selbst zu bauen, der lese hier weiter. Viel Spaß beim Nachbau!