"Login" von Thomas Breher; Quelle: pixabay.com

Ist mein Passwort noch sicher?

Im Januar 2019 wurden wieder einmal größere Mengen gestohlener Benutzerdaten im Darkweb angeboten – die Collections #1 – #5. Allein hierbei handelte es sich um über 2 Milliarden Mail-Adressen samt zugehöriger Passwörter – aber auch vorher und danach gab es solche Leaks, sodass das Hasso-Plattner-Institut in Potsdam (HPI) derzeit (Februar 2021) für seinen Identity Leak Checker auf einen Bestand von über 12 Milliarden gestohlener Identitäten zugreifen kann. [1]Im März 2019 waren es noch 8 Milliarden Identitäten. Siehe die Pressmitteilung des HPI vom 25.01.2019: HPI Identity Leak Checker: 2,2 Milliarden E-Mail-Adressen mit Passwörtern aus jüngsten … Continue reading Allerdings liegt nur bei einem Teil dieser Daten das Passwort im Klartext vor – immerhin über 600 Millionen davon hat der Service Have I Been Pwned des australischen Security-Experten Troy Hunt gesammelt.

Die eigene Mail-Adresse prüfen

Wenn man prüfen will, ob die eigene Mail-Adresse in einem dieser Datenlecks enthalten ist und ob das Risiko eines Missbrauchs der eigenen digitalen Identität besteht, kann man einen der folgenden Services nutzen:

  • Der oben genannte Identity Leak Checker des HPI ist erreichbar unter https://sec.hpi.de/ilc; hier erhält man nach kurzer Zeit eine Mail, ob und mit welchen zusätzlichen Daten (z.B. Passwort, Bankdaten) die eingegebene Mail-Adresse betroffen ist
  • Der Dienst Have I been pwned (HIBP; auf deutsch in etwa „Bin ich besiegt worden“ [2]Slang; ursprünglich aus der Computerspieler-Szene; siehe www.urbandictionary.com/define.php?term=pwned) – https://haveibeenpwned.com/ – zeigt sofort online an, ob die Mail-Adresse in einem oder mehreren Datenleaks enthalten ist und wenn ja, in welchen. Informationen, welche Daten noch betroffen sind, erhält man nicht.
  • Einen ähnlichen Service wie das HPI bietet die Universität Bonn an. Auf der Seite leakchecker.uni-bonn.de kann man seine Mail-Adresse eingeben und erhält eine Nachricht, ob und in welchen Fällen sie von einem Leak oder Datendiebstahl betroffen war.

Wie man an den Antwortmails der Leak-Checker des HPI und der Uni Bonn sieht, liefern die Dienste nicht unbedingt die gleichen Informationen bzw. greifen erkennbar auf unterschiedliche Datenbestände zurück. Man kann ja beide Dienste nutzen …

Ein Passwort bei »Have I Been Powned« prüfen …

Schwieriger wird es, wenn man prüfen möchte, ob das eigene Passwort in einem der Leaks enthalten ist. HPI und Uni Bonn bieten so eine Abfrage gar nicht an, auf HIBP gibt es die Seite Pwned Passwordshttps://haveibeenpwned.com/Passwords. Nun ist es aber eigentlich keine gute Idee, auf irgendeiner Seite ein Passwort einzugeben – außer man will sich auf genau dieser Seite anmelden.

HIBP hat ein pfiffiges Verfahren zum Schutz der Privatsphäre realisiert, bei dem die Passwörter nicht im Klartext übertragen werden, sondern nur Hashwerte, also mit einer kryptografischen Funktion berechnete Daten, aus denen die ursprünglichen Passwörter nicht mehr ermittelt werden können.[3]So sollten Passwörter auch in den Datenbanken der Webseiten-Betreiber gespeichert sein – als Hash-Werte und nicht im Klartext. Wie man aber an der weiter wachsenden Anzahl von inzwischen über … Continue reading Das eingegebene Passwort wird bereits lokal im Browser gehasht, nur die ersten paar Zeichen werden an den Server übertragen, und die Liste der möglichen Ergebnisse wird wieder lokal im Browser ausgewertet. [4]Eine Beschreibung des Verfahrens findet sich hier: https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/#cloudflareprivacyandkanonymity

Trotzdem bleibt ein ungutes Gefühl dabei, sein Passwort auf einer fremden Seite einzugeben – egal wie vertrauenswürdig deren Betreiber sein mag. Auch Hunt stellte einer früheren Version der Passwort-Abfrage eine Warnung voran, ein noch genutztes Passwort nicht auf der Seite eines Dritten einzugeben – auch nicht auf seiner:[5]Troy Hunt ist als Sicherheitsexperte anerkannt; sein Service exisitiert bereits seit mehreren Jahren, sodass Sicherheitslücken oder Missbrauch der Daten inzwischen vermutlich aufgefallen wären. Zur … Continue reading

Do not send any password you actively use to a third-party service – even this one!

Die Möglichkeit, ein Passwort zu prüfen, ohne es im Klartext an den Server zu schicken, bietet Hunt deshalb auch über eine Schnittstelle im Web an. Im folgenden beschreibe ich zwei Wege, wie man diese Schnittstelle nutzen kann, ohne dass das zu prüfende Passwort den eigenen Rechner verlässt.

… mit Windows-Bordmitteln …

Getestet habe ich den folgenden Ablauf mit Windows 10, er sollte aber auch mit älteren Windows-Versionen funktionieren, da das verwendete Programm certutil.exe seit Version 7 ein Bestandteil von Windows ist. Für dieses Verfahren ist es nicht nötig, ein zusätzliches Programm zu installieren – Windows bringt alles mit, was benötigt wird.

HIBP arbeitet nicht mit Klartext-Passwörtern, sondern mit SHA1-Hashes – das Passwort wird in eine 160 Bit (20 Byte bzw. Zeichen) lange Zeichenkette umgewandelt, aus der sich das Passwort nur mit unverhältnismäßig hohem Aufwand wieder gewinnen lässt.

Schritt 1: Man erstellt mit einem einfachen Texteditor (z.B. dem Windows-Notepad – nicht mit einer Textverarbeitung wie Libre Office oder MS Office!) eine Datei, die das zu prüfende Passwort enthält – eine Zeile, ohne Zeilenumbruch am Ende. Dieses Beispiel verwendet „password“ (in der Datei ohne Anführungszeichen).

Schritt 2: Start der Windows-Kommandozeile. Mit dem Programm certutil.exe (einem Systemprogramm von Windows zur Verwaltung digitaler Zertifikate) wird der SHA1-Hash des Passworts (eigentlich der Datei, aber die enthält ja nur das Passwort) berechnet.

C:\Users\Heiko>certutil -hashfile k:\temp\password.txt SHA1

Ausgabe:

SHA1-Hash von k:\temp\password.txt:
5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
CertUtil: -hashfile-Befehl wurde erfolgreich ausgeführt.

Zeile 2 enthält den Hash; davon interessieren erstmal nur die ersten fünf Zeichen „5baa6“ (Groß- oder Kleinschreibung ist egal).

Schritt 3: Im Web-Browser die Adresse des APIs von haveibeenpwnd aufrufen [6]API = application programming interface; dt. Anwendungsschnittstelle; Dokumentation auf www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/

https://api.pwnedpasswords.com/range/5baa6

Die letzten fünf Zeichen in der Adresse sind die ersten fünf Zeichen des eben erzeugten Hash-Werts.

Schritt 4: Man erhält eine Liste mit allen Passwort-Hashes, die mit „5BAA6“ beginnen (wobei der Präfix „5BAA6“ weggelassen wird).

003D68EB55068C33ACE09247EE4C639306B:3
012C192B2F16F82EA0EB9EF18D9D539B0DD:1
01330C689E5D64F660D6947A93AD634EF8F:1
...

In der Liste sucht man dann nach „seinem“ Hash (wieder ohne die ersten fünf Zeichen), also „1e4c9b93f3f0682250b6cf8331b7ee68fd8“. Die Liste ist zwar je nach Passwort mehrere Hundert Zeilen lang, aber aufsteigend sortiert, also geht die Suche auch ohne Hilfsmittel recht fix, und man findet

1E4C9B93F3F0682250B6CF8331B7EE68FD8:3645804

Die Zahl nach dem Doppelpunkt gibt an, wie oft das Passwort in der Liste der von Datendiebstählen betroffenen Passwörter auftaucht. Das getestete „password“ ist reichlich 3,6 Millionen mal enthalten[7]Die in den Beispielen genannten Zahlen stammen aus dem März 2019, dürften inzwischen also anders aussehen. – also sollte man es außer zu solchen Tests nicht benutzen. 😉 Findet man den eigenen Hash nicht in der Liste, ist das Passwort bisher nicht in einem der bekannten Datenlecks veröffentlicht worden.

… oder mit einem Python-Skript

Die Abfrage kann man mit einem kleinen Python-Skript etwas einfacher machen und automatisieren, wenn man viele Passworte testen möchte. Unter Windows muss man hierzu das Python-Programmpaket installieren; unter Linux sollte es zum System gehören.

  1. # Test, ob ein Passwort im Bestand von haveibeenpwned.com enthalten ist
  2. #
  3. import hashlib
  4. import urllib.request
  5.  
  6. pwd = input('Zu testendes Passwort eingeben: ')
  7. hash_object = hashlib.sha1(pwd.encode())
  8. pwd_hash = hash_object.hexdigest().upper()
  9. pwd_hash_prefix = pwd_hash[:5]
  10. pwd_hash_rest = pwd_hash[5:]
  11. anzahl = 0
  12.  
  13. print('SHA1-Hash: ', pwd_hash)
  14.  
  15. pwned_url = urllib.request.Request('https://api.pwnedpasswords.com/range/' + pwd_hash_prefix, headers=dict([('User-Agent', 'Mozilla/5.0')]))
  16. hash_liste = urllib.request.urlopen(pwned_url)
  17. for line in hash_liste:
  18.     line = line.decode('utf-8').upper().strip()
  19.     if pwd_hash_rest in line:
  20.       anzahl = line[36:]
  21.       break
  22.  
  23. if anzahl == 0:
  24.   print('Passwort "' + pwd + '" ist nicht im Bestand von haveibeenpwned.com enthalten')
  25. else:
  26.   print('Passwort "' + pwd + '" ist ' + anzahl + '-mal im Bestand von haveibeenpwned.com enthalten')

Das Ergebnis sieht dann so aus:

C:\Users\Heiko>python k:\code\password_pwned.py
Zu testendes Passwort eingeben: hugo
SHA1-Hash:  3FAF7ED52FA83D583FC670A96BCF92DA270D0767
Passwort "hugo" ist 9581-mal im Bestand von haveibeenpwned.com enthalten

HIBP: Suche nach Telefonnummern aus dem Facebook-Datenleck

Bereits 2019 sind Daten von mehr als 500 Millionen Benutzern bei Facebook abgeflossen, vermutlich durch sog. „Scraping” (automatisierte Abrufe von Webseiten, oft indem Suchformulare automatisch ausgefüllt und die Ergebnisse ausgewertet werden)[8]Siehe auch Wikipedia: Screen Scraping. – in diesem Fall wurde die Facebook-Funktion zur Freundessuche zweckentfremdet.[9]Mehr dazu z.B. bei Heise Online: 419 Millionen Telefonnummern von Facebook-Usern frei im Netz (05.09.2019) und Daten hunderter Millionen Facebook-Nutzer erneut im Netz entdeckt (04.04.201) Diese Daten wurden zwar seitdem schon mehrfach kommerziell auf entsprechenden Untergrundseiten angeboten. Anfang April 2021 sind die Daten nun frei in einem Forum für Cybekriminelle veröffentlicht worden.

Nur relativ wenige Daten enthalten eine Mail-Adresse, aber fast alle eine Telefonnummer. Da die Daten in einem ziemlich einheitlichen Format vorliegen, hat der oben erwähnte Security-Experte Troy Hunt sie in seinen Service Have I Been Powned eingebunden.[10]Golem.de: Telefonnummer, E-Mail: Bin ich im Facebook-Leak?; 06.04.2021; www.golem.de/news/telefonnummer-e-mail-bin-ich-im-facebook-leak-2104-155500.html

Man kann in das Suchformular nun auch eine Telefonnummer im internationalen Format eingeben und prüfen lassen, ob sie im Facebook-Datenleck enthalten ist. Die Nummer muss im internationalen Format angegeben werden (Länderkennung ohne führende Nullen, Orts- oder Mobilfunk-Vorwahl ohne führende Null, Telefonnummer), für eine Hamburger Nummer z.B. »49 40 12345678« (0049 = Ländervorwahl für Deutschland, 040 = Ortsvorwahl für Hamburg; Leerzeichen werden entfernt). Zu den Details siehe den Blog-Post von Troy Hunt. Nummern aus anderen Datenlecks sind in die Suche nicht integriert, da sie in zu vielen verschiedenen Formaten vorliegen.

Und nun?

Wurde das eigene Passwort nicht gefunden, muss man nicht weiter aktiv werden. Andernfalls sollte man das Passwort als verbrannt ansehen – selbst wenn man zwar das eigene Passwort bei HIBP gefunden hat, aber die eigene Mailadresse nicht von einem Leak betroffen war. Man muss dann davon ausgehen, dass jemand anders dieses Passwort auch genutzt hat, und da es nun bekannt ist, wird es mit hoher Wahrscheinlichkeit in einer von Kriminellen verwendeten Wortliste auftauchen und für zukünftige Wörterbuchangriffe verwendet werden.

Man sollte also das Passwort bei allen Diensten ändern, bei denen man es nutzt. Gleiches gilt für ähnliche Passwörter, die aus dem betroffenen abgeleitet sind.

Hinweise, wie man sichere und möglichst für jeden Dienst unterschiedliche Passwörter erstellt und z.B. mit einem Passwortmanager verwaltet, würden hier den Rahmen sprengen. Deshalb begnüge ich mich mit einigen Links zum Bundesamt für Sicherheit in der Informationstechnik (BSI): Erstellen sicherer Passwörter und Verwenden eines Passwortmanagers und zu Golem.de: Test der Passwort-Manager KeePassXC und Bitwarden mit weiteren Links. Mehr liefert die Suchmaschine der Wahl.

 

Die Idee zu diesem Text ist während einer Forums-Diskussion zum Online-Kurs Digitale Identitäten – Wer bin ich im Netz? des Hasso-Plattner-Instituts entstanden.[11]Inzwischen gibt es auch eine aktualisierte Ausgabe des Kurses in englischer Sprache: »Digital Identities – Who am I on the Net?«; Kurszeitraum 27.01.-10.02.2021; danach im … Continue reading Dieser und andere Kurse auf der Plattfform openHPI sind kostenlos und man kann sie auch nach dem angegebenen Zeitraum im Selbststudium durcharbeiten. Meist reichen Einsteigerkenntnisse als IT-Anwender aus – ein bisschen Spaß an Informatik und Mathematik erleichtern aber das Verständnis.

[Quellenangabe zum Beitragsbild: Thomas Breher auf Pixabay; Pixabay License: »Free for commercial use. No attribution required«]

Änderungen:
Februar 2021: Aktualisierung einiger Zahlen, Ergänzung des Leak-Checkers der Uni Bonn, Code des Python-Skripts auf Github
06.04.2021: Abschnitt zur Telefonnummern-Suche im Facebook-Datenleck neu
16.05.2021: Fußnote zur Vertrauenswürdigkeit in den Dienst HIBP ergänzt. Link zum BSI bzgl. sicherer Passwörter aktualisiert; Links zu Passwortmanagern ergänzt.

Fußnoten

Fußnoten
1 Im März 2019 waren es noch 8 Milliarden Identitäten. Siehe die Pressmitteilung des HPI vom 25.01.2019: HPI Identity Leak Checker: 2,2 Milliarden E-Mail-Adressen mit Passwörtern aus jüngsten Collection-Datenleaks eingepflegt
2 Slang; ursprünglich aus der Computerspieler-Szene; siehe www.urbandictionary.com/define.php?term=pwned
3 So sollten Passwörter auch in den Datenbanken der Webseiten-Betreiber gespeichert sein – als Hash-Werte und nicht im Klartext. Wie man aber an der weiter wachsenden Anzahl von inzwischen über 600 Millionen gesammelter Klartext-Kennwörter sieht, halten sich nicht alle Betreiber daran, was nicht nur fahrlässig, sondern (nicht nur) in der EU auch gesetzeswidrig ist (Art. 32 Abs. 1 § (a) DSGVO).
4 Eine Beschreibung des Verfahrens findet sich hier: https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/#cloudflareprivacyandkanonymity
5 Troy Hunt ist als Sicherheitsexperte anerkannt; sein Service exisitiert bereits seit mehreren Jahren, sodass Sicherheitslücken oder Missbrauch der Daten inzwischen vermutlich aufgefallen wären. Zur Person verweise ich hier noch einmal auf den oben verlinkten Artikel hei Heise online (am Ende des Textes wird auch das Verfahren zur Passwort-Prüfung beschrieben).
Auch Polizeibehörden arbeiten mit ihm zusammen – so hat er im April 2021 nach Abschaltung der Emotet-Schadsoftware vom FBI über 4 Millionen betroffene Mail-Adressen erhalten (Heise Online). Sein Blog-Beitrag nennt auch eine Zusammenarbeit mit der estnischen Polizei im Jahr 2018.
Nach meiner Meinung spricht das dafür, dass man dem Ablauf der Passwortprüfung im Browser wohl vertrauen kann. Da das im Browser laufende Skript (https://haveibeenpwned.com/cdn-cgi/bm/cv/669835187/api.js) aber verschleiert ist, ist eine Prüfung – vorsichtig formuliert 😉 – nicht trivial.) Aus grundsätzlichen Erwägungen halte ich persönlich mich an den zitierten Hinweis halten und gebe keines der von mir genutzten Passwörter auf der Seite eines Dritten ein – nicht bei HIBP und auch nicht woanders.
6 API = application programming interface; dt. Anwendungsschnittstelle; Dokumentation auf www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/
7 Die in den Beispielen genannten Zahlen stammen aus dem März 2019, dürften inzwischen also anders aussehen.
8 Siehe auch Wikipedia: Screen Scraping.
9 Mehr dazu z.B. bei Heise Online: 419 Millionen Telefonnummern von Facebook-Usern frei im Netz (05.09.2019) und Daten hunderter Millionen Facebook-Nutzer erneut im Netz entdeckt (04.04.201)
10 Golem.de: Telefonnummer, E-Mail: Bin ich im Facebook-Leak?; 06.04.2021; www.golem.de/news/telefonnummer-e-mail-bin-ich-im-facebook-leak-2104-155500.html
11 Inzwischen gibt es auch eine aktualisierte Ausgabe des Kurses in englischer Sprache: »Digital Identities – Who am I on the Net?«; Kurszeitraum 27.01.-10.02.2021; danach im Selbststudium zugänglich.

Ein Kommentar

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.