Alice und die Klartext-Speicherung von Passwörtern
Posted by pierre | Filed under Security
Heute wollen wir uns mal ein wenig der Websecurity widmen.
Ich denke jeder von uns hat schon auf diversen Seiten die “Passwort vergessen”-Funktion genutzt und die Entwickler unter uns werden sich evt. schon mal gewundert habe, wenn man dann kein neu generiertes Passwort erhalten hat, sondern einem tatsächlich sein urspüngliches Passwort zugesandt wird.
Dieser Umstand lässt entweder darauf schließen, dass die Passwörter vom Betreiber als Klartext gespeichert werden oder diese verschlüsselt werden und bei Bedarf dann halt wieder entschlüsselt werden. Unabhängig davon das die zweite Option eher unwahrscheinlich ist, ändert es nichts daran das der Betreiber alle Passwörter einsehen kann und somit könnte dies auch ein potentieller Angreifer. Ein Umstand der natürlich sehr fatal ist, da es in der Praxis nun mal immer noch so aussieht das viele Leute überall das gleiche Passwort verwenden. Ich denke ich muss diesen Gedanken nicht weiter ausführen.
Für die Nicht-Entwickler unter uns sei kurz erwähnt das Passwörter normalerweise nicht gespeichert werden, sondern deren Hashes und bei einem Login wird der Hash des eingegebenen Passwortes mit dem gespeicherten Hash verglichen.
Kommen wir nun zum eigentichen Thema: Alice und die Speicherung der E-Mail-Passwörter.
Jeder Alice-Kunde loggt sich gelegentlich mal in seinen Alice-Account bzw. in die “Alice-Lounge” ein. Man kann seine Rechnungen einsehen, seinen Anschluss verwalten und erweitern usw. Unter anderem kann man sich auch durch einen einfachen Klick in seinen E-Mail-Account einloggen.
Ein Klick also auf den entsprechenden Button refresht die aktuelle Seite und öffnet ein neues Fenster in dem man nach kurzer Ladezeit in seinem E-Mail-Account landet. Hansenet verwendet als Webmail-Software “Microsoft Outlook Web Access”. So weit, so gut.
Es wundert einen vielleicht schon, dass man, ohne seine E-Mail-Benutzerdaten einzugeben brauch, direkt in seinem E-Mail-Account landet. Okay, wahrscheinlich wird einfach irgendein Cookie gesetzt, welches dann die Authentifizierung übernimmt. Mich hat es trotzdem interessiert und ich habe dann einfach mal die abgesetzten Requests mit Tamper Data mitgeschnitten und mir den Prozesse dann genauer angeschaut. Das Ergebnis ist wirklich erstaunlich.
Der erste relevante Request geht an https://www.alice-dsl.de/kundencenter/myalice/ISPUsage_320_submit.do?command=forward&target=Mail&org.apache.struts.taglib.html.TOKEN=null
Der Response-Status ist ein 302er und es wird auf
https://mailstore.alice-dsl.de/exchange/<E-MAIL-ADRESSE>/?t=<SHA-256-HASH><BASE64-CODIERTER STRING>&SPC=<IRGENDEIN STRING>
weitergeleitet. Dieser Link ist vollkommen ausreichend um sich in den dazugehörigen E-Mail-Account einzuloggen. Dafür ist kein erfolgreicher Alice-Lounge-Login erforderlich.
Noch ein paar Details zu der URL. Der Hash ist immer der selbe. Ich habe keine Ahnung von was dies der Hash ist, dass E-Mail-Passwort ist es aufjedenfall nicht. Dementsprechend kann ich auch nicht garantiert sagen ob es sich dabei wirklich um einen (SHA-256-)Hash handelt. Der Base64-codierte String ändert sich gelegentlich, ähnliche einer Session-ID. Auch hier kann ich also nur vermuten worum es sich handelt. Der SPC-String ist auch immer der Gleiche, hier weiß ich auch nicht mehr. An dieser Stelle möchte ich auch erwähnen das ich hier (abgesehen von einer Passwortänderung) nicht viel getestet habe, da es nicht mein Ziel war irgendetwas zu “knacken”.
Der Response-Status ist wieder ein 302er und es geht nach
https://mailstore.alice-dsl.de/exchweb/bin/auth/owalogon.asp?url=<REFERRER>&reason=0
Sehr unspektakülär. Noch ein 302er und nun geht es nach
https://alicemail.alice-dsl.de/owalogon.aspx?t=<GLEICHER HASH UND BASE64-STRING WIE OBEN>&url=https://mailstore.alice-dsl.de/exchange/<E-MAIL-ADRESSE>
Jetzt wird es witzig. Zur Abwechslung gibt es mal einen 200er und “zu sehen” gibt es ein verstecktes (französisches) Login-Formular, welches unter anderem die Felder “username” und “password” enthält. Man ahnt es schon. Genau, die beiden Felder halten die eigene E-Mail-Adresse und das dazugehörige Passwort als Klartext. Ist die Seite dann komplett geladen wird folgendes Javascript ausgeführt:
document.forms[0].submit();
Das Formular wird also automatisch abgeschickt und schon sind wir in unserem E-Mail-Account eingeloggt.
Natürlich habe ich die gute Alice angeschrieben und sie gefragt was sie von diesem Umstand in Bezug auf Sicherheit und Datenschutz hält.
Erst wollte man mir, um mich vor Dritte zu schützen, darauf nicht antworten:
Damit wir Ihr Anliegen bearbeiten können, benötigen wir Ihr persönliches Kennwort, sofern Sie uns bei Auftragsvergabe ein Kennwort mitgeteilt haben. Alternativ können Sie sich auch durch die Angabe Ihrer Kontonummer oder Ihres Geburtsdatums identifizieren. Dieses ist erforderlich, um Sie vor dem Missbrauch Ihrer Daten durch Dritte zu schützen.
Ohne es böse zu meinen, aber mir war klar das die erste Reaktion eher nichtssagend sein wird. Egal, schnell erklärt das es sich um eine allgemeine Frage handelt und es somit wohl eher unnötig ist irgendwelche persönlichen Daten durch die Gegend zu schicken. Das hat man eingesehen und ist nun (irgendwie) auf meine Frage eingegangen:
Sehr geehrter Herr Klink,
vielen Dank für Ihre Anfrage.
Die Anmeldung der Alice Lounge ist durch eine 128Bit-Verschlüsselung geschützt. Ihre Bedenken bezüglich des Datenschutzes können wir daher leider nicht nachvollziehen.
Falls Sie sich für das Thema interessieren, finden Sie weitere Informationen in der Fachpresse und auf den einschlägigen Internetseiten.
Okay, ich denke ein dritter Kontakt hätte auch nicht viel mehr gebracht. Ich stelle oft fest, dass Unternehmen Probleme dieser Art nicht wirklich ernst nehmen. Bei großen Unternehmen wie Hansenet kommt dann auch das Problem der diversen Support-Leveln hinzu und das sich die Support-Mitarbeiter für solche Probleme nicht interessieren und diese auch nicht verstehen, was absolut natürlich ist. Schade ist es trotzdem.
Die simpelste Gefahr liegt natürlich (gerade bei großen Unternehmen) darin, dass u. U. diverse Personen Zugriff auf diese Daten haben und evt. früher oder später einer dieser Personen auch den Wert dieser Daten erkennt. Brisante Beispiele für Fälle dieser Art gibt es ja zu Hauf.
Ebenso naheliegend wäre natürlich ein XSS-Angriff. Jeder kann sich dazu selber seinen Teil denken.
Wie schon einleitend erwähnt ist es leider garnicht so untypisch das Passwörter so gespeichert werden, was die Geschichte natürlich nicht besser macht. Nur möchte ich nicht den Eindruck aufkommen lassen das dies ein ganz spezielles Hansenet-Problem wär. Ich habe nur gerade dieses Beispiel aufgegriffen, da es sich bei Hansenet ja schon um ein sehr großes Unternehmen handelt, ich das mit dem ausgefüllten und per JavaScript abgeschickten Formular sehr “interessant” fand und die beiden Reaktionen ein wirklich typisches und gutes Beispiel für einen E-Mail-Kontakt dieser Art sind.
Oktober 21st, 2008 at 21:24
Wichtige Informationen, danke. Warum legst Du es nicht auf einen weiteren Versuch mit Hansenet an?
Oktober 22nd, 2008 at 19:53
Hi, ich glaube zwar nicht das diesmal was sinnvolles dabei rauskommt, aber gerade ging noch eine Mail raus.
Gruß