it-swarm.com.de

Wiederverwendung von Passwörtern, die möglicherweise niemals geknackt werden können

Die Wiederverwendung von Kennwörtern stellt ein schreckliches Risiko für Benutzer dar, da im Falle einer Datenverletzung die Kennwörter nicht sicher genug gespeichert werden und standardmäßig auch alle anderen Dienste, für die sie dieses Kennwort verwenden, gefährdet sind. In der Regel speichern sie bei diesen Sicherheitsverletzungen das Kennwort nur mit einem Hashing-Algorithmus wie SHA-1 oder in einigen Fällen sogar noch mit MD5 (die nie zum sicheren Speichern von Kennwörtern gedacht waren), sodass Angreifer Passwörter einfach mit nur rohem GPU-Hash bruteforce können Leistung.

Wenn eine Person ein richtig zufälliges Passwort von ausreichender Länge (z. B. 100+) mit sehr ausreichender Entropie erstellen sollte, das mit vielen Arten von Symbolen, Zahlen und Buchstaben gemischt wird; Für den Fall, dass der Computer nicht in dem Sinne kompromittiert wird, dass ein Keylogger oder ähnliches installiert ist und alle Browsersitzungen über einen verschlüsselten Tunnel durchgeführt werden, besteht das Risiko, dass dieses Kennwort für mehrere Websites wiederverwendet wird, wenn dies möglich ist. möglicherweise niemals in ihrem Leben geknackt werden, wenn bei einem der von ihnen genutzten Dienste ein Datenverstoß aufgetreten ist?

27
Azxdreuwa

Sie müssen keinen Hash bruteforce, um ein Passwort zu stehlen. Eine Website kann von einem Angreifer kompromittiert werden, sodass er die Kennwörter direkt aus dem Anmeldeformular im Klartext lesen kann. Oder der Websitebesitzer tut dies, er kann es immer tun, wenn er möchte. Es liegt an Ihnen, ob Sie dem Eigentümer vertrauen oder nicht (Sie möchten nicht dasselbe Passwort auf Facebook und SomeBlackHatCommunity dot com verwenden). Außerdem gibt es immer die gute alte Schulter, die surft, um Passwörter zu stehlen. Ein Passwort ist wie ein Schlüssel, und wenn Sie dasselbe Passwort verwenden, geben Sie verschiedenen Personen tatsächlich denselben Schlüssel für verschiedene Türen. Sie können sehen, dass es nie eine gute Idee ist.

Sie sollten also nie dasselbe Kennwort an verschiedenen Orten verwenden, es sei denn, dieses Kennwort schützt dieselben Daten oder gewährt Ihnen dieselben Berechtigungen. Ich glaube, Sie können beispielsweise dasselbe Kennwort zum Schutz Ihrer Sicherungen verwenden.

77
reed

Normalerweise Eine Website verwendet eine schwache Hashing-Funktion zum Speichern von Passwörtern. Sind Sie jedoch bereit zu sagen, dass keine der von Ihnen verwendeten Websites das Passwort verschlüsselt oder im Klartext im Klartext speichert?

Durch die Wiederverwendung eines Kennworts ist Ihre Sicherheit nur so hoch wie die der schwächsten Websites, auf denen Sie es verwenden. Es spielt keine Rolle, wie lang oder kompliziert Ihr Kennwort ist, wenn ein Angreifer es einfach aus dem Kennwortänderungsprotokoll eines schlecht gestalteten Servers ablesen kann.

19
Mark

Sie gehen von einem perfekten System aus

für den Fall, dass ihr Computer nicht in dem Sinne kompromittiert wird, dass ein Keylogger oder ähnliches installiert ist und alle Browsersitzungen über einen verschlüsselten Tunnel durchgeführt werden,

oder zumindest nehme ich an, dass Sie das tun - dieser verschlüsselte Tunnel sollte besser gut sein.

Aber Sie haben keine Kontrolle über den Server, der Ihr Passwort enthält . Sogar Unternehmen, die es besser wissen sollten, haben kürzlich ihr Passwortsystem durcheinander gebracht: GitHub und Twitter haben sowohl intern protokollierte als auch zwischengespeicherte Klartext-Passwörter.

Es gibt auch keinen Vorteil - Sie werden sich nie an dieses Passwort erinnern, also speichern Sie es in einem Passwort-Manager. An diesem Punkt können Sie auch eindeutige Kennwörter verwenden (die kürzer sind, falls Sie sie jemals erneut eingeben müssen).

12
Chris H

Auf Websites finden Sie verschiedene Lösungen für das Passwort-Hashing: Speicherintensive Funktionen wie Argon2 oder Scrypt, anfällige benutzerdefinierte Hardware, aber zumindest gesalzene Funktionen wie PBKDF2, einfache Hash-Funktionen ohne Salt- und Work-Faktor und - leider nicht so selten - auch Speicher oder Übertragung von Klartext-Passwörtern.

Sobald ein Kennwort kompromittiert wurde, wird es möglicherweise in Kennwortlisten angezeigt, mit denen andere Websites angegriffen werden. Das Problem bei der Wiederverwendung von Kennwörtern besteht also darin, dass die Sicherheit durch die schwächste Funktion festgelegt wird. Wenn irgendwo Klartext gespeichert wird, ist die Sicherheit selbst für tatsächlich sichere Kennwörter auf Null gesunken.

8
BeloumiX

Die Wiederverwendung von Passwörtern birgt das Risiko, auch wenn Ihr Passwort sehr sicher ist. Wenn eine Website verletzt wird, auf der Passwörter im Klartext gespeichert sind, steht Angreifern Ihr sicheres Passwort zur Verfügung, ohne dass Hashes brutal erzwungen werden müssen. Mit anderen Worten, wenn Sie Ihr sehr sicheres Passwort auf einer Website verwenden, auf der Passwörter im Klartext gespeichert sind, wird durch die Stärke Ihres Passworts nichts erreicht.

Leider speichern viele Websites Passwörter im Klartext und es ist nicht immer sofort ersichtlich, ob eine Website dies tut oder nicht. Es ist daher nicht sicher, ein sehr sicheres Kennwort unter der Annahme wiederzuverwenden, dass der Hash nicht brutal erzwungen wird, da er möglicherweise immer noch im Klartext gespeichert (und verletzt) ​​wird.

8
Micheal Johnson

TL; DR: Das Knacken von Passwörtern ist nicht die einzige Sicherheitsüberlegung bei der Wiederverwendung von Passwörtern. Das Teilen eines Passworts mit mehreren Sites bedeutet, dass Sie immer noch gefährdet sind, wenn Probleme mit den anderen Sites/Ihrem Computer/Ihrem Netzwerk auftreten, abgesehen von knackbaren Passwörtern .

Einige großartige Antworten hier bereits, aber nur um ein paar weitere Überlegungen und eine Zusammenfassung hinzuzufügen.

Ihre Frage setzt viele Aussagen voraus, die die meisten Menschen nicht kontrollieren können:

ihre Maschine ist nicht in dem Sinne gefährdet, dass ein Keylogger oder dergleichen installiert ist

Vergessen Sie auch nicht die Netzwerksicherheit. Überprüft Ihr verschlüsselter Tunnel, dass es sich nicht um MITMd handelt? Was ist mit HTTPS-Problemen, einer kompromittierten Zertifizierungsstelle? Ein weiteres Szenario im HEARTBLEED-Stil, bei dem der gesamte Datenverkehr zur Site kompromittiert wurde, weil das Zertifikat aus dieser heraus gehackt wurde? Auch wenn ich jetzt einen Keylogger geschrieben habe, können Sie ihn nicht unbedingt erkennen, es sei denn, es gibt eine große Anzahl von Infektionen. Melden Sie sich auf anderen Computern an, die andere verwendet haben? Lassen Sie andere Leute Ihre Maschinen benutzen? Wie wäre es mit mobilen Geräten? Aktualisieren Sie Ihren Computer regelmäßig? Was ist, wenn ich sehe, wie Sie Ihr Passwort an einem öffentlichen Ort mit Videoüberwachung eingeben? Hardware-Keylogger? Böser Dienstmädchenangriff?

..Ich denke, das ist alles eine große Annahme ...

besteht das Risiko, dieses Kennwort für mehrere Websites wiederzuverwenden, wenn es möglicherweise nie in ihrem Leben geknackt werden kann, wenn bei einem der von ihnen verwendeten Dienste ein Datenverstoß aufgetreten ist?

Kürzlich wurde bekannt, dass Twitter die Passwörter zwar sicher speichern kann, die Protokollierungsfunktion jedoch nicht mehr funktioniert. Sie müssen auch einige andere implementierungsspezifische Schwachstellen in der gesamten Implementierung der Site ausschließen.

Sie weisen im Vorwort auf unsichere Websites hin, daher gehe ich davon aus, dass Sie auch alle Websites annehmen, auf denen Sie dieses Kennwort verwenden, das Sie ebenfalls kennen Sichern Sie das Passwort sicher. Woher weiß ich bei den meisten Websites, die ich online benutze, dies? Ich werde nicht und selbst wenn sie sagen , dass sie Passwörter sicher hashen, gibt es keine Garantie dafür.

Verwenden Sie unterschiedliche Passwörter für unterschiedliche Websites. Verwenden Sie einen Passwort-Manager, KeePass ist ziemlich gut :-).

6
Matthew1471

Wenn eine Person ein richtig zufälliges Passwort von ausreichender Länge (z. B. 100+) mit sehr ausreichender Entropie erstellen sollte, das mit vielen Arten von Symbolen, Zahlen und Buchstaben gemischt wird; Für den Fall, dass der Computer nicht in dem Sinne kompromittiert wird, dass ein Keylogger oder ähnliches installiert ist und alle Browsersitzungen über einen verschlüsselten Tunnel durchgeführt werden, besteht das Risiko, dass dieses Kennwort für mehrere Websites wiederverwendet wird, wenn dies möglicherweise niemals möglich ist in ihrem Leben geknackt werden, wenn bei einem der von ihnen genutzten Dienste ein Datenverstoß aufgetreten ist?

Es gibt ein paar Probleme damit. Erstens sind die von Ihnen vorgeschlagenen Passwörter viel zu lang. Es gibt ungefähr 2 ^ 6.6 druckbare ASCII Zeichen. Ein einheitliches Zufallskennwort mit 20 Zeichen ist daher für die 128-Bit-Sicherheit ausreichend, und 39 Zeichen sind für 256 Bit ausreichend. Starke Passphrasen könnten möglicherweise in die Gebiet mit mehr als 100 Zeichen, aber ihre Stärke hat wenig mit der Anzahl der Symbole oder Buchstaben zu tun.

Das zweite und größere Problem besteht darin, dass Sie den Implementierern vor Ort unnötiges Vertrauen schenken. Wenn keine der Sites jemals einen Fehler aufweist, der es einem Angreifer ermöglicht, das Passwort wiederherzustellen, dann ja, es wäre sicher, das Passwort wiederzuverwenden. Das Problem ist, dass es sich um ein großes "if" handelt. Selbst für eine Website, die ein gutes Passwortspeichersystem entwickelt hat, ist es sehr einfach, Ihre Passwörter versehentlich offenzulegen. Betrachten Sie diesen jüngsten Twitter-Vorfall (von Anfang dieses Monats) :

Heute gab Twitter eine Warnung an Benutzer aus, in der sie aufgefordert wurden, ihre Kennwörter zu ändern, nachdem festgestellt wurde, dass die Kennwörter einiger Benutzer im Klartext in einer Protokolldatei aufgezeichnet wurden, auf die nur Twitter-Mitarbeiter zugreifen können.

[...] Aufgrund eines Codierungsfehlers erklärte Agrawal jedoch: "Passwörter wurden vor Abschluss des Hashing-Prozesses in ein internes Protokoll geschrieben. Wir haben diesen Fehler selbst gefunden, die Passwörter entfernt und planen, um zu verhindern, dass dieser Fehler erneut auftritt." . "

Dies ist ein sehr einfacher Fehler für einen Programmierer. Sie geben einfach eine log(LogLevel.DEBUG, "loginRecord = {}", loginRecord) - Zeile oder ähnliches in Ihr Programm ein und jemand anderes aktiviert versehentlich die Debug-Protokollierung in der Produktion. Multiplizieren Sie dies jetzt mit Tausenden von Programmierern über Tausende von Tagen auf Dutzenden von Websites, und die Würfel sind sehr gegen Sie. Verwenden Sie Passwörter nicht wieder. Verwenden Sie einen Passwort-Manager.

4
Luis Casillas

Sie gehen davon aus, dass keine der von ihnen besuchten Websites feindlich eingestellt ist. Wenn ich mich auf einer Website registriere und ihnen meine E-Mail-Adresse gebe und für diese Website dasselbe Passwort verwende wie für meine E-Mail-Adresse, können sie sich bei meiner E-Mail anmelden.

Etwas, das Mark Zuckerberg tatsächlich gesteht, als er Facebook gestartet hat.

4
Mark Z

Die Wiederverwendung von Passwörtern ist immer eine Risikobewertung. In der Praxis ist die Wiederverwendung von Passwörtern eine Tatsache, und es stellt sich die Frage, wo welcher Satz verwendet werden soll.

Die eigentliche Antwort auf Ihre Frage lautet jedoch, dass es viele Möglichkeiten gibt, ein Passwort zu kompromittieren, und Brute-Forcing ist tatsächlich die am wenigsten wahrscheinliche. Es gibt Sniffer, Keylogger, MitM, kompromittierte Server, verschiedene Formen von XSS und anderen Webangriffen, Schulter-Surfen und wahrscheinlich ein Dutzend andere Wege zu Ihrem Passwort, und für viele von ihnen spielt die Komplexität oder Länge des Passworts keine Rolle.

3
Tom

Ändern Sie die ursprüngliche Idee

Eine Änderung Ihrer Idee könnte jedoch ziemlich sicher sein. Angenommen, Sie generieren 64 zufällige Datenbytes und speichern diese in einer Datei. Anschließend wählen Sie ein "Hauptkennwort" aus, das Sie niemandem mitteilen, und verwenden dieses Kennwort, die gespeicherte Datei und den Namen der Site, um ein ortsspezifisches Passwort zu generieren:

(echo super-secret-password; cat test-Rand; echo Amazon.com) | md5sum | sed 's/ .*$//' | xxd -r -p | base64

Die obige Befehlszeile erzeugt immer das Passwort Tj02tXSPT+cQvN+79QqtjA== aus der bestimmten zufälligen Datei, die ich erstellt habe, aber wenn ich Amazon in Google ändere, wird oX9uOqM0/wUaNzUlTMUcfg== stattdessen.

Wenn ich das Hauptkennwort falsch eingebe, wird als Ausgabe etwas völlig anderes angezeigt. Solange ich es jedoch richtig eingebe, erhalte ich immer dieselbe Ausgabe für dieselbe Site, aber unterschiedliche Ausgaben für jede unterschiedliche Site. Jetzt hat niemand mehr die "Schlüsseldatei" und das Hauptkennwort (eine Art Zwei-Faktor-Authentifizierung), die zum Generieren der standortspezifischen Kennwörter erforderlich sind. Wenn Amazon kompromittiert ist, ist mein Google-Passwort nicht. Die Passwörter enthalten jeweils 128 Zufallsbits, die für fast alles gut genug sein sollten.

3
Monty Harder

Es gibt viele Möglichkeiten, wie ein Passwort kompromittiert werden kann. Die Verwendung nicht knackbarer Passwörter trägt bestenfalls nicht dazu bei, das Risiko einer Kompromittierung auf andere Weise zu verringern. In Wirklichkeit verschlimmert es andere Schwächen.

2
ddyer