Einführung
Im Bereich der Datensicherheit verschlüsselnon und Hashing werden häufig verglichen, aber warum ist das so? Verschlüsselung ist eine Zweiwegfunktion, bei der Daten als Klartext übergeben und als Geheimtext ausgegeben werden. In diesem Artikel lesen Sie Klartext, während Geheimtext Text ist, der durch Verschlüsselung unlesbar gemacht wurde. Da die Verschlüsselung Zweiweg ist, können die Daten entschlüsselt werden, sodass sie wieder lesbar sind. Hashing hingegen ist Einweg, d. h. der Klartext wird durch die Verwendung eines Salts in einen einzigartigen Digest umgewandelt, der nicht entschlüsselt werden kann. Technisch gesehen kann Hashing rückgängig gemacht werden, aber die zum Entschlüsseln des Hash-Digests erforderliche Rechenleistung macht die Entschlüsselung unmöglich. Sie können die Entschlüsselung noch komplexer machen, indem Sie einen Hash zusätzlich salten. Ein Salt besteht aus zufälligen Daten, die im Hashing-Algorithmus verwendet werden, um den Hash-Digest weiter zu komplizieren. Der Salt wird dann mit dem Hash-Wert in einer Datenbank gespeichert. Normalerweise verwenden Sie beim Hashing ein Salt, wenn Sie die Komplexität des Hash-Digests erhöhen möchten, ohne es für Kennwortbenutzer komplizierter zu machen, wenn Sie Kennwörter hashen.
Hashing funktioniert so, dass der Klartext an einen Hash-Algorithmus übergeben wird, der dann den Hash-Digest generiert. Der Hash-Algorithmus selbst führt verschiedene mathematische Berechnungen mit den Klartextdaten durch, um den Hash-Digest zu generieren. Dieser Algorithmus ist am effektivsten, wenn er kollisionsresistent ist. Kollisionsresistenz bedeutet, dass alle Digests eindeutig sind und sich nicht überschneiden. Das bedeutet, dass der Hash-Algorithmus komplex genug sein muss, um überlappende Hashes zu vermeiden, aber nicht so komplex, dass die Berechnung der Hashes zu lange dauert. Es gibt zwei verschiedene Arten der Verschlüsselung, und sowohl Verschlüsselung als auch Hashing haben mehrere gängige Algorithmentypen.
Gängige Verschlüsselungs- und Hashing-Algorithmen
Es gibt zwei Arten der Verschlüsselung: Asymmetrisch und symmetrischBei der asymmetrischen Verschlüsselung werden zwei verschiedene Schlüssel, ein öffentlicher und ein privater Schlüssel, zur Ver- und Entschlüsselung verwendet. Der private Schlüssel wird zur Verschlüsselung der Daten verwendet und vor allen außer der Person, die die Daten verschlüsselt, geheim gehalten. Der öffentliche Schlüssel ist für jedermann zugänglich und wird zur Entschlüsselung verwendet. Durch die asymmetrische Verschlüsselung kann die Authentizität der Daten überprüft werden, da sie bei einer Änderung während der Übertragung nicht mit dem privaten Schlüssel erneut verschlüsselt werden können. Bei der symmetrischen Verschlüsselung wird derselbe Schlüssel sowohl zur Ver- als auch zur Entschlüsselung verwendet. Diese Art der Verschlüsselung benötigt weniger Rechenleistung und ist schneller, aber weniger sicher, da nur ein Schlüssel verwendet wird.
Symmetrische Verschlüsselungsalgorithmen:
- Erweiterter Verschlüsselungsstandard (AES)
- Kugelfisch
- Twofish
- Rivest CiPher (RC4) [Veraltet]
- Data Encryption Standard (DES) [Veraltet]
Asymmetrische Verschlüsselungsalgorithmen:
- Algorithmus für digitale Signaturen mit elliptischer Kurve (ECDSA)
- Rivest-Shamir-Adleman (RSA)
- Diffie-Hellman
- Pretty Good Privacy (PGP)
Hashing-Algorithmen:
- Message Digest-Algorithmus (MD5)
- Sicherer Hashing-Algorithmus (SHA-1 [veraltet], SHA-2, SHA-3)
- WHIRLPOOL
- TIGER
- Zyklische Reduktionsprüfung (CRC32)
Anwendungsfälle für Hashing und Verschlüsselung
Obwohl sie ähnlich sind, werden Verschlüsselung und Hashing für unterschiedliche Zwecke eingesetzt. Hashing wird beispielsweise zum Vergleich großer Datenmengen verwendet. Hash-Werte lassen sich aufgrund ihrer prägnanteren Struktur deutlich einfacher vergleichen als große Datenblöcke. Hashing wird auch zum Mapping von Daten verwendet, da sich Werte mithilfe von Hashes schnell finden lassen und sich gute Hashes nicht überschneiden. Hashes werden auch in digitalen Signaturen und zur Erstellung zufälliger Zeichenfolgen verwendet, um Datenduplikate in Datenbanken zu vermeiden. Da Hashing kaum rückgängig gemacht werden kann, werden Hashing-Algorithmen für Passwörter verwendet. Dadurch werden Passwörter kürzer und für Angreifer undurchschaubar.
Verschlüsselung hingegen wird in der Regel zur Verschlüsselung von Daten während der Übertragung eingesetzt. Übertragene Daten sind nur für den Empfänger lesbar und müssen daher so gesendet werden, dass ein Angreifer sie nicht lesen kann. Verschlüsselung verbirgt die Daten vor unbefugtem Zugriff und ermöglicht nur dem Besitzer des Entschlüsselungsschlüssels das Lesen der Daten. Verschlüsselung wird auch zum Speichern und Abrufen von Daten in Datenbanken, bei Authentifizierungsmethoden und in anderen Fällen eingesetzt, in denen Daten im Ruhezustand verborgen, aber später abgerufen werden müssen.
Wann wird Hashing verwendet?
Hashing ist im Allgemeinen dann sinnvoll, wenn Sie eine Datendarstellung mit fester Größe benötigen, die Datenintegrität effizient überprüfen möchten oder eine schnelle und gleichmäßige Verteilung von Daten in verschiedenen Anwendungen wie Sicherheit, Datenabruf und verteilten Systemen benötigen. Hashfunktionen werden häufig in verschiedenen Anwendungen der Informatik und Informationssicherheit eingesetzt. Hier sind einige Szenarien, in denen Hashing besonders nützlich ist:
-
Überprüfung der Datenintegrität
Hashing wird häufig verwendet, um die Integrität von Daten zu überprüfen. Durch die Generierung eines Hashwerts (Prüfsumme) eines Datenelements und den Vergleich mit einem zuvor berechneten Hashwert lässt sich schnell feststellen, ob die Daten verändert wurden. Dies ist entscheidend, um die Integrität von Dateien während der Datenübertragung oder -speicherung zu gewährleisten.
-
Passwortspeicher
Hashing ist für die sichere Speicherung von Passwörtern unerlässlich. Anstatt die eigentlichen Passwörter zu speichern, speichern Systeme deren Hashwerte. Bei Anmeldeversuchen wird das eingegebene Passwort gehasht und mit dem gespeicherten Hash verglichen. Auf diese Weise sind die ursprünglichen Passwörter selbst bei einer Kompromittierung der Hashwerte nicht so leicht wiederherzustellen.
-
Digitale Signaturen
Hash-Funktionen sind ein grundlegender Bestandteil digitaler Signaturen. Bei digitalen Signaturverfahren wird ein Hash der Nachricht mit einem privaten Schlüssel signiert. Empfänger können die Signatur mithilfe des öffentlichen Schlüssels des Absenders und durch Vergleich des berechneten Hash-Werts mit dem empfangenen Hash-Wert verifizieren.
-
Kryptografische Anwendungen
Hash-Funktionen werden häufig in kryptografischen Protokollen und Algorithmen verwendet. Sie spielen eine Rolle bei Message Authentication Codes (MACs), Key Derivation Functions (KDFs) und verschiedenen anderen Sicherheitsmechanismen, um die Integrität und Authentizität von Daten zu gewährleisten.
-
Hash-Tabellen und Datenabruf
Hashfunktionen werden in Hashtabellen verwendet, einer Datenstruktur, die einen effizienten Datenabruf ermöglicht. Durch die Zuordnung von Schlüsseln zu Indizes in einem Array mithilfe einer Hashfunktion ermöglichen Hashtabellen schnelle Nachschlagevorgänge.
Wann sollten Daten verschlüsselt werden?
Die Verschlüsselung von Daten ist in Szenarien, in denen Vertraulichkeit und Datenschutz oberste Priorität haben, von entscheidender Bedeutung. In den folgenden Situationen ist die Verschlüsselung von Daten dringend zu empfehlen:
-
Datenübertragung
Bei der Übertragung vertraulicher Informationen über Netzwerke, beispielsweise beim Online-Banking, beim Zugriff auf E-Mail-Konten oder beim Online-Einkauf, sorgt die Verschlüsselung der Daten dafür, dass diese selbst bei Abfangen nicht ohne Weiteres von Unbefugten gelesen werden können. Sichere Protokolle wie HTTPS verwenden Verschlüsselung, um Daten während der Übertragung zu schützen.
-
Gespeicherte persönliche Informationen
Persönliche Informationen, einschließlich Finanzunterlagen, Krankenakten und Identifikationsdaten, sollten verschlüsselt auf Geräten oder Servern gespeichert werden. Dies schützt die Daten vor unbefugtem Zugriff, insbesondere im Falle von Gerätediebstahl oder Datenlecks.
-
Datenbanksicherheit
Datenbanken mit vertraulichen Informationen wie Benutzeranmeldeinformationen, Kreditkartendaten oder proprietären Geschäftsdaten sollten verschlüsselt werden, um sie vor unbefugtem Zugriff zu schützen. Verschlüsselungsmechanismen wie Transparent Data Encryption (TDE) können zum Verschlüsseln ganzer Datenbanken oder einzelner Spalten eingesetzt werden.
-
Sicherung und Speicherung
Datensicherungen und -speicherung, ob auf physischen Geräten oder in der Cloud, sollten verschlüsselt erfolgen. Dies schützt die Informationen bei Datenverlust oder Diebstahl von Speichermedien.
-
Laptops und Mobilgeräte
Die Verschlüsselung von Daten auf Laptops, Mobiltelefonen und anderen tragbaren Geräten ist unerlässlich. Bei Verlust oder Diebstahl dieser Geräte verhindert die Verschlüsselung, dass Unbefugte einfach auf die gespeicherten Daten zugreifen können.
Vergleiche
| Verschlüsselung | Hashing | |
|---|---|---|
| Definition | Eine bidirektionale Funktion, die Klartextdaten aufnimmt und in nicht entzifferbaren Geheimtext umwandelt. | Eine Einwegmethode zum Verbergen vertraulicher Daten. Mithilfe eines Hashing-Algorithmus wird aus einem Klartext ein eindeutiger Hash-Digest, der ohne erheblichen Aufwand nicht mehr in den ursprünglichen Klartext zurückverwandelt werden kann. |
| Reversibel oder irreversibel? | Reversibel | Irreversible |
| Ausgabe mit variabler oder fester Länge? | Variable Länge | Feste Länge |
| Zu den Arten | Asymmetrisch und symmetrisch | Hashing |
| Gängige Algorithmen | AES, RC4, DES, RSA, ECDSA | SHA-1, SHA-2, MD5, CRC32, WHIRLPOOL |
