Qu'est-ce que la gestion des secrets ?

La gestion des secrets désigne le processus de sécurisation et de contrôle des informations d'identification pour les éléments automatisés d'une application.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Définir les termes « secrets » et « gestion des secrets ».
  • Comprendre certaines des difficultés liées à la gestion des secrets
  • Expliquer les solutions de gestion des secrets

Contenu associé


Vous souhaitez continuer à enrichir vos connaissances ?

Abonnez-vous à theNET, le récapitulatif mensuel par Cloudflare des informations les plus populaires sur Internet !

Consultez la politique de confidentialité de Cloudflare pour en savoir plus sur la manière dont nous collectons et traitons vos données personnelles.

Copier le lien de l'article

Qu'est-ce que la gestion des secrets ?

La gestion des secrets consiste à stocker en toute sécurité des informations sensibles qui, si elles devaient fuiter, donneraient à des personnes malveillantes ou non autorisées à l'infrastructure de l'application. Dans ce contexte, un « secret » désigne les clés de chiffrement, les clés API, les clés SSH, les jetons, les mots de passe ou les certificats grâce auxquels les éléments disparates de l'infrastructure d'une application se connectent entre eux.

Si un utilisateur n'a besoin que d'un seul mot de passe pour se connecter à une application, cette application est elle-même composée de différents éléments qui ont tous besoin d'informations d'identification pour communiquer entre eux, il s'agit des secrets.

Tout le monde ou presque sait à quel point il peut être difficile de se souvenir des mots de passe pour plusieurs applications, en particulier lorsque ces mots de passe doivent être mis à jour régulièrement. C'est ce qui pousse de nombreuses personnes vers des pratiques peu sûres en matière de mots de passe, à savoir noter par écrit les mots de passe ou encore utiliser le même mot de passe dans toutes les applications.

Les développeurs sont confrontés à des difficultés similaires lorsqu'ils créent des logiciels. L'infrastructure qui permet aux applications de fonctionner, ou sur laquelle est exécuté le site de l'entreprise, peut impliquer le recours à des centaines, voire des millions de clés, de jetons et de mots de passe. La gestion de tous ces secrets étant très contraignante, ils finissent souvent par être codés en dur (c'est-à-dire intrinsèquement programmés) dans le logiciel d'application. Il arrive qu'ils ne soient jamais mis à jour, ou qu'il soient codés en clair, ce qui les rend vulnérables aux acteurs malveillants.

Qu'est-ce qu'un « secret » ?

Dans le contexte du développement d'applications, un secret est une donnée utilisée comme information d'identification. Tout comme une personne doit s'authentifier pour accéder à son courrier électronique en saisissant un nom d'utilisateur et un mot de passe, les composants non humains de cette application de courrier électronique (ou de toute autre application) doivent s'authentifier les uns les autres pour que l'application fonctionne. Ces composants peuvent inclure des connexions API, des conteneurs, des microservices, des scripts, des fonctions et des outils d'automatisation. Pour s'authentifier, ils utilisent des informations d'identification.

Voici quelques exemples de secrets :

  • Clés ou certificats IPsec
  • Certificats TLS
  • Clés
  • Clés d'API
  • Mots de passe
  • Jetons

Pensez à la façon dont les blocs de construction pour enfants (tels que LEGO®) s'emboîtent pour former une structure solide, bien que miniature. Les secrets sont comme ces mécanismes de verrouillage qui assurent la cohésion d'une application. Sans eux, l'application se décompose.

Pourquoi est-il important de mettre à jour les secrets ?

Contrairement aux blocs de construction, qui présentent toujours les mêmes arêtes pour s'emboîter les uns dans les autres, les secrets doivent être changés régulièrement. Si un secret est utilisé trop longtemps, il arrive qu'un acteur malveillant finisse par le deviner dans le cadre d'une tentative de connexion par force brute. En outre, plus un secret est utilisé longtemps, plus il est susceptible de faire l'objet d'une fuite.

La nécessité de faire tourner les secrets est une couche de complexité supplémentaire à leur gestion sécurisée. Il est déjà difficile de se souvenir d'un mot de passe actualisé, la rotation régulière des secrets représente une difficulté de taille. Une douzaine d'applications peuvent dépendre d'une seule API, et toutes ces applications devront mettre à jour leurs secrets s'il est nécessaire de modifier les informations d'identification de l'API. Dans certains cas, une organisation ne sait même pas combien d'applications dépendent de cette API, ni ce qui va cesser de fonctionner si le secret est mis à jour.

Parfois, les équipes de développement choisissent de ne pas mettre à jour les secrets par souci d'efficacité, tout comme de nombreuses personnes préfèrent ne pas mettre à jour leurs mots de passe. Certains codent même les secrets en dur dans des scripts et des fonctions, imaginant que les secrets n'auront pas besoin d'être modifiés.

Quels sont les autres difficultés liées à la gestion des secrets ?

Transmission manuelle : les développeurs qui ne disposent pas d'une solution de gestion des secrets peuvent être contraints d'avoir recours à des processus manuels pour transmettre les secrets parmi les équipes de développement. Par conséquent les secrets sont souvent consignés de manière pas assez rigoureuse et introduits dans des environnements non sécurisés.

Comptes de tiers : des utilisateurs externes peuvent avoir besoin d'accéder aux API et aux bases de données internes. S'agissant de personnes extérieures à l'organisation, il est difficile de mettre en œuvre une gestion sécurisée des secrets.

Informatique cloud: les environnements cloud sont tentaculaires et éphémères. De nouvelles instances de machines virtuelles sont régulièrement créées pour prendre en charge des services support, et chacune d'entre elles a besoin de ses propres secrets. Les applications cloud offrent également un accès très large à partir d'un nombre presque illimité d'endroits, ce qui augmente considérablement le nombre d'informations d'identification et de privilèges à gérer.

Absence de gestion centralisée : de même qu'il est difficile de mettre un groupe de personnes d'accord sur l'heure du dîner, il est difficile de gérer des secrets diffusés parmi plusieurs équipes et fonctions. Chaque équipe peut consigner les secrets différemment, les stocker différemment ou n'avoir aucune visibilité sur les secrets utilisés par les autres équipes.

Comment fonctionne une solution de gestion des secrets

Les outils de gestion des secrets peuvent automatiser tous les processus nécessaires à une gestion sécurisée des secrets. Ils stockent également les secrets dans un environnement sécurisé, à l'écart du code de l'application. Cela permet aux développeurs d'éviter de coder les secrets en dur ou de les stocker en clair, au risque de les voir compromis.

Quel est l'apport de Cloudflare pour la gestion des secrets ?

Cloudflare propose une plateforme de développement hautement évolutive pour l'exécution du code à travers son réseau mondial. Cloudflare Secrets Store permet aux développeurs de stocker et de gérer en toute sécurité les secrets dont leurs applications ont besoin, qu'il s'agisse de jetons d'API ou d'en-têtes d'autorisation de requête. Découvrir Secrets Store.

FAQ

Qu'est-ce que la gestion des secrets ?

La gestion des secrets désigne le processus de protection et de contrôle des informations d’identification numériques utilisées par les éléments automatisés d’une application. Cela implique de stocker en toute sécurité des données sensibles qui, si elles étaient exposées, pourraient permettre à des personnes non autorisées d’accéder à l’infrastructure d’une application.

Qu’est-ce qui est considéré comme un secret dans le développement d’applications ?

Dans ce contexte, un secret est une donnée qui sert d’identifiant pour les composants non humains. Les éléments non humains, comme les connexions API, les microservices et les outils d’automatisation, utilisent ces informations d’identification pour s’authentifier les uns avec les autres, afin que l’application puisse fonctionner. Les exemples incluent les clés IPsec, les clés privées TLS, les clés API et les mots de passe.

Quels types de données sensibles sont couramment gérés comme des secrets ?

Parmi les secrets courants figurent les clés API, les clés de chiffrement, les mots de passe et les jetons. Elles comprennent également les certificats, tels que les certificats TLS ou IPsec, et les clés SSH qui permettent aux différentes parties d’une infrastructure de se connecter.

Pourquoi est-il nécessaire de faire tourner régulièrement les secrets ?

Les secrets doivent être mis à jour pour réduire le risque qu’un attaquant les devine dans le cadre d’une tentative de connexion par force brute. En outre, plus un secret est utilisé longtemps, plus il est susceptible de faire l’objet d’une fuite. Un renouvellement régulier permet de préserver la sécurité de l’application dans le temps.

Quels sont les principales difficultés liées à la gestion des secrets dans un environnement cloud ?

Les environnements cloud sont souvent tentaculaires et évoluent fréquemment avec un démarrage constant de nouvelles machines virtuelles qui chacune nécessitent leurs propres informations d’identification. Qui plus est, les divers composants sont souvent interdépendants les uns des autres. Ainsi, lorsque des identifiants sont mis à jour, la solution peut provoquer la rupture de connexions entre des composants qui n’ont pas été mis à jour avec les nouvelles informations. Cette expansion augmente le nombre total de privilèges et d’informations secrètes qu’une organisation doit surveiller et gérer. Le nombre d’informations secrètes à gérer dépasse souvent largement les capacités manuelles des équipes internes.

En quoi les outils de gestion des secrets améliorent-ils la sécurité pour les développeurs ?

Les solutions de gestion des secrets automatisent le processus de gestion et stockent les informations d’identification dans un environnement sécurisé, à l’écart du code de l’application. Cela permet aux développeurs d’éviter de coder les secrets en dur ou de les stocker en clair, format auquel ils sont bien plus faciles à découvrir par les attaquants.

Comment Cloudflare facilite-t-il la gestion des informations d’identification des applications ?

Cloudflare propose un outil appelé Secrets Store, développé sur son réseau mondial. Ce service permet aux développeurs de stocker et de gérer en toute sécurité les diverses informations d’identification dont leurs applications ont besoin.