SPIFFE et SPIRE, qu'est-ce que c'est ?

Copier l'URL

SPIFFE et SPIRE sont deux projets Open Source qui permettent de gérer les identités dans des environnements informatiques variés et dynamiques.

SPIFFE (que l'on prononce spi-fi) est l'acronyme de Secure Production Identity Framework for Everyone. Ce projet offre un moyen de structurer les identités et de les vérifier par le biais du chiffrement pour déterminer leur fiabilité.

SPIRE (que l'on prononce spa-yeur) est l'acronyme de SPIFFE Runtime Environment, soit l'environnement d'exécution de SPIFFE. Il s'agit de la mise en œuvre de référence de ce framework.

Ensemble, les projets SPIFFE et SPIRE aident à mettre en place une architecture Zero Trust dans les environnements de cloud hybride complexes. Ils permettent aussi de résoudre de nombreux problèmes de sécurité :

Les projets SPIFFE et SPIRE sont certifiés par la CNCF (Cloud Native Computing Foundation). Nous proposons une mise en œuvre de ce framework pour les entreprises sous la forme d'un opérateur Red Hat OpenShift® en version préliminaire, Red Hat® Zero Trust Workload Identity Manager.

Les partisans du framework SPIFFE le décrivent parfois comme une solution au « problème des tortues ». Les auteurs du projet ont même utilisé cette métaphore des tortues dans le titre de leur livre en anglais sur cette technologie. 

Voici d'où vient cette analogie.

Dans une histoire ancienne, un personnage soutient que le monde repose sur le dos d'une tortue géante. Lorsqu'on lui demande sur quoi cette tortue se tient, il affirme qu'elle repose elle-même sur le dos d'une autre tortue encore plus grande. Et ainsi de suite : les tortues s'empilent à l'infini.

La sécurité informatique fonctionne sur le même principe. Les secrets, tels que les mots de passe et les clés d'API, permettent aux services et plateformes d'identifier les systèmes de confiance. La protection de ces secrets implique d'autres couches de sécurité, comme des clés de chiffrement privées et un référentiel de secrets pour les stocker. Or, pour protéger ce référentiel, il faut d'autres secrets. Et on se retrouve avec des secrets qui s'empilent à l'infini, comme les tortues.

La norme SPIFFE et la mise en œuvre SPIRE visent à établir une base de confiance qui soutient toutes les interactions au sein d'un système.

Les projets SPIFFE et SPIRE permettent d'améliorer la sécurité informatique. Ils fournissent un cadre pour garantir que seules les entités identifiées et vérifiées peuvent interagir dans un système, à l'instar d'un système d'authentification à plusieurs facteurs pour les charges de travail.

SPIFFE : le framework

Le projet SPIFFE définit les spécifications en matière d'émission et de gestion des identités cryptographiques pour les services dans différents environnements. Cette norme repose sur le concept du SVID (SPIFFE Verifiable Identity Document), qui regroupe des informations d'identification temporaires servant d'identité aux charges de travail.

Dans une architecture Zero Trust, où aucun composant n'est approuvé par défaut, le framework SPIFFE permet d'authentifier les charges de travail sans dépendre de secrets. Lorsqu'une charge de travail doit interagir avec un autre service, elle peut présenter son SVID, généralement sous la forme d'un certificat X.509 ou d'un jeton JWT (JSON Web Token).

D'autres charges de travail peuvent ensuite vérifier le SVID localement : c'est ce que l'on appelle une authentification pair à pair, qui ne nécessite pas de contacter une autorité centrale pour chaque transaction. Ce processus rationalisé simplifie et protège la communication entre les services en préservant la confiance grâce à une identité vérifiable et standardisée.

SPIRE : l'environnement d'exécution

Le projet SPIRE est un cadre de mise en œuvre de la norme SPIFFE. Il définit un processus de configuration des API qui établit une relation de confiance entre les charges de travail (applications ou agents à l'origine d'une demande) et les nœuds (serveurs ou machines).

SPIRE effectue une attestation de la charge de travail et du nœud. Cette approche permet de vérifier l'authenticité de l'application et de la ressource avant de délivrer un certificat de signature.

Un serveur SPIRE agit comme une autorité de signature pour les identités au sein de son domaine SPIFFE. Il consigne également les identités de chaque charge de travail dans un registre. 

En plus du serveur SPIRE, des agents SPIRE s'exécutent sur chaque nœud qui héberge une charge de travail. Ces agents conservent un cache des SVID et attestent l'identité des charges de travail. La vérification des SVID peut se faire localement, à l'aide de l'introspection au niveau du noyau. Autrement dit, la charge de travail n'a pas besoin d'appeler un service externe pour vérifier si une action est autorisée.

SPIRE prend en charge la fédération, ce qui permet à différents systèmes de s'échanger des « trust bundles », c'est-à-dire des paquets contenant des clés publiques et les certifications nécessaires à leur validation. 

SPIFFE et SPIRE peuvent faciliter l'authentification dans les environnements multicloud distribués. Voici quelques cas d'utilisation courants :

Authentification dans les environnements de cloud hybride

Dans les environnements hybrides et multicloud, les applications peuvent s'étendre sur plusieurs plateformes cloud et domaines d'administration distincts, ce qui complique la mise en place de communications de confiance entre ces périmètres. 

Avec la fédération SPIFFE, les serveurs SPIRE exécutés à différents endroits peuvent échanger des clés publiques et des certificats par le biais de « trust bundles », un format qui regroupe les clés publiques émises par une autorité SPIFFE donnée. Cette approche permet d'établir un lien de confiance entre les applications, même avec différentes plateformes cloud et dans différents domaines d'administration, sans clé privée ni configuration réseau complexe.

Gestion des identités dans Kubernetes et KubeVirt

En général, les environnements Kubernetes comprennent de nombreuses petites charges de travail qui s'exécutent dans des conteneurs isolés et qui doivent coopérer. Les projets SPIFFE et SPIRE peuvent renforcer la sécurité au sein des environnements Kubernetes en attribuant des identités aux applications conteneurisées, quel que soit l'emplacement du réseau où elles s'exécutent. Cette approche s'applique également aux machines virtuelles exécutées sur des solutions basées sur KubeVirt, telles que Red Hat OpenShift Virtualization. Elle facilite le contrôle d'accès granulaire, essentiel dans une architecture Zero Trust.

Gestion des workflows pour les agents IA

Les agents IA sont des systèmes qui interagissent avec d'autres systèmes en vue d'atteindre un objectif spécifique. Leur usage se généralise, mais leur mise en œuvre peut s'avérer difficile lorsque des informations sensibles sont impliquées. Pour autoriser l'accès à un agent IA, il faut disposer d'identités solides et vérifiables pour les charges de travail de machine virtuelle. Cette condition est particulièrement difficile à remplir sur les plateformes de cloud hybride. Pour remédier partiellement au problème, SPIFFE et SPIRE fournissent aux services d'IA des informations d'identification temporaires et vérifiables qui leur accordent un accès contrôlé aux données sensibles.

Gestion de la confiance dans un Service Mesh

Un Service Mesh gère la communication entre les services, notamment au sein des applications conteneurisées. SPIFFE et SPIRE permettent d'intégrer la gestion de la sécurité à un Service Mesh, qui peut ainsi s'appuyer sur des identités vérifiables par le biais du chiffrement. Ce niveau de confiance simplifie l'interopérabilité entre les systèmes et facilite l'application des politiques, à l'intérieur comme à l'extérieur du Service Mesh.

Sécurité à la périphérie du réseau

SPIFFE et SPIRE étendent le plan de contrôle des identités aux environnements locaux, ce qui en fait une approche adaptée à l'edge computing. Les SVID vérifiables par chiffrement favorisent une authentification forte sur tout le réseau, même au niveau des services d'edge computing distribués les plus éloignés.

L'exécution d'applications modernes dans le cloud nécessite un certain niveau d'automatisation. Parmi les solutions les plus utilisées figure la plateforme Open Source Kubernetes, souvent choisie pour le déploiement, la gestion et la mise à l'échelle des applications dans des conteneurs. Kubernetes est la base sur laquelle repose Red Hat OpenShift.

Avec SPIFFE et SPIRE comme plan de contrôle des identités, il est possible d'utiliser des identités vérifiables dans Kubernetes. Voici trois principes clés de l'utilisation des projets SPIFFE et SPIRE dans Kubernetes :

  1. SPIRE est le protocole de mise en œuvre de SPIFFE. Il inclut des composants à déployer dans le cluster Kubernetes, notamment le serveur SPIRE qui gère les identités et les signatures, ainsi que les agents SPIRE (un par nœud Kubernetes). Ces composants forment l'infrastructure d'identité de base et préparent le cluster pour la vérification des identités par le biais du chiffrement. L'opérateur Red Hat Zero Trust Workload Identity Manager peut faciliter leur mise en œuvre dans les environnements Red Hat OpenShift.
  2. Les agents SPIRE effectuent une attestation des nœuds et des charges de travail. Ils peuvent examiner les caractéristiques d'une application, comme son espace de noms Kubernetes, son compte de service ou son image de conteneur, afin de vérifier sa légitimité.
  3. Les applications attestées accèdent ensuite à l'API de charge de travail SPIFFE locale exposée par l'agent SPIRE, afin d'obtenir leur SVID unique et temporaire. Ces SVID aident à établir des connexions mTLS (mutual Transport Layer Security) pour garantir une communication de confiance entre les services.

Accéder au parcours de formation sur SPIFFE et SPIRE sur Red Hat OpenShift

Nos solutions visent à offrir une sécurité complète. Elles contribuent à créer une architecture Zero Trust qui assure la souveraineté des données tout en facilitant le déploiement et la gestion des charges de travail cloud-native et basées sur l'IA. Nos spécialistes peuvent aider les entreprises à adopter le modèle Zero Trust dans les environnements multicloud. 

L'opérateur Zero Trust Workload Identity Manager pour Red Hat OpenShift simplifie l'installation et la gestion du cycle de vie des mises en œuvre de SPIFFE et SPIRE. Compatible avec les clusters existants et validé pour Red Hat OpenShift, il s'accompagne d'une documentation complète pour l'installation et la résolution des problèmes.

Essayer Red Hat OpenShift

Essayez Red Hat OpenShift via l'une des options suivantes : solution entièrement gérée dans votre cloud, solution autogérée dans le cloud, sur votre ordinateur ou dans votre datacenter, ou accès instantané dans un sandbox de développement.

En savoir plus

Le modèle Zero Trust, qu'est-ce que c'est ?

Apprenez-en plus sur le modèle Zero Trust, une approche de la conception des architectures de sécurité basée sur le principe qu'aucune interaction n'est fiable par défaut.

Qu'est-ce qu'un logiciel malveillant (malware) ?

Un logiciel malveillant, ou malware, désigne un logiciel développé dans le but de nuire à l'utilisateur. Il touche non seulement l'ordinateur ou l'appareil qu'il infecte en premier, mais potentiellement aussi tous les appareils avec lesquels celui-ci communique.

Présentation

SELinux (Security-Enhanced Linux) est une architecture de sécurité pour Linux® qui permet aux équipes d'administration de mieux contrôler les accès aux systèmes.

Sécurité : ressources recommandées

Articles associés