Schlüsselverwaltung und Datenverschlüsselung Verschlüsselung in AWS-Diensten

Autor / Redakteur: Bertram Dorn / Peter Schmitz

Verschlüsselungstechnologien spielen im Rahmen der Sicherheitsstrategie eine wichtige Rolle. Bei richtiger Handhabung bieten sie eine zusätzliche Schutzebene, die über die Zugriffskontrolle hinausgeht. Bei AWS gibt es einige davon.

Firmen zum Thema

Mit entsprechenden Tools, die sowohl innerhalb als auch außerhalb der Cloud funktionieren, können AWS-Kunden ihre Daten umfassend und kostengünstig schützen.
Mit entsprechenden Tools, die sowohl innerhalb als auch außerhalb der Cloud funktionieren, können AWS-Kunden ihre Daten umfassend und kostengünstig schützen.
(Bild: gemeinfrei / Pixabay )

Bei der Verschlüsselung wandelt ein Algorithmus Informationen in unlesbare Daten (Chiffre) um, die nur mit dem richtigen Schlüssel wieder lesbar werden. Ein einfacher Satz wie "Hallo Welt!" würde verschlüsselt zum Beispiel „1c28df2b595b4e30b­7b07500963dc7c“ lauten. Es gibt verschiedene Arten von Verschlüsselungsalgorithmen, die unterschiedliche Schlüssel verwenden. Ein starker Verschlüsselungsalgorithmus nutzt mathematische Eigenschaften, um einen Chiffre-Text zu erzeugen, der sich ohne den passenden Schlüssel auch mit hoher Rechenleistung nicht entschlüsseln lässt. Entscheidend für die Sicherheit ist daher, wie die Schlüssel verwaltet und geschützt werden.

Ausschlaggebend sind Verschlüsselungsgrad und die Verwaltung der Schlüssel

Verschlüsselung kann Lücken der primären Zugriffskontrolle schließen – etwa, wenn der Ausfall eines Kontrollmechanismus den Zugriff auf Rohdaten einer Festplatte oder eine Netzwerkverbindung ermöglicht. Sind die Daten stark verschlüsselt, ist es für einen Angreifer rechnerisch nicht möglich, sie zu dechiffrieren, solange er nicht mindestens Zugriff auf den Schlüssel hat. Ein Beispiel für einen starken Schlüssel ist der Advanced Encryption Standard (AES) mit 256-Bit-Schlüsseln (AES-256), den AWS auch bei der Server-seitigen S3-Verschlüsselung (Simple Storage Service) einsetzt. AES-256 ist einer der stärksten von Industrie und Regierung anerkannten Algorithmen zur Datenverschlüsselung. Mit der heutigen allgemein bekannten und kommerziell verfügbaren Computertechnologie würde es statistisch mindestens eine Billion Jahre dauern, mittels „ausprobieren“ den Klartext einer verschlüsselten Nachricht zu ermitteln. Sogar mit einem derzeit kommerziell verfügbaren Quantencomputer wäre das nach aktuellen Forschungsergebnissen nicht viel schneller zu schaffen.

Auch Zugriffsrichtlinien, die versehentlich zu locker ausgelegt wurden, sind mit einer starken Verschlüsselung und einer ausgefeilten Schlüsselverwaltung kein Problem, sofern entweder der Zugriff auf die Schlüssel oder die Rohdaten nach wie vor noch geschützt ist. Denn Schlüssel und Informationen sollten grundsätzlich weit voneinander getrennt sein.

Anforderungen an eine Verschlüsselungslösung

Für eine optimale und sichere Umsetzung einer Verschlüsselungslösung sind vor allem mindestens zwei Dinge entscheidend:

  • 1. Schutz der Schlüssel im Ruhezustand: Die verschlüsselten Systeme müssen so gesichert sein, dass niemand von außen auf die Schlüssel zugreifen kann. Darüber hinaus müssen die Verschlüsselungsalgorithmen korrekt implementiert werden, sodass eine Dechiffrierung ohne den richtigen Schlüssel nicht möglich ist.
  • 2. Unabhängige Schlüsselverwaltung: Die Berechtigung zur Verschlüsselung muss unabhängig vom Zugriff auf die zugrundeliegenden Daten erfolgen.

Es gibt Lösungen von Drittanbietern, die diese Anforderungen erfüllen. Allerdings ist es meist schwierig und teuer, sie in großem Maßstab einzusetzen. AWS bietet daher eine Reihe von Optionen für eine einfache Verschlüsselung und Schlüsselverwaltung.

Schutz von Schlüsseln im Ruhezustand

Bei der Schlüsselverwaltung eines Drittanbieters gilt es, das Risiko abzuschätzen, dass die Klartextschlüssel ablaufen und außerhalb der Lösung genutzt werden können. Denn es lässt sich nicht immer überprüfen, ob und wie die Speichersysteme, in denen die Schlüssel aufbewahrt werden, vor unbefugtem Zugriff geschützt sind. Die technische Komplexität und die Notwendigkeit, die Verschlüsselung ohne Einbußen bei Leistung und Verfügbarkeit zu nutzen, führt daher häufig zu problematischen Kompromissen bei der Schlüsselverwaltung. Für eine erhöhte Schlüsselsicherheit empfiehlt sich die Verwendung eines Hardware-Sicherheitsmoduls (HSM). Dabei handelt es sich um ein Gerät, in das mehrere Sicherheitskontrollen eingebaut sind. Diese verhindern, dass der Schlüssel außerhalb des Systems genutzt wird und dass ein Angreifer sich Zugriff darauf verschaffen kann.

So erkennt ein modernes HSM physische sowie logische Versuche, auf Klartextschlüssel ohne Autorisierung zuzugreifen, und zerstört die Schlüssel, noch bevor der Angriff erfolgreich ist. Da AWS-Kunden keine eigene Hardware installieren und betreiben, bietet AWS zwei Dienste an, die den Einsatz von HSMs erlauben: Der AWS Key Management Service (KMS) verwaltet die Geräte im Namen des Kunden, und AWS CloudHSMv2 ermöglicht es dem Kunden, seine eigenen HSMs zu verwalten. Beide Dienste können Schlüssel im Kundennamen erstellen beziehungsweise Schlüssel einsetzen, die der Kunde aus seinen Systemen vor Ort importiert hat.

Mithilfe von AWS KMS oder AWS CloudHSM lassen sich Daten entweder direkt verschlüsseln, oder es werden Schlüssel abgesichert, bei denen dieser Vorgang innerhalb von Anwendungen erfolgt. So lassen sich mit der so genannten Envelope-Verschlüsselung Klartext-Kundendaten verschlüsseln, ohne die Daten an das HSM senden zu müssen. Denn bei sehr großen Datensätzen – etwa in einer Datenbank – lassen andere Aspekte wie Performance oder Kosten es nicht zu, bei jedem Lese-/Schreibvorgang Gigabytes von Daten zwischen dem Datensatz und dem HSM zu verschieben. Stattdessen wird der Schlüssel erst dann an die Anwendung gesendet, wenn er benötigt wird. Die „Master Keys“ im HSM verschlüsseln eine Kopie des Datenschlüssels, so dass die Applikation den Schlüssel mit den damit verschlüsselten Informationen speichern kann. Sobald die Daten verschlüsselt sind, kann die Klartextkopie des Datenschlüssels aus dem Speicher gelöscht werden. Die einzige Möglichkeit, den Schutz aufzuheben, besteht darin, den Datenschlüssel, der nur wenige hundert Bytes umfasst, an das HSM zurückzuschicken und zu entschlüsseln.

Envelope-Verschlüsselung kommt bei den meisten AWS-Diensten zum Einsatz, die Daten im Namen des Kunden verschlüsseln, um Leistungseinbußen zu minimieren (Server-seitige Verschlüsselung). Wenn der Kunde Daten in eigenen Anwendungen verschlüsseln möchte (Client-seitige Verschlüsselung), empfiehlt sich die Envelope-Verschlüsselung mit AWS KMS oder AWS CloudHSM. Beide Dienste bieten Client-Bibliotheken und Software Development Kits (SDKs) an, um dem Anwendungscode Verschlüsselungsfunktionen hinzuzufügen und zu nutzen. Das AWS Encryption SDK ist breit einsetzbar, auch bei Anwendungen, die nicht in AWS laufen.

Ein HSM sollte von einer vertrauenswürdigen Drittpartei validiert sein. Die HSMs in AWS KMS und AWS CloudHSM beispielsweise entsprechen dem FIPS 140-2-Programm des National Institute of Standards and Technology, einem anerkannten Standard für die Evaluierung kryptographischer Module. Konzeption, Entwurf und Implementierung von kryptographischen Modulen wurden auf ihre Sicherheit überprüft, einschließlich Funktionen für Ports und Schnittstellen, Authentifizierungsmechanismen, physische Sicherheit und Manipulationsverhalten, Betriebsumgebungen, kryptographisches Schlüssel-Management sowie elektromagnetische Interferenz und Kompatibilität (EMI/EMC). Die Verschlüsselung mit einem nach FIPS 140-2-validierten kryptografischen Modul ist häufig auch eine Anforderung bei anderen sicherheitsbezogenen Compliance-Standards, zum Beispiel dem internationalen Standard der Zahlungskartenindustrie (PCI-DSS).

Unabhängige Schlüsselverwaltung

Auch wenn AWS KMS und AWS CloudHSM Klartext-Masterschlüssel schützen – für die Verwaltung der Zugriffskontrollen ist der Kunde selbst verantwortlich. Er muss definieren, wer bestimmte Schlüssel unter welchen Bedingungen verwenden darf. Ein Aspekt von AWS KMS: Die Zugriffskontrollen für die Schlüssel sind in derselben Richtliniensprache definiert wie der Zugriff auf alle anderen AWS Ressourcen. Die eigentlichen Berechtigungskontrollen sind allerdings nicht identisch. Die Verwaltung des Schlüsselzugriffs erfordert daher einen anderen Mechanismus als für den Datenzugriff. So lassen sich bei AWS KMS Administratoren zuweisen, die nur Schlüssel verwalten können, sowie Administratoren, die nur Zugriff auf die zugrundeliegenden verschlüsselten Daten haben. Durch diese Trennung wird vermieden, dass Rechte zur Entschlüsselung von Daten versehentlich an nicht autorisierte Benutzer vergeben werden. Für eine noch weitergehende Trennung der Kontrolle bietet AWS CloudHSM einen unabhängigen Richtlinienmechanismus für die Definition des Schlüsselzugriffs.

Selbst bei einer getrennten Schlüssel- und Datenverwaltung lässt sich überprüfen, ob der Zugriff auf Verschlüsselungsschlüssel korrekt konfiguriert wurde. AWS KMS ist in AWS CloudTrail integriert. Und damit ist nachvollziehbar, wer welche Schlüssel wann und für welche Ressourcen verwendet hat. Dieser Einblick in die Verschlüsselungs­verwaltung ist in der Regel wesentlich detaillierter als On-Premises-Mechanismen für einen Audit. Die Audit-Ereignisse von AWS CloudHSM können an Amazon CloudWatch gesendet werden, einen Dienst zur Überwachung von Ereignissen.

Verschlüsseln von Daten im Ruhezustand und in Bewegung

AWS-Dienste, die Kundendaten verarbeiten, können nicht nur Daten in Bewegung, sondern auch im Ruhezustand verschlüsseln. Die meisten AWS-Dienste, die eine Verschlüsselung im Ruhezustand mit AWS KMS oder AWS CloudHSM anbieten, verwenden AES-256. Diese Funktion können AWS KMS und AWS CloudHSM nur unter Verwendung von HSMs nach dem US-Sicherheitsstandard FIPS 140-2 (Federal Information Processing Standard Publication) ausführen. Diese Architektur soll die unbefugte Verwendung von Schlüsseln verhindern.

Bei Daten in Bewegung verwenden die AWS-Dienste das TLS-Protokoll (Transport Layer Security), um die Verschlüsselung zwischen einer Anwendung und dem AWS-Dienst zu gewährleisten. Die meisten kommerziellen Lösungen nutzen dafür das Open-Source-Projekt OpenSSL. OpenSSL hat etwa 500.000 Code-Zeilen, von denen mindestens 70.000 das TLS implementieren. Die Code-Basis ist groß, komplex und schwer zu kontrollieren. Wenn OpenSSL Fehler aufweist, muss die globale Entwicklergemeinschaft die Änderungen beheben und in aufwändigen Tests sicherstellen, dass durch die Korrekturen nicht wieder neue Fehler entstanden sind.

Einfache TLS-Implementierung

Für die Herausforderungen bei der TLS-Implementierung in OpenSSL hat AWS eine eigene Variante entwickelt, die eine leicht verständliche und vollständig überprüfbare Netzwerkverschlüsselung ermöglicht: s2n (Signal to Noise) wurde im Rahmen der Apache-2.0-Lizenz als kleine, schnelle Implementierung im Juni 2015 veröffentlicht und auf GitHub zur Verfügung gestellt.

s2n lässt sich automatisiert analysieren und mit Hilfe von mathematischer Logik auf Sicherheit und Richtigkeit testen. Dabei wird bei jeder Code-Änderung überprüft, ob die s2n-Code-Basis noch korrekt ist. Die mathematischen Beweise erfolgen ebenfalls automatisiert und regelmäßig, so dass eine einmal erreichte Sicherheitsstufe auch bei neuen Code-Versionen unverändert bleibt. Automatisierte mathematische Nachweise sind ein neuer Trend im Security-Umfeld. Auch AWS verwendet sie für eine Vielzahl unternehmenskritischer Softwareanwendungen.

Die Implementierung von TLS erfordert Schlüssel sowie digitale Zertifikate, die die Berechtigung für den Besitz der Schlüssel bestätigen. Mit dem AWS Certificate Manager und AWS Private Certificate Authority lassen sich digitale Zertifikate in Infrastrukturen mit TLS-Endpunkten problemlos ausstellen.

Über den Autor: Bertram Dorn ist Principal Solutions Architect Security and Compliance bei Amazon Web Services.

(ID:47012981)