Friday 26 May 2017

Py Bcrypt Binary Optionen


Im Moment versuche ich, ein Log-in-System mit einer sehr hohen Sicherheit zu bauen. Also möchte ich bcrypt verwenden und ich habe auch eine 3rd-Party-Bibliothek gefunden, py-bcrypt. Aber der Autor sagte, es sei eine reine Python-Implementierung. Jetzt lese ich irgendwo, dass es nicht empfohlen wird, bcrypt in Python nur zu verwenden, weil es zu langsam ist und das führt zu einem Sicherheitsleck. Bcrypt sollte in C implementiert werden. Kann jemand dies bestätigen Was soll ich bcrypt (python) SHA512 (von hashlib) etwas anderes Im mit Google App Engine Es sollte beachtet werden, dass die reine Pythonimplementierung (4) zu langsam ist Nutzbar, angesichts der Anzahl der derzeit für die Sicherheit erforderlichen Runden. Aus diesem Grund ist es standardmäßig deaktiviert, es sei denn, die Umgebungsvariable PASSLIBBUILTINBCRYPTenabled ist gesetzt. Fragte Jul 9 12 um 10:49 geschlossen als nicht konstruktiv von casperOne Jul 10 12 um 14:01 Wie es derzeit steht, ist diese Frage nicht gut für unser QampA-Format geeignet. Wir erwarten, dass Antworten von Fakten, Referenzen oder Fachwissen unterstützt werden, aber diese Frage wird wahrscheinlich Debatte, Argumente, Polling oder erweiterte Diskussion erbitten. Wenn Sie feststellen, dass diese Frage verbessert und möglicherweise wieder geöffnet werden kann, besuchen Sie die Hilfe-Center für die Anleitung. Wenn diese Frage umgestaltet werden kann, um die Regeln in der Hilfe zu passen. Bitte bearbeiten Sie die Frage. Warum wäre das Zitat langsam als ein Sicherheitsleck ndash Martin Konecny ​​Wie zum Vergleich der beiden Hier ist Code zu Hash ein Passwort von 8000 zufällige Bits und entsprechende Zeiten: Hashlib einschließlich Salz: beantwortet Jul 9 12 bei 11: 26 Ich habe das Habhl-Skript um auch ein 32-Byte-Salz, und die Zahlen sind immer noch mehr oder weniger die gleichen ndash Chopstick Jul 9 12 um 11:44 okay jetzt bcrypt läuft 10times langsamer als sha512, die besser für brutforce Angriffe ist. Aber das sha512 hat 128 briefe. Sollte dieses Outweight auch mit Brutforce-Attacken verschlüsseln. Ndash Maik Klein Jul 9 12 at 11:57 Chopstick Mit einer Hash-Funktion auf ein Passwort einmal ist völlig unsicher und eine absolut inakzeptable Art und Weise der quittieren ein Passwort. Wenn Sie an einem sicheren, einfachen Hash-basierten Passwort-Speicherschema interessiert sind, können Sie PBKDF2 mit einer großen (5- oder 6-stelligen) Anzahl von Runden verwenden, obwohl bcrypt eine noch bessere Lösung ist. Bearbeiten: Das sollte auch auf das OP gerichtet sein. Ich reagierte auf Ihre Antwort mehr, da es tatsächlichen Code enthielt. Ndash Matt Nordhoff Nov 17 13 at 8: 22Es gibt zwei Arten von Kryptographie in dieser Welt: Kryptographie, die Ihre Kind Schwester aus dem Lesen Ihrer Dateien und Kryptographie, die große Regierungen vom Lesen Ihrer Dateien zu stoppen stoppen wird. Dieses Buch ist über das letztere. - Vorwort zur angewandten Kryptographie von Bruce Schneier Beschreibung Bcrypt ist ein Cross-Plattform-Verschlüsselungsprogramm. Verschlüsselte Dateien sind über alle unterstützten Betriebssysteme und Prozessoren portabel. Passphrasen müssen zwischen 8 und 56 Zeichen liegen und werden intern auf einen 448-Bit-Schlüssel gehasht. Allerdings sind alle Zeichen signifikant. Je stärker deine Passphrase, desto sicherer Ihre Daten. Zusätzlich zur Verschlüsselung Ihrer Daten wird bcrypt standardmäßig die ursprüngliche Eingabedatei mit zufälligem Müll dreimal überschrieben, bevor sie gelöscht wird, um Datenwiederherstellungsversuche von Personen zu vereiteln, die Zugriff auf Ihren Computer erhalten. Wenn Sie noch nicht ganz bereit für dieses Niveau von Paranoia noch sind, sehen Sie die Installationsanweisungen unten, wie man diese Funktion deaktiviert. Wenn du das nicht denkst, ist das paranoid genug. siehe unten. Bcrypt nutzt den von Bruce Schneier 1993 veröffentlichten Blowfish-Verschlüsselungsalgorithmus. Weitere Informationen zum Algorithmus finden Sie auf Counterpane. Speziell verwendet bcrypt Paul Kochers Implementierung des Algorithmus. Die mit bcrypt verteilte Quelle wurde vom Original etwas verändert. Ursprünglicher Quellcode kann von counterpanebfsh-koc. zip bezogen werden. Bcrypt wurde erfolgreich auf den folgenden Plattformen getestet: x86: FreeBSD, OpenBSD, Linux, Cygwin, Win32 Sparc R220: Solaris 2.7, 2.8 Sparc Ultra60: Linux 2.4 Alpha: Linux 2.4 PPC G4: MacOS X 10.1 SERVER PPC RS6000: Linux 2.4 MIPS : Linux 2.0.34 (Cobalt) HPPA 1.1 HP-UX 11.0 Es wurden keine anderen Betriebssysteme getestet, aber die meisten sollten mit minimalen Änderungen arbeiten. Wenn Sie bcrypt, um ohne Fehler auf jeder anderen Plattform oder Architektur zu kompilieren, Id gerne darüber zu wissen. Wenn Patches notwendig sind, um bcrypt Arbeit auf Ihrem OS zu bekommen, werde ich versuchen, sie in die Hauptverteilung zu integrieren. Wenn du eine Maschine hast, die nicht oben aufgeführt ist, die nicht in der Lage ist, bcrypt zu kompilieren und bereit sind, mir den Zugriff auf die Maschine zu geben, werde ich einen Versuch machen, ihn auf dein Betriebssystem zu portieren. News (aktualisiert am 11. September 2002) Bcrypt 1.1 behebt einige kleinere Bugs und fügt Unterstützung für viele neue Betriebssysteme hinzu. Wenn Sie zuvor 1.0 auf einer nicht unterstützten Plattform verwendet haben, können Sie eventuell keine verschlüsselten Dateien entschlüsseln. Alpha-Systeme haben dieses Problem bekannt. 32-Bit-Systeme sollten dieses Problem nicht haben. 64-Bit-Systeme vermutlich. Wenn Ihr System dieses Problem aufweist, sollten Sie Ihre Dateien mit 1.0 entschlüsseln und sie mit 1.1 verschlüsseln. 1.1 ist immens schneller als 1,0. Darüber hinaus verwendet es etwa 50 soviel Speicher mit Kompression ausgeschaltet, oder 66 mit Kompression auf. Die folgenden Dateien sind Kopien der LICENSE-Datei, die mit den Passphrase-Eierköpfen verschlüsselt wurden. Wenn Sie beide entschlüsseln können, dann sollte Ihre Installation mit anderen unterstützten Systemen kompatibel sein. Wenn Sie so geneigt sind, bearbeiten Sie config. h und ändern Sie die Vorgaben auf was auch immer Sie denken, ist für Ihre Bedürfnisse geeignet. Wenn Sie sich nicht entschieden haben, die Eingabedateien nach der Verarbeitung zu entfernen oder SECUREDELETE auf 0 zu setzen, haben Sie wahrscheinlich Daten auf Ihrer Festplatte, die auch nach dem Löschen wiederhergestellt werden können. Alle diese Optionen können auch auf der Kommandozeile eingestellt werden. Wenn Sie mit den Standardeinstellungen zufrieden sind, geben Sie einfach ein: make dann su und geben Sie: make install Es wäre klug, die Installation auf ein paar unwichtige Dateien zu testen, bevor Sie alles verschlüsseln, was Sie schätzen, das einzige Exemplar entfernen und es 127 mal mit Müll überschreiben. Bcrypt - orc-sN-Datei. Verschlüsselte Dateien werden mit einer Erweiterung von. bfe gespeichert. Alle Dateien, die in. bfe enden, werden mit bcrypt verschlüsselt und werden versuchen, sie zu entschlüsseln. Alle anderen Eingabedateien werden verschlüsselt. Wenn mehr als ein Dateityp angegeben ist, verarbeitet bcrypt alle Dateien, die mit dem ersten Dateityp übereinstimmen. Standardmäßig wird bcrypt Eingabedateien vor der Verschlüsselung komprimieren, Eingabedateien entfernen, nachdem sie verarbeitet wurden (vorausgesetzt, sie werden erfolgreich verarbeitet) und überschreiben Eingabedateien mit zufälligen Daten, um Datenwiederherstellung zu verhindern. Passphrasen können zwischen 8 und 56 Zeichen liegen. Unabhängig von der Passphrase-Größe wird der Schlüssel intern auf 448 Bits gehasht - der größte Keysize, der vom Blowfish-Algorithmus unterstützt wird. Allerdings ist es immer noch klug, eine starke Passphrase zu verwenden. Druckausgabe zum Standard aus. Impliziert - r. Dateien vor der Verschlüsselung NICHT komprimieren. NICHT die Eingabedateien nach der Verarbeitung entfernen Wie oft die Eingabedateien mit zufälligen Daten vor der Verarbeitung überschrieben werden sollen. Die Standardanzahl der Überschreibungen ist 3. Verwenden Sie - s0, um diese Funktion zu deaktivieren. Kein Effekt, wenn - r geliefert wird. Die Optionen o, c und r haben jeweils die entgegengesetzten Effekte, wenn die entsprechenden Einstellungen von der Voreinstellung in config. h geändert werden. Verschlüsselte Dateien sollten zwischen den meisten Systemen kompatibel sein. Die Binärkompatibilität wurde für alle oben aufgeführten Systeme getestet. Unterstützung, Hilfe, Bugs, was zum Teufel ist dieses Johnny Regal - Core Code und Unix Ports. Philip Stolarczyk - native Win32 Unterstützung und Prüfung. Copyright (c) 2002 Johnny Shelley Alle Rechte vorbehalten. Umverteilung und Verwendung in Quell - und Binärformularen mit oder ohne Änderung sind zulässig, sofern folgende Voraussetzungen erfüllt sind: 1. Umverteilung des Quellcodes muss den oben genannten Copyright-Vermerk, diese Liste der Bedingungen und den folgenden Haftungsausschluss beibehalten. 2. Umverteilungen in binärer Form müssen den oben genannten Copyright-Vermerk, diese Liste der Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und / oder anderen Materialien, die mit der Verteilung versehen sind, wiedergeben. 3. Weder der Name des Autors noch irgendwelche Mitwirkenden dürfen verwendet werden, um Produkte, die aus dieser Software stammen, ohne vorherige schriftliche Erlaubnis zu unterstützen oder zu fördern. DIESE SOFTWARE WIRD DURCH COPYRIGHT-HALTER UND BEITRÄGE GELTEN UND ALLE AUSDRÜCKLICHEN ODER STILLSCHWEIGENEN GEWÄHRLEISTUNGEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE IMPLIZITEN GEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT UND DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK VERGEBEN WERDEN. IN KEINEM FALL HAFTET DER AUTOR FÜR IRGENDWIE DIREKTE, INDIREKTE, ZUFÄLLIGE, SPEZIELLE, EXEMPLARISCHE ODER FOLGESCHÄDEN (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF, BESCHAFFUNG VON SUBSTITUTWAREN ODER DIENSTLEISTUNGEN VERLUST VON GEBRAUCH, DATEN ODER GEWINNEN ODER GESCHÄFTSUNTERBRECHUNG) JEDOCH VEREINBART UND AUF EINE BEHÖRDLICHE HAFTUNGSBEDINGUNGEN, OB IM VERTRAG, STRICT HAFTUNG ODER TORT (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE AUS DER NUTZUNG DIESER SOFTWARE AUFGEFÜHRT WERDEN, SELBST WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN AUFGEFÜHRT WERDEN Für die Scrypt-Schlüssel-Ableitungs-Funktionsbibliothek Dies ist ein Satz von Python-Bindungen für die Scrypt-Schlüssel-Ableitungsfunktion. Scrypt ist nützlich, wenn Sie das Passwort verschlüsseln, da es möglich ist, eine minimale Zeitspanne anzugeben, die beim Verschlüsseln und Entschlüsseln verwendet werden soll. Wenn zum Beispiel ein Passwort 0,05 Sekunden benötigt, um zu überprüfen, wird ein Benutzer nicht bemerken die leichte Verzögerung bei der Anmeldung, aber eine rohe Gewalt Suche von mehreren Milliarden Passwörter wird eine beträchtliche Zeit in Anspruch nehmen. Dies steht im Gegensatz zu herkömmlichen Hash-Funktionen wie MD5 oder der SHA-Familie, die extrem schnell auf billige Hardware implementiert werden können. Installation Sie können py-scrypt aus diesem Repository installieren, wenn Sie die neueste, aber möglicherweise nicht kompilierende Version wünschen: Oder Sie können die neueste Version von PyPi installieren: Wenn Sie möchten, dass py-scrypt für Ihre Python 3-Umgebung, führen Sie einfach die oben genannten Befehle mit Dein Python 3 Dolmetscher. Py-scrypt unterstützt sowohl Python 2 als auch 3. gtFrom Version 0.6.0 (noch nicht auf PyPi verfügbar), py-scrypt unterstützt auch PyPy. Vor der Verschlüsselungsverschlüsselung exportiert die Bibliothek zwei Funktionen, die verschlüsselt und entschlüsselt werden: gtFrom diese, man kann einen einfachen Passwort-Verifizierer mit den folgenden Funktionen machen: Aber wenn du eine Ausgabe will, die deterministisch und konstant ist, kannst du die Hash-Funktion verwenden: Danksagungen Scrypt Wurde von Colin Percival erstellt und ist als 2-Klausel BSD lizenziert. Da scrypt normalerweise nicht als freigegebene Bibliothek erstellt wird, habe ich die Quelle für die aktuell aktuelle Version der Bibliothek in diesem Repository aufgenommen. Wenn eine neue Version ankommt, werde ich diese Quellen aktualisieren. Kelvin Wong auf Bitbucket gab Änderungen vor, um die Bibliothek auf Mac OS X 10.6 und früher zugänglich zu machen, sowie Änderungen, um die Bibliothek mehr wie die Befehlszeilenversion der Scrypt standardmäßig zu machen. Kelvin trug auch mit den Unit-Tests, viele Cross-Plattform-Tests und Arbeit an der Hash-Funktion. Burstaholic auf Bitbucket lieferte die notwendigen Änderungen, um die Bibliothek auf Windows zu bauen. Das python-appoweror-Demo-Repository für die Einrichtung von automatisierten Windows-Builds für eine Vielzahl von Python-Versionen. Diese Bibliothek ist unter der gleichen Lizenz wie Scrypt 2-Klausel BSD lizenziert. (Bearbeiten: Einige Zahlen für Sie Leute, die Zahlen nennen) Wenn Sie bereits mit bcrypt, entspannen, youre gut, wahrscheinlich. Allerdings, wenn youre auf der Suche nach einer Schlüssel Ableitung Funktion (oder in bcrypts Fall, Passwort Verschlüsselung Funktion) für ein neues Projekt, ist bcrypt wahrscheinlich nicht die beste, die Sie auswählen können. In der Tat gibt es zwei Algorithmen, die jeweils besser in einer anderen Weise als bcrypt sind, und auch weit verfügbar über viele Plattformen. Ich schreibe diesen Beitrag, weil Ive bemerkt hat, eine Art GERADE BENUTZEN BCRYPT Cargo Kult (danke Coda Hale) Dies ist absolut die falsche Einstellung, um über Kryptographie zu haben. Auch wenn Leute, die viel mehr über Kryptographie wissen, als ich einen erstaunlichen Job gemacht habe, um diese Ziffern in einfach zu bedienende Bibliotheken zu verpacken, ist die Verwendung von Kryptographie nicht etwas, was du leicht machst. Bitte wissen, was du tust, wenn du es benutzt hast, sonst wird es dir nicht helfen. Die erste Chiffre-ID deutet darauf hin, dass neben bcrypt PBKDF2 ist. Sein allgegenwärtiges und zeitgetestetes mit einem akademischen Stammbaum von RSA Labs, wissen Sie, die Jungs, die viel von dem kryptographischen Ökosystem erfunden haben, das wir heute verwenden. Wie bcrypt hat PBKDF2 einen einstellbaren Arbeitsfaktor. Im Gegensatz zu bcrypt, PBKDF2 wurde das Thema der intensiven Forschung und ist immer noch die beste konservative Wahl. Es gab erheblich weniger Forschung in die Solidität von bcrypt als eine Schlüsselableitungsfunktion im Vergleich zu PBKDF2, und einfach aus diesem Grund allein bcrypt ist viel mehr unbekannt, was zukünftige Angriffe gegen sie entdeckt werden können. Bcrypt hat einen höheren theoretisch-sicherheit-zu-berechnungszeitfaktor als pBKDF2, aber das hilft dir nicht, wenn ein angriff entdeckt wird, der bcrypts computational Komplexität mindert. Solche Angriffe wurden in der Vergangenheit gegen Ziffern wie 3DES gefunden. Wo 3DES einen 168-Bit-Schlüssel verwendet, haben verschiedene Angriffe die Key-Size-Effektivität auf 80-Bit reduziert. PBKDF2 wird von WPA, beliebten Passwort-Safes wie 1Password und LastPass und Full-Disk-Verschlüsselungstools wie TrueCrypt und FileVault verwendet. Während ich oft lustig bei Lamer News als Sinatra Antipattern. Ich muss Antirez auf seine Wahl von PBKDF2 applaudieren, als er mit einem gerechten Gebrauch bcrypt Angriff bombardiert wurde (obwohl bro, antirez, theres ein PBKDF2 Edelstein, das Sie verwenden können. Sie müssen es nicht herstellen) Die zweite Chiffre zu betrachten ist scrypt. Nicht nur scrypt geben Ihnen mehr theoretische Sicherheit als bcrypt pro Einheit rechnen Zeit, aber es erlaubt Ihnen auch, die Menge an Speicherplatz in Speicher für die Berechnung des Ergebnisses zu konfigurieren. Wo Algorithmen wie PBKDF2 und bcrypt arbeiten in-place im Speicher, scrypt ist ein Speicher-harter Algorithmus, und so macht ein Brute-Force-Angreifer Strafen sowohl in CPU und im Speicher. Während scrypts kryptographischen Klang, wie bcrypts, ist schlecht erforscht, aus einer reinen algorithmischen Perspektive seine überlegen an allen Fronten. Das nächste Mal, wenn Sie eine Schlüsselableitungsfunktion auswählen müssen, verwenden Sie bitte nicht bcrypt. Ich denke, der Punkt der Quittierung Verwendung bcryptquot ist quotdon39t verwenden (sogar gesalzen) sha1sha2quot Der Grund, warum ich in der Regel empfehlen bCrypt ist eigentlich aufgrund der menschlichen Faktoren im Wesentlichen, Bindungen sind für jede Sprache zur Verfügung, die API ist konsistent und ziemlich narrensicher. In der Regel brauchen wir keine formell gesicherten Hash-Funktionen, wir brauchen nur Quoten genug, um von der besten Praxis nicht zu unterscheiden und bCrypt passt die Rechnung hier gut. Implementierung in Python hier: githubdotpotCrypton Singpolyma Warum nicht gesalzen sha1sha2 Vielen Dank im Voraus. CaStarCo: Ein einfaches Kryptpass Salz SHA256 (Salz Cleartextpassword) ist genau so leicht zu Brute Kraft Riss als Cryptpass SHA256 (Cleartextpassword) für ein einziges Passwort. Jetzt ist das Unbefleckte anfälliger für das Angriff mehrerer Passwörter in einer Datenbank auf einmal, da alle, die das gleiche Passwort verwenden, gleichzeitig geknackt werden, während das gesalzene, wenn das Salz gut ist, nur das knacken wird. Der Vorteil von PBKDF2, bcrypt und scrypt ist die zusätzlichen Kosten für mehrere Iterationen, die die Offline-Brute-Force-Angriffskosten hochfahren, was sie weit sicherer macht als sogar gesalzene Hashes. Google hashcat - es wird dein Passwort in 2 Sekunden oder so knacken, mit oder ohne Salz :-) Wie würdest du auf diesen Beitrag antworten Ich bin nur ein Nachfolger des oben genannten Blogs, ich möchte nur deine Meinung wissen. Es tut mir leid, aber du bist in fast allen Punkten falsch. Zuerst bcrypt ist keine Chiffre, es ist eine Schlüsselableitungsfunktion. Das scheint nitpicky, aber ihre Anwendungsfälle und Angriffsszenarien unterscheiden sich wild. Mit einer Chiffre haben Sie in der Regel viele Klartext-, Chiffretext-Paare und wollen den Schlüssel finden, der den Klartext zum Chiffretext verschlüsselt (damit Sie die Ciphertexte entschlüsseln, für die Sie keine Klartext haben). Mit einer Tastenableitungsfunktion haben Sie in der Regel einen niedrigen Entropieeingang und wollen eine Ausgabe erstellen, die rechnerisch schwer von der hohen Entropieausgabe zu unterscheiden ist. Solch eine niedrige Entropieeingabe kann ein Passwort sein, dessen Schlüsselraum in der Regel sehr klein ist. So muss ein KDF in unserem Kontext langsam zu berechnen sein, und nur mit der Referenzimplementierung, aber mit jeder Implementierung. QuotBreakingquot solch ein KDF bedeutet, einen Kurzschnitt zu finden, der eine wesentlich schnellere Berechnung erlaubt als mit dem Referenzalgorithmus. Als nächstes, warum gehen Sie davon aus, dass bcrypt weniger kryptoanalytische Kontrolle als PBKDF2 hatte. Beide sind etwa im gleichen Alter. In der Tat einer der Gründe bcrypt wird oft als eine gute Wahl erwähnt, weil es viel Vertrauen in den letzten 13 Jahren aggregiert hat. Auch gibt es viele schlechte Beispiele bei der Verwendung von PBKDF2, die meist aus zu niedrigen Iterationen zählen. TrueCrypt, die Sie als eines der Beispiele nennen, warum PBKDF2 vertrauenswürdig ist, ist besonders schlecht bei der Auswahl von vernünftigen Parametern: Sie verwenden nur eine Iterationszahl von 1000 für die meisten Hashes (siehe truecrypt. orgdocssheader-key-derivation). Die PBKDF2-Werte in der Tabelle, die Sie von tarsnapscryptscrypt. pdf kopiert haben, wurden mit einer Iterationszahl von 86000 (erster Eintrag - quot100msquot) und 4.300.000 (zweiter Eintrag - quot5.0squot) WPA berechnet, ein anderes Beispiel, das Sie erwähnen, ist auch notorisch schlecht bei der Verwendung Gute iteration zählt Das ist der Grund, warum Wörterbuch-Angriffe auf WPA-PSK so populär geworden sind. Ich stimme mit Blair Strang hier, dass einer der Hauptvorteile von bcrypt ist, dass es viel bessere Dokumentation zur Verfügung und Implementierungen haben bessere Standardwerte. Ein Hinweis auf die 3DES-Angriffe. Technisch, ja, können Sie eine 3DES-Keying-Option verwenden, deren Schlüsselgröße 168 ist. Aber niemand hat jemals argumentiert, dass die tatsächliche Stärke der Chiffre 168 Bit war. In der Tat eines der ersten Dinge, die Sie über Triple DES lesen, ist, dass seine tatsächliche Stärke in wirklich höchstens 112 bit ist, wegen eines Treffens-in-the-Middle-Angriffs, der in seinem Design inhärent ist. Und die Quittung, die Sie erwähnen, die es auf 80-Bit reduziert, gilt nicht einmal für normale Gebrauchsfälle von 3DES (werfen Sie einen Blick auf das Papier, das in den Wikipedia-Artikel verlinkt ist) und es hat definitiv keine Anwendung bezüglich KDFs. Eigentlich ist 3DES ein Beispiel für einen alten Algorithmus, der immer noch einer der stärksten ist. Der Hauptgrund, warum jeder auf AES wechselte, war, dass es viel schneller war. Wenn du auf der sicheren Seite mit Passwort Hashing sein willst, kannst du deine Wahl diversifizieren: Sei p dein Passwort und SaltI sei 128 Bit zufällige Werte. Ableiten von p1 HMAC (Salt1quotPBKDF2quot) mit Schlüssel sha256 (p), p2 HMAC (Salt2quotbcryptquot) mit Schlüssel sha1 (p) und p3 HMAC (Salt3 quotscryptquot) mit Schlüssel sha1 (p). Ableitung der Taste k1, k2 und k3 unter Verwendung der Tastenableitungsfunktion PBKDF2, bcrypt und scrypt jeweils mit jeweils 130 Sekunden CPU-Zeit mit Eingang p1, p2 bzw. p3. Berechnen Sie den Schlüssel (oder Datenbankreferenzeintrag) als sha256 (k1k2k3). Hier bezeichnet quotquot die Verkettung von Byte-Arrays. Auf diese Weise bekommst du das Beste aus allen Welten: Ein bewährtes Bcrypt, ein experimenteller aber vielversprechender Scrypt und ein traditionelles PBKDF2. Der wichtigste Aspekt ist, dass Sie die Parameter jedes KDF so optimieren, dass sie lange dauern, um zu berechnen (das ist, warum ich 130s CPU-Zeit vorschlug). Dann ist deine KDF so stark wie die stärksten der drei. Warum die 40 char text requre weniger geld dann 10 char text zu bremsen in der gleichen zeit (konnte nicht bearbeiten) Ich denke, sie haben die 10 char und 40 char box gemischt There39s ein böser Fehler in der Dokumentation auf github. Es heißt, Sie sollten: 39scrypt39 einschließen. Dies sollte sein: include SCrypt. Habe mir eine halbe Stunde Zeit, um herauszufinden. Ich verstehe wirklich das Argument für bcrypt. Es gibt kein Problem bei der Einstellung der Runden in gewöhnlichen Krypta () für SHA-512 etc, rechts Das wird 1234 Runden von SHA-512 tun. Nun, was ist der Punkt von bcrypt, der nur mit Blowfish Hashes umgehen kann. Verwenden Sie bcrypt, don39t verwenden bcrypt. Zur Hölle mit ihm I39m haften mit ungesalzenen md5 Falsch, dein Passwort ist immer nur so stark wie das schwächste wenn die drei Was ist nein wo erwähnt ist, wie bcrypt mit vergleichen mit pbkdf2 mit sha512 Isn39t bcrypt per se weniger sicher, wie es ein verwendet Kürzere Bitlänge In Bezug auf quotcostquot können Sie pbkdf2 Iterationen hochfahren. Wäre das nicht genug Cypher ALGO1. Rshift (in) Cypher ALGO2. Lshift (in) Cypher ALGO3. Rshift (Lshift (in)) Schlussfolgerung. Passwort kann sogar schwächer sein als der schwächste Algorithmus (In diesem Fall gab die Komposition Identität) Tibor Sekelj Falsch, las es nochmal. Du musst alle 3 Algorithmen knacken können, um das Passwort zu bekommen. Der Nachteil des Ansatzes, 3 Algorithmen zu verwenden, ist, dass man nur 13 des Arbeitsfaktors für jeden verwenden kann, also wenn durch Magie 2 der 3 total kompromittiert wird, ist der dritte Algorithmus viel schneller zu knacken. Welche in der Theorie sollte immer noch sehr hart sein, aber nur darauf hinweisen. Ändern Sie den Titel in hsckernews Troll Köder, so kann ich hören, Hunderte von ahnungslosen Hacks knallen über etwas, was sie nicht verstehen, und mit diesem Beitrag als Referenz. Es ist interessant, dass hashcat Probeläufe scheinen, um zwei Größenordnungen schnellere Kontrollen pro Sekunde für bcrypt anzuzeigen, als für PBKF2, das scheint, das Gegenteil von dem vorzuschlagen, was dieser Beitrag nahelegt8230 YAHOO, vermisst du ein k in diesem Benchmark. Der PBKDF2 ist derjenige, der um Größenordnungen schneller ist. Ich lese durch LamerNews39s Quelle. Jesus, so viel Logik in der App. rb Datei. So viel Logik Der lustige Aspekt zu dieser Diskussion ist, dass viele Menschen entweder entweder ungesalzen oder einzeln gesalzen MD5 verwenden, wenn sie sogar Mühe, Hash-Passwörter überhaupt. Keine Notwendigkeit für ein Juwel, es ist schon in stdlib: ruby-doc. orgstdlib-1.9.3libdocopensslrdocOpenSSLPKCS5.html Ich denke, einige dieser Sorgen sehen ein bisschen albern aus. Alle KDF wurde entworfen, um etwas zu lösen, was zuerst unlösbar war. Alle Algo ist nur ein Versuch, das Problem zu verschieben. Keiner ist zukunftssicher. Alle KDF betreffen rechnerische Ressourcen, so dass sie einen beliebigen Workload-Parameter hinzufügen, um den Alogos abzustimmen. Dieser Ansatz klingen wie ein Arm-Ringen. (Lassen Sie sehen, wer der stärkste ist.) In Wirklichkeit sind alle Computer nicht in CPU-Geschwindigkeit oder Speicherkapazität insgesamt wachsen. Was wirklich wichtig ist Ressourcen Lücke zwischen Low-End-Server und High-End-Super-Computer. Die Lücke ist breiter, wenn die Zeit vergeht. In naher Zukunft mieten eine Cloud-Computing-Power kann billig sein, aber wir verwenden immer noch die gleichen alten Schul-Servern. (Die Hash-Vergleichsüberprüfung ist zunächst nicht für das Offline-System geeignet.) Also ich denke, wir sollten einfach einen vielversprechenden Algorithmus auswählen, eine Zauberzahl als Workload-Parameter und das Salz auswählen. Ändern Sie sie nie und geben Sie zu, dass wir verloren sind. (In Computational Power Racing mit offenem Algorithmus Standard. Ich glaube, man kann durch brillante Algorithmus-Lösungen zu gewinnen.) Die gute Sache ist offline bruteforcing ist das Worst-Case-Szenario, wenn ein Server leckt Passwort Hash. Es ist kein Leck, wenn andere Sicherheitssysteme korrekt funktionieren. Und Angreifer hat wohl nur nur Hash-Collision-Version von Passwort bekommen. Wenn die Benutzer nicht das gleiche Passwort für alles wiederverwenden. Ich denke, das sollte genügen, aber wenn nicht der Benutzer ist anfällig für Dienste Besitzer von allem, was sie am Anfang verwenden. KDF ist nur ein Werkzeug, das einige Kriterien für Angreifer begrenzt. Zum Beispiel können Sie angeben, dass nur NSA und Jeff Bezos oder jemand entlang der Linie kann das Passwort nicht andere knacken. Und natürlich sind gemeinsame Kriterien von Angreifern diejenige, die auch Passwort Hash-Wert erhalten können. P. S. Die KDF in einem User-Szenario ist eine andere Geschichte (zB die Erzeugung eines symmetrischen Chiffrierschlüssels zur Verschlüsselung einer Offline-Datei). Du kannst es so langsam wie ein paar Sekunden machen. Ich werde den Kritikern noch einen weiteren Punkt hinzufügen. PBKDF2 ist GPU freundlich, wo bcrypt und scrypt sind nicht Danke für den großen Artikel Könnten Sie bitte angeben, welche Parameter (N, r, p) für Scrypt (64ms) verwendet wurden und scrypt (3.8 s) Und welcher Prozessor wurde verwendet, um dies zu erreichen Timings perseids - Hast du nur deine eigene Lösung für ein gemeinsames Krypto-Problem erfinden. Schau mal auch mal Argon2 an, den 2015-PC-Gewinner. Ich liebe es PBKDF2 mehr zu verwenden, um verschlüsselte Dateien zu erzeugen. OpenSSL bietet es sogar als Bibliotheksfunktion. Aber OpenSSL bietet es nicht für die Verschlüsselung von Dateien Es verwendet derzeit PBKDF1.5 für seine 39enc39 Befehlszeilenverwendung

No comments:

Post a Comment