25 Jahre heise online Jubiläums-Logo
Anmelden
Menü Menue
IT News
  • Newsticker
  • heise Developer
  • heise Netze
  • heise Open Source
  • heise Security
Online-Magazine
  • heise+
  • Telepolis
  • heise Autos
  • TechStage
  • tipps+tricks
Magazine
  • c't
  • iX
  • Technology Review
  • c't Fotografie
  • Mac & i
  • Make
  • im Browser lesen und Artikel-Archiv
Services
  • Stellenmarkt heise Jobs
  • Weiterbildung
  • heise Download
  • Preisvergleich
  • Whitepaper/Webcasts
  • DSL-Vergleich
  • Netzwerk-Tools
  • Spielen bei Heise
  • Loseblattwerke
  • iMonitor
  • IT-Markt
Heise Medien
  • heise shop
  • Abo
  • Veranstaltungen
  • Arbeiten bei Heise
  • Mediadaten
  • Presse
Anzeige SecurityHub Online-Marketing
Newsletter heise-Bot heise-Bot Push Nachrichten Push Push-Nachrichten
heise Security Logo
  • News
    • Archiv
    • 7-Tage-News
  • Hintergrund
  • heise Security Pro
    • FAQs zu heise Security Pro
  • Events
  • Kontakt
  1. Security
  2. Hintergrund
  3. Nach dem Passwort-Leak: Eigene Passwörter lokal checken

Nach dem Passwort-Leak: Eigene Passwörter lokal checken

Hintergrund 22.01.2019 15:53 Uhr Ronald Eikenberg

(Bild: plantic\Shutterstock.com, Modifikation: heise Security)

Eine halbe Milliarde geleakter Passwörter mal eben lokal durchsuchen? Mit einem Python-Skript geht das schnell und auch ohne riesige Downloads.

Im Netz kursieren Milliarden Zugangsdaten – zuletzt sorgte eine Passwort-Sammung mit 773 Millionen Online-Konten für Aufsehen. Wer überprüfen möchte, ob sich die eigenen Acconts darunter befinden, kann die Web-Dienste Have I Been Pwned (HIBP) oder auch Pwned Passwords nutzen. Bei HIBP durchsucht man eine riesige Datenbank mit rund 6,5 Milliarden geknackten Accounts nach einer Mail-Adresse, bei Pwned Passwords sucht man nach einem Passwort. Beide Dienste betreibt der renommierte Sicherheitsexperte Troy Hunt.

Das Passwort "Mutti" ist nicht besonders originell: Pwned Passwords meldet 181 Suchtreffer.

Gibt man bei Pwned Passwords ein Passwort ein, erfährt man, ob es sich in den dort erfassten Datenbank-Leak befindet – und wenn ja, wie oft. Ein Suchtreffer heißt noch nicht, dass einer der eigenen Accounts tatsächlich betroffen ist. Schließlich kann es sich auch um Accounts anderer Nutzer handeln, die zufällig das gleiche Paswort einsetzen. Gerade bei individuellen Kennwörtern, die aus zufälligen Zeichenfolgen bestehen, ist die Wahrscheinlichkeit jedoch groß, dass es einen selbst erwischt hat. Auf jeden Fall ist sicher, dass das Passwort in den Wörterbüchern der Cracker steht und im Zweifelsfall beim Durchprobieren vieler Passwörter (Brute Forcing) recht schnell geknackt wird.

Die ersten fünf Zeichen

Nun gilt es als Binsenweisheit, dass es eine schlechte Idee ist, einem Webdienst geheime Passwörter zu verraten, um deren Sicherheit zu überprüfen. Spätestens mit dem Absenden des Passworts ist dieses üblicherweise als verbrannt zu betrachten. Troy Hunt hat sich einen Mechanismus einfallen lassen, um dieses Problem zu entschärfen: Pwned Passwords hasht das eingetippte Passwort lokal im Browser des Nutzers mit SHA-1 und sendet nur die ersten fünf Stellen des Hashes an den Server. Der Server liefert daraufhin eine Liste Passwort-Hashes zurück, die mit diesen fünf Zeichen beginnen.

Eine Suche nach dem Passwort "Mutti" (SHA-1-Hash: 0D926579481433A17E8054ACDA22571772FA0181) etwa führt zu der folgenden Anfrage:

GET https://api.pwnedpasswords.com/range/0D926

Daraufhin liefert der Server die folgende Liste zurück:

00C49CB05CDDCB132767A4760E3A1E977B2:1
00D7927E0C070902CB85534E808C6D55450:11
018BC2A467EB1A122E9736813260D25F0CB:2
0201AF4728C4BE1A66923EA48EAD6DECE2E:1
...
579481433A17E8054ACDA22571772FA0181:181
...

Da die ersten fünf Zeichen der Hashes bekannt sind, spart sich der Server deren Übermittlung. Die Zahl nach dem Doppelpunkt steht für die Anzahl der Suchtreffer in den Leaks; "Mutti" wurde bei unserer Anfrage insgesamt 181 Mal gefunden.

Auch gezippt ist die Liste der Passwort-Hashes noch 11 GByte groß.

Mit dieser Methode erfährt der Server zwar nicht den kompletten Passwort-Hash, jedoch die ersten 5 von insgesamt 40 Zeichen. Würde es einem Angreifer gelingen, diese 5 Zeichen abzufangen, erhält er einen wertvollen Hinweis auf den Passwort-Hash des Nutzers. Man kann dieses Problem umschiffen, indem man die Liste der Hashes herunterlädt und lokal durchsucht – damit handelt man sich allerdings ein neues Problem ein: Die Datei ist selbst gezippt noch 11 GByte groß und eine Suche in einer so großen Datei ist ressourcenaufwendig.

Bloomige Aussichten

Eine elegante Lösung für dieses Problem liefert der Entwickler Hector Martin in seinem Github-Repository: Er nutzt einen Bloom-Filter, um die Datenmassen effizient durchsuchbar zu machen. Man benötigt lediglich Python 3.x, die Datei bloom.py und eine der beiden Bloom-Filterlisten, die Martin zum Download anbietet.

Bloom-Filter reduzieren die zu durchsuchende Datenmenge ganz enorm, was sich nicht nur positiv auf die Suchgeschwindigkeit auswirkt, sondern auch die Größe der erforderlichen Downloads deutlich verkleinert. Das erkauft man sich mit einer etwa unscharfen Suche, die gelegentlich Fehlalarme (False Postives) produziert. Es kann also passieren, dass bloom.py ein Passwort als verbrannt meldet, das sich gar nicht in der Originalliste befindet. Der umgekehrte Fall – also ein Passwort steht zwar in der Liste, wird aber nicht gefunden (False Negative) – ist prinzipbedingt ausgeschlossen. Das Konzept der Bloom-Filter erklärt Bloom Filters for Dummies recht anschaulich.

Die beiden angebotenen Listen unterscheiden sich in der Genauigkeit: pwned-passwords-2.0.bloom misst 968 MByte und hat eine False-Positive-Rate von 0,0005 während pwned-passwords-2.0-k16.bloom etwa um die Hälfte größer ist und die False-Positive-Rate auf 0,000015 verkleinert. Beide False-Positives-Raten sind durchaus vertretbar – die Wahrscheinlichkeit, dass das Skript fälschlicherweise behauptet, ein Hash würde sich unter den Leaks befinden, ist sehr gering (0,5 bzw. 1/66 Promille). Wer ganz sicher gehen will, kann ja mit dem sehr wahrscheinlich sowieso verbrannten Passwort das HIBP-API befragen. Der Fall, dass ein betroffener Hash nicht gemeldet wird, ist hingegen ausgeschlossen. Die Download-Links zu den beiden Bloom-Filtern findet man im Readme-Bereich des Skripts.

Man ruft das Skript wie folgt auf:

python bloom.py test -s pwned-passwords-2.0.bloom MeinPasswort

Auf diese Weise kann man ressourcensparend herausfinden, ob bestimmte Passwörter in einschlägigen Quellen kursieren – ohne einen Teil des Passwort-Hashs verraten zu müssen. heise Security konnte das Python-Skript auf einem Ubuntu problemlos einsetzen, unter Windows scheiterte die Ausführung hingegen. Vielleicht hat ja jemand Erbarmen mit den Windows-Nutzern und entwickelt eine PowerShell-Version des Skripts?

(rei)

Kommentare lesen (33 Beiträge)

Mehr zum Thema

  • Passwörter

Forum bei heise online: Desktopsicherheit

Teile diesen Beitrag

https://heise.de/-4284756 Drucken
Dienste
  • Security Consulter
  • Netzwerkcheck
  • Anti-Virus
  • Emailcheck
  • Krypto-Kampagne
Alerts! alle Alert-Meldungen

Junos OS

Chrome

Weitere Updates für Chrome & Edge

Chrome-Update (& Edge)

Anzeige
Anzeige
  • Wie und womit arbeiten Data-Science-Experten?
  • Transformation im Supermarkt – aus der Praxis!
  • Success Story (+Demo): Patch-Management in Praxis
  • Sichere Videokonferenzen im Unternehmen
  • Sicherheit in der Cloud ohne Leistungsverluste
  • Verständliche Video-Zusammenarbeit am Arbeitsplatz
  • Neue Security-Idee: Hardware-basierte IT-Sicherheit
  • Themenspecial: Business IT-Lösungen
  • Ganzheitliche Security-Tools oder Insellösungen?
  • Zukunftssichere IT für KMU
Artikel

Windows: REvil-Trojaner trickst abgesicherten Modus aus

Eigentlich soll der abgesicherte Modus dabei helfen, ein angeschlagenes System zu retten. Der Erpressungstrojaner macht ihm damit den Garaus.

54 Kommentare

iOS: Certificate Pinning per Konfiguration

App-Entwickler können die für TLS-Verbindungen erlaubten Schlüssel seit iOS 14 per Konfiguration einschränken.

8 Kommentare

Auf Tätersuche: Herausforderungen bei der Analyse von Cyber-Angriffen

Das Bedürfnis bei Cyber-Angriffen Täter zu benennen wächst. Doch die verantwortlichen Gruppen spezialisieren sich immer mehr und kooperieren bei Bedarf.

18 Kommentare mit Video

Neueste Forenbeiträge

  1. Re: Desinfect, wie komme ich an eine aktuelle Version
    Hallo, entweder Sie kaufen die aktuelle Version Desinfec't 2020/21 mit einem c't-Sonderheft oder Sie warten noch bis Ende Mai. Dann liegt c't…

    Forum:  Desinfect

    Avatar von Dennis Schirrmacher
    von Dennis Schirrmacher; Donnerstag, 10:34
  2. Re: Virusfund in Chinesisch-Online-Test
    Zur Info: Inzwischen wurde die Prüfung aus "technischen Gründen" abgesagt!

    Forum:  Viren & Würmer

    tomseitz320 hat keinen Avatar
    von tomseitz320; Dienstag, 17:29
  3. Re: Desinfect im Netz ( PXE - NFS - SAMBA bzw. SMB mit CIFS )
    Sorry, ist "einfach" auf Android Tablet unter Edge losgeschrieben incl. copy/paste auch unter Android ... Beitrag sieht auf Tablet ok aus - ich…

    Forum:  Desinfect

    rmarquar hat keinen Avatar
    von rmarquar; 09.04.2021 14:26
News und Artikel
  • News
  • 7-Tage-News
  • News-Archiv
  • Hintergrund-Artikel
  • Alert-Meldungen
Service
  • Newsletter
  • Tools
  • Foren
  • RSS
  • mobil
Dienste
  • Security Consulter
  • Netzwerkcheck
  • Anti-Virus
  • Emailcheck
  • Krypto-Kampagne
  • Datenschutz
  • Impressum
  • Kontakt
  • Mediadaten
  • Content Management by InterRed
  • Copyright © 2021 Heise Medien