Sichere Verwahrung von kryptographischen Schlüsseln in Microsoft Azure

Kryptographische Schlüssel sind heutzutage extrem schützenswerte Güter. Nicht selten hängt die Reputation und Sicherheit von Firmen davon ab. Sei es, weil damit Softwarepakete signiert, Zertifikate innerhalb einer PKI erstellt oder sensible Informationen verschlüsselt werden. Die Frage ist also, wo diese sicherheitskritischen Schlüssel verwahrt werden sollten.

Wer es mit der Sicherheit von Schlüsseln ernst meint, wird diese in einem sogenannten Hardware Security Module (HSM) sichern wollen. Diese Geräte sind meist nach bestimmten Standards zertifiziert (z.B. FIPS 140-2 Level 2) und stellen sicher, dass die ihnen anvertrauten Schlüssel nicht mehr heraus gegeben werden. Viele kryptographische Operationen wie das Ver- und Entschlüsseln werden direkt innerhalb der HSM durchgeführt.

Nutzer von Cloud-Anwendungen stellen sich ebenfalls häufig die Frage, wo die eingesetzten Schlüssel verwahrt werden sollten. Auf den VMs, die man in der Cloud am Laufen hat, wahrscheinlich nicht. Denn wird eine solche VM kompromittiert, dann sind auch die Schlüssel in Gefahr.

Aus diesem Grund gibt es in Microsoft Azure seit Januar 2015 einen neuen Dienst (als Preview) namens Azure Key Vault, der für die sichere Verwahrung von Schlüsseln HSMs von Thales einsetzt (Thales nShield). Mit Hilfe dieses Dienstes können Nutzer in Cloud-typischer Weise Schlüssel verwahren und kryptographische Operationen mit diesen Schlüsseln durchführen. Der Zugriff auf die HSMs wird über Dienstkonten in Azure Active Directory geschützt.

Damit sind nicht nur sicherheitskritische, kryptographische Schlüssel sicher verwahrt, sondern Azure Key Vault bietet die Sicherheit von HSMs für alle, die sich normalerweise keine HSM leisten möchten. Wer sich mit dem Thema beschäftigt, wird wissen, dass HSM von namhaften Herstellern eine gewisse Investition darstellen. Ich möchte die Preise, die ich aus Interesse auch mal angefragt habe, hier nicht aufschreiben, kann aber so viel verraten, dass sich diese ganz selbstverständlich im vierstelligen Euro-Bereich befinden.

In Azure wird die Verwahrung von Schlüsseln Cloud-typisch angeboten. Was meine ich damit?

  • Ein Azure Key Vault, der den Zugriff auf ein HSM ermöglicht, ist innerhalb von Sekunden erstellt und genauso schnell gelöscht.
  • Der Zugriff auf Azure Key Vault geschieht über REST APIs. Viele Anwendungen und Programmiersprachen sollten damit keinerlei Probleme haben. (SDKs bieten wir natürlich auch an.)
  • Die Abrechnung basiert auf der Menge der verwahrten Schlüssel und der Anzahl an kryptographischen Operationen, die man im Azure Key Vault durchführt.

Eine Reihe von Diensten und Anwendungen ist bereits in der Lage, auf den Azure Key Vault-Dienst zuzugreifen.

  • SQL Server Transparent Data Encryption
  • Azure RMS für BYOK
  • CloudLink SecureVM
  • Azure Storage Client SDK
  • Azure VM Zertifikatsmanagmeent
  • Azure VM Volume Encryption (angekündigt)
  • Office 365 Advanced Encryption (angekündigt)

Weitere Informationen

Einen guten Einstieg gibt die Dokumentation auf der Azure-Homepage:

Sumedh Barde und Devendra Tiwari haben auf der Microsoft Ignite Anfang Mai einen Einführungsvortrag zum Azure Key Vault gehalten.