Wenn Sie wie ich häufig im Internet leben, besteht eine gute Chance, dass Sie eine E-Mail erhalten haben, die ungefähr so ​​lautet:

Sehr geehrter Kunde,

In letzter Zeit wurde unsere Website Opfer eines Cyberangriffs in unserem Unternehmensnetzwerk. Alle Passwörter wurden verschlüsselt, aber als Vorsichtsmaßnahme müssen alle unsere Kunden ihre Passwörter sofort zurücksetzen.

Vielen Dank.

Es gab also einen Verstoß, einige Ihrer Informationen, einschließlich Ihres verschlüsselten Passworts, wurden durchgesickert. Ist Ihr Konto gefährdet?

Kurze Antwort: JA, aber warum?

Um dies zu verstehen, müssen Sie das Konzept von "password hashing" verstehen.

Was ist ein Hash?

Ein Hash ist nur eine Möglichkeit, Daten als eindeutige Zeichenfolge darzustellen. Du kannst alles hashen: Musik, Filme, deinen Namen oder diesen Artikel. Metaphorisch gesagt, Hashing ist eine Möglichkeit, Ihren Daten einen "Namen" zuzuweisen. Es erlaubt Ihnen, eine Eingabe beliebiger Länge zu nehmen und sie in eine Zeichenkette umzuwandeln, die immer die gleiche Länge hat. Offensichtlich gibt es viele Methoden (Algorithmen), um dies zu tun.

Einige der beliebtesten Hashalgorithmen:

  • MD5 - Gegeben Daten geben einen eindeutigen 32 Zeichen Hash zurück.
  • SHA1 - Gegebene Daten geben einen eindeutigen 40 Zeichen Hash zurück.
  • SHA256 - Gegebene Daten geben einen eindeutigen 64-Zeichen-Hash zurück; entworfen von der National Security Agency.

Schauen wir uns ein einfaches Beispiel an:

Mein Name ist "Jamin Becker"

Die MD5-Hash-Darstellung meines Namens lautet:

 eeb7048c69b088739908f5f5144cd1f5 

Die SHA1-Hash-Darstellung meines Namens lautet:

 ae480b717c08b6ab36a85075864e35b9c528d7c5 

Die SHA256-Hash-Darstellung meines Namens lautet:

 a477cc14eae5fd94fe4cb20b36ec80ac6983bad44973ae7f4f230010f01289b0 

Warum ist Hashing sicher?

Der Grund, warum Hashing sicher ist, ist einfach: Hashing ist eine Ein-Weg-Operation. Sie können nicht rückgängig gemacht werden. Mit einer Zeichenfolge "eeb7048c69b088739908f5f5144cd1f5" gibt es keine Möglichkeit, den MD5-Hash umzukehren, um "Jamin Becker" zurückzugeben. Dies liegt an der Art und Weise, wie die Mathematiker und Programmierer den MD5-Hashing-Algorithmus strukturiert haben, und es kommt auf ein grundlegendes Informatikproblem namens "P vs NP" zurück. P und NP sind nur zwei Klassen von Algorithmen.

Die meisten Hash-Algorithmen fallen unter NP, was bedeutet, dass sie schnell berechnet werden können. Die Un-Hashing-Algorithmen (zB "eamb7048c69b088739908f5f5144cd1f5" -> "Jamin Becker") fallen jedoch unter die P-Klasse und können nur in polynomieller Zeit (dh mit einem wesentlich fortgeschritteneren Quantencomputer als die heute verfügbaren) effizient gelöst werden.

Warum also ist das gut für die Sicherheit?

Angenommen, Sie abonnieren eine Website und wählen das Passwort "12345". Diese Website hackt sofort Ihr Passwort, wahrscheinlich mit SHA1, und speichert es in einer Datenbank. Jedes Mal, wenn Sie sich einloggen, wird die Webseite Ihr Passwort erneut anzeigen und mit dem in der Datenbank gespeicherten Passwort vergleichen. Wenn sie übereinstimmen, werden Sie erfolgreich authentifiziert. Wenn die Website jemals durchbrochen wird und die Passwortdatenbank durchgesickert ist, wird Ihr Passwort als "8cb2237d0679ca88db6464eac60da96345513964" und nicht "12345" angezeigt.

Hash-Angriffsstrategien

Also hat der Angreifer die Hash-Version meines Passworts und es gibt keine Möglichkeit, es auf 12345 umzukehren. Ich habe nichts zu befürchten, richtig? FALSCH!

Eine Methode, die üblicherweise verwendet wird, um das Klartext-Passwort von einem Hash zu erhalten, wird als Brute-Force-Angriff bezeichnet. Bei diesem Angriff wird der Angreifer eine riesige Wortliste durchlaufen und jedes Wort mit dem entsprechenden Hashing-Algorithmus hashen. Sie können dann die Hashes in der Wortliste mit denen aus der Datenbank vergleichen. Wenn ein Hash aus der Wortliste mit dem in der Datenbank übereinstimmt, können sie einfach das entsprechende Nur-Text-Passwort in der ursprünglichen Wortliste finden, die sie gehashed haben. Erfahrene Angreifer werden extrem große Wortlisten in Kombination mit leistungsstarker Software verwenden, um Millionen von Passwort-Möglichkeiten pro Sekunde zu durchlaufen.

Eine andere Angriffsmethode versucht, den Hashalgorithmus selbst zu nutzen, indem eine Hash-Kollision erzeugt wird. Eine Hash-Kollision tritt auf, wenn zwei verschiedene Datensätze zu demselben Hashwert aufgelöst werden, und obwohl dies selten ist, kann es tödlich sein. Dies würde es dem Angreifer ermöglichen, eine Zeichenkette zu generieren, die nicht Ihr Passwort ist, aber sich trotzdem in Ihrem Konto anmelden kann, da es den gleichen Hash generiert.

Fazit

Hashing-Algorithmen werden immer fortschrittlicher. Mathematiker und Informatiker entwickeln ständig kryptografische Hashing-Algorithmen mit geringeren Kollisionswahrscheinlichkeiten. Es ist jedoch wichtig, sich daran zu erinnern, dass der Hashing-Algorithmus unabhängig davon, wie stark er ist, immer mit einem Brute-Force-Angriff geknackt werden kann. Die gute Nachricht ist, dass Sie sich einfach gegen diese Angriffe verteidigen können, indem Sie einfach die Best-Practice-Passwortrichtlinie befolgen.

  1. Die Größe spielt eine Rolle - je länger das ursprüngliche Passwort, desto weniger wahrscheinlich erscheint es auf einer Wortliste
  2. Sei nicht vorhersehbar - vermeide Worte wie "password" und "myname123"
  3. Verwenden Sie eine Mischung aus Sonderzeichen, Zahlen, Groß- und Kleinbuchstaben

Was denkst du über Hashing? Teilen Sie Ihre Ansichten in dem Kommentar unten.

Bildnachweis: Lupe Online Fingerabdruck byBigStockPhot