DuoKey pour KMIP — Vue d'ensemble
DuoKey héberge un serveur OASIS KMIP afin que les clients conformes aux standards — bases de données, baies de stockage et plateformes de virtualisation — puissent gérer des clés cryptographiques via un point de terminaison unique et audité.
Qu'est-ce que KMIP ?
Le Key Management Interoperability Protocol (KMIP) est un standard OASIS qui définit la manière dont les applications à capacités cryptographiques — bases de données, systèmes de stockage, appliances de sauvegarde — dialoguent avec un gestionnaire de clés centralisé. Il normalise l'ensemble du cycle de vie des clés (créer, récupérer, activer, révoquer, détruire) afin qu'un unique gestionnaire de clés puisse desservir de nombreux produits différents sans intégrations sur mesure.
Comment DuoKey met en œuvre KMIP
DuoKey Cockpit v2 exécute un point de terminaison serveur KMIP. Les clients conformes s'y connectent via TLS et émettent des opérations KMIP ; DuoKey génère le matériel de clé, le protège et le renvoie (ou effectue le chiffrement/déchiffrement) conformément à la politique du point de terminaison.
Le serveur KMIP est une capacité de Cockpit v2 (Rust/React), provisionnée en tant que point de terminaison de service PKI. Il n'a aucun lien avec le modèle de configuration de Cockpit v1 (.NET/Angular).
Prise en charge du protocole
| Capacité | Détails |
|---|---|
| Versions de KMIP | Négocie 2.1, 2.0, 1.4, 1.3, 1.2, 1.1, 1.0. Le profil annoncé par défaut est KMIP 2.1. |
| Transports | TTLV binaire sur TLS, ainsi qu'un profil JSON-sur-HTTPS. |
| Port TLS par défaut | 5696 (le port KMIP attribué par l'IANA). |
| Encodage | Attributs KMIP 2.x canoniques ; les requêtes TemplateAttribute 1.x sont normalisées en entrée et adaptées en retour pour les clients antérieurs à la version 2.0. |
Opérations prises en charge
Le point de terminaison distribue les opérations KMIP suivantes :
| Opération | Objet |
|---|---|
Create | Générer une nouvelle clé gérée. |
Register | Importer du matériel de clé fourni par le client. |
Get | Récupérer un objet de clé. |
GetAttributes | Lire les attributs d'un objet. |
GetAttributeList | Lister les noms des attributs d'un objet. |
Locate | Trouver les objets correspondant à des filtres d'attributs. |
Activate | Faire passer une clé à l'état actif. |
Revoke | Révoquer une clé (voie de désactivation standard). |
Destroy | Supprimer définitivement le matériel de clé. |
| NaN | Opérations cryptographiques côté serveur. |
ReKey | Renouveler une clé avec du matériel neuf sous un nouvel identifiant. |
Check | Vérifier les contraintes d'utilisation d'un objet. |
Query | Découvrir les capacités du serveur. |
DiscoverVersions | Négocier la version du protocole KMIP. |
Les opérations de génération asymétrique et de signature — CreateKeyPair, DeriveKey, Certify, Sign, MAC, ainsi que les opérations de mutation d'attributs — ne sont pas prises en charge et renvoient un résultat OperationNotSupported. La politique du point de terminaison peut restreindre davantage les opérations autorisées pour chaque déploiement.
Objets et algorithmes
| Élément | Prise en charge |
|---|---|
| Types d'objets gérés | Clés symétriques, clés publiques, clés privées, certificats et données secrètes. |
| Génération de clés | Matériel symétrique uniquement : AES (128 / 192 / 256 bits, 256 par défaut) et HMAC (256 bits ou plus). |
| Cryptographie côté serveur | AES-256-GCM pour Encrypt / Decrypt, renvoyant un blob autonome nonce ‖ ciphertext ‖ tag. |
DuoKey génère et stocke du matériel de clé symétrique (AES, HMAC). Les types d'objets asymétriques et les certificats peuvent être enregistrés et gérés en tant qu'objets, mais le serveur ne produit pas lui-même de paires de clés RSA ou EC.
Comment les clés sont protégées
Le matériel de clé généré est chiffré au repos avec AES-256-GCM sous la clé de chiffrement de la plateforme — la même enveloppe que celle utilisée pour les identifiants de coffre et les secrets des fournisseurs d'identité — et stocké dans la base de données DuoKey. Les clés survivent aux redémarrages et ne résident jamais uniquement en mémoire de processus. Destroy supprime définitivement le matériel stocké.
Pour KMIP, les clés sont protégées par chiffrement d'enveloppe sous la clé de la plateforme, et non par MPC. La protection de clés basée sur MPC s'applique à d'autres flux de gestion de clés DuoKey, et non au backend du serveur KMIP décrit ici.
Authentification des clients
L'authentification des clients repose sur un TLS mutuel (mTLS) optionnel : le CommonName du certificat client présenté devient l'identité cliente auditée. La politique propre à chaque point de terminaison (allowed_auth_methods, require_client_cert) décide des méthodes acceptées :
| Méthode | Fonctionnement |
|---|---|
| mTLS | Le client présente un certificat X.509 ; son CommonName constitue l'identité. |
| Identifiant dans le message | Un identifiant KMIP Nom d'utilisateur/Mot de passe transporté dans l'en-tête de la requête. |
| Anonyme | Autorisé uniquement lorsque la politique du point de terminaison l'autorise explicitement. |
Pour faire confiance aux identités mTLS, faites pointer l'écouteur vers un ensemble PEM d'autorités de certification (CA) clientes de confiance :
# PEM bundle of trusted client-CA certificates
KMIP_CLIENT_CA_BUNDLE=/etc/duokey/kmip/client-ca-bundle.pemLorsqu'aucun ensemble de CA clientes n'est configuré, les certificats clients présentés sont acceptés sans validation de CA et leur identité ne doit pas être considérée comme fiable pour l'autorisation. En production, l'écouteur échoue en position fermée et refuse de démarrer tant qu'aucun ensemble n'est défini.
Compatibilité des clients
Tout client OASIS KMIP 1.x ou 2.x peut se connecter via le transport TLS binaire sur le port 5696. L'interopérabilité est testée de bout en bout avec le client de référence PyKMIP (Query → Create → Activate → Get → Encrypt/Decrypt → Locate → Revoke → Destroy).
Les cibles d'intégration pour le chiffrement basé sur KMIP incluent :
Percona Server
Chiffrement des données au repos pour MongoDB et MySQL.
VMware vSphere
Fournisseur de clés standard pour vSphere et vSAN.
NetApp ONTAP
Gestionnaire de clés externe pour le chiffrement du stockage.
Provisionnement
Un point de terminaison serveur KMIP est créé depuis le DuoKey Cockpit sous PKI → KMIP Server. L'assistant collecte le nom du point de terminaison, le coffre de clés, les méthodes d'authentification autorisées, le transport (TLS binaire ou JSON/HTTPS) et le port TLS, l'algorithme et la taille de clé par défaut, les types d'objets et opérations autorisés, ainsi que les paramètres d'audit — puis déploie et démarre le point de terminaison.