Forum: Projekte & Code snopf Password Generator


von Hajo K. (snopf)


Angehängte Dateien:

Lesenswert?

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.

von Hajo K. (snopf)


Lesenswert?

Auch wenn das Interesse hier eher begrenzt ist ;) mal ein paar Updates:

- Der Schaltplan + Code wurde geaendert, sodass der Reset-Pin als 
Button-Pin genutzt wird
- PCB Laenge wurde etwa halbiert + Standardbauteile verwendet
- es gibt eine einfache Androidapp
- bugfixes

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.