Facebook speicherte Passwörter im Klartext

Wäre Facebook ein Taxi, dann wüsste der Fahrer nicht, wie ein Sicherheitsgurt funktioniert. So bewertet der Bundesdatenschutzbeauftragte den neuesten Sicherheitsvorfall bei Facebook. Keine Plattform sollte die unverschlüsselten Passwörter der Nutzer:innen kennen, das geht schon längst anders.

Facebook speichert Klartext-Passwörter: Irgendwo zwischen Facepalm und „Ihr habt doch ’nen Vogel“ – CC0 Joe deSousa

Cambridge Analytica, Sicherheitslücken bei privaten Gruppen sowie Unbekannte, die Zugriff auf Millionen von Nutzerdaten hatten. Facebook hat kein gutes Händchen bei Datensicherheit und Datenschutz. Der Journalist Brian Krebs fand nun heraus, dass der Konzern viele Millionen Passwörter im Klartext in seinen Datenbanken gespeichert hat. Laut einem Statement von Facebook seien diese Passwörter nie von außen einsehbar gewesen:

„Um es klarzustellen, diese Passwörter waren für niemanden außerhalb von Facebook sichtbar, und wir haben bisher keine Beweise dafür gefunden, dass jemand diese intern missbraucht oder unsachgemäß auf sie zugegriffen hat.“

Tausende Mitarbeiter hatten Zugriff auf die Klartext-Passwörter

Krebs zitiert eine anonyme Quelle innerhalb des Konzerns, laut der die Daten für mehr als 20.000 Facebook-Mitarbeiter:innen sichtbar gewesen seien – ein enormes Missbrauchsrisiko. Es seien 200 bis 600 Millionen Nutzer:innen von Facebook, Instagram und Facebook Lite betroffen.

Facebook sagt, das Problem sei mittlerweile behoben und Betroffene würden über den Vorfall informiert.

Beim Bundesdatenschutzbeauftragten Ulrich Kelber hat der aktuelle Skandal laut einer Pressemitteilung der Behörde „vor allem Kopfschütteln ausgelöst“. Facebook als einer der „weltweit größten IT-Konzerne“ wisse offensichtlich nicht, wie Passwörter gespeichert werden müssen:

Das ist in etwa so, wie wenn sich Fahrgäste in einem Taxi nicht anschnallen können, weil der Fahrer nicht weiß, wie ein Sicherheitsgurt funktioniert.

Niemand sollte die Passwörter seiner Nutzer lesen können

Doch wie kann man Passwörter überhaupt mit der Eingabe von Nutzern abgleichen, wenn der Plattform-Betreiber das Original nicht kennt? Dafür gibt es ein seit langem bewährte kryptographische Verfahren. Passwörter werden dann beim Betreiber nur in gehashter Form gespeichert. Ein Hash macht aus einer Zeichenkette wie „Passwort123“ beispielsweise die Abfolge „b6339e4adeee1575“ mit fester Länge. Es gibt verschiedene Hash-Verfahren, nicht alle sind für die Speicherung von Passwörtern geeignet.

So kann mit sogenannten Regenbogentabellen Hash-Werte von Verfahren wie MD5 recht schnell vorausberechnen. Bei Verfahren ohne angehängte zufällige Zeichenkette ist das nicht ohne Weiteres möglich – beziehungsweise bei ausreichend langen Passwörtern nur ineffizient. [Nach Hinweisen aus den Kommentaren richtiggestellt, danke.]

Meldet man sich bei einer Plattform an, werden nur die Hashwerte abgeglichen, nicht die Originalpasswörter. Das hat unter anderem den Vorteil, dass jemand die Originalpasswörter nicht lesen kann, selbst wenn er die Passwortdatenbank einer Plattform in die Hände bekommt. Wenn Facebook IT-Sicherheit ernst nehmen würde, dürfte Facebook die Zugangsdaten seiner Nutzer also gar nicht kennen. Doch das Gegenteil ist zumindest teilweise der Fall. Es handelt sich deswegen auch nicht um eine Datenpanne, sondern einen grundlegenden Fehler im IT-Sicherheitskonzept.

Deine Spende für digitale Freiheitsrechte

Wir berichten über aktuelle netzpolitische Entwicklungen, decken Skandale auf und stoßen Debatten an. Dabei sind wir vollkommen unabhängig. Denn unser Kampf für digitale Freiheitsrechte finanziert sich zu fast 100 Prozent aus den Spenden unserer Leser:innen.

2 Ergänzungen

  1. Sorry, aber das ist so nicht richtig. Ich muss dem Plattformbetreiber immer mein Passwort übermitteln (mindestens einmal), wenn ich von ihm authentifiziert werden will. Richtig ist, dass dieser das Passwort nicht notwendigerweise dauerhaft speichern muss, siehe Eure Erklärung zu Hashes. Das Detail, auf das es ankommt, ist aber, dass ich mich gegenüber der Plattform authentifizieren will. Dazu muss die Platform in der Lage sein meine Identität festzustellen, was sie dadurch tut, dass sie mir eine Frage stellt, die nur ich richtig beantworten kann und deren Antwort das Passwort ist. Von hier aus, gibt es zwei Wege:
    1. Die Plattform kennt (dauerhaft) das Passwort
    2. Die Plattform hat die Kontrolle darüber, das Passwort in etwas umzuwandeln (den Hash), was belegt, dass ich das Passwort kenne, muss das Passwort aber selbst nicht speichern.

    Das war’s, Authentifikation benutzt immer eine dieser beiden Methoden.

    Vor-/Nachteile von Methode 1:
    + das Passwort wird genau einmal übertragen (bei der Erstanmeldung)
    + das Passwort muss danach niemals das eigene System verlassen, weder meines noch das der Plattform, sondern es lassen sich aus dem Passwort Dinge ableiten, die es der Plattform erlauben zu prüfen, ob ich das Passwort wirklich kenne. (Kerberos (und damit Microsoft Active Directory et al.) benutzt dieses Verfahren)
    – die Plattform kennt das Passwort
    – und muss es dauerhaft vorhalten

    Vor-/Nachteile von Methode 2:
    + die Plattform bekommt das Passwort nur im Moment der Authentifikation zu sehen und bildet daraus einen Hash, dem sie selbst vertraut(!!!). Danach kann das Passwort wieder verworfen werden.
    + das Passwort muss nicht auf Datenträgern dauerhaft gespeichert werden
    – das Passwort wird bei jeder Authentifikation übertragen (und muss durch Transportverschlüsselung wie SSH oder TLS abgesichert werden)
    (-) die Verantwortung für die Verarbeitung des Klartext-Passworts in den Hash liegt allein bei der Plattform (weil sie dem Hash des Passworts vertrauen können muss. Soll heißen, dass der Hash nicht einfach durch Replay übertragen durfte, ohne dass das Passwort benutzt werden musste.)

    Wenn die Plattform bei Methode 2 das Passwort nicht selbst verarbeitet sondern das mir (meinem Browser) überlässt, dann ist das keine Sicherheit sondern „masturbation“ (frei nach Linus Torvalds).

    Schlussendlich: Die Plattform kennt zu irgendeinem Zeitpunkt immer mein Klartext-Passwort.

  2. Euer Artikel liest sich, als ob Facebook die Passwörter in seiner Datenbank im Klartext gespeichert hat und die Klartext Passwörter angleicht. Dem ist nicht so. Die Klartext Passwörter wurden in Logdateien gespeichert.
    Macht die Sache nicht besser, aber ich wollte der Klarheit wegen drauf hinweisen.

Dieser Artikel ist älter als ein Jahr, daher sind die Ergänzungen geschlossen.