Passwörter sicher verwalten mit Cryptopus

Puzzle und Open Source-Software sind ein unzertrennliches Paar. Beinahe täglich veröffentlichen Members neue Codes auf Github. 2006 lancierten Puzzle-Mitarbeitende in ihrer Freizeit einen multiuserfähigen, webbasierten Passwortmanager auf Basis von Ruby on Rails: Cryptopus. Cryptopus ist nicht nur eines der ältesten Open Source-Projekte von Puzzle, sondern wird auch seit über zehn Jahren von Puzzle und anderen Unternehmen produktiv für die Verwaltung von Zugangsdaten verwendet.

Jeder von uns kennt das Problem: Wir nutzen unzählige Webdienste für E-Mail, Social Media, Onlineshops, Ticketsysteme und viele weitere. Aus Sicherheitsgründen empfiehlt es sich, für jeden dieser Dienste ein eigenes Passwort zu benutzen. Aus Bequemlichkeit machen dies aber wohl die wenigsten Benutzer. Die ganze Passwortverwaltungsthematik wird noch komplizierter, wenn wir beispielsweise in einem Unternehmen Zugangsdaten einem ganzen Team zugänglich machen wollen. Bei meinen vorherigen Arbeitgebern lösten wir dieses Problem auf zwei Arten: Entweder wir definierten ein Standardpasswort, das wir bei allen Diensten verwendeten. Oder wir hatten mehrere Word-Dokumente, in denen wir Listen führten oder auch einzelne Zugangsdaten hinterlegten. Beide Methoden punkten weder beim Thema Sicherheit noch bei der Handhabung.

Das Bedürfnis nach einem Tool für die Verwaltung solcher Zugangsdaten war also nicht nur bei Puzzle vorhanden. Aus diesem Grund schufen einige Puzzle-Members im Jahr 2006 eine erste Version des Passwortmanagers Cryptopus. Schon damals setzte man auf das noch sehr frische Webframework Ruby on Rails, das heute die Grundlage für diverse Kundenprojekte bildet. Auch in diesem Hinblick war Cryptopus also eine Pionierleistung.
Doch wie lassen sich Zugangsdaten verschlüsseln und für mehrere Benutzer zugänglich machen? Andreas Zuber, einer der Cryptopusentwickler der früheren Stunden, erklärte mir, dass sie auf der Suche nach einer Lösung für dieses Problem waren. Sie fanden schlussendlich eine Möglichkeit, symmetrische und asymmetrische Verschlüsselungsverfahren geschickt zu kombinieren. Wer sich für diese Funktionsweise im Detail interessiert, findet im Github-Wiki Grafiken zu den einzelnen Workflows.

 

Sicherheit

Die Accountdaten, die in Cryptopus verwaltet werden, werden verschlüsselt in einer Datenbank abgelegt. Der benutzerspezifische private Schlüssel, der für das Entschlüsseln der Daten verwendet wird, wird mit dem Benutzerpasswort chiffriert abgelegt. Ausserdem verlässt dieser private Schlüssel den Server nie, sondern steht nur serverseitig in der aktuellen Session zur Verfügung. Wie bei vielen Systemen ist die Sicherheit von Cryptopus also stark abhängig von der Komplexität der verwendeten Benutzerpasswörter. Geraten die in der Datenbank gespeicherten Daten in fremde Hände, hat ein Angreifer natürlich alle Zeit der Welt um sogenannte Offline-Passwort-Attacken durchzuführen. Bei solchen Angriffen werden mit Hilfe von Programmen alle möglichen Passwortkombinationen durchprobiert bis man das entsprechende Passwort gefunden hat.
In den letzten Monaten wurde ein zusätzliches Modul entwickelt, das die Authentifizierung vor online Brute-force-Attacken schützt. Bei zu vielen Log-in-Fehlversuchen wird der Benutzer schlussendlich komplett gesperrt und kann nur noch durch einen Admin entsperrt werden.

Einstieg für Lernende

Unsere Lernenden arbeiten seit beinahe zwei Jahren intensiv an der Weiterentwicklung von Cryptopus mit. Für sie bot sich das Projekt als guter Einstieg in die Entwicklung mit Ruby on Rails an, da der Umfang der Software kleiner ist als bei vielen anderen Projekten. Das Resultat der Arbeit der Lernenden lässt sich sehen: Es wurden nicht nur diverse Bugs gefixt und neue Features hinzugefügt, sondern auch die Testabdeckung des erstellten Codes ist auf einem vorbildlichen Niveau.

Ausblick

Ideen für die Erweiterung von Cryptopus gibt es viele und einige sind auch bereits als Feature Request auf Github erfasst. Unser Berufsbildungsteam wird zusammen mit den Lernenden weitere Features umsetzen. Unser Lernender Felix Ammann widmet seine Abschlussarbeit (IPA) dem Projekt Cryptopus. Er wird in diesem Zusammenhang eine Schnittstelle für externe Programme entwickeln. Dieses API soll den Zugriff für künftige Browser-Plug-ins oder Commandlinetools ermöglichen. Einige Members arbeiten in ihrer Freizeit an der Erweiterung der Authentifizierung um eine Two Factor Auth. Ziel dieses Features ist, die Sicherheit beim Zugriff über das Internet zusätzlich zu verbessern.

Wie man sieht, hat sich in den letzten Jahren bei Cryptopus viel getan. Wir freuen uns, die Software offiziell in unser Open Source-Portfolio aufzunehmen.

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *