[lug-ld] PW+Salt jetzt geklärt
Christian Boltz
lug-ld at cboltz.de
Do Aug 8 20:53:59 CEST 2019
Hallo Heinz, hallo zusammen,
Am Donnerstag, 8. August 2019, 10:22:42 CEST schrieb Pahle Heinz:
> schade, wollte mir einen abbrechen, um die Aufgabe zu lösen. Aus
> Erfahrung weiß ich, sind die 2 ersten und die 2 letzten Zeichen des
> sha256-hashes bei einem Vergleich auch noch gleich, dann
> hochwahrscheinlich BINGO! So habe ich mir b9 und e9 gemerkt und ein
> wenig mit einem "hasher" herumprobiert. Dann neugierig Christophs
> Link geklickt und sofort auf dieser site b9 und e9 entdeckt. Spiel
> abgebrochen, Lösung gesehen. Ich gebe zu, mit ein paar doofen
> Passworten mein Glück versuchen zu wollen, C.M Spielverderber :)) Nä,
> gar nicht, habe besseres zu tun, lasse mir von C. B. erklären, wie
> ich einen sha256-hash knacke. Da bin ich aber arg gespannt.
> Jedenfalls bräche für mich eine Welt zusammen, gäbe es eine
> Einfachlösung, Regenbogen-Tabelle zählt jetzt aber nicht dazu.
Doch, die zählen definitiv ;-) - und zumindest im Anwendungsfall "jemand
hat 10 Millionen Mailadressen mitsamt Passworthash geklaut" sind sie die
einfachste, schnellste und billigste Möglichkeit, einen Teil der
Passwörter zu knacken. Auch wenn ein Angreifer "nur" 1000 der 10
Millionen Postfächer knackt, kann er damit fleißig Spam verschicken ;-)
Einen sha256-Hash "knacken" im Sinn von "sage mir den Ausgangstext" kann
ich (außer mit Brute Force) nicht. Das geht schon rein mathematisch
nicht, weil beim Hashen Informationen über den Ausgangstext
verlorengehen und nur die "Checksumme" behalten wird.
(Als bildlicher Vergleich: Aus einer Orange Orangensaft machen/"hashen"
ist einfach, und sogar wenn Du 99% davon trinkst, ist am Rest noch
erkennbar, dass das der "Hash" aus einer Orange ist. Im Gegensatz dazu -
versuch mal, aus dem Orangensaft zu rekonstruieren, wie groß die Orange
war, wie die genaue Form und Farbe aussah und wie viele Kerne sie
hatte.)
Das ist aber auch gut so, weil sonst der nächste Schritt, eine
Hashkollision zu finden und sha256 kaputtzuspielen, nicht mehr weit
wäre.
(Der Vollständigkeit halber: Hashkollisionen finden geht auch ohne den
Ausgangstext beliebiger Hashes rausfinden zu können. Es reicht, wenn man
rausfindet, dass in einem Ausgangstext z. B. bestimmte Bits für die
Berechnung des Hashes ignoriert werden oder sich Änderungen von
bestimmten Bits im Hash gegenseitig aufheben.)
> Rainbow Tables nehmen ja nur Zeichen auf, die man einfach eingeben
> kann.
Typische Rainbow Tables enthalten *vermutlich* nur gängige Zeichen oder
sogar nur gängige Wörter und Passwörter - so zumindest meine
Einschätzung.
Grundsätzlich spricht nichts dagegen, auch Sonderzeichen in einer
Rainbow Table zu berücksichtigen - ob sich das für den Angreifer lohnt,
ist natürlich eine andere Frage.
Und genau das ist, was bei Verschlüsselung oft zählt - "lohnt sich der
Aufwand?" Sobald der Angreifer das mit "nein, ich bin doch nicht
verrückt" beantwortet, hast Du gewonnen ;-)
Die Schwelle liegt natürlich je nach Angreifer und Angriffsziel
unterschiedlich. Wenn es um meine Urlaubsbilder geht, würde ein
vernünftiger Angreifer wohl nach 10 Minuten aufgeben. Meine
Signatursammlung wäre manchen Leuten mindestens einen Tag Rechenzeit
wert ;-) und bei militärischen Geheimnissen kann es sich lohnen, ein
Jahr lang ein ganzes Rechenzentrum drauf rumrechnen zu lassen.
> Tut mir leid, ich verwende auch Binärzeichen, wobei linefeed
> mein Liebling ist. Gruß an die Konsolenhacker. Ergo: Kennt man ein
> Mittel, dann gibt es auch ein Gegenmittel. Kriege kann man auch nur
> durch einen bis dato unbekannten Trick gewinnen.
Du hast auf jeden Fall ein Mittel, das gegen die üblichen Rainbow Tables
hilft, und auch gegen Brute Force mit beschränktem Zeichensatz. Damit
machst Du es einem Angreifer zumindest deutlich schwerer ;-)
Falls es tatsächlich ein Angreifer speziell auf Dich abgesehen hat (was
eher unwahrscheinlich sein dürfte) - gegen Brute Force mit allen Zeichen
(incl. Binärzeichen) hilft alles nix, es kostet halt nur etwas mehr
Rechenzeit.
Gruß
Christian Boltz
--
What do we learn from this: DO NOT use reiser4 with Suse Linux 10.0.
Shred and wipe offer easier ways to get rid of your data.
[nordi in opensuse]