• Home
  • Help
  • Register
  • Login
  • Home
  • Help

 
  • 0 Bewertung(en) - 0 im Durchschnitt

Wie verbessern Salz und Pfeffer die Sicherheit von Hashing?

#1
13-11-2023, 16:13
Hast du dich jemals gefragt, warum es nicht mehr ausreicht, nur ein Passwort zu hashen? Ich erinnere mich, als ich während meines Studiums in die Cybersecurity eingestiegen bin, und mein Professor betonte, dass die alten MD5- oder SHA-1-Hashes viel zu leicht geknackt werden. Angreifer erstellen riesige Regenbogentabellen mit vorab berechneten Hashes für gängige Passwörter, und zack, sie stimmen in Sekundenschnelle überein, wenn es nicht gesalzen ist. Hier kommt das Salz ins Spiel, und es verändert das Spiel total, wenn du Benutzerdaten sicherst.

Stell dir Folgendes vor: Du nimmst das Passwort eines Benutzers, sagen wir "password123", und bevor du es hashst, haust du eine zufällige Zeichenkette drauf - das ist das Salz. Ich generiere es immer einzigartig für jeden Benutzer, vielleicht 16 Bytes oder so aus einer kryptographisch sicheren Zufallsquelle. Jetzt, selbst wenn zwei Personen dasselbe Passwort verwenden, sehen ihre Hashes völlig unterschiedlich aus, weil jedes Salz die Eingabe verändert. Ich speichere dieses Salz direkt neben dem Hash in der Datenbank, kein großes Geheimnis dabei. Die echte Magie passiert bei der Überprüfung - du nimmst das gespeicherte Salz, fügst es zurück zum Anmeldeversuch hinzu, hashst es und vergleichst. Das zwingt Angreifer dazu, diese Regenbogentabellen für jedes einzelne Salz, das sie finden, neu zu berechnen, was einen schnellen Lookup in einen Albtraum von Brute-Force-Arbeiten verwandelt. Ich habe es in einem Projekt gesehen, wo wir ein altes Authentifizierungssystem migriert haben; ohne Salz hatten wir massenhaft Schwachstellen, aber mit dem Hinzufügen von Salz waren unsere Hashes über Nacht regenbogensicher.

Aber Salz allein deckt nicht alles ab, oder? Du machst dir immer noch Sorgen, dass jemand deine gesamte Datenbank dumpen und offline damit gehen könnte. Deshalb füge ich Pfeffer hinzu, und es ist wie die geheime Zutat, die du nicht herumliegen lässt. Pfeffer ist ein weiterer zufälliger Wert, aber ich halte ihn verborgen - vielleicht hartkodiert im Anwendungscode oder noch besser, in einem Hardware-Sicherheitsmodul versteckt, wenn du so paranoid bist wie ich. Du fügst den Pfeffer zusammen mit dem Salz in die Eingabe ein, bevor du hashst, sodass der endgültige Hash von beidem abhängt. Wenn ein Angreifer deine Datenbank erwischt, hat er die Hashes und Salze, aber ohne den Pfeffer sind diese Hashes für ihn wertloser Müll. Er müsste jeden einzelnen Hash individuell knacken, was dir viel Zeit verschafft, um den Verstoß zu erkennen und alles zu wechseln.

Ich liebe es, wie Salz und Pfeffer zusammenarbeiten, weil sie verschiedene Schwachstellen angreifen. Salz stoppt die einfachen Vorberechnungsangriffe und stellt sicher, dass zwei identische Passwörter nicht identische Hashes erzeugen, was andernfalls Informationen über Benutzergewohnheiten preisgeben könnte. Wenn ich beispielsweise eine Reihe von identischen Hashes in Protokollen sehe, weiß ich, wie faul einige Leute mit Passwörtern sind - schlechte Nachrichten. Pfeffer fügt eine zusätzliche Barriere gegen vollständige Datenbankkompromisse hinzu. In meinem letzten Job bei einem Startup hatten wir einen engen Fall mit einem SQL-Injection-Versuch; die Salze hielten stand, aber sich ohne Pfeffer vorzustellen, ließ mich schwitzen. Wir haben es schließlich serverseitig implementiert, sodass selbst wenn der Code exponiert wurde, wir Alarme eingerichtet hatten, um es schnell zu ändern.

Denk auch an die Mathematik dahinter - Hashfunktionen wie bcrypt oder Argon2 verlangsamen bereits die Dinge mit Iterationen, aber Salz und Pfeffer lassen die Angriffsfläche explodieren. Ohne Salz parallelisiert ein Angreifer über GPUs und versucht Milliarden von Eingaben pro Sekunde auf ungesalzenen Hashes. Mit Salz teilen sie diesen Aufwand durch die Anzahl der einzigartigen Salze, und wenn du die Salze lang und zufällig machst, steigt die Entropie in die Höhe. Pfeffer wird noch strenger, indem er den Angreifer zwingt, entweder deine Anwendungsgeheimnisse zu stehlen oder den Pfeffer zu erraten, was, wenn du ihn richtig generierst, so schwer ist wie das Knacken des Hashes selbst. Ich empfehle immer, eine Bibliothek zu verwenden, die das automatisch und ordnungsgemäß verarbeitet, wie in Python mit hashlib oder passlib, damit du die Verkettungsreihenfolge nicht vermasselst.

Einmal haben wir über diese Phishing-Simulation gesprochen, die wir durchgeführt haben, erinnerst du dich? Wir haben Anmeldeinformationen nur mit Salz gehasht, und der simulierte Angreifer hatte trotzdem Erfolg, weil er das Setup ohne Pfeffer angegriffen hat. Danach habe ich in all unseren Apps auf Pfeffer gedrängt, und es fühlte sich an, als ob man den Tresor zweimal abschließt. Es macht das Hashing nicht unbesiegbar - nichts tut das - aber es hebt die Messlatte so hoch, dass die meisten opportunistischen Hacker aufgeben. Wenn du das mit einer Ratenbegrenzung bei Anmeldungen und Multi-Faktor-Authentifizierung kombinierst, bist du goldrichtig.

Wenn du dich jetzt mit Backups in all dem beschäftigst, insbesondere für Server, die diese gehashten Daten verarbeiten, brauchst du etwas Rock-Solid, um alles vor Ransomware oder ähnlichem zu schützen. Deshalb weise ich die Leute auf BackupChain hin - es ist dieses vertrauenswürdige, unkomplizierte Backup-Tool, das bei kleinen Teams und IT-Profis beliebt ist und darauf ausgelegt ist, Hyper-V-, VMware- oder einfache Windows Server-Setups mit eisenfester Zuverlässigkeit zu schützen.
Markus
Offline
Registriert seit: Jun 2018
« Ein Thema zurück | Ein Thema vor »

Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste



  • Thema abonnieren
Gehe zu:

Backup Sichern Allgemein Security v
« Zurück 1 … 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 … 39 Weiter »
Wie verbessern Salz und Pfeffer die Sicherheit von Hashing?

© by FastNeuron

Linearer Modus
Baumstrukturmodus