Have I been Pwned?

Have I been Pwned?

Hackern gelingt es immer häufiger, Nutzerdaten von Unternehmen zu entwenden. Über kurz oder lang sind diese dann im Darknet oder sind auch im Clearnet auffindbar. Das Clearnet ist der Teil des Internets, auf den du mit jeden beliebigen Browser Zugriff hast. Bist du auf der Suche nach einem Service, welches es dir ermöglicht zu prüfen, ob deine Daten von einem Leak betroffen sind, bist du hier genau richtig. “Have I been Pwned” (HIBP) ist ein Service von Troy Hunt, mit dem du das bewerkstelligen kannst. Diesen Service nehmen wir heute etwas genauer unter die Lupe.

Wer steckt hinter dem Service?

Wie eingangs erwähnt stammt “Have I been Pwned” von Troy Hunt. Er ist Australier und Microsoft Regional Director (arbeitet nicht für Microsoft!). Neben der Tätigkeit an HIBP hält der Australier Vorträge und gibt Workshops rund um das Thema Web-Sicherheit. Die Idee zur Seite kam ihm nach der Bekanntmachung des größten Datenlecks der Geschichte.

Am 4. Oktober 2013 wurden bei Adobe 152.445.165 Accounts kompromittiert. Darunter befanden sich E-Mail-Adressen, Passworthinweise, Passwörter und Benutzernamen. Exakt drei Monate später ging HIBP an den Start mit folgendem Ziel: Jeder sollte die Möglichkeit haben, einfach und kostenlos zu prüfen, ob die eigenen Daten veröffentlicht wurden. Damti die Mehrheit von dem Dienst profitieren könne, trägt Troy Hunt die Kosten für den Service alleine. Man hat aber die Möglichkeit, mit einem direkten Link auf der Webiste zu spenden.

Wie funktioniert HIBP?

Allgemeiner Ablauf

Bist du auf der Startseite von “Have I been Pwned” wirst du in der Mitte der Seite ein leeres Textfeld sehen. In diesem gibst du deine E-Mail-Adresse ein, um zu prüfen, ob im Zusammenhang mit dieser E-Mail irgendwelche privaten Daten veröffentlicht wurden. Anschließend klickst du auf den Button “pwned?”. Erscheint die Meldung “Good news — no pwnage found!”, ist die E-Mail in keinem Datensatz von HIBP aufgelistet. Springt dir aber die Meldung “Oh no — pwned!” entgegen, kommt die E-Mail mindestens in einem Datenleak vor und solltest schnellstens Handlungsschritte einleiten.

Pwned - was tun?

Ist deine E-Mail von einem Datenleak betroffen, wird dir unterhalb des roten Bereichs aufgelistet, um welche Dienste es sich hierbei handelt. Bei diesen solltest du unbedingt dein Passwort ändern, falls du auf dein Konto noch Zugriff hast. Andernfalls kontaktiere den Support des Dienstes, dieser wird dir weiterhelfen können. Benutzt du zudem das Passwort auch bei anderen Diensten, was du eigentlich nicht tun solltest, ändere auch dort unbedingt das jeweilige Passwort.

No Pwnage found - bin ich jetzt sicher?

Erstrahlt der untere Teil der Webseite im grünen Glanz, ist doch alles in Ordnung oder nicht? Leider ist das nicht so einfach. Nur weil deine E-Mail-Adresse nicht im Datensatz von HIBP auftaucht, heißt das nicht, dass deine E-Mail nicht kompromittiert wurde. Denn der Service enthält nur einen Bruchteil aller Datensätze, die über die Jahre geleakt wurden, auch wenn HIBP so schnell wie möglich immer auf dem neuesten Stand gebracht wird. Denn tatsächlich bleiben viele Verstöße unentdeckt oder werden von den Unternehmen erst gar nicht öffentlich gemacht.

weitere infos pwned

Was bedeutet eigentlich “pwned”?

Der Begriff “pwned” hat seinen Ursprung aus der Videospiel-Kultur und ist ein Leetspeak des Wortes “owned”. Unter Leetspeak versteht man im Netzjargon das Ersetzen von Buchstaben in einem Wort durch ähnlich aussehende Ziffern oder auch Sonderzeichen. “Owned” ist englisch und bedeutet “besessen” (in Besitz). Das heißt, der Ausdruck “Have I been Pwned” würde man mit “Wurde ich komprimiert” übersetzen.

Woher stammen die Datensätze in HIBP?

Die Datensätze in HIBP werden aus zwei Hauptquellen bezogen. Der eine Anteil an Daten stammt von den Firmen selbst, die von einem Angriff betroffen sind. Diese können sich mit Troy Hunt in Verbindung setzen, damit die Daten in die Datenbank eingepflegt werden können. Es werden natürlich nur E-Mail-Adresse und Passwörter aufgenommen. Diese werden auch nicht paarweise gespeichert, sondern in verschiedene Datenbanken. Bei der Datenbank handelt es sich übrigens nicht um einen SQL-Server, sondern um Azure Table Storage.

Die zweite Bezugsquelle sind Plattformen wie Pastebin, die dafür verwendet werden, um Informationen zu teilen. Um solche Plattformen nicht alle einzeln zu durchsuchen, kommt hier ein Twitterbot zum Einsatz. Es besteht hier übrigens immer die Möglichkeit, mit Troy Hunt Kontakt aufzunehmen, falls man der Meinung ist, ein Datenleak entdeckt zu haben, welcher im Service nicht vorhanden ist. Welche Leaks in der Datenbank enthalten sind, kannst du der Webseite entnehmen.

Kann ich mich Benachrichtigen lassen falls meine E-Mail in einem Datenleak auftaucht?

Ja, diese Option wird dir angeboten. Hierfür musst du lediglich deine E-Mail-Adresse im Pop-up-Fenster von “Notify me” eintragen und diese verifizieren. Vergewissere dich dabei, wenn du die E-Mail zur Verifikation erhältst, dass diese auch wirklich von der E-Mail-Adresse noreply@haveibeenpwned.com kommt.4

Pwned Passwords

Eine E-Mail auf ihren pwned-Status zu überprüfen gefiel vielen Nutzer von HIBP ziemlich gut. Mit der Zeit wurde sich dann auch eine selbe Funktion für Passwörter gewünscht, sodass im August 2017 “Pwned Passwords” ins Leben gerufen wurde.

Mit dieser Zusatzfunktion kannst du prüfen, wie oft ein Passwort bereits geleakt wurde. Dabei erhältst du wirklich nur die Anzahl der Veröffentlichungen und keine Zusatzinformationen, wie zum Beispiel welche Accounts dieses Passwort verwendet haben.

Heute enthält die Datenbank inzwischen über 572.611.621 veröffentlichte Passwörter (Stand: 19 Juni 2020) und zeigt somit, wie oft immer noch schwache Passwörter gewählt werden. Die Rückmeldung, ob ein Passwort “pwned” ist oder nicht, fällt wie bei den E-Mail-Adressen aus. Wie “Pwned Passwords” genau funktioniert, erfährst du gleich.

API

HIBP stellt mit der eigenen API allen die Möglichkeit zur Verfügung, über einen Restful Service die Liste der pwned-Konten zu durchsuchen. Wie das genau funktioniert, wird hier nicht erklärt. Wenn du dich für weitere Details interessierst, kannst in der Dokumentation der API von Troy Hunt selbst nachlesen. Hier wird dir alles Schritt für Schritt genau erklärt.

Searching by Range

“Searching by Range” ist eine Methode (keine Methode im klassischen Sinn einer Programmiersprache) der API, die für die Funktionalität von “Pwned Passwords” sorgt. Dadurch kannst du also die Funktionalität, die mit diesem Service auf der Webseite zur Verfügung gestellt wird, auch in eigene Programme integrieren. Da dieses Themenfeld sehr interessant ist und es dafür einige Anwendungsfälle und Beispiele gibt, schauen wir uns an, was bei “Pwned Passwords” im Hintergrund passiert.

Arbeitsweise von Pwned Passwords

Zuerst einmal ist es wichtig zu wissen, dass die Passwörter in der Datenbank aus Gründen des Encodings nur als SHA1-Hash vorliegen. Dies sorgt für mehr Sicherheit. “Mehr Sicherheit und SHA1, das passt doch gar nicht zusammen”, magst du dir jetzt denken, wenn du dich mit Kryptographie auskennt. Das stimmt. SHA1-Hashs sind aus kryptographischer Sicht nicht sicher. Das spielt in diesem Fall aber keine Rolle, denn Pwned Passwords basiert auf das k-Anonymity-Modell, welches der Cloudflare Mitarbeiter Junade Ali entwickelt hat. Gibst du in das Eingabefeld das zu überprüfende Passwort ein, wird davon der SHA1-Hash ermittelt. SHA1-Hashs bestehen nur aus Zahlen, Buchstaben und sind unabhängig von dem Text, der gehasht werden soll, immer 40 Zeichen lang. Die Eingabe von “passwort” würde zum Beispiel zum SHA1-Hash “2E2B6533A81BC15430CF65DE46DC097EEB5BA70C” führen. Kleine Veränderungen beim Ursprungstext haben große Auswirkungen. So führt zum Beispiel “Passwort” zu einem ganz anderen Hash als “passwort”.

Nachdem der Hash gebildet wurde. Werden die ersten fünf Zeichen des Hashs (hier: 2E2B6) mittels eines GET-Requests an die API geschickt. Dies geschieht, indem an den Link https://api.pwnedpasswords.com/range/ noch die ersten fünf Zeichen angehängt werden. Ob die Zeichen des Hashs groß oder klein geschrieben werden, spielt keine Rolle. Als Antwort erhält man eine Auflistung aller Hashs der Datenbank, die genau mit diesen fünf Zeichen beginnen. Dies zeigt auch das folgende Bild unten (kleiner Ausschnitt der ersten Einträge).

Bevor du dich fragst, warum denn keiner der Einträge in der Liste mit “2E2B6” beginnt, kommt hier die Erklärung. In der Liste befindet sich links vom Doppelpunkt in jeder Zeile die Zeichen 6 - 40 eines SHA1-Hashs. Die ersten fünf sind jeweils “2E2B6”. Diese werden aber aufgrund der API-Spezifikation nicht angezeigt. Nach dem Doppelpunkt folgt die Zahl, die angibt, wie oft das Passwort der jeweiligen Zeile geleakt wurde. Intern wird im nächsten Schritt in dieser Liste mit den Hashs nach der Zeichenfolge “533A81BC15430CF65DE46DC097EEB5BA70C” gesucht. Das sind die Zeichen 6 - 40 des Hashs, von dem eingegebenen Passwort. Wird die Zeichenfolge gefunden, so erhält man als Rückmeldung bei “Pwned Passwords”, dass das Passwort “pwned” ist, andernfalls nicht.

Weitere Infos zu Pwned Passwords

Willst du lieber offline überprüfen, ob ein Passwort “pwned” ist, kannst du dir die komplette Passwortliste herunterladen. Hier liegen die Passwörter wahlweise als SHA1-Hash oder NTLM-Hash vor. Die Datei ist je nach Wahl des Hashs und der Sortierung der Einträge zwischen 7.86 - 11.4 GB groß. Was du noch wissen solltest ist, wenn ein Passwort nicht als "pwned" identifiziert wird, heißt das noch lange nicht, dass das Passwort auch aus kryptographischer Sicht sicher ist.

Ist HIBP sicher?

Diese Frage kann klar mit JA beantwortet werden, auch wenn der komplette Code noch nicht Open-Source ist. Dies soll aber in Zukunft abgeändert werden, dazu später mehr.

Wenn geleakte Daten in die Datenbank aufgenommen werden, werden ausschließlich E-Mail-Adresse und das Passwort gespeichert. Ganz wichtig zu erwähnen ist hier, dass nie das Passwort und die zugehörende E-Mail miteinander in der Datenbank verbunden gespeichert werden, sondern immer getrennt. Das liegt daran, dass “Pwned Passwords” unabhängig von der Identitätsüberprüfung via E-Mail läuft. Auch weitere Information, die mit einem Leak öffentlich werden, werden nicht gespeichert.

Es werden auch Eingaben, die du in die Eingabefelder tätigst, nicht geloggt und der vorhandene Code wird regelmäßig auf Sicherheitslücken überprüft. So können Code- oder Konfigurationsschwachstellen so früh wie möglich erkannt werden. Zum Thema Daten in HIBP lässt sich noch folgendes festhalten. Alle Daten werden immer nur über HTTPS übermittelt. Zusätzlich kommt Cloudflare zum Einsatz, um potenzielle böswillige Anforderungen zu blockieren.

Willst du mehr über die Sicherheit in HIBP erfahren, kannst du das hier nachlesen: Privacy und FAQs.

Zukunft des Services

Bis jetzt war “Have I been Pwned” closed-source von Troy Hunt alleine entwickelt worden. Das soll sich nun aber ändern, wie er in einem Blogeintrag mitteilt. Mit dem Offenlegen des Source-Codes erhofft er sich, dass HIBP noch zuverlässiger und vertrauenswürdiger wird. Wann es genau soweit sein wird, kann er aber noch nicht sagen. Denn die Codebasis, die er in den letzten sieben Jahre geschrieben hat, muss dafür zuerst überarbeitet werden. Die Freigabe des Codes soll dann Stück für Stück geschehen, mithilfe einiger vertrauenswürdiger Helfer, die er nicht namentlich erwähnt.

Weitere Infos, was in Zukunft mit HIBP geschehen soll und die Beweggründe für den Schritt zur Open-Source-Software kannst du in dem Blogeintrag “I'm Open Sourcing the Have I Been Pwned Code Base” nochmal genauer nachlesen. Dort informiert Troy Hunt auch regelmäßig über den Stand von “Have I been Pwned”


Du willst deine Noten an der Uni verbessern und suchst die perfekten Lernunterlagen für deinen Studiengang? Dann schau doch mal auf Studydrive vorbei.

Hier findest du viele, viele kostenlose Lernunterlagen, Übungsblätter, Altklausur-Lösungen und kannst dich mit anderen Studis austauschen.

Zeig mir Studydrive