Projekt: Secure Password

Der eine oder andere wird eventuell meinen alten Passwortgenerator noch kennen und sich an das grausame Design aus dem Jahr 2010 erinnern. Auch in der Technik dahinter war nicht alles so wie ich es gerne haette…

Neues Interface im Passwortgenerator

Im Endeffekt stand in meiner Projektliste schon seit einer ganzen Weile der Task den Passwortgenerator mal “ordentlich” zu machen. Er sollte ein besseres Interface bekommen, der alte Python-Code in Python 2.5 sollte weg, dazu sollte das Projekt nicht mehr auf der AppEngine laufen, die Passwort-Generierung sollte schneller werden, die Seite sollte ausschliesslich via HTTPs erreichbar sein und schlussendlich sollte sie zuverlaessig gute Passwoerter liefern.

Eine ganz gute Liste von Punkten, die sich verbessern sollten. Da ich in letzter Zeit in der Hauptsache mit Go arbeite und die Geschwindigkeit von Go-Programmen im Gegensatz zu Python-Scripten doch sehr viel hoeher ist, stand fest, dass ich die neue Version in Go schreiben werde. Dadurch war es mir auch moeglich die Bibliothek zur Passwort-Generierung mit ordentlichen Tests zu versehen und damit dafuer zu sorgen, dass bei einer Aenderung am Code nicht zufaellig auch die Qualitaet der Passwoerter Schaden nimmt.

Das Interface basiert in der neuen Version auf Bootstrap mit dem Paper-Theme von Bootswatch und ist so angelegt, dass es auch auf mobilen Endgeraeten gut funktioniert. Weichen musste dabei der Flash-Button zum Kopieren der Passwoerter, da dieser auf allen mobilen Endgeraeten und auch in immer mehr Browsern nicht funktioniert.

Meine Alfred 2 Extension zum Erzeugen von Passwoertern hat damit auch ein Update bekommen und fragt die Passwoerter jetzt nicht mehr an einer API im Internet ab sondern enthaelt eine kompilierte Version des Passwortgenerators. Damit lassen sich die Passwoerter jetzt auch ohne Internetzugriff generieren. Einziger Nachteil: Verbesserungen an der Sicherheit der Passwoerter erfordern jetzt ein Update der Extension statt wie bisher nur die Aenderung der API.

Als netter kleiner Nebeneffekt habe ich damit auch gleich eine Bibliothek geschaffen, die Go-Entwickler in ihren Projekten nutzen koennen um Passwoerter in genau diesem Sicherheitsstandard zu schaffen ohne sich dabei selbst Gedanken ueber die verschiedenen Sicherheitspruefungen machen zu muessen.

Wer sich von der Sicherheit der generierten Passwoerter selbst ueberzeugen moechte, ist gerne eingeladen sich die Tests in der Bibliothek anzuschauen und mir dazu Feedback zu geben. Jede Anmerkung ist in den Issues auf GitHub willkommen und wird beachtet.