Anmerkungen zum interaktiven Paßcode
Sicherheit
Wie schon im Textkasten erwähnt, ist die Idee zu dieser interaktiven Paßcodeeingabe
ca. 40 Jahre alt. Damals gab es noch nicht die jetzt in nahezu jedem
Telefon und bald in vielen Brillen lauernden winzigen Videokameras, und ein Beobachter
hatte nur sein Gedächtnis zur Verfügung um herauszubekommen, auf welche Weise der Code
angezeigt wird. Deshalb hat damals auch die einfache Anzeige mit einer
7-Segment-LED-Zeile schon einen brauchbaren Schutz geboten.
Das ist natürlich jetzt anders, denn
aus Videoaufzeichnungen mehrerer aufgezeichneten Code-Eingaben kann man die Sequenz rekonstruieren. Aber besser als eine einfach Pin-Eingabe ist es immer noch.
Es gibt außerdem eine Reihe von Maßnahmen, um das Verfahren zu härten.
Mit dem in Lyrics Jukebox benutzten Schachbrettmuster mit 64 Feldern braucht man
bereits eine ganze Menge aufgezeichneter Eingaben, um die Sequenz zu erkennen.
Wenn Ziffern benutzt werden, kommt bei 64 Feldern jede Ziffer durchschnittlich
6,4 mal vor. Aber obwohl er unwahrscheinlich ist, muß man auch den ungünstigsten
Fall berücksichtigen, der dann eintritt, wenn jede abzulesende Ziffer nur einmal
angezeigt wird. Dagegen helfen bei meiner Implementation hier
zwei Maßnahmen:
- Es wird vermieden, daß die aktive Ziffer in der momentan angezeigten
Kombination nur einmal vorkommt, indem sie immer irgendwo in dieser Kombination
ein zweites Mal eingesetzt wird.
- Die unbenutzten Ausgaben der Sequenz (die durch das Minuszeichen im
Konfigurationseintrag ausgelöst werden) machen es schwieriger, die letztlich
eingegebenen Ziffern den angezeigten Kombinationen zuzuordnen.
Und man könnte das weiter härten, indem man
- das aktuelle Zeichen zwingend ein drittes Mal anzeigt,
- die Sequenz um weitere ungenutzte Ausgaben ergänzt, um sie mehrdeutiger
zu machen,
- beispielsweise das Datum oder die Uhrzeit mit für die Feldauswahl benutzt,
- zusätzlich farbige, grafische oder auch akustische Markierungen einbaut,
- die Ziffern mit einem Offset versieht, und man ein wenig rechnen müßte,
- die Anzahl Felder vergrößert (dann sollte man aber irgendwie
die Zeilen und Spalten markieren),
- einen Touchscreen mit haptischer Rückmeldung benutzt und die Haptikfunktion
einsetzt, um das aktuelle Zeichen zu kennzeichnen (das könnte vielleicht sogar
eine Videoaufzeichnung ins Leere laufen lassen).
Vielleicht fällt Ihnen dazu noch mehr ein.
Wie man das Optimum des Verhältnisses zwischen der Anzahl Felder und der Anzahl
benutzter Zeichen berechnet, wäre noch zu untersuchen. Ob es überhaupt Menschen
gibt, die sich alle angezeigten Daten in dieser Geschwindigkeit merken können, ist
auch nicht klar, aber wenn man von einer Videoaufzeichnung ausgeht, dann ist
die mögliche Benutzung von Buchstaben unsicherer als die von Ziffern, weil das
gesuchte Zeichen bei 26 Buchstaben an weniger Positionen angezeigt wird als
bei 10 Ziffern. Um dem zu begegnen, könnte man die Anzahl Buchstaben je
Kombination begrenzen.
Beispielprogramm
Für diejenigen, die sich nur für das Prinzip des Dialogpaßwortes interessieren und
sich nicht erst mit Lyrics Jukebox beschäftigen wollen, habe ich die betreffenden
Funktionen aus dem Jukeboxprogramm extrahiert und, da ausführbare Programme aus
dubioser Quelle oft nicht auf Begeisterung stoßen, ein
Applet gebaut,
das mit dem
Hollywood Player
(dort etwas runterscrollen) benutzt werden kann.
- Das Archiv des Players muß man entpacken (und unter Windows außerdem installieren),
- dann das Plugin svgimage.hwp von
hier herunterladen (das
Paket heißt dort SVG), oder Sie holen sich die fürs Betriebssystem passende Version
der Datei aus dem betreffenden Download-Archiv von Lyrics Jukebox.
- Kopieren Sie svgimage.hwp ins Plugin-Verzeichnis
des Hollywood-Players.
Unter Windows ist das C:\Program Files\Hollywood Player\Plugins), unter allen anderen Betriebssystemen legen Sie das Verzeichnis
Plugins im Verzeichnis des Hollywood-Players an,
sofern es noch nicht existiert,
und kopieren svgimage.hwp dort hinein.
Dann kann man den Player starten und das Skript auswählen. Ein Start über die
Kommandozeile mit dem Namen des Skripts als Argument ist auch möglich.
Im Fenster klickt man dann das Schloß an (oder drückt Enter)
und bekommt am Ende entweder ein „Richtig“ oder „Falsch“.
Die mitgelieferte Konfigurationsdatei enthält die Positionen der Felder, von denen der
Anwender nacheinander die Zeichen lesen soll. Für die Feldangaben werden Koordinaten
wie beim Schach erwartet (A1 ist links unten). Die Minuszeichen kennzeichnen die zu
ignorierenden Anzeigekombinationen.
Das Beispiel „- a8 b7 c6 d5 -“ zeigt sechs Kombinationen, die erste und letzte nur als
Füllmaterial, also muß man sich ab der zweiten Kombination vier Zeichen merken,
beginnend mit dem Feld links oben und dann diagonal nach rechts unten. Die sechste
Kombination wird (wie die erste) ignoriert. Dann wird ein Eingabefeld angezeigt, und
das Eingeben der vier Zeichen wird mit Enter abgeschlossen.
Für den Anfang habe ich die Zeichen auf Ziffern beschränkt, weil ich die als einfacher
zu merken empfinde. Sie können auch Buchstaben oder alles beides aktivieren, die
beiliegende Konfigurationsdatei sollte selbsterklärend sein.
Einen Vollbildmodus habe ich mir gespart, aber man kann das Fenster (egal, wie groß es
gerade ist) mit Alt-Enter immer auf Vollbild und zurück skalieren.
Der Source-Code des Skripts liegt natürlich auch dabei, und falls Sie sich dafür
Syntaxhighlighting wünschen, kennen
Notepad++, Visual Studio Code (mittels einer
Erweiterung) oder
auch der klassische Kommandozeileneditor
vim die Syntax.