Beschreiben von Verschlüsselung und Hashing
Eine Möglichkeit zum Entschärfen gängiger Cybersicherheitsbedrohungen besteht darin, sensible und wertvolle Daten zu verschlüsseln. Verschlüsselung ist der Vorgang, daten unlesbar und unbrauchbar für nicht autorisierte Benutzer zu machen. Um verschlüsselte Daten zu verwenden oder zu lesen, muss sie entschlüsselt werden, was die Verwendung eines geheimen Schlüssels erfordert. Auch wenn ein Angreifer verschlüsselte Daten abfängt oder Zugriff darauf erhält, bleiben diese ohne den entsprechenden Schlüssel wertlos.
Verschlüsselungstypen
Es gibt zwei primäre Verschlüsselungstypen: symmetrisch und asymmetrisch.
Symmetrische Verschlüsselung
Die symmetrische Verschlüsselung verwendet denselben Schlüssel zum Verschlüsseln und Entschlüsseln von Daten. Da nur ein Schlüssel beteiligt ist, ist die symmetrische Verschlüsselung rechenschnell und gut geeignet zum Verschlüsseln großer Datenmengen , z. B. Dateien, die auf einer Festplatte oder Datensätze in einer Datenbank gespeichert sind.
Die wichtigste Herausforderung bei der symmetrischen Verschlüsselung ist die Schlüsselverteilung: Beide Parteien benötigen Zugriff auf denselben geheimen Schlüssel, und die sichere Freigabe dieses Schlüssels – insbesondere über ein Netzwerk – kann schwierig sein.
Asymmetrische Verschlüsselung
Asymmetrische Verschlüsselung verwendet ein Schlüsselpaar: einen öffentlichen Schlüssel und einen privaten Schlüssel. Diese Schlüssel sind mathematisch verknüpft, aber Sie können den privaten Schlüssel nicht vom öffentlichen Schlüssel ableiten.
- Mit dem öffentlichen Schlüssel verschlüsselte Daten können nur mit dem entsprechenden privaten Schlüssel entschlüsselt werden.
- Mit dem privaten Schlüssel signierte Daten können mit dem entsprechenden öffentlichen Schlüssel überprüft werden.
Da der öffentliche Schlüssel frei freigegeben werden kann, löst die asymmetrische Verschlüsselung das Schlüsselverteilungsproblem der symmetrischen Verschlüsselung. Jeder kann Daten mithilfe Ihres öffentlichen Schlüssels verschlüsseln, aber nur Sie – halten den privaten Schlüssel – können sie entschlüsseln. Asymmetrische Verschlüsselung wird in vielen Sicherheitsprotokollen verwendet, mit denen Sie täglich interagieren, einschließlich HTTPS, das Websites sichert, und E-Mail-Verschlüsselung.
Digitale Signaturen
Die asymmetrische Verschlüsselung ermöglicht auch digitale Signaturen, die sowohl die Authentizität als auch die Integrität von Daten überprüfen. Wenn ein Absender Daten mit seinem privaten Schlüssel signiert, kann jeder Benutzer mit dem öffentlichen Schlüssel des Absenders folgendes überprüfen:
- Die Daten stammen aus dem erwarteten Absender (Authentizität).
- Die Integrität der Daten wurde nach ihrer Unterzeichnung nicht verändert.
Digitale Signaturen werden verwendet, um Softwaredownloads zu überprüfen, E-Mail-Nachrichten zu authentifizieren und elektronische Dokumente und Transaktionen zu sichern.
Verschlüsselung nach Datenstatus
Verschlüsselung für ruhende Daten
Ruhende Daten sind Daten, die auf einem physischen Gerät gespeichert sind, z. B. auf einer Serverfestplatte, einer Datenbank oder einem Cloudspeicherkonto. Die Verschlüsselung ruhender Daten stellt sicher, dass die Daten nicht lesbar sind, ohne dass die Schlüssel entschlüsselt werden müssen.
Wenn ein Angreifer in den Besitz einer Festplatte mit verschlüsselten Daten gelangt, aber keinen Zugriff auf die Verschlüsselungsschlüssel besitzt, kann er die Daten nicht lesen. Dieser Schutz bleibt auch dann erhalten, wenn das physische Speichermedium gestohlen wird oder ohne Autorisierung auf das Speicherkonto zugegriffen wird.
Verschlüsselung für Daten während der Übertragung
Daten bei der Übertragung sind Daten, die von einem Standort in einen anderen verschoben werden, z. B. über das Internet, zwischen Diensten oder über ein privates Netzwerk. Daten während der Übertragung sind anfällig für die Abfangen von Personen, die den Netzwerkdatenverkehr beobachten können.
Das Verschlüsseln von Daten während der Übertragung schützt sie vor Lauschangriffen und Abfangen. HTTPS ist das vertrautste Beispiel: Wenn Sie über HTTPS auf eine Website zugreifen, wird die Verbindung mit Transport Layer Security (TLS) gesichert, wodurch sichergestellt wird, dass zwischen Ihrem Browser und dem Server ausgetauschte Daten von Dritten nicht gelesen werden können. Das gleiche Prinzip gilt für Daten, die zwischen Clouddiensten und VPN-Verbindungen verschoben werden, die Datenverkehr über öffentliche Netzwerke schützen.The same principle applies to data moving between cloud services and to VPN connections that protect traffic over public networks.
Verschlüsselung für Daten, die verwendet werden
Daten, die verwendet werden, beziehen sich auf daten, die aktiv verarbeitet werden, z. B. Daten, die in den Arbeitsspeicher (RAM) eines Computers geladen oder von einer CPU bearbeitet werden. Die herkömmliche Verschlüsselung schützt Daten im Ruhezustand und während der Übertragung, aber Daten werden in der Regel entschlüsselt, wenn sie zur Verarbeitung in den Arbeitsspeicher geladen werden, wodurch ein Fenster potenzieller Gefährdung entsteht.
Die Verschlüsselung der verwendeten Daten wird durch vertrauliche Computertechnologien erreicht, die geschützte Ausführungsumgebungen erstellen, manchmal auch als sichere Enklaven bezeichnet, bei denen Daten verarbeitet werden können, ohne auch dem Betriebssystem oder Hypervisor offenzulegen. Dies ist besonders wichtig in Multiinstanzenumgebungen, in denen unterschiedliche Kunden die gleiche physische Hardware gemeinsam nutzen können.
Schlüsselverwaltung
Verschlüsselung ist nur so sicher wie die Schlüssel, die zum Verschlüsseln von Daten verwendet werden. Ein Verschlüsselungsschlüssel, der gestohlen oder verfügbar gemacht wird, macht verschlüsselte Daten für Angreifer zugänglich, wodurch der Zweck der Verschlüsselung verloren geht. Die Schlüsselverwaltung behandelt, wie Verschlüsselungsschlüssel generiert, gespeichert, geschützt, gedreht und schließlich zurückgezogen werden.
Zu den bewährten Methoden für die Schlüsselverwaltung gehören:
- Speichern von Schlüsseln getrennt von den daten, die sie schützen: Wenn Schlüssel zusammen mit verschlüsselten Daten gespeichert werden, hat ein Angreifer, der Zugriff auf eine Schlüssel erhält, automatisch beides.
- Die Verwendung dedizierter Hardware für die Schlüsselspeicherung: Hardwaresicherheitsmodule (HARDWARE Security Modules, HSMs) sind spezielle, manipulationssichere Geräte, die speziell zum Speichern und Schützen kryptografischer Schlüssel entwickelt wurden.
- Regelmäßiges Drehen von Schlüsseln: Durch das regelmäßige Ändern von Verschlüsselungsschlüsseln wird die Datenmenge begrenzt, die verfügbar gemacht wird, wenn ein Schlüssel jemals kompromittiert wird.
- Steuern des Zugriffs auf Schlüssel eng: Nur autorisierte Benutzer und Systeme sollten auf Entschlüsselungsschlüssel zugreifen können, die durch starke Authentifizierungs- und Zugriffsprinzipien mit geringsten Berechtigungen erzwungen werden.
Cloud-Schlüsselverwaltungsdienste wie Azure Key Vault bieten einen zentralen, verwalteten Dienst zum Speichern und Verwalten von Verschlüsselungsschlüsseln, Zertifikaten und geheimen Schlüsseln. Diese Dienste reduzieren das Risiko einer Schlüsselexposition, unterstützen Schlüsseldrehungsworkflows und integrieren in andere Clouddienste, um Verschlüsselung bereitzustellen, ohne Schlüsselmaterial für Anwendungscode oder Administratoren verfügbar zu machen.
Hashing-Verfahren
Hashing verwendet einen Algorithmus, um alle Eingaben in eine Zeichenfolge mit fester Länge zu konvertieren, die als Hash (oder Digest) bezeichnet wird. Im Gegensatz zur Verschlüsselung ist Hashing ein unidirektionaler Prozess: Sie können einen Hash nicht umkehren, um die ursprüngliche Eingabe wiederherzustellen. Jedes Mal, wenn dieselbe Eingabe mit demselben Algorithmus hasht wird, wird derselbe Hashwert erzeugt, wodurch der Hash zu einem zuverlässigen eindeutigen Fingerabdruck für diese Daten wird.
Hashing unterscheidet sich von der Verschlüsselung, da keine Schlüssel verwendet werden, und der Hashwert kann nicht zurück zu den ursprünglichen Daten zurückgesetzt werden. Dies macht hashing nützlich für Szenarien, in denen Sie Daten überprüfen müssen, ohne den ursprünglichen Wert speichern oder lesen zu müssen.
So schützt Hashing Kennwörter
Hashing wird häufig verwendet, um gespeicherte Kennwörter zu schützen. Anstatt das tatsächliche Kennwort eines Benutzers zu speichern, speichert ein System nur den Hash dieses Kennworts. Wenn sich ein Benutzer anmeldet, hashet das System das eingegebene Kennwort und vergleicht es mit dem gespeicherten Hash. Wenn die Hashes übereinstimmen, ist die Authentifizierung erfolgreich – ohne dass das System das tatsächliche Kennwort in Nur-Text speichert oder überträgt.
Dies ist sicherer als das Speichern von Nur-Text-Kennwörtern, da selbst wenn die Kennwortdatenbank gestohlen wird, erhält der Angreifer nur Hashes. Das grundlegende Hashing weist jedoch eine bekannte Sicherheitsanfälligkeit auf: Da Hashfunktionen deterministisch sind, können Angreifer Hashes für Millionen gängiger Kennwörter vorkompilieren und sie in Tabellen ( als Regenbogentabellen oder Wörterbuchangriffe bezeichnet ) nachschlagen, um Übereinstimmungen zu finden.
Salting
Um vor vorkompilierten Angriffen zu schützen, werden Kennwörter in der Regel vor dem Hashing gesalzen . Ein Salt ist ein eindeutiger, zufällig generierter Wert, der für jedes einzelne Kennwort erstellt und vor dem Hashing hinzugefügt wird. Da jedes Kennwort ein anderes Salz erhält, erzeugen zwei Benutzer mit demselben Kennwort unterschiedliche Hashes in der Datenbank. Dies macht präkompilierte Regenbogentabellen unwirksam, da der Angreifer für jeden möglichen Salzwert eine separate Nachschlagetabelle benötigen würde.
Salting ist eine bewährte Methode für die sichere Kennwortspeicherung und ist für jedes ordnungsgemäß implementierte Authentifizierungssystem erforderlich.