Warum man Passwörter (nach wie vor) nicht speichern sollte

Argumente gegen die Autocomplete-Funktion von IT Security Consultant Dr. Benjamin Heß

"Bitte wählen Sie ein Passwort mit einer Mindestlänge von zehn Zeichen, das aus mindestens drei Zeichenklassen besteht ..." – Wer kennt Meldungen wie diese nicht? Sei es bei der Registrierung für einen Onlineshop, für das Onlinebanking, für soziale Medien oder für das E-Mail-Postfach: Überall werden wir darum gebeten, uns ein (möglichst sicheres) Passwort auszudenken. Dabei ist es natürlich ratsam, für die einzelnen Webseiten verschiedene Passwörter auszuwählen. Wenn man sich die große Zahl an Passwörtern nicht mehr merken möchte, empfiehlt es sich, eine professionelle Softwarelösung für die Passwortverwaltung zu verwenden.  Passwort-Safes bieten die Möglichkeit, Nutzernamen und Passwörter lokal verschlüsselt abzuspeichern.

Bequemlichkeit versus Sicherheit

Viele mögen es als umständlich empfinden, wenn man bei jeder Anmeldung erst das Passwort aus dem Passwort-Safe heraussuchen und in die Anmeldemaske der entsprechenden Webseite kopieren muss. Die gängigen Browser-Entwickler haben darauf bereits vor über einem Jahrzehnt reagiert und bieten dem Benutzer an, die Anmeldedaten im Browser zu speichern und auch automatisch in die Anmeldemaske der jeweiligen Webseite einzutragen. Warum dies keine gute Idee ist, sondern ein Sicherheitsrisiko darstellt, werden wir gleich näher betrachten. Doch zuvor etwas zur historischen Entwicklung dieser Problematik.

Tatsächlich ist das mit der Autovervollständigung des Passworts verbundene Sicherheitsrisiko schon seit vielen Jahren bekannt. In der Vergangenheit konnten die Entwickler einer Webseite die Autovervollständigung des entsprechenden Anmeldeformulars noch explizit über den Quellcode der Webseite ausschalten. Ein einfaches Tag "autocomplete = off" genügte. Aus Bequemlichkeit empfinden es viele Anwender jedoch eher als störend, wenn man für manche Webseiten die Autovervollständigung nicht verwenden kann. Und so reagierten die Browser-Entwickler ein weiteres Mal. Die Konsequenz: Alle gängigen Browser ignorieren seit einiger Zeit das obige Tag und bieten dem Benutzer immer die Autovervollständigungsfunktion für Anmeldemasken an. Der Benutzer muss allerdings noch zustimmen, bevor der Browser das Passwort speichert. Als zusätzlicher Rechtfertigungsgrund wird außerdem angegeben, dass der Benutzer eher ein starkes Passwort wählt, wenn er es sich nicht merken muss, d. h. die Passwortstärke wird durch diese Maßnahme erhöht.

Aus Sicherheitsperspektive ist dieses Vorgehen eher fraglich. Das Argument einer höheren Passwortstärke mag eine gewisse Berechtigung besitzen. Allerdings ließe sich das Passwort auch in einem geeigneten Passwort-Safe (eben ohne Autovervollständigung) speichern.  Im Endeffekt wird dem Endanwender hier eine unsichere Funktionalität angeboten mit der Rechtfertigung, dass jeder Nutzer selbst entscheiden kann, ob sein Passwort gespeichert werden soll oder nicht. Da diese Funktionalität nun bereits über so viele Jahre angeboten wird, ist der Endanwender vermutlich überzeugt davon, dass es sich um ein sicheres Vorgehen handelt. Wir sehen uns daher dazu veranlasst, die Sicherheitsproblematik auf's Neue ins Bewusstsein der Nutzer zu rufen.

Angriffsszenario auf Autocomplete-Funktion

Schauen wir uns im Folgenden an, wie die Verwendung der Autovervollständigung dazu führen kann, dass das eigene (beliebig komplexe und sichere) Passwort unter bestimmten Voraussetzungen in die Hände eines Angreifers gelangen kann. Das prinzipielle Vorgehen ist dabei über die Jahre unverändert geblieben.

Nehmen wir rein hypothetisch an, dass unser Opfer ein Facebook-Konto besitzt und die Zugangsdaten im Browser abgespeichert hat. Liegt nun eine sogenannte Cross-Site Scripting (XSS)-Schwachstelle vor (beispielsweise wurde eine Reihe solcher Schwachstellen in 2013 behoben, siehe hierzu auch den Artikel auf heise.de) , wird es problematisch. Eine XSS-Schwachstelle ermöglicht es einem Angreifer, ein Skript im Browser des Opfers auszuführen, sobald dieses die entsprechende Webseite aufruft. Ein Skript, das über die Autovervollständigung das Passwort aus dem Browser des Opfers extrahiert und an den Angreifer sendet, kann dabei folgende Schritte ausführen:

  1. Die Eingabefelder werden genau so wie sie auch von der Webseite für die Anmeldung verwendet werden versteckt in die aktuell dargestellte Seite eingebunden, d. h. sie sind für das Opfer nicht sichtbar.
  2. Das Skript wartet ab, bis der Browser die Zugangsdaten in die Felder eingetragen hat.
  3. Die Zugangsdaten werden aus den Feldern ausgelesen und an einen Server gesendet, der sich unter Kontrolle des Angreifers befindet.

Wenn das Opfer nicht gerade mit entsprechender Software den eigenen Netzwerkverkehr überwacht, geschieht dies vom Opfer völlig unbemerkt. Die Konsequenz: Egal wie sicher das Passwort des Opfers auch gewesen sein mag, es befindet sich nun im Besitz des Angreifers! Der Angreifer kann sich in das Konto des Opfers einloggen und mit dessen virtueller Identität beliebigen "Schindluder" treiben!

Man beachte: Wären die Passwörter nicht durch Autovervollständigung hinterlegt und eingetragen worden, hätte die XSS-Schwachstelle das Passwort auf diese Weise nicht erbeuten können.

Fazit

Leider schließen sich Bequemlichkeit und Sicherheit in diesem Fall aus. Die von Browsern angebotene Autovervollständigung von Passwörtern sollte besser nicht genutzt werden!

Passwörter stellen oftmals ein Einfallstor dar – sei es in Unternehmen oder privat. In der Regel führt Bequemlichkeit zum Sicherheitsrisiko, sei es nun die Wahl eines einfach zu merkenden und zu tippenden Passworts (das ein Angreifer leicht erraten kann) oder die Verwendung der Autovervollständigung. Den besten Schutz vor Angriffen bieten lange, schwer erratbare Passwörter oder besser noch Passphrasen. Ein modifizierter Satz ist oftmals leicht zu memorieren und kann schnell getippt werden, ist aber dennoch bestenfalls sehr schwer zu erraten. Um selbst nicht den Überblick zu verlieren, kann auch ein geeigneter Passwort-Safe verwendet werden, aus dem man dann wiederum die Passwörter kopieren und selbst in das Anmeldeformular der Webseite einfügen kann. Das mag etwas aufwendiger sein als die Autovervollständigung des Browsers, aber es zahlt sich in Form eines höheren Maßes an Sicherheit aus.

Wer bisher die Autovervollständigung verwendet hat und nun lieber darauf verzichten möchte, sollte die Autovervollständigung in den Browsereinstellungen deaktivieren und alle gespeicherten Passwörter löschen.

Weitere Hinweise zum Thema "Passwortsicherheit" finden Sie auch in unserem Blogartikel "SySSGeheim2017!".

Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de | IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99

Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer

Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de

IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99

Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer

Direkter Kontakt

+49 (0)7071 - 40 78 56-0 oder anfrage@syss.de

IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN

+49 (0)7071 - 40 78 56-99

Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer