Barbican

Übersicht

Barbican ist eine REST-API für die sichere Speicherung, Bereitstellung und Verwaltung von Geheimnissen wie Passwörtern, Verschlüsselungsschlüsseln und X.509-Zertifikaten. Es ist darauf ausgerichtet, für alle Umgebungen, einschließlich großer ephemerer Cloud, nützlich zu sein.

Barbican ist mit verschiedenen OpenStack Funktionen integriert, auch direkt oder als Backend für Castellan.

Barbican wird häufig als Schlüsselverwaltungssystem verwendet, um Anwendungsfälle wie die Signaturprüfung von Bildern oder die Volume-Verschlüsselung zu ermöglichen. Diese Anwendungsfälle sind im :doc:`secrets-management-use-cases`aufgeführt.

Barbican Rollenbasierte Zugriffskontroll

steht aus

Sichere Speicher-Backends

Der Key Manager-Dienst verfügt über eine Plugin-Architektur, mit der der Deployer Geheimnisse in einem oder mehreren geheimen Stores speichern kann. Geheimspeicher können softwarebasiert sein, beispielsweise ein Software-Token oder Hardware-Geräte, wie z. B. ein Hardware-Sicherheitsmodul (HSM). In diesem Abschnitt werden die Plugins beschrieben, die derzeit verfügbar sind, und bespricht die Sicherheitshaltung jedes einzelnen. Plugins sind aktiviert und mit Einstellungen in der Konfigurationsdatei /etc/barbican/barbican.conf konfiguriert.

Es gibt zwei Arten von Plugins: crypto plugins und secret store plugins.

Crypto plugins

Crypto-Plugins speichern Geheimnisse als verschlüsselte Blobs innerhalb der Barbican-Datenbank. Das Plugin wird aufgerufen, um das Geheimnis des geheimen Speichers zu verschlüsseln und das Geheimnis beim geheimen Abruf zu entschlüsseln. Derzeit gibt es zwei Varianten von Speicher-Plugins: das Simple Crypto-Plugin und das PKCS # 11-Crypto-Plugin.

Simple crypto plugin

Das Simple Crypto-Plugin ist standardmäßig in barbican.conf konfiguriert. Dieses Plugin verwendet einen einzigen symmetrischen Schlüssel (KEK - oder ‚Key Encryption Key‘), der in Klartext in der Datei barbican.conf gespeichert wird, um alle Geheimnisse zu verschlüsseln und zu entschlüsseln. Dieses Plugin gilt als weniger sichere Option und eignet sich nur für Entwicklung und Test, da der Hauptschlüssel in Klartext in einer Konfigurationsdatei gespeichert wird und daher nicht für die Verwendung in Produktionsbereitstellungen empfohlen wird.

PKCS#11 crypto plugin

The PKCS#11 crypto plugin can be used to interface with a Hardware Security Module (HSM) using the PKCS#11 protocol. Secrets are encrypted (and decrypted on retrieval) by a project specific Key Encryption Key (KEK). The KEK is protected (encrypted) with a Master KEK (MKEK). The MKEK resides in the HSM along with a HMAC. Since the different KEK is used for each project, and since the KEKs are stored inside a database in an encrypted form (instead of a plaintext in the configuration file) the PKCS#11 plugin is much more secure than the simple crypto plugin. It is the most popular back end amongst Barbican deployments.

Secret store plugins

Secret store plugins interface with secure storage systems to store the secrets within those systems. There are three types of secret store plugins: the KMIP plugin, the Dogtag plugin, and the Vault plugin.

KMIP plugin

Das Key Management Interoperability Protocol (KMIP) Secret Store Plugin wird verwendet, um mit einem KMIP-fähigen Gerät zu kommunizieren, wie ein Hardware-Sicherheitsmodul (HSM). Das Geheimnis wird direkt im KMIP-fähigen Gerät und nicht in der Barbican-Datenbank gespeichert. Die Barbican-Datenbank enthält einen Verweis auf den Standort des Geheimnisses, der später abgerufen werden kann. Das Plugin kann so konfiguriert werden, dass es sich mit einem Benutzernamen und einem Kennwort oder mit einem Clientzertifikat beim KMIP-fähigen Gerät authentifiziert. Diese Information wird in der Barbican-Konfigurationsdatei gespeichert.

Dogtag plugin

Das Dogtag Secret Store Plugin wird verwendet, um mit Dogtag <http://pki.fedoraproject.org/wiki/PKI_Main_Page> _ zu kommunizieren. Dogtag ist das Upstream-Projekt, das dem Red Hat Certificate System entspricht, einer Common Criteria/FIPS-zertifizierten PKI-Lösung, die einen Certificate Manager und eine Key Recovery Authority (KRA) zur sicheren Speicherung von Geheimnissen enthält. Die KRA speichert Geheimnisse als verschlüsselte Blobs in ihrer internen Datenbank, wobei die Hauptverschlüsselungsschlüssel entweder in einer softwarebasierten NSS-Sicherheitsdatenbank oder in einem Hardware-Sicherheitsmodul (HSM) gespeichert werden. Die softwarebasierte NSS-Datenbankkonfiguration bietet eine sichere Option für Bereitstellungen, die kein HSM verwenden möchten. Der KRA ist eine Komponente von FreeIPA, daher ist es möglich, das Plugin mit einem FreeIPA Server zu konfigurieren. Ausführlichere Anweisungen zur Einrichtung von Barbican mit FreeIPA finden Sie im folgenden Blogbeitrag <https://vakwetu.wordpress.com/2015/11/30/barbican-and-dogtagipa/>`_.

Vault plugin

Vault is a secret storage developed by Hashicorp for securely accessing secrets and other objects, such as API keys, passwords, or certificates. Vault provides a unified interface to any secret, while providing tight access control and recording a detailed audit log. The enterprise version of Vault also allows to integrate with HSM for auto-unseal, provide FIPS KeyStorage and entropy augmentation. However, the downside of the Vault plugin is that it does not support multitenancy, thus all secrets will be stored under the same Key/Value secret engine. mountpoint.

Threat-Analyse

Das Barbican-Team arbeitete mit dem OpenStack-Sicherheitsprojekt zusammen, um eine Sicherheitsüberprüfung einer Best-Practice-Barbican-Bereitstellung durchzuführen. Das Ziel der Sicherheitsüberprüfung ist es, Schwachstellen und Mängel in der Gestaltung und Architektur von Diensten zu identifizieren und Kontrollen oder Korrekturen vorzuschlagen, um diese Probleme zu lösen.

The Barbican threat analysis identified eight security findings and two recommendations to improve the security of a barbican deployment. These results can be reviewed in the security analysis repo., along with the Barbican architecture diagram and architecture description page.