Internetbasierte Kennwortverwaltung

Saturday, 21 March 2009, 02:57 von Blackflash

Seit einigen Tagen ist das Thema der internetbasierten Kennwortverwaltung bei mir wieder aktuell. Wer sich genauer auf meinem Blog umgeschaut hat, wird sicherlich das Projekt OpenPassword entdeckt haben, was meinen damaligen Prototypen der internetbasierten Kennwortverwaltung darstellt. Bevor ich aber diesmal Code schreibe, werde ich die Motivation und einige andere Ideen, die ich für dieses Projekt habe, auf meinem Blog erläutern.

Motivation

Im Allgemeinen stehen sich zwei Aspekte bei der Wahl von Passwörtern gegenüber: Zum einen soll das Passwort einfach zu merken sein, sodass man es nirgends notieren muss, zum anderen soll das Passwort sehr sicher sein. Diese Ziele widersprechen sich jedoch in den meisten Fällen, da schwierige Passwörter schwierig zu merken sind, da sie meist zufällig generiert wurden und somit keinem Schema folgen, was man sich leicht merken könnte. Einfach zu merkende Passwörter hingegen sind wesentlich einfacher zu knacken, da sie z.B. in einem Wörterbuch zu finden sind, sich aus besonderen Ziffernkombinationen (z.B. Geburtsdatum) bilden lassen oder einem bestimmten Schema folgen, welche die Anzahl der Möglichkeiten drastisch reduziert (z.B. zufällige Ziffernfolgen statt Ketten von Buchstaben, Ziffern und Sonderzeichen).

Ohne allzu sehr auf die Sicherheit beim Wählen der Passwörter einzugehen, geht es bei der internetbasierten Kennwortverwaltung um eine sichere Verwaltung von Kennwörtern. Hierbei wird ein zentraler Server betrieben, der die Passwörter verwaltet und verschlüsselt speichert. Im Gegensatz zu OpenID wird bei der internetbasierten Kennwortverwaltung keine sog. Online-Identität erstellt, sondern nur ein Konto erstellt, das die Kennwörter beinhaltet. Dabei soll es sich ausdrücklich nicht nur um Zugangsdaten für Online-Konten handeln, sondern kompatibel zu allen Arten von Konten sein. In vielen Fällen kann es ein Vorteil sein, wenn die Passwörter an einem zentralen Punkt sicher gespeichert sind. So entfallen nicht nur unsichere Orte (z.B. Kennwortdatei als Textdatei, Zettel neben dem Computer, ...), sondern auch evtl. unsichere Kommunikationswege (z.B. ICQ, IRC, E-Mail). In vielen Fällen gibt es auch Passwörter, die man mit Kollegen teilen muss, weshalb eine zentraler Ort der Speicherung besonders sinnvoll sein kann.

Ideen zur Architektur

Der wichtigste Aspekt ist eine saubere und einfach gehaltene Schnittstelle zur Kennwortverwaltung, damit externe Software einfach auf diese Kennwortverwaltung zugreifen kann. Unter externe Software könnten Erweiterungen fallen, welche den Browser mit der internetbasierten Kennwortverwaltung koppeln. Da niemand seine Kennwörter gerne bei einem Anbieter hinterlegt, muss es auch für jedermann möglich sein, einen Server zur Kennwortverwaltung zu installieren und zu betreiben, weshalb die internetbasierte Kennwortverwaltung nicht zwingend für das gesamte Internet zugänglich sein muss, sondern natürlich auch lokal laufen kann. Wichtig ist jedoch, dass der Zugriff über TCP/IP erfolgt. In dem Sinne bietet es sich an, HTTP zur Kommunikation zu verwenden, da hierzu bereits ein Standard existiert und man Erweiterungsmöglichkeiten hat, wie z.B. das Senden von binären Dateien (z.B. Kennwortdateien für bestimmte Software). Außerdem ist dieses Protokoll vielen Entwicklern geläufig, sodass diese eine solche Schnittstelle, z.B. in Form eines Webservices, schnell adaptieren können.

Um ein großes Maß an Sicherheit zu gewährleisten, ist eine strikte Isolation von anderen Applikationen (z.B. Webserver) notwendig, d.h. der Webserver wird in die Kennwortverwaltung integriert. Weiterhin müssen sämtliche Kennwortdaten verschlüsselt werden genauso wie die Kommunikation, z.B. unter Nutzung von HTTPS. Außerdem soll es einen Hauptschlüssel für jedes Konto geben, mit dem die Kennwörter entschlüsselt werden können, die aber nicht persistent in der Kennwortverwaltung gespeichert werden.

Sonstiges

Neben vielen noch nicht ausgefeilten technischen Details hoffe ich, dass sich genügend Themen finde, zu denen ich theoretische Hintergründe liefern kann. Vor allem die Protokolle könnten sehr interessant sein. Das Thema wird jedenfalls in weiteren Artikeln fortgesetzt.

Kommentare


Kommentiere!

Your Name:


Your Email:


Your URL:


Spam Prevention:
Enter the text above into the box below.
If you are unable to read it, refresh the page.


Your Comment: