Tastaturemulation
Die beiden Taster rechts vom Bildschirm in Abbildung 1 sollen Benutzername und Passwort ausgeben, und zwar in Form von Tastatureingaben. Dazu muss freilich der Cursor im richtigen Eingabefeld stehen. Programmiertechnisch ist das eine einfache Übung, wie Listing 3 demonstriert.
Listing 3
Tastaturemulation
import usb_hid from adafruit_hid.keyboard import Keyboard from keyboard_layout_win_de import KeyboardLayout tastatur_device = Keyboard(usb_hid.devices) keyboard = KeyboardLayout(tastatur_device) def on_user(): keyboard.write(secrets[index][1]) def on_pw(): keyboard.write(secrets[index][2])
Zuerst generiert der Code ein Tastatur-Device (Zeile 4) und danach die Tastatur mit deutschem Layout (Zeile 5). Das passende Python-Modul keyboard_layout_win_de aus Zeile 3 fehlt allerdings in den offiziellen Bibliothekssammlungen. Sie müssen es manuell von Github [2] herunterladen und ins Verzeichnis /lib auf Ihrem Pico kopieren.
Einmal erzeugt, kommt die Tastatur in den Callbacks on_user() und on_pw() zum Einsatz. Dort schreibt sie den Benutzernamen und das Passwort aus dem aktuellen Eintrag der Passwortliste (Zeilen 6 bis 9).
Sicherheit
Es macht nicht sonderlich viel Mühe, das Gadget zu benutzen. Sie navigieren zur Anmeldeseite des Shops und wählen am Pico den richtigen Eintrag. Dann springen Sie ins Feld für den Benutzernamen und drücken die obere Taste. Zu guter Letzt wechseln Sie ins Passwortfeld und drücken die untere Taste.
Genauso einfach bedient allerdings ein Fremder den Passworthelfer, falls er einmal in falsche Hände gerät. Wirklich sicher wäre das Gadget nur mit einer verschlüsselten Passwortdatei auf dem Pico. Beim Start müsste der Passworthelfer dann eine PIN anfordern. Das klingt unbequem und ist es auch. Außerdem stachelt das Ganze dann vielleicht erst recht den Forschungsdrang des Finders an. Da eine papierene Passwortliste auf dem Schreibtisch ebenfalls nicht PIN-geschützt wäre, stellen wir hier nicht ganz so hohe Anforderungen. Es geht um eine Balance zwischen Bequemlichkeit auf der einen und Sicherheit auf der anderen Seite.
Zur Absicherung gibt es verschiedene Optionen. Beispielsweise könnte sich der Pico beim Einstecken einfach tot stellen, also den Bildschirm gar nicht erst einschalten. Erst eine vordefinierte Abfolge von gedrückten Tasten würde das System aktivieren.
Eine weitere mögliche Alternative dazu finden Sie im Projekt-Repository: Hier tarnt sich der Pico mit einer Diashow (Abbildung 3). Die Tasten blättern lediglich durch die Grafiken, ansonsten passiert nichts. Erst wenn Sie die Eingabetaste des 5-Wege-Schalters beim richtigen Bild drücken, schaltet der Pico von der Diashow auf den Passworthelfer um.
Ebenfalls infrage kommt ein Vorkompilieren der Passwortdatei mithilfe des Tools Mpy-cross [3]. Bei allen diesen Maßnahmen sollten Sie sich jedoch dessen bewusst sein, dass sie nichts gegen Profis nützen.
Fazit
Der Pico als universelles Tool macht als Passwortspeicher für die Hosentasche eine gute Figur. Die Hardwarekosten halten sich dabei in Grenzen, und dank CircuitPython lässt sich auch die Software schnell implementieren.
Selbst wenn Sie bei Ihrer altbewährten Methode zum Verwalten von Passwörtern bleiben, lohnt sich ein Blick in den Code dieses Projekts. Als Fundgrube für Codeschnipsel für die Button-Steuerung oder die Arbeit mit kleinen Displays taugt die Software allemal. (csi/jlu)
Der Autor
Bernhard Bablok arbeitet bei der Allianz Technology SE als SAP-HR-Entwickler. Wenn er nicht gerade Musik hört oder mit dem Rad respektive zu Fuß unterwegs ist, beschäftigt er sich mit Themen rund um Linux, Programmierung und Kleincomputer. Sie erreichen ihn unter mailto:[email protected].
Infos
- Projekt-Repository: https://github.com/bablokb/circuitpython-pw-helper
- Deutsches Tastaturlayout für Python-HID-Emulation: https://github.com/Neradoc/Circuitpython_Keyboard_Layouts
- Mpy-cross: https://adafruit-circuit-python.s3.amazonaws.com/index.html?prefix=bin/mpy-cross/






