Moin,
auf der Suche nach einem vernuenftigen Hardware-Passwordgenerator habe
ich mich entschieden meine eigene Loesung zu bauen, die ihr hier findet
(inkl. hoffentlich erschoepfender Readme):
https://github.com/snopf/snopf
NIH-Syndrom hat dabei bestimmt eine Rolle gespielt aber ich war mit
allen kaufbaren Loesungen auf irgendeine Art unzufrieden...
Die Hardware basiert auf einem ATtiny85 und ist so einfach wie es geht,
im Prinzip ein AVR + Button + LED und USB-Anschluss. Fuer die
USB-Kommunikation habe ich den exzellenten V-USB Treiber
(https://www.obdev.at/products/vusb/index.html) verwendet. Fuer eine
neue Version werde ich den Reset-Pin als I/O missbrauchen um den (etwas
haesslichen, dem Mangel an IO-Pins geschuldeten) Transistor aus dem
Schaltplan entfernen zu koennen.
Als Nebenprodukt habe ich einen USB-Bootloader fuer das Projekt
geschrieben, der findet sich hier:
https://github.com/snopf/snopf_bootloader
Jedes Passwort wird aus demselben 128-Bit Geheimnis (das im EEPROM des
AVR liegt) plus einem Request-String (fuer die unterschiedlichen Logins)
erzeugt. Grundlage fuer das Passwort ist SHA256(Secret || Request). Der
Hash wird mit der Z85-Transformation in ein ASCII-Passwort
transformiert. Um typischen Password-Forderungen (Zahlen,
Grossbuchstaben, Kleinbuchstaben, Sonderzeichen) zu genuegen, muss das
Passwort eventuell iterativ erzeugt werden. Details dazu finden sich im
`Operation principle` Abschnitt im Readme.
Auf "Host"seite existiert Sofware um die Requests zu machen, u.A. eine
Browser Extension fuer Firefox/Chrome. Leider bin ich bis jetzt nicht
dazu gekommen die Software fuer Windows zu testen. Bis auf die Browser
Extension ist die Sofware komplett in Python geschrieben und ich bin
einigermassen hoffnungsvoll, dass es ohne groessere Probleme auch unter
Windows laeuft.
Hoffe der eine oder andere kann was damit oder mit Teilen davon etwas
anfangen.
Ich bin bis jetzt sehr zufrieden und sollte demnaechst meine Android-App
fertig haben.