[lug-ld] PW+Salt jetzt geklärt

alf at alfmoni.de alf at alfmoni.de
Do Aug 8 04:18:41 CEST 2019


Lösung an Christian geschickt...

Gibts was zu gewinnen?? ;)

Grüße
Alf

Am 08.08.19 um 00:12 schrieb Christian Boltz:
> Hallo Heinz, hallo zusammen,
>
> Am Mittwoch, 7. August 2019, 22:49:26 CEST schrieb Pahle Heinz:
>> Also, wenn ich die Passwortdatei klaue, dann habe ich das
>> Hash-Verfahren ($..$) und Salt ($..$) parat. Salt verhindert nicht im
>> geringsten das Erlangen des PWs. Denn: Ich "kurbele" eine Variable
>> durch, füge jedesmal Salt dazu, hashe und vergleiche was herauskommt
>> mit dem was in der Datei steht.
> Wenn Du wirklich eine Liste von Passwörtern durchprobierst und jedesmal
> Salt + geratenes Passwort hashst, bringt der Salt tatsächlich nichts.
> Daher: Ja, bei Brute Force ist ein Salt tatsächlich nutzlos.
>
>
> Jetzt stell Dir mal vor, jemand hat z. B. die Passwort-Datenbank eines
> großen Mailproviders mit ein paar Millionen Passwörtern geklaut. Da für
> alle Benutzer eine Passwortliste per Brute Force durchzutesten und
> jedesmal zu hashen, braucht einiges an Rechenleistung. Wenn es für den
> Angreifer blöd läuft, wird das Datenleck entdeckt und alle Passwörter
> geändert, bevor er auch nur eins davon für den Spamversand missbrauchen
> kann.
>
> Stattdessen wird ein Angreifer lieber eine "Rainbow Table" (also eine
> Liste von Passwörtern mit zugehörigem Hash) verwenden. Einen Hash in der
> Liste suchen geht deutlich schneller als auch nur die 100 beliebtesten
> Passwörter zu hashen ;-)
>
> In solchen Fällen hilft ein Salt, weil es den Aufwand für den Angreifer
> hochtreibt - statt einer Rainbow Table bräuchte er für jeden möglichen
> Salt eine Rainbow Table. Sogar wenn Du der Salt nur zwei zufällige
> Großbuchstaben enthält, erhöht das den Aufwand um 26^2, also Faktor 676,
> bei zwei Groß- oder Kleinbuchstaben um (2*26)^2, also Faktor 2704.
> Ein Salt mit drei Groß- oder Kleinbuchstaben kommt auf (2*26)^3, also
> Faktor 140608.
>
> "Drei Groß- oder Kleinbuchstaben" hört sich harmlos an, macht aber
> Rainbow Tables selbst bei großen Mengen Passwort-Hashes eher nutzlos.
>
>
> Ähnlich sieht es aus, wenn jemand gezielt das Passwort eines einzelnen
> Accounts knacken will - auch hier kostet ein Salt den Angreifer Zeit,
> weil er nicht vorher eine Rainbow Table bauen kann. Der zeitliche
> Abstand zwischen Passworthash klauen und Passwort missbrauchen wächst
> also von einer Sekunde Rainbow Table ablesen auf (geraten) mindestens
> Stunden, eher Tage für Brute Force. Und das alles nur wegen ein paar
> Byte Salt ;-)
>
>
> Ich würde übrigens beim Passwort-Hashing zu z. B. Bcrypt raten, weil das
> bewusst langsam/aufwändig implementiert ist und daher Brute Force und
> das Erstellen von Rainbow Tables ausbremst.
> Leseempfehlung dazu: https://de.wikipedia.org/wiki/Bcrypt -
> hauptsächlich die Abschnitte "Hintergrund" (letzter Absatz) und "Design"
>
>> Nebenbei: Salt erzeugen ist genauso
>> eine Wissenschaft wie Init-Vektor erzeugen z.B. bei AES256 (ist bei
>> mir schon jahrelang im Einsatz, bis auf AES-lib mein Werk).
> Jein ;-) - sogar ein schlechter Salt (z. B. die ersten zwei Buchstaben
> des Vornamens - theoretisch 26^2, praktisch weniger, weil manche
> Buchstabenkombinationen oft und andere nie auftreten) ist deutlich
> besser als kein Salt.
>
> Ein zufälliger Salt (im Sinn von "kryptographisch zufällig") ist
> natürlich deutlich besser.
>
>> Statt den einzigen Grund für Salt, wie ich glaube, gleich zu
>> offerieren, wird in Artikeln Unzutreffendes genannt (brute force
>> Erleichterung) und nebenbei nur angedeutet, was ich als einzigen
>> Grund sehe. Also jetzt: Habe ich die PW-Datei und es gäbe keinen
>> Salt, dann sähe ich gleich, wenn Müller, Maier, Schulze das gleiche
>> PW hätten (natürlich nicht das PW selbst)!!! D.h.: Habe ich Müller
>> geknackt, dann sind anderen 2 ebenfalls "offen".
> Das ist ein (im wahrsten Sinn des Wortes) offensichtlicher Grund, aber
> - siehe oben - nicht der einzige.
>
>> Wie man sieht, immer wieder das Gleiche (Verschleiern gleicher Daten),
>> wie ich das mit WW2 beschrieb. "Keine besonderen Vorkommnisse"
>> konnten sich die Briten denken, denn Bojen bombadieren, Trick,
>> brachte andere Meldung als immer wieder die Gleiche, wenn nix los
>> war.
> Genau, da hätte eine Prise Salz geholfen ;-)
>
>
> So, und jetzt noch eine kleine Aufgabe zum Abschluss: Welches Passwort
> steckt im (ungesalzenen) Hash
> b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
> ?
>
> Dazu zwei Tips:
> - Das ist eine sha256sum - aber das ist fast egal
> - Die Lösung kann jeder ohne Brute Force innerhalb von Sekunden
>    rausfinden
>
> Für den unwahrscheinlichen Fall, dass niemand die Lösung findet, erkläre
> ich den Lösungsweg gern beim nächsten Treffen ;-)
>
>> Jetzt noch ein Glas Wein auf alle, die mitmachten
> Prost! ;-)
>
>
> Gruß
>
> Christian Boltz