Lokale Schlüsselmanager

Der dritte und vorerst letzte Artikel zum Thema "Passwörter"

von Dr. Tomás Silveira Salles
Lesedauer ca. 5 Minuten

Über den Autor

Dr. Tomás Silveira Salles

... ist nicht nur IT-Sicherheitsexperte sondern auch Nutzer zahlreicher Online-Accounts und ein Passwort-Hasser mit schlechtem Gedächtnis.

Im ersten Teil dieser Artikelreihe haben auf der Suche nach mehr Sicherheit in der Online-Welt eine Liste unserer Ziele entworfen:

  1. Wir wollen unsere Online-Sicherheit möglichst von unserem Vertrauen in den Dienst-Anbieter entkoppeln.
  2. Selbst wenn der Angreifer bei einem gegebenen Anbieter erfolg hat, sollten andere Logins nicht dadurch gefährdet werden.
  3. Angriffe sollten nicht einfach automatisierbar sein. Es sollte nicht reichen, einen Knopf zu drücken.
  4. Es sollte nicht möglich sein, tausende von Nutzerdaten in einem einzigen Angriff gleichzeitig zu stehlen.
  5. Ein Angriff sollte nicht komplett aus der Ferne durchgeführt werden können. Der Angreifer sollte irgendwohin müssen oder irgendeinen physischen Gegenstand (z.B. ein Handy oder einen Zettel) brauchen, und Orte und Gegenstände sollten für jeden Nutzer anders sein.

Im zweiten Teil haben wir die Idee entwickelt, digitale Signatur-Verfahren mit langen Schlüsselpaaren zu verwenden in Kombination mit Schlüsselmanager-Anwendungen. Diese Idee bringt uns weit voran bei Punkt 1. Bei Punkt 2 ist es generell eine gute Idee einen Manager irgendeiner Art zu benutzen, auch aktuell bei Einsatz von Passwörtern. Doch selbst bei Punkt 2 hat unsere Lösung einen Vorteil, da gute Services uns dabei helfen könnten, immer wieder andere Schlüsselpaare bei verschiedenen Diensten zu registrieren.

Heute schauen wir, was bei Punkten 3 bis 5 hilfreich sein könnte.

Der Preis ist, dass der Passwordmanager selbst Ziel eines Angreifers sein könnte...

No pain, no gain

Eine Lösung für die Punkte 3 bis 5 können wir schon anbieten aber nicht ohne einen relevanten Nachteil. Die aktuellen Passwort-Manager speichern unsere Passwörter auf ihren Servern. Das riesige Plus ist, dass die Passwörter dadurch überall verfügbar sind. Benutzt man kurz den Laptop eines Freundes? Kein Problem: Webseite des Passwordmanagers aufmachen, Masterpasswort eintippen und schon sind alle nötigen Passwörter griffbereit. Der Preis dafür ist, dass der Passwordmanager selbst Ziel eines Angreifers sein könnte, dieser müsste dafür nichtmal seine Couch verlassen und bei Erfolg würde er alle Passwörter (mit zugehörigen Webseiten und Usernamen) von tausenden von  Nutzern erhalten. Die logische Lösung: Private Schlüssel sollten nur lokal (das heißt auf einem persönlichen Gerät) gespeichert werden.

Nur auf einem Gerät? Nein. Auf so vielen wie man möchte, eben nur nicht auf entfernten Servern die einem nicht selbst gehören.

Um die privaten Schlüssel von einem Gerät auf das Nächste zu kopieren, könnte man eine physische Verbindung benutzen (ein USB-Kabel zum Beispiel) oder NFC (near-field communication). Sobald man seine Schlüssel auf zwei oder drei Devices hat, ist es nicht mehr das Ende der Welt wen eins davon verloren oder kaputt geht.

,,Schön und gut, aber ich will auch nicht dass jemand mein Handy in der Bahn findet und deswegen meine E-Mails lesen kann". Ja, den Schlüsselmanager müsste man auch lokal sichern, zum Beispiel mit... ähm... einem Passwort. Aber das geht jetzt auch anders! Wenn wir unseren Schlüsselmanager nur lokal sichern wollen, können wir schwächere Sicherheitsmaßnahmen benutzen wie kurze Passwörter, Gesichtserkennung, Fingerabdruck, oder auf Android die Entsperr-Muster. Das notwendige Sicherheitsniveau ist hier viel niedriger, weil ein Angreifer ja den physischen Zugang zum persönlichen Gerät des Users braucht.

Jemand der zufällig ein Handy in der Bahn findet ist höchstwahrscheinlich kein Hacker. Und selbst wenn, würde er sich nicht die Mühe geben den Schlüsselmanager zu knacken nur um die Schlüssel einer einzigen Person zu bekommen, die auch wahrscheinlich weder reich noch einflußreich ist.

Wiederherstellung

Die Systeme zur Wiederherstellung funktionieren heute schon sehr gut und müssen nicht unbedingt neu erfunden werden.

,,Noch schöner und noch besser, aber was ist wenn ich alle meine Devices gleichzeitig verliere?". Hm, keine Ahnung... Schreibe deine privaten Schlüssel alle auf einen Zettel, einen Schlüssel pro Zeile, dann halbiere ihn senkrecht und gib jede Hälfte einer anderen bekannten Person. ,,Aber die Zettelhälfte könnten geklaut werden!". Denk an Punkte 3, 4 und 5. ,,Na gut, aber sagen wir ich habe alle meine Devices plus diese beide Freunde gleichzeitig verloren. Was dann?". Ok, du gibst offensichtlich nicht auf.

Für die Wiederherstellung eines Accounts nach Verlust aller Kopien des privaten Schlüssels, müsste man die üblichen, umständlichen Wege nehmen, die heute bereits benutzt werden. Der Account könnte mit einer Telefonnummer verknüpft sein, und man müsste telefonieren. Oder man verknüpft den mit einer E-Mailadresse und kriegt darauf einen Einmal-Login Link. Oder man muss irgendwo persönlich hin (wenn es sich zum Beispiel um ein Bankkonto handelt) etc. Solche Systeme funktionieren heute schon sehr gut und müssen nicht unbedingt neu erfunden werden.

Haben wir dann jetzt endlich alle Probleme behoben?

Die bei weitem größte Gefahr ist die freiwillige Herausgabe des Passworts

Nicht mal ansatzweise. Der schlimmste Bösewicht überhaupt wurde noch gar nicht erwähnt! Bisher haben wir uns davor geschützt, dass unsere Zugangsdaten von einem fernen Server geklaut werden, aber dies ist gar nicht die häufigste Angriffsmethode die benutzt wird. Dieser Preis geht ans Phishing.

Phishing ist die Angriffstaktik, bei der der Hacker den Nutzer davon überzeugt, der Hacker sei der Service, bei dem der User sich anmelden möchte, sodass der Nutzer dem Hacker seine Zugangsdaten freiwillig gibt. Aktuell funktioniert es meistens so, dass man eine E-Mail bekommt, in der ein Link steht der so aussieht als würde er auf die gewünschte Seite führen. Klickt man darauf, kommt man zum Beispiel nicht auf 'twitter.de' sondern auf 'tvvitter.de', was man aber meist nicht direkt merkt. Die Seite sieht genauso aus wie die echte, aber der Hacker sieht genau was der User ins Passwortfeld tippt.

Bei dem Ansatz mit digitalen Signaturen, würde der Hacker keine privaten Schlüssel bekommen, weil diese ja niemals irgendwohin geschickt werden, aber er könnte trotzdem folgendes tun: Er besucht selbst die richtige Webseite, und bekommt eine zufällige Nachricht zum Signieren. Er gibt diese Nachricht dem User, der auf der gefälschten Seite gelandet ist. Der User signiert die Nachricht und schickt die Signatur an den Hacker, der die Signatur an die richtige Webseite weiterleitet. Der Angreifer hat zwar keinen privaten Schlüssel bekommen, ist aber jetzt einmalig angemeldet und kann genug Schaden verursachen.

Hier kann der Schlüsselmanager helfen! Wo wir Menschen Schwierigkeiten haben zu erkennen, das eine URL leicht verändert wurde, ist das aber für eine Anwendung gar keine Herausforderung. Bei unserem Signaturansatz hätten Webseiten gar keine Passwortfelder mehr die man ausfüllen müsste, sondern nur ein Login-Button, auf den der Schlüsselmanager reagiert. Der User gibt dem Manager Erlaubnis, die Nachricht zu signieren und zu verschicken, zum Beispiel durch seinen Fingerabdruck. Ist die Webseite gefälscht, stimmt die URL nicht, so kann der Manager einfach dem User bescheid geben, und sich weigern das Verfahren durchzuführen.

Geduld

Die Zukunft wird Lösungen bringen. Es gibt aussichtsreiche Ansätze, auch wir arbeiten daran

Damit sind wir erstmal fertig mit den groben Haupt-Ideen unserer vorgeschlagenen Lösung. Es gibt andere interessante Ansätze, zum Beispiel von Google und Microsoft, doch die bewegen sich alle in die gleiche Richtung. Wir haben uns auch schon über weitere technische Details Gedanken gemacht und werden erstmal als Forschungsprojekt diesen Ansatz bei uns ausprobieren. Aber selbst wenn alles gut klappt, kann man davon ausgehen dass die Einführung des Systems in echten kommerziellen Diensten eher sehr langsam stattfinden würde, wenn überhaupt.

Bonus: Ein Traum-Feature das noch in der Konzeptphase ist, ist die Signierung für ein Gerät mithilfe eines zweiten Geräts. Wenn man beispielsweise seine E-Mails einmalig auf einem Rechner lesen möchte, den man sonst nie wieder benutzen wird - im Internetcafé z.B. -  sollte es möglich sein, dem E-Mail-Service die Signatur aus seinem Handy zu schicken, ohne seinen privaten Schlüssel auf den Rechner zu übertragen (und dann auch noch ein Passwort oder einen Fingerabdruck zu registrieren damit der private Schlüssel auf dem Rechner gesichert ist). Dieses Feature muss aber sehr vorsichtig konzipiert werden um Sicherheit zu garantieren - wir arbeiten daran und halten euch auf dem Laufenden!

Mehr Insights