it-swarm.com.de

Länge der Passwörter, die für Rainbow-Tabellen sicher sind

Mit großer Rechenleistung (wie zum Beispiel in der Amazon Cloud) können Sie riesige Rainbow-Tabellen für Kennwörter erstellen. Es scheint auch einige große Rainbow-Tische zu geben, für die Sie bezahlen müssen.

Was sind die größten Tabellen, die Geheimdienste möglicherweise verwenden könnten, und wie viele Zeichen können maximal für das Kennwort verwendet werden?

Ich frage mich, wie lange Passwörter berücksichtigt werden sollten, wenn Sie selbst ein neues Passwort auswählen ?(Dies ist hier nicht die Frage!)

Was ist die maximale Passwortlänge, die diese riesigen Untergrund Regenbogentabellen (verwendet von bösen Mächten) hosten?

41
rubo77

Die Länge des Passworts und die Größe der Rainbow-Tabelle sind rote Heringe. Größe spielt keine Rolle. Was zählt, ist Entropie.

Regenbogentabellen sind hier aus zwei Hauptgründen nicht wirklich relevant:

  1. Das Erstellen der Tabelle ist teuer . Eine Tabelle "deckt" eine Reihe möglicher Passwörter ab; Nennen wir es [~ # ~] n [~ # ~]. Es gibt [~ # ~] n [~ # ~] unterschiedliche Passwörter, die in der Tabelle durchbrochen werden. Kein anderer wird es sein. Es kommt also vor, dass jedes einzelne dieser [~ # ~] n [~ # ~] Passwörter während der Tabellenerstellung gehasht worden sein muss. Tatsächlich wurde viel mehrmals gehasht; Das Erstellen einer Tabelle, die [~ # ~] n [~ # ~] Passwörter knacken kann, kostet ungefähr 1,7 * [~ # ~] n [~ # ~] Hash-Aufrufe. Das ist teurer als Brute Force. Tatsächlich erfordert Brute Force durchschnittlich 0,5 * [~ # ~] n [~ # ~] Hashes, sodass der Tischaufbau mehr als dreimal so viel kostet.

    Daher lohnt sich eine Rainbow-Tabelle nur dann, wenn sie mindestens viermal auf vier verschiedene Passwort-Hashes angewendet werden kann, die geknackt werden sollen. Ansonsten ist es eine große Zeitverschwendung.

  2. Regenbogentabellen können nur einmal angewendet werden . Das liegt an Salzen. Jedes Passwort-Hashing, das von einem Entwickler mit mehr Gehirnzellen als ein Gorilla bereitgestellt wurde, verwendet Salze, die sich nicht wiederholende Variationsparameter sind. Die Wirkung von Salzen entspricht der Verwendung einer anderen Hash-Funktion für jeden Benutzer. Da eine Rainbow-Tabelle nacheinander für eine bestimmte Hash-Funktion erstellt werden muss, kann eine Rainbow-Tabelle insgesamt nur einen Kennwort-Hash knacken. Kombinieren Sie mit dem vorherigen Punkt: Regenbogentabellen sind einfach nicht nützlich.

Jetzt gibt es natürlich viele implementierte Systeme, in denen Passwörter nicht mit menschlicher Kompetenz gehasht werden. Die affengetriebene Entwicklung hat zu vielen Servern geführt, auf denen ein einfaches ungesalzenes Hashing verwendet wird. und sogar Server, auf denen Passwörter als Klartext oder als leicht umkehrbare hausgemachte Codierung gespeichert sind. Man könnte jedoch sagen, dass eine zusätzliche Passwortentropie Sie nicht retten wird, wenn Ihr Passwort von solch schlampig gestalteten Systemen verwaltet werden soll. Es ist unwahrscheinlich, dass ein Softwaresystem, das bei der Anwendung vernünftiger, dokumentierter Techniken zum Schutz eines Passworts, bei dem es sich um die archetypisch sensiblen geheimen Daten handelt, überhaupt nicht besser abschneidet. Crumminess und Nachlässigkeit im Software-Design sind wie Kakerlaken: Wenn Sie eine sehen, können Sie sicher sein, dass Hunderte von anderen in der Nähe sind.


Nehmen wir nun an, dass ein vernünftiges Passwort-Hashing angewendet wurde, bei dem Salze (um tabellenbasierte und parallele Angriffe abzuwehren) und konfigurierbare Langsamkeit (um das Hashing teurer zu machen) kombiniert wurden. Z.B. bcrypt . Diese Antwort ist eine ausführliche Darstellung, wie Passwörter gehasht werden sollten.

Stellen Sie sich beispielsweise einen Server mit bcrypt vor, der so konfiguriert ist, dass die Überprüfung eines Kennwort-Hash auf diesem Server CPU-Zeit im Wert von 0,01 Sekunden benötigt. Dies würde es dem Server weiterhin ermöglichen, 100 Benutzeranmeldungen pro Sekunde zu verarbeiten, was eine extrem hohe Zahl ist, sodass der Server nicht viel Rechenleistung für das Hashing von Passwörtern aufwenden wird.

Stellen Sie sich nun einen Angreifer vor, der einige auf dem Server gespeicherte Kennwort-Hashes in die Hände bekommen hat (z. B. hat er ein altes Backup gestohlen oder einen SQL-Injection-Angriff verwendet, um Teile der Datenbank wiederherzustellen). Da bcrypt gesalzen ist, muss der Angreifer die vollen Brute-Force-Angriffskosten für jedes Passwort bezahlen. Es gibt keine mögliche parallele Kostenbeteiligung, und insbesondere würden keine vorberechneten Tabellen (Rainbow oder nicht) gelten.

Unser Angreifer ist mächtig: Er mietet einhundert Server mit ähnlichen Rechenfähigkeiten wie der angegriffene Server. Dies entspricht 10000 Passwortversuchen pro Sekunde. Außerdem ist der Angreifer geduldig und engagiert: Er akzeptiert, einen Monat lang mit einem einzigen Passwort zu rechnen (so dass das Passwort einige sehr wertvolle Vermögenswerte schützen muss). In einem Monat bei 10000 Passwörtern pro Sekunde sind das ungefähr 26 Milliarden Passwörter, die ausprobiert werden.

Um den Angreifer zu besiegen, reicht es daher aus, Passwörter mit ausreichender Entropie zu wählen, um die Erfolgswahrscheinlichkeit des Angreifers unter diesen Bedingungen auf weniger als die Hälfte zu senken. Da 26 Milliarden in der Nähe von 234.6, dies bedeutet, dass die Passwortentropie mindestens 35,6 Bit betragen muss.

Die Entropie ist ein Merkmal der Methode zur Generierung des Passworts und nur lose mit der Länge korreliert. Die Länge des Passworts bedeutet keine Stärke. Die Länge wird nur benötigt, um Platz zu schaffen für die Entropie. Wenn Sie beispielsweise ein Kennwort als Folge von zufälligen Buchstaben (Groß- und Kleinbuchstaben) generieren, akkumulieren 7 Zeichen fast 40 Entropiebits, was nach den oben durchgeführten Berechnungen in Ordnung sein sollte. Aber dies unbedingt erforderlich, dass die Buchstaben zufällig, einheitlich und unabhängig voneinander ausgewählt werden. Nicht viele Benutzer würden sich die Mühe machen, einen Computer zu verwenden PRNG, um ein neues Passwort zu erstellen, und dann akzeptieren, es so zu lernen, wie es generiert wurde (ich mache das, aber wenn ich es meinem erkläre) Arbeitskollegen sehen mich komisch an).

Wie diese berühmte Frage andeutet, kann das menschliche Gedächtnis im Widerspruch zur Entropie stehen, und ein längeres Passwort mit mehr Struktur kann ein besserer Kompromiss sein. Bedenken Sie, dass die "richtige Pferd" -Methode "nur" 44 Entropiebits für 25 Buchstaben oder so ergibt (beachten Sie übrigens, dass ein 25-Buchstaben-Passwort weniger Entropie haben kann als ein 8-Buchstaben-Passwort). Die zusätzliche Eingabe kann sich jedoch lohnen, wenn sich ein durchschnittlicher Benutzer ein 40-Bit-Entropiekennwort merken kann.


Trotz aller Propaganda von Hollywood-Filmen beinhalten Secret Services selten erstaunlich fortschrittliche Technologien (im Übrigen sind auch trockene Martinis, langbeinige Blondinen und Motorradjagden ziemlich kurz). Jeder rational verwaltete Secret Service vermeidet es, 10.000 US-Dollar für das Brechen Ihres Passworts auszugeben, da 1.000 US-Dollar mehr als genug sind, um zwei Schläger einzustellen, um Ihre Kniescheiben zu brechen . Letztendlich ist dies alles eine Frage der relativen Kosten.

Lassen Sie uns also praktisch werden. Verwenden Sie diesen Befehl auf einem Linux-System, um ein Kennwort zu generieren:

dd if=/dev/urandom bs=6 count=1 2> /dev/null | base64

Dies gibt ein Passwort aus, das aus acht Zeichen zwischen Kleinbuchstaben, Großbuchstaben, Ziffern, '/' und '+' besteht. Es ist leicht zu zeigen, dass jedes dieser Passwörter eine Entropie von 48 Bit bietet. Die wichtigen Regeln sind:

  1. Generieren Sie das Passwort und dann akzeptieren Sie es. Produziere keinen anderen, wenn dir das, was du hast, nicht gefällt. Jede Auswahlstrategie senkt Ihre Entropie.
  2. Verwenden Sie keine Passwörter . Ein Passwort für jede Site. Das ist die wichtigste Schadensbegrenzungsregel. Wenn Sie Probleme haben, sich viele Passwörter zu merken, können Sie sie "aufschreiben" (Passwortmanager wie KeePass können helfen).
  3. Wenn 48 Entropiebits nicht ausreichen, verwenden Sie ein Kennwort in einem schwachen System, und das ist das, was Sie beheben müssen.
  4. Deine Feinde sind hinter deinem Geld her, nicht deine Freiheit. Versuchen Sie nicht, phantasmagorische Drei-Buchstaben-Agenturen zu besiegen. Konzentrieren Sie sich auf weltliche Kriminelle.
78
Tom Leek

Unter der Annahme von 256-Bit-Hashes (32 Byte) und der Annahme, dass Sie alle möglichen Kennwörter mit 80 verschiedenen Zeichen (26 Kleinbuchstaben, 26 Großbuchstaben, 10 Zahlen, 18 weitere Zeichen) abdecken möchten, sind dies die erforderlichen Rainbow-Tabellengrößen. Ich habe dies mit der Formel (80 ^ length ) * (32 + length).

Beachten Sie jedoch, dass die folgende Tabelle für alle möglichen Kombinationen von 80 verschiedenen Zeichen gilt. Wenn Sie weniger Zeichen verwenden oder nur die Hashes für Kennwörter erstellen, die bestimmten Mustern folgen (wie alle l337speak-Permutationen von Wörtern im Wörterbuch ), haben Sie viel weniger Platz.

Length Size  Unit  
1        2.5 KiloByte          
2      212   KiloByte
3       17   MegaByte
4        1.3 GigaByte
5      112   GigaByte
6        9   TeraByte
7      744   TeraByte
8       59   PetaByte
9        4.7 ExaByte
10     391   ExaByte
11      31   ZettaByte
12       2.5 YottaByte

Entscheiden Sie selbst, welche Größenordnung noch innerhalb der plausiblen technischen Fähigkeiten der von Ihnen betrachteten Angreifer liegt. Aber wenn Sie meine Meinung wollen, denke ich, dass:

  • Ein 5-stelliger Rainbow-Tisch (112 GB) ist klein genug, um ihn über das heutige Breitband-Internet auszutauschen
  • 6 Zeichen (9 TB) sind die Grenze dessen, was ein Bastler oder unabhängiger professioneller Cracker mit Hardware für Endverbraucher verarbeiten kann
  • Eine 7-stellige Rainbow-Tabelle (744 TB) würde in ein SAN -Rack) in einem Rechenzentrum passen, sodass es in den technischen Fähigkeiten eines professionellen Unternehmens liegt, eine solche Tabelle zu speichern.
  • Eine 8-stellige Rainbow-Tabelle mit 59 PB ist technisch ziemlich anspruchsvoll, aber es gibt Datenbanken dieser Größenordnung: Facebook verwaltet eine Datenbank mit über 100PB Daten, CERN verfügt über eine Datenbank mit 200PB Daten, die durch die LHC-Experimente generiert wurden. Es ist also für ein wirklich großes Unternehmen oder eine Regierungsbehörde mit einem Millionenbudget in Reichweite.
  • 9 Zeichen und mehr scheinen mit der heutigen Technologie unplausibel.
5
Philipp

Ich bin der Autor der Website http://passwordcreator.org/ . Ich habe die Site erstellt, weil ich eine einfachere Möglichkeit wollte, sichere Passwörter für mich selbst zu generieren. Während der Recherche für die Site habe ich viel über sichere Passwörter gelernt.

Es gibt verteilte Passwort-Cracker, die 100 Milliarden Vermutungen pro Sekunde anstellen können. Die NSA, die von der Regierung gesponsert wird (großes Budget) kann können eine Größenordnung mehr tun.

Um ein Jahr oder länger vor dieser Art von Angriff geschützt zu sein, muss Ihr Passwort zufällig aus mehreren Billionen Möglichkeiten ausgewählt werden. Für ein Passwort, das zufällig aus den 95 Zeichen erstellt wurde, die auf den meisten Tastaturen verfügbar sind, bedeutet dies, dass Sie ein Passwort benötigen, das mindestens 10 Zeichen lang ist, um ein angemessenes Sicherheitsrecht zu gewährleisten jetzt.

Wenn Ihr Passwort auf andere Weise generiert wird (auf meiner Website stehen mehrere Algorithmen zur Verfügung), muss Ihr Passwort möglicherweise noch länger sein, um den gleichen Widerstand gegen Vermutungen zu erzielen.

Bei 10 Zeichen muss ich so ziemlich mein zufälliges Passwort aufschreiben. Wenn dies auch bei Ihnen der Fall ist, würde ich empfehlen, die Länge auf mindestens 14 Zeichen zu erhöhen, um einen längeren Zeitraum zu gewährleisten.

4

So beantworten Sie Ihre überarbeitete Frage:

Für die maximale vorberechnete Kennwortlänge gibt es keine. Vorberechnete Passwort-Hashes werden aus Wörterbüchern vorberechnet, nicht aus sequentiellen Scans des Schlüsselraums. Während einige sequentielle Generierungen von sehr kurz Passwörtern häufig vorkommen, sind es normalerweise nicht mehr als nur ein paar Zeichen. Der Speicherplatzbedarf zum Speichern aller 256-Bit-Hashes für 8-stellige Kennwörter liegt in der Größenordnung von Exabyte. nicht über die technischen Möglichkeiten hinaus, aber sicherlich über jede Art von Kosten-Nutzen-Betrachtung hinaus.

Wenn der Server, auf dem die Kennwörter gespeichert sind, für jeden einzelne Salze verwendet, wird die gesamte Vorberechnungsidee aus dem Fenster entfernt. Erledigt. Keine Regenbogentische. Sie arbeiten nicht mehr. Gesalzene Hashes sind resistent gegen Regenbogentabellen, wie hier erklärt .

Trotzdem denkst du falsch darüber nach

Die Länge des Passworts ist vollständig irrelevant. Alles was zählt - das nur Was zählt, ist wie viele Passwörter der Angreifer versuchen wird, bevor er das richtige errät und wie lange dauert jede Vermutung?

Wenn der Angreifer zuerst Ihr Kennwort errät, werden Sie durch keine Komplexität und durch keine Komplexität des serverseitigen Speichers gerettet. Der Angreifer kann sich genauso einfach anmelden wie Sie. Spiel ist aus.

Wenn Ihr Passwort auf der Liste steht, aber 500 von oben nach unten ist, benötigt der Angreifer 500-mal so viel Zeit wie jeder Versuch, um zu Ihrem zu gelangen. Wenn es 1 Sekunde pro Passwort dauert, haben Sie ungefähr 8 Minuten Zeit. Wird der Angreifer nach 5 Minuten aufgeben? Wenn er es tut, bist du in Sicherheit. Wenn er es nicht tut, bist du es nicht.

Laut Ihrem ursprünglichen Punkt sind die vorberechneten Hashes verfügbar, wenn Ihr Passwort in der Top 500-Liste steht. Das ist natürlich nur wichtig, wenn die Passwörter nicht gesalzen gespeichert sind.

Wenn Ihr Passwort zufällig ist und aus einem 48-Bit-Schlüsselbereich stammt (ca. 8 alphanumerische Zeichen), muss der Angreifer im Durchschnitt versuchen, dass der Angreifer 2 versuchen muss47 Passwörter, bevor Sie zu Ihren gelangen. Wie lange wird das dauern? Wenn die Passwörter mit PBKDF2 gespeichert werden, das auf ⅕ Sekunde pro Attampt eingestellt ist (wie LUKS verwendet), dauert es knapp 1 Million Jahre, bis Sie Ihr Passwort erraten haben.

Wenn er jedoch mit demselben Passwort über die Hardware verfügt, um 5 Millionen Vermutungen pro Sekunde zu versuchen, haben Sie knapp ein Jahr Zeit. 5 Milliarden und es ist weniger als ein Tag.

Ein besserer Weg, es zu tun

Mein Rat ist, ein zufälliges, nicht zu erratendes Passwort zu verwenden, an das Sie sich nicht erinnern, sondern in einem browserintegrierten Passwort-Manager wie KeepPass, LastPass oder 1Password speichern. In diesem Fall fallen für Sie keine zusätzlichen Kosten zwischen 6 und 24 Zeichen an. Sie können also auch ein langes Zeichen auswählen - beispielsweise 14 oder 18 Zeichen. Das sollte mehr als genug sein.

Der Schlüssel hier ist der browserintegrierte Passwort-Manager. Ein Angreifer, der Ihr zufälliges Passwort errät, ist nicht der Angriffsvektor, den Sie interessieren. Es wird nicht passieren. Stattdessen interessiert Sie Phishing. Das ist viel wahrscheinlicher, nd browserintegrierte Passwort-Manager werden Sie retten .

4
tylerl

Von Robert Graham ausgezeichneter Blog http://blog.erratasec.com/2011/06/password-cracking-mining-and-gpus.html

Dies gilt nur für zufällige Passwörter, bei denen ein Angreifer eine umfassende Suche durchführt. Wenn Sie Passwörter für echte Personen angreifen, versuchen Sie zuerst andere Ansätze.

Economics of password cracking

2
Bruno Rohée

Tom Leeks akzeptierte Antwort ist ausgezeichnet. Entropie ist hier wichtig, aber nur im Kontext. Die Passwortlänge darf nicht vernachlässigt werden.

Sein Beispiel einer 8-stelligen Zeichenfolge, die aus einem Pool von Groß- und Kleinschreibung, Ziffern und "+ /" entnommen wurde, um ein Passwort mit "48 Bit Entropie" zu erstellen, ist irreführend. Hier ist der Grund:

Ungefähr zwei Jahre bevor diese Frage gestellt wurde, gab es 2012 25-GPU-Cluster , die jedes mögliche achtstellige Passwort durchlaufen konnten, das Groß- und Kleinbuchstaben, Ziffern und Symbole in weniger als enthielt 6 Stunden.

Es ist 2015, und während Entropie der Schlüssel ist, ist eine Zeichenfolge mit 8 Zeichen nie sicher genug, da bei einer umfassenden Passwortsuche die Länge der Schlüsselfaktor ist , keine Entropie!

Zum Beispiel konnte vor drei Jahren das Passwort Fail! 007 mit all seiner Zufälligkeit in 5,5 Stunden brutal erzwungen werden, aber die Passphrase Dies ist ein Fehler konnte nicht. Um zu verstehen, warum wir uns die Search Space Size oder die Gesamtsumme aller möglichen Passwörter mit der Alphabetgröße bis einschließlich der Länge des Passworts ansehen müssen.

Fail! 007 mit acht Zeichen (oben, unten, numerisch und Symbol) hat einen Suchraum von 6.704.780.954.517.120 oder 6,70 x 10fünfzehn. Die Passphrase , bei der es sich um einen Fehler handelt , sechs Zeichen länger (alle nur Kleinbuchstaben), befindet sich im Suchraum von 6.300.168.733.803.741.204.487.980 oder 6,30 x 1024 Möglichkeiten. Das ist ein großer Unterschied.

Wenn wir hundert Billionen Vermutungen pro Sekunde versuchen könnten, würde Fail! 007 in 67 Sekunden fallen. Dies ist jedoch ein Fehler . Es würde 20 Jahrhunderte dauern, bis der Raum vollständig durchsucht ist.

Sogar die leicht jugendliche Phrase 8 ist 2 klein würde 3,7 Jahre benötigen und würde viel länger halten als die unvorhersehbarere Fail! 007 .

Länge übertrumpft Entropie.

Um es zusammenzufassen, denken Sie an pass Phrase, nicht an pass Word Und machen Sie Ihren Berechtigungsnachweis länger als acht Zeichen. Obwohl Sie sich nach ihnen erkundigt haben, werden Rainbow Tables nicht für den Angriff verwendet, wie Tom betonte. Stattdessen glaube ich, dass ein dedizierter Hacker dedizierte Hardware verwenden wird, die vor drei Jahren nur einen knappen 95 durchbrechen konnte8 Passwortkombinationen in fünfeinhalb Stunden.

Rainbow Tables sind nicht die Bedrohung, sondern dedizierte Cracking-Hardware. Stellen Sie sich vor, was diese Hardware morgen leisten kann.

1
Mac