Verschlüsselung, Hashing und Salting sind verwandte Techniken, aber jeder dieser Prozesse verfügt über Eigenschaften, die sie für unterschiedliche Zwecke verwenden.
Zusamenfassend, Bei der Verschlüsselung werden die Daten so verschlüsselt, dass nur diejenigen mit dem Schlüssel darauf zugreifen können. Dies schützt es vor unbefugten Personen.
Kryptografisches Hashing umfasst Berechnungen, die nicht rückgängig gemacht werden können. Diese Funktionen verfügen über einige spezielle Eigenschaften, die sie für digitale Signaturen und andere Authentifizierungsarten nützlich machen.
Beim Salting werden zufällige Daten hinzugefügt, bevor sie einer kryptografischen Hash-Funktion unterzogen werden. Es wird hauptsächlich zum Schutz von Passwörtern während der Speicherung verwendet, kann jedoch auch für andere Datentypen verwendet werden.
Was ist Verschlüsselung??
Einfach gesagt, Bei der Verschlüsselung wird ein Code verwendet, um den Zugriff anderer Parteien auf Informationen zu verhindern. Wenn Daten verschlüsselt wurden, können nur diejenigen darauf zugreifen, die über den Schlüssel verfügen. Solange ein ausreichend kompliziertes System verwendet wird und es korrekt verwendet wird, wird verhindert, dass Angreifer die Daten sehen.
Daten werden mit Verschlüsselungsalgorithmen verschlüsselt, die auch als Chiffren bezeichnet werden. Einer der wichtigsten Unterschiede zwischen Verschlüsselung und Hashing (auf die wir später noch eingehen werden) ist, dass die Verschlüsselung so konzipiert ist, dass sie in beide Richtungen funktioniert. Dies bedeutet, dass etwas, das einmal mit einem Schlüssel verschlüsselt wurde, auch entschlüsselt werden kann.
Dies macht die Verschlüsselung in einer Reihe von Situationen nützlich, z. B. zum sicheren Speichern oder Übertragen von Informationen. Sobald die Daten ordnungsgemäß verschlüsselt wurden, gelten sie als sicher und können nur von Personen verwendet werden, die über den Schlüssel verfügen. Der bekannteste Typ ist die Verschlüsselung mit symmetrischen Schlüsseln, bei der sowohl bei der Verschlüsselung als auch bei der Entschlüsselung derselbe Schlüssel verwendet wird.
Die Verschlüsselung mit öffentlichen Schlüsseln ist etwas komplizierter, da ein öffentlich verfügbarer Schlüssel zum Verschlüsseln von Daten verwendet wird, während der zugehörige private Schlüssel zum Entschlüsseln verwendet wird. Mit dieser Funktion können Personen, die sich noch nie getroffen haben, sicher kommunizieren. Die Verschlüsselung mit öffentlichen Schlüsseln ist auch ein wichtiger Bestandteil digitaler Signaturen, mit denen die Authentizität und Integrität von Daten und Nachrichten überprüft wird.
Siehe auch: Allgemeine Verschlüsselungsarten erklärt
Allgemeine Verschlüsselungsalgorithmen
- Caesar-Chiffre – Dies ist ein einfacher Code, bei dem jeder Buchstabe um eine feste Anzahl von Stellen verschoben wird. Wenn eine Caesar-Chiffre eine Verschiebung von drei hat, wird jedes “a” zu einem “d”, jedes “b” wird zu einem “e”, jedes “c” wird zu einem “f” und so weiter. Es ist nach Julius Caesar benannt, der als erster das Schema verwendet hat.
- AES – Der Advanced Encryption Standard ist ein komplexer Algorithmus mit symmetrischen Schlüsseln, der einen wesentlichen Teil unserer modernen Kommunikation sichert. Es umfasst eine Reihe komplexer Schritte und wird häufig zum Verschlüsseln von Daten in TLS, Messaging-Apps, im Ruhezustand und in vielen anderen Situationen verwendet. Wir beschäftigen uns hier eingehender mit der AES-Verschlüsselung.
- 3DES – Triple DES basiert auf dem DES-Algorithmus. Als die wachsende Computerleistung DES unsicher machte, wurde 3DES als verstärkter Algorithmus entwickelt. In 3DES werden Daten nicht nur einmal, sondern dreimal durch den DES-Algorithmus geleitet, was das Knacken erschwert. 3DES kann für viele der gleichen Aufgaben wie AES verwendet werden, aber nur bestimmte Implementierungen gelten als sicher.
- RSA – Die Rivest-Shamir-Adleman-Chiffre war die erste weit verbreitete Form der Public-Key-Kryptographie. Damit können Entitäten sicher kommunizieren, auch wenn sie sich noch nicht kennengelernt haben oder die Möglichkeit hatten, Schlüssel auszutauschen. Es kann in verschiedenen Sicherheitsprotokollen wie PGP und TLS verwendet werden. Hier finden Sie eine ausführliche Anleitung zur RSA-Verschlüsselung.
- ECDSA – Der Algorithmus für die digitale Signatur mit elliptischer Kurve ist eine Variante von DSA, die die Kryptographie mit elliptischen Kurven verwendet. Als Public-Key-Algorithmus kann er in ähnlichen Situationen wie RSA angewendet werden, obwohl er aufgrund einiger Sicherheitsprobleme seltener implementiert wird.
Verschlüsselung in Aktion
Um Ihnen eine Vorstellung davon zu geben, wie die Verschlüsselung in der Praxis funktioniert, verwenden wir die Caesar-Chiffre als Beispiel. Wenn wir eine Nachricht von verschlüsseln wollten “Lass uns essen“Mit einer Verschiebung von drei, die”LWürde einÖ“, das “eWürde einh” und so weiter. Dies gibt uns eine verschlüsselte Nachricht von:
Ohw’v hdw
Um die Nachricht zu entschlüsseln, müsste der Empfänger wissen, dass der Verschlüsselungsalgorithmus eine Verschiebung von drei umfasst, und dann jeden Buchstaben um drei Stellen zurücksetzen. Wenn wir wollten, könnten wir den Code variieren, indem wir jeden Buchstaben um eine andere Zahl verschieben. Wir könnten sogar einen weitaus ausgefeilteren Algorithmus verwenden.
Ein Beispiel ist AES. Wenn wir einen 128-Bit-AES-Online-Rechner zum Verschlüsseln verwenden “Lass uns essen“Mit einem Schlüssel von”1234“, es gibt uns:
FeiUVFnIpb9d0cbXP / Ybrw ==
Dieser Chiffretext kann nur mit dem Schlüssel „1234”. Wenn wir einen komplexeren Schlüssel verwenden und diesen geheim halten, können wir die Daten als vor Angreifern geschützt betrachten.
Was ist Haschisch??
Kryptografische Hash-Funktionen sind eine spezielle Art der Einwegberechnung. Sie nehmen eine Folge von Daten beliebiger Größe auf und geben immer eine Ausgabe mit einer vorgegebenen Länge aus. Dieser Ausgang heißt hash, Hashwert oder Nachrichtenübersicht. Da diese Funktionen keine Tasten verwenden, ist das Ergebnis für eine bestimmte Eingabe immer das gleiche.
Es spielt keine Rolle, ob Ihre Eingabe die Gesamtheit von ist Krieg und Frieden oder einfach zwei Buchstaben, Das Ergebnis einer Hash-Funktion ist immer gleich lang. Hash-Funktionen haben verschiedene Eigenschaften, die sie nützlich machen:
- Sie sind Einwegfunktionen – Dies bedeutet, dass es keinen praktischen Weg gibt, um herauszufinden, wie die ursprüngliche Eingabe von einem bestimmten Hash-Wert war.
- Es ist unwahrscheinlich, dass zwei Eingaben den gleichen Hash-Wert haben – Es ist zwar möglich, dass zwei verschiedene Eingaben den gleichen Hash-Wert ergeben, die Chancen dafür sind jedoch so gering, dass wir uns darüber keine Sorgen machen. Aus praktischen Gründen können Hash-Werte als eindeutig betrachtet werden.
- Der gleiche Input liefert immer das gleiche Ergebnis – Jedes Mal, wenn Sie dieselben Informationen in eine bestimmte Hash-Funktion einfügen, wird immer dieselbe Ausgabe geliefert.
- Schon die geringste Veränderung ergibt ein ganz anderes Ergebnis – Wenn auch nur ein einzelnes Zeichen geändert wird, unterscheidet sich der Hash-Wert erheblich.
Wofür werden Hashes verwendet??
Hash-Funktionen mögen einige interessante Eigenschaften haben, aber was können wir eigentlich damit machen? Die Möglichkeit, eine eindeutige Ausgabe mit fester Größe für eine Eingabe beliebiger Länge auszugeben, scheint nichts anderes als ein obskurer Partytrick zu sein, aber Hash-Funktionen haben tatsächlich eine Reihe von Verwendungsmöglichkeiten.
Sie sind eine Kernkomponente von digitale Signaturen, Dies ist ein wichtiger Aspekt bei der Überprüfung der Authentizität und Integrität im Internet. Hash-Nachrichtenauthentifizierungscodes (HMACs) verwenden ebenfalls Hash-Funktionen, um ähnliche Ergebnisse zu erzielen.
Kryptografische Hash-Funktionen können auch als normale Hash-Funktionen verwendet werden. In diesen Szenarien können sie als Prüfsummen zum Überprüfen der Datenintegrität, als Fingerabdruckalgorithmen zum Eliminieren doppelter Daten oder zum Erstellen von Hashtabellen zum Indizieren von Daten dienen.
Allgemeine kryptografische Hash-Funktionen
- MD5 –Dies ist eine Hash-Funktion, die erstmals 1991 von Ron Rivest veröffentlicht wurde. Es gilt jetzt als unsicher und sollte nicht für kryptografische Zwecke verwendet werden. Trotzdem kann es weiterhin zur Überprüfung der Datenintegrität verwendet werden.
- SHA-1 – Der sichere Hash-Algorithmus 1 wird seit 1995 verwendet, gilt jedoch seit 2005 nicht mehr als sicher, als eine Reihe erfolgreicher Kollisionsangriffe stattfanden. Es wird jetzt empfohlen, stattdessen entweder SHA-2 oder SHA-3 zu implementieren.
- SHA-2 – Dies ist eine Familie von Hash-Funktionen, die als Nachfolger von SHA-1 fungieren. Diese Funktionen enthalten zahlreiche Verbesserungen, die sie in einer Vielzahl von Anwendungen sicher machen. Trotzdem sind SHA-256 und SHA-512 anfällig für Längenerweiterungsangriffe. Daher gibt es bestimmte Situationen, in denen es am besten ist, SHA-3 zu implementieren.
- SHA-3 – SHA-3 ist das neueste Mitglied der Secure Hash Algorithm-Familie, unterscheidet sich jedoch erheblich von seinen Vorgängern. Zu diesem Zeitpunkt hat es SHA-2 noch nicht ersetzt, bietet Kryptographen jedoch eine weitere Option, die in bestimmten Situationen eine verbesserte Sicherheit bietet.
- RIPEMD – RIPEMD ist eine weitere Funktionsfamilie, die von der akademischen Gemeinschaft entwickelt wurde. Es basiert auf vielen Ideen von MD4 (dem Vorgänger von MD5) und ist nicht durch Patente eingeschränkt. RIPEMD-160 gilt nach wie vor als relativ sicher, wurde jedoch nicht vielfach eingesetzt.
- Whirlpool – Whirlpool ist eine Hash-Funktion aus der Familie der Square-Block-Chiffren. Es basiert auf einer Modifikation von AES und unterliegt keinen Patenten. Es gilt als sicher, ist aber etwas langsamer als einige seiner Alternativen, was zu einer eingeschränkten Akzeptanz geführt hat.
Hashing-Funktionen in Aktion
Nachdem Sie die Hash-Funktionen verstanden haben, ist es an der Zeit, sie in die Praxis umzusetzen. Wenn wir den gleichen Text von „Lass uns essen“In einen SHA-256 Online-Rechner, gibt es uns:
5c79ab8b36c4c0f8566cee2c8e47135f2536d4f715a22c99fa099a04edbbb6f2
Wenn wir auch nur ein Zeichen durch eine einzelne Position ändern, ändert sich der gesamte Hash drastisch. Ein Tippfehler wie “Ich hab’s gegessen”Ergibt ein völlig anderes Ergebnis:
4be9316a71efc7c152f4856261efb3836d09f611726783bd1fef085bc81b1342
Anders als bei der Verschlüsselung können wir diesen Hash-Wert nicht in umgekehrter Reihenfolge durch die Funktion führen, um unsere Eingabe erneut zu erhalten. Obwohl diese Hash-Funktionen nicht wie Verschlüsselungen verwendet werden können, sind sie aufgrund ihrer Eigenschaften ein wertvoller Bestandteil digitaler Signaturen und vieler anderer Anwendungen.
Hash-Funktionen und Passwörter
Hash-Funktionen haben eine weitere allgemeine Verwendung, die wir noch nicht erörtert haben. Sie sind auch eine Schlüsselkomponente von Bewahren Sie unsere Passwörter während der Speicherung auf.
Sie haben wahrscheinlich Dutzende von Online-Konten mit Passwörtern. Für jedes dieser Konten muss Ihr Passwort irgendwo gespeichert werden. Wie kann Ihr Login überprüft werden, wenn die Website keine eigene Kopie Ihres Passworts hat??
Unternehmen wie Facebook oder Google speichern Milliarden von Benutzerpasswörtern. Wenn diese Unternehmen die Passwörter als Klartext speichern, kann jeder Angreifer, der sich in die Passwortdatenbank einarbeiten kann, auf jedes gefundene Konto zugreifen.
Dies wäre sowohl für das Unternehmen als auch für seine Benutzer eine schwerwiegende Sicherheitskatastrophe. Wenn jedes einzelne Passwort Angreifern ausgesetzt wäre, wären alle ihre Konten und Benutzerdaten in Gefahr.
Der beste Weg, dies zu verhindern, ist Speichern Sie nicht die Passwörter selbst, sondern die Hash-Werte für die Passwörter. Wie wir im vorherigen Abschnitt besprochen haben, arbeiten kryptografische Hash-Funktionen in eine Richtung und erzeugen eine Ausgabe mit fester Größe, die nicht rückgängig gemacht werden kann.
Wenn eine Organisation den Hash eines Kennworts anstelle des Kennworts selbst speichert, kann sie überprüfen, ob die beiden Hashes übereinstimmen, wenn sich ein Benutzer anmeldet. Benutzer geben ihre Kennwörter ein, die dann gehasht werden. Dieser Hash wird dann mit dem in der Datenbank gespeicherten Passwort-Hash verglichen. Stimmen die beiden Hashes überein, wurde das richtige Passwort eingegeben und der Benutzer erhält Zugriff.
Dieses Setup bedeutet das Das Passwort muss nie gespeichert werden. Wenn ein Angreifer in die Datenbank eindringt, werden nur die Kennwort-Hashes und nicht die Kennwörter gefunden.
Das Speichern von Hashing-Passwörtern hindert Angreifer zwar nicht daran, die Hashes zum Ermitteln der Passwörter zu verwenden, erschwert jedoch ihre Arbeit erheblich und macht sie zeitaufwändig. Dies bringt unser letztes Thema auf den Punkt, das Salzen.
Was ist salzen?
Salzen ist im Wesentlichen das Hinzufügen von Zufallsdaten, bevor diese eine Hash-Funktion durchlaufen, und sie werden am häufigsten mit Passwörtern verwendet.
Die beste Erklärung für die Verwendung von Salzen ist, zu diskutieren, warum wir sie überhaupt brauchen. Sie haben vielleicht gedacht, dass das Speichern der Hashes von Passwörtern alle unsere Probleme gelöst hätte, aber leider sind die Dinge etwas komplexer.
Schwache Passwörter
Viele Leute haben wirklich schlechte Passwörter, vielleicht auch Sie. Das Problem ist, dass Menschen dazu neigen, in vorhersehbaren Mustern zu denken und Passwörter zu wählen, die leicht zu merken sind. Diese Kennwörter sind anfällig für Wörterbuchangriffe, bei denen Tausende oder Millionen der häufigsten Kennwortkombinationen pro Sekunde durchlaufen werden, um das richtige Kennwort für ein Konto zu finden.
Wenn stattdessen Passwort-Hashes gespeichert werden, sieht das etwas anders aus. Wenn ein Angreifer auf eine Datenbank mit Kennwort-Hashes stößt, kann er beide verwenden Hash-Tabellen oder Regenbogentische Suche nach passenden Hashes, mit denen sie die Passwörter herausfinden können.
Eine Hash-Tabelle ist eine vorberechnete Liste von Hashes für häufig verwendete Kennwörter, die in einer Datenbank gespeichert sind. Sie erfordern mehr Arbeit im Voraus, aber sobald die Tabelle fertiggestellt ist, ist es viel schneller, die Hashes in der Tabelle nachzuschlagen, als den Hash für jedes mögliche Passwort zu berechnen. Ein weiterer Vorteil ist, dass diese Tabellen mehrfach verwendet werden können.
Rainbow-Tabellen ähneln Hash-Tabellen, beanspruchen jedoch weniger Speicherplatz, was wiederum zu mehr Rechenleistung führt.
Beide Angriffsmethoden werden weitaus praktischer, wenn schwache Kennwörter verwendet werden. Wenn ein Benutzer ein gemeinsames Kennwort hat, ist es wahrscheinlich, dass sich der Hash für das Kennwort in der Hash-Tabelle oder der Rainbow-Tabelle befindet. In diesem Fall ist es nur eine Frage der Zeit, bis ein Angreifer auf das Kennwort eines Benutzers zugreifen kann.
Benutzer können helfen, diese Angriffe abzuwehren, indem sie längere und komplexere Kennwörter auswählen, die mit weitaus geringerer Wahrscheinlichkeit in den Tabellen gespeichert werden. In der Praxis passiert dies nicht annähernd so oft wie es sollte, da Benutzer dazu neigen, Kennwörter zu wählen, die leicht zu merken sind. Als Faustregel gilt, dass leicht zu merkende Dinge für Angreifer oft leicht zu finden sind.
Salze bieten eine andere Möglichkeit, um dieses Problem zu umgehen. Durch Hinzufügen einer zufälligen Datenfolge zu einem Kennwort, bevor es gehasht wird, wird es wesentlich komplexer, was die Chancen für den Erfolg dieser Angriffe beeinträchtigt.
So funktioniert das Salzen in der Praxis
Nehmen wir beispielsweise an, Sie haben ein E-Mail-Konto und Ihr Passwort lautet “1234”. Wenn wir einen SHA-256 Online-Rechner verwenden, erhalten wir den folgenden Hashwert:
03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4
Dieser Hash wird in der Datenbank für Ihr Konto gespeichert. Wenn Sie Ihr Passwort eingeben von “1234”Wird gehasht und der Wert mit dem gespeicherten Wert verglichen. Da die beiden Werte identisch sind, erhalten Sie Zugriff.
Wenn ein Angreifer in die Datenbank einbricht, hat er Zugriff auf diesen Wert sowie alle anderen dort vorhandenen Kennwort-Hashes. Der Angreifer würde dann diesen Hash-Wert nehmen und ihn in seiner vorberechneten Hash-Tabelle oder Regenbogentabelle nachschlagen. Schon seit 1234”Ist eines der gebräuchlichsten Passwörter, sie würden den passenden Hash sehr schnell finden.
Die Hash-Tabelle würde ihnen sagen, dass:
03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4
Entspricht:
1234
Der Angreifer weiß dann, dass Ihr Passwort “1234”. Sie können dieses Passwort dann verwenden, um sich bei Ihrem Konto anzumelden.
Wie Sie sehen, war dies für den Angreifer keine große Arbeit. Um die Sache zu erschweren, fügen wir dem Passwort eine Menge zufälliger Daten hinzu, bevor es gehasht wird. Durch das Salzen wird die Wahrscheinlichkeit, dass Hash- und Regenbogentabellen ein positives Ergebnis erzielen, erheblich verringert.
Nehmen wir ein 16-stelliges Salt von Zufallsdaten:
H82BV63KG9SBD93B
Wir fügen es unserem einfachen Passwort „1234“Wie so:
1234H82BV63KG9SBD93B
Erst jetzt, nachdem wir es gesalzen haben, führen wir es durch dieselbe Hash-Funktion, die wir zuvor ausgeführt haben, und geben Folgendes zurück:
91147f7666dc80ab5902bde8b426aecdb1cbebf8603a58d79182b750c10f1303
Sicher, dieser Hash-Wert ist nicht länger oder komplexer als der vorherige, aber darum geht es nicht. Während sie beide gleich lang sind, “1234H82BV63KG9SBD93B”Ist ein weitaus selteneres Passwort. Daher ist es viel unwahrscheinlicher, dass sein Hash in der Hash-Tabelle gespeichert wird.
Je weniger wahrscheinlich es ist, dass ein Kennwort in einer Hash-Tabelle gespeichert wird, desto weniger wahrscheinlich ist ein Angriff erfolgreich. Auf diese Weise hilft das Hinzufügen von Salzen dabei, Kennwort-Hashes sicherer zu machen.
Ganze Datenbanken hacken
Wenn ein Angreifer Zugriff auf eine ganze Datenbank mit Kennwort-Hashes hat, muss er nicht jeden Hash für jeden Eintrag testen. Stattdessen können sie die gesamte Datenbank nach Übereinstimmungen durchsuchen, die mit ihrer Hash-Tabelle übereinstimmen. Wenn die Datenbank groß genug ist, kann ein Angreifer eine große Anzahl von Konten angreifen, auch wenn sie nur eine Erfolgsquote von fünf Prozent haben.
Wenn den Passwörtern vor dem Hashing eindeutige Salze zugewiesen werden, wird der Prozess dadurch weitaus komplexer. Wenn die Salze ausreichend lang sind, werden die Erfolgschancen viel geringer, was erfordern würde Hash-Tabellen und Regenbogentabellen müssen unerschwinglich groß sein, um passende Hashes finden zu können.
Ein weiterer Vorteil von Salt ist, dass mehrere Benutzer in derselben Datenbank dasselbe Kennwort haben oder dass ein einzelner Benutzer dasselbe Kennwort für mehrere Konten hat. Wenn die Kennwort-Hashes nicht zuvor gesalzen wurden, können Angreifer die Hashes vergleichen und feststellen, dass alle Konten mit demselben Hash-Wert auch dasselbe Kennwort haben.
Dies macht es Hackern leichter, auf die häufigsten Hash-Werte abzuzielen, die ihnen die größten Belohnungen bringen. Wenn Kennwörter zuvor gesalzen werden, unterscheiden sich die Hash-Werte, auch wenn dieselben Kennwörter verwendet werden.
Mögliche Salzschwächen
Das Salzen verliert seine Wirksamkeit, wenn es falsch gemacht wird. Die beiden häufigsten Probleme treten auf, wenn Salze sind zu kurz, oder wenn sie nicht für jedes Passwort eindeutig sind. Kürzere Salze sind immer noch anfällig für Regenbogentabellenangriffe, da sie den resultierenden Hash nicht selten genug machen.
Wenn Salze für jedes gehashte Kennwort wiederverwendet werden und das Salz erkannt wird, ist es viel einfacher, jedes Kennwort in der Datenbank zu ermitteln. Das gleiche Salt zu verwenden bedeutet auch, dass jeder mit demselben Passwort denselben Hash hat.
Gängige Salting-Algorithmen
Es wird nicht empfohlen, normale Hashing-Funktionen zum Speichern von Passwörtern zu verwenden. Stattdessen wurde eine Reihe von Funktionen mit bestimmten Funktionen entwickelt, die zur Erhöhung der Sicherheit beitragen. Dazu gehören Argon2, Scrypt, Bcrypt und PBKDF2.
Argon2
Argon2 war der Gewinner des Password Hashing-Wettbewerbs 2015. In Bezug auf Algorithmen ist es noch relativ neu, aber es hat sich schnell zu einer der vertrauenswürdigsten Funktionen für das Hashing von Passwörtern entwickelt.
Trotz seiner Jugend hat es sich bisher in einer Reihe von Forschungsarbeiten behauptet, die es auf Schwachstellen untersucht haben. Argon2 ist flexibler als die anderen Passwort-Hashing-Algorithmen und kann auf verschiedene Arten implementiert werden.
verschlüsseln
Ausgesprochen “ess Krypta”, Dies ist der zweitjüngste häufig verwendete Passwort-Hashing-Algorithmus. Scrypt wurde 2009 entwickelt und verwendet für seine Berechnungen eine große, jedoch anpassbare Speicherkapazität. Aufgrund seiner anpassbaren Eigenschaften ist es auch dann noch resistent gegen Angriffe, wenn die Rechenleistung mit der Zeit zunimmt.
bcrypt
bcrypt wurde 1999 entwickelt und basiert auf der Blowfish-Chiffre. Es war lange Zeit eines der am häufigsten verwendeten Verfahren für das Hashing von Passwörtern. Heute ist es jedoch anfälliger für FPGAs (Field Programmable Gate Arrays). Aus diesem Grund wird Argon2 in neueren Implementierungen häufig bevorzugt.
PKFD2
Diese Schlüsselableitungsfunktion wurde entwickelt, um PBKDF1 zu ersetzen, das eine kürzere und weniger sichere Schlüssellänge aufwies. Die NIST-Richtlinien von 2023 empfehlen weiterhin PKFD2 für das Hashing von Kennwörtern, Argon2 behebt jedoch einige seiner Sicherheitsprobleme und kann in vielen Situationen eine bessere Option sein.
Verschlüsselung, Hashing und Salting: eine Zusammenfassung
Nachdem wir uns nun mit den Details von Verschlüsselung, Hashing und Salting befasst haben, ist es an der Zeit, die wichtigsten Unterschiede schnell wiederzugeben, damit sie zum Tragen kommen. Jeder dieser Prozesse ist verwandt, dient jedoch einem anderen Zweck.
Bei der Verschlüsselung werden Informationen verschlüsselt, um sie zu schützen. Wenn Daten verschlüsselt sind, können sie nur diejenigen entschlüsseln und darauf zugreifen, die über den richtigen Schlüssel verfügen. Verschlüsselungsalgorithmen sind umkehrbar, sodass wir unsere Daten vor Angreifern schützen und trotzdem bei Bedarf darauf zugreifen können. Es wird in großem Umfang verwendet, um unsere Online-Sicherheit zu gewährleisten, und spielt in vielen unserer Sicherheitsprotokolle eine entscheidende Rolle, um die Sicherheit unserer Daten bei Speicherung und Übertragung zu gewährleisten.
Im Gegensatz, Hashing ist ein Einbahnstraßenprozess. Wenn wir etwas haben, möchten wir nicht in der Lage sein, es in seine ursprüngliche Form zurückzubringen. Kryptografische Hash-Funktionen weisen eine Reihe eindeutiger Eigenschaften auf Erlauben Sie uns, die Authentizität und Integrität von Daten zu beweisen, B. durch digitale Signaturen und Nachrichtenauthentifizierungscodes.
Bestimmte Arten von kryptografischen Hash-Funktionen werden auch zum Speichern unserer Passwörter verwendet. Das Speichern des Hashs eines Kennworts anstelle des Kennworts bietet eine zusätzliche Sicherheitsebene. Wenn ein Angreifer Zugang zu einer Datenbank erhält, kann er nicht sofort auf die Passwörter zugreifen.
Während Passwort-Hashing Hackern das Leben erschwert, kann es dennoch umgangen werden. Hier kommt das Salzen ins Spiel. Salting fügt Passwörtern zusätzliche Daten hinzu, bevor sie gehasht werden, Dies macht Angriffe zeitaufwendiger und ressourcenintensiver. Wenn Salze und Kennwörter richtig verwendet werden, machen sie Hash- und Regenbogentabellen zu unpraktischen Angriffsmitteln.
Verschlüsselung, Hashing und Salting sind wichtige Aspekte, um unsere Online-Sicherheit zu gewährleisten. Wenn diese Prozesse nicht vorhanden wären, hätten Angreifer mit Ihren Konten und Daten ein freies Spiel, so dass Sie keine Sicherheit im Internet haben.
Technologie-1 von tec_estromberg unter CC0
häftigen uns hier mit Verschlüsselung, Hashing und Salting als verwandte Techniken, die jedoch unterschiedliche Eigenschaften aufweisen und für verschiedene Zwecke verwendet werden können. Bei der Verschlüsselung werden Daten mit einem Schlüssel verschlüsselt, um sie vor unbefugtem Zugriff zu schützen. Kryptografisches Hashing hingegen umfasst Berechnungen, die nicht rückgängig gemacht werden können und für digitale Signaturen und andere Authentifizierungsarten nützlich sind. Beim Salting werden zufällige Daten hinzugefügt, um Passwörter während der Speicherung zu schützen. Es ist wichtig, die richtige Technik für den jeweiligen Zweck zu wählen, um die Sicherheit von Daten und Informationen zu gewährleisten.