Le choix d’un Vault chez Nuabee #
Vault est une technologie de gestion sécurisée des secrets développée par HashiCorp. Voici les principaux aspects de son utilisation au sein de Nuabee : Stockage sécurisé des secrets.
Cette technologie Vault permet de stocker de manière chiffrée différents types de secrets comme :
- Mots de passe
- Clés API
- Certificats
- Identifiants de connexion
- Clés AK/SK Cloud
Ces secrets sont stockés de façon chiffrée dans un backend de stockage.
Vault : Seal / Unseal #
Le “seal” (scellement) chiffre toutes les données et supprime les clés de déchiffrement de la mémoire. L’“unseal” (descellement) permet de déverrouiller Vault et le rendre opérationnel, généralement via plusieurs clés partielles.
Seal (Scellement) #
Le “seal” dans Vault fait référence au processus de chiffrement et de verrouillage des données sensibles stockées dans le système. Lorsque Vault est “scellé” :
- Toutes les données sont chiffrées et inaccessibles
- Les clés de déchiffrement sont supprimées de la mémoire
- Aucune opération de lecture ou d’écriture ne peut être effectuée
Ce mécanisme assure que les informations sensibles restent protégées, même si un attaquant obtient un accès physique au serveur Vault.
Unseal (Descellement) #
L’“unseal” est le processus inverse, qui consiste à déverrouiller le Vault et le rendre opérationnel :
- Il nécessite généralement plusieurs clés partielles (appelées “key shares”)
- Ces clés sont combinées pour reconstruire la clé principale de déchiffrement
- Une fois déverrouillé, Vault peut accéder et gérer les secrets stockés
Ce processus de descellement ajoute une couche de sécurité supplémentaire, car il requiert la participation de plusieurs personnes détenant chacune une partie de la clé.
L’utilisation du “seal” et “unseal” dans Vault permet de maintenir un niveau élevé de sécurité pour les données sensibles, tout en offrant un mécanisme contrôlé pour accéder à ces informations lorsque nécessaire.
Descriptions des 4 étapes
- Les tâches de « unseal » permettent de déverrouiller le Vault grâce à plusieurs clés de déchiffrement distribuées sur différents serveurs.
- Depuis le Vault, on récupère la KEK (Key Encryption Key), qui est chiffrée par le KMS, ainsi que le secret, chiffré par la KEK.
- Déchiffrement de la KEK avec le KMS.
- En utilisant la KEK déchiffrée à l’étape 3, on déchiffre le secret pour obtenir sa version en clair.
Durcissement du Vault #
Fragmentation des clés #
Le scenario de risque est le suivant : vol du token d’authentification. Ceci permet à l’attaquant d’appeler les API et utiliser notre système de chiffrement/déchiffrement et stockage/récupération des mots de passe des clients.
Nuabee utilise l’algorithme connu sous le nom de “Shamir’s Secret Sharing” pour diviser une clé en fragments. Un certain seuil de fragments est nécessaire pour reconstruire cette clé de chiffrement, qui est ensuite utilisée pour déchiffrer la clé “Master”.
Le processus “unseal” : les fragments sont ajoutés un à la fois (dans n’importe quel ordre) jusqu’à ce qu’il y ait suffisamment de fragments pour reconstruire la clé de chiffrement et décrypter la clé “Master”.
Le processus “seal” : la clé de chiffrement combinée à l’aide de l’algorithme “Shamir’s Secret Sharing” est utilisée pour chiffrer la clé “Master”.
Plus précisément, les fragments seront distribués sur plusieurs serveurs quand il est nécessaire, des tâches seront attribuées à chacun des serveurs afin qu’ils “unseal” le Vault durant un interval de temps suffisant pour restaurer les mots de passe.
Cela permet de ne pas rendre accessible les mots de passe par des humais, aucun administrateur Nuabee ne connaît les mots de passe, uniquement le système Nuabee a la capacité de le récupérer en clair au travers ces mécanismes de sécurisation.
Un attaquant devrait non seulement avoir le token d’authentification mais aussi les fragments distribués sur un large périmètre.
Enveloppe de chiffrement #
Pour évaluer les conséquences d’une intrusion, on peut élaborer des arbres d’attaque. Cette méthode, applicable aux systèmes industriels, permet d’identifier les différentes étapes nécessaires à l’attaque d’un système, et de visualiser les conséquences de sa compromission. On peut alors prendre des mesures préventives pour protéger les parties les plus critiques de l’infrastructure.
Pour qu’un attaquant puisse extraire les mots de passe des clients il suffit d’exploiter le serveur Vault. Plusieurs scenarios sont possibles menant vers une exploitation pareille : Vault zero-day vulnerability, niveau de patch non récent, vol de tokens, vol des fragments permettant de reconstruire la clé de chiffrement…
Afin de sécuriser au mieux les secrets enregistrés dans un Vault, Nuabee a mis en place un chiffrement par “Enveloppe”. Etant dans des clouds de confiance tel que OTC, Naubee opére un chiffrement à l’aide du système KMS (Key Management System) du cloud et ensuite stocker le résultat du chiffrement dans le Vault.
Le chiffrement d’enveloppe est une procédure qui consiste à chiffrer des données avec une clé DEK (Data Encryption Key) et ensuite chiffrer cette clé DEK à l’aide d’une clé KEK (Key Encryption Key).
Nuabee sécurise les secrets de ses clients grâce à une CMK, une clé de chiffrement KEK (Key Encryption Key), créée par un utilisateur à l’aide du KMS cloud OTC.
En conséquence, un attaquant devrait non seulement exploiter le serveur Vault pour extraire les mots de passe mais aussi exploiter le système KMS du cloud OTC, ce qui permet d’approfondir l’arbre d’attaque.
En conclusion #
Nous mettons en œuvre les meilleures pratiques de sécurité pour assurer les PRA de nos Clients, tout en s’appuyant sur nos partenaires Cloud de confiance tel que Orange Business et Open Telekom Cloud.