Brevet FR3004553A1 — publié le 20141017

Procédé de production sécurisé d'une pluralité de certificats de sécurité DOMAINE TECHNIQUE DE L'INVENTION [0001] L'invention se rapporte à un procédé de production d'une pluralité de certificats de sécurité. [0002] Le domaine de l'invention est celui des fermes, ou grappes, de serveurs. On parle en général d'un « cluster ». Plus particulièrement le domaine de l'invention est celui de la configuration des noeuds d'une grappe de serveurs. Encore plus particulièrement le domaine de l'invention est celui de la sécurisation de la configuration des noeuds d'une grappe de serveurs. [0003] On entendra par grappe de serveurs dans le cadre de la présente invention un ensemble d'ordinateurs connectés en réseau, la plus part du temps il s'agit d'un réseau à haut débit comme par exemple : « InfiniBand », « Fiber Channel » ou « Gigabit Ethernet » pour ne citer que les plus connus. Ces ordinateurs sont soit des noeuds, soit des superviseurs. Un superviseur permet d'administrer tout ou partie des noeuds la grappe de serveurs. [0004] On entendra par production, dans le cadre de la présente invention, le fait calculer et d'enregistrer des données dans une mémoire, qu'elle soit volatile ou permanente. Le calcul des données est réalisé par un microprocesseur. ETAT DE LA TECHNIQUE ANTERIEURE [0005] Dans l'état de la technique, pour configurer des noeuds d'une grappe de serveurs, on utilise des applications de gestion configurations, par exemple Puppet, Chef, CFEngine pour ne citer que certaines parmi les plus connues. Pour fonctionner une telle application requière architecture client-serveur. Il existe sur le réseau une machine serveur, appelée serveur de configuration, comportant entre autre, dans une base de données, des configurations à déployer. Chaque ordinateur à configurer comporte une application cliente apte à communiquer avec la machine serveur. L'inconvénient de ces applications est qu'elles requièrent des communications sécurisées. C'est-à-dire qu'il faut que chaque client, c'est-à-dire chaque machine du réseau, s'inscrive sur le serveur de configuration. Cette inscription se passe en deux temps. Le client émet un message de demande d'inscription vers le serveur de configuration. Un tel message de demande d'inscription est enregistré dans une file d'attente dîtes de signature. Les messages de la file d'attente de signature sont traités par un administrateur du réseau à qui il revient de décider si le message doit être accepté, on dit encore signé, ou rejeter. Le fait de signer, ou pas, un message de la file d'attente de signature a donc d'importantes conséquences de sécurité. Une fois le message de demande d'inscription signé, l'ordinateur qui l'a émis a accès au serveur de configuration. [0006] Cette démarche devient vite lourde, si ce n'est techniquement infaisable, dans le cadre de la gestion d'une grappe de serveurs pouvant comporter plusieurs milliers d'ordinateurs. Cette tâche s'alourdit encore si les systèmes d'exploitations de la grappe de serveurs sont déployés et redéployés régulièrement. La validation des messages de signature doit avoir lieu après chaque déploiement. Dans le mesure ou le déploiement doit être le plus rapide possible pour maximiser le temps de disponibilité de la grappe de serveurs, il est techniquement non réaliste de demandé à un administrateur de valider tous les certificats de tous les noeuds de la grappe de serveurs. EXPOSE DE L'INVENTION [0007] L'invention vise à remédier à tout ou partie des inconvénients de l'état de la technique identifiés ci-dessus, et notamment à proposer des moyens pour permettre une configuration sécurisée des noeuds d'une grappe de serveurs. Pour parvenir à ce résultat on utilise une première base de données décrivant une pluralité de noeud de la grappe de serveurs. On extrait des informations de cette première base de données pour produire des certificats. A ce stade le serveur de configuration est prêt à déployer ses configurations sans qu'il soit besoin de plus de configurations. [0008] Dans ce dessein, un aspect de l'invention se rapporte à un procédé de production d'une pluralité de certificats de sécurité pour une application de déploiement d'une pluralité de configurations vers une pluralité d'ordinateurs caractérisé en ce qu'il comporte les étapes suivantes : - Extraction d'enregistrements de description d'ordinateur d'une première base de données de description de la pluralité d'ordinateurs - Production, pour chaque enregistrement de description d'ordinateur extrait, d'un certificat de sécurité à partir de l'enregistrement extrait, - Mise à jour, pour chaque certificat de sécurité produit, d'une deuxième base de données de l'application de configuration. [0009] Outre les caractéristiques principales qui viennent d'être mentionnées dans le paragraphe précédent, le procédé selon l'invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon les combinaisons techniquement possibles: - la production des certificats de sécurité est automatique, - la première base de données est externe à l'application de déploiement, - l'étape d'extraction comporte une étape de filtrage. [0010] L'invention se rapporte également à un dispositif de stockage numérique comportant un fichier correspondant à des codes instructions mettant en oeuvre le procédé selon l'une au moins des caractéristiques précédentes. [0011] L'invention se rapporte également à un dispositif mettant en oeuvre le procédé selon l'une au moins des caractéristiques précédentes. BREVE DESCRIPTION DES FIGURES [0012] D'autres caractéristiques et avantages de l'invention ressortiront à la lecture de la description qui suit, en référence aux figures annexées, qui illustrent : - figure 1, une illustration d'une architecture matérielle où mettre en oeuvre le procédé selon l'invention; - figure 2, une illustration d'étapes du procédé selon l'invention. [0013] Pour plus de clarté, les éléments identiques ou similaires sont repérés par des signes de référence identiques sur l'ensemble des figures. [0014] L'invention sera mieux comprise à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Celles-ci sont présentées à titre indicatif et nullement limitatif de l'invention. DESCRIPTION DETAILLEE D'UN MODE DE REALISATION [0015] La figure 1 montre une grappe de serveurs 100. La grappe 100 de serveurs comporte au moins un ordinateur 101 superviseur et une pluralité 102 de noeuds Ni avec i allant de 1 à N ou N est le nombre de noeuds dans la grappe 100 de serveurs. Classiquement une grappe de serveurs, dans un contexte de supercalculateur, comporte entre 1000 et 5000 noeuds. On note que l'invention reste valable même pour une grappe de serveurs qui ne comporterait qu'un seul noeud. L'ordinateur 101 superviseur et les noeuds Ni sont interconnectés par un réseau 103 de la grappe ici représenté de manière simplifiée comme un switch. [0016] La figure 1 montre aussi que l'ordinateur 101 superviseur comporte : - Un microprocesseur 201, qui est un moyen de calcul, on dit aussi traitement - Des circuits 202 interface de communication permettant de connecter l'ordinateur 101 hyperviseur au réseau 103, - Des moyens 203 de stockage. [0017] Les composants précités de l'ordinateur 101 hyperviseur sont interconnectés par un bus 204. La figure 1 n'illustre pas de manière exhaustive tous les composants de l'ordinateur 101 hyperviseur, mais uniquement ceux utiles pour la description de l'invention. [0018] Les moyens 203 de stockage de l'ordinateur 101 hyperviseur sont, par exemple, un disque dur. Dans la pratique ces moyens peuvent être de toutes natures, stockage local ou réseau, redondant ou non... [0019] La figure 1 montre que les moyens 203 de stockage de l'ordinateur 101 hyperviseur comporte plusieurs zones : - Une zone 301 application de gestion de configurations, il s'agit de codes instructions correspondant à une application de gestion de configuration - Une zone 302 production de certificats, il s'agit de codes instruction correspondant à la mise en oeuvre de l'invention, - Une zone 303 base de données de configurations, - Une zone 304 base de données de description de la grappe de serveurs. [0020] Dans cette description, lorsque l'on prête une action à un dispositif celle-ci est effectuée par un microprocesseur dudit dispositif commandé par des codes instructions enregistrés dans une mémoire de stockage dudit dispositif. [0021] Dans la présente description on entend base de données au sens large, du simple système de fichier au système de gestion de base de données relationnelle en passant par les bases de données dites « NoSql ». Dans une préoccupation de simplification on assimile la lecture et la mise à jour d'une telle base de données à des accès à une zone de stockage telles que les zones décrites pour les moyens 203 de stockage de l'ordinateur 101 hyperviseur. Dans la pratique ces zones de stockage sont locales ou distante, en accès directe via un système de fichiers ou gérer par un système de gestion de base de donnée client/serveur. [0022] Pour la compréhension de l'invention on précise qu'un tel accès pourrait être, par exemple, une connexion à une base de données distante via le réseau 103 de la grappe lui-même connecté à un réseau plus large, par exemple Internet. [0023] Dans cette description la zone 303 base de données de configurations est une base de données correspondant à l'application de gestion de configuration de la zone 301 application de gestion de configuration. Dans la pratique de nombreuses applications sont associées à une base de données. Ainsi, « Puppet », est associé à une base de données qui est en fait un système de fichier structuré en différents répertoire. L'application de gestion de configuration comporte des commandes qui permettent d'interagir avec la base de données associées. On parle de commandes métier car elles correspondent aux processus prévus par l'application. [0024] Dans cette description la zone 304 base de données de description de la grappe 100 de serveurs. On parle dans ce cas de base de grappe, souvent appelée « clusterdb ». Par extension on désignera la zone 304 base de données de description de la grappe 100 de serveurs comme la base 304 de grappe. La base 304 de grappe comporte toutes les informations utiles sur chacun des noeuds que comporte la grappe 100 de serveurs. En particulier la base 304 de grappe comporte les noms complets de chaque noeud. Un nom complet d'un noeud peut être composé de plusieurs parties : - Un nom, et - Un domaine. [0025] Le nom complet du noeud N1 est par exemple N1.D1. Dans ce cas le « . » sert à délimiter les différentes parties du nom complet. [0026] La figure 2 montre une étape 1001 d'extraction de données. Dans l'étape 1001 l'ordinateur 101 hyperviseur se connecte à la base 304 de grappe et émet une requête de sélection d'au moins les noms complets des noeuds de la grappe 100 de serveurs. En réponse l'ordinateur 101 hyperviseur reçoit une liste de nom complets. De manière simplifiée, l'ordinateur 101 hyperviseur lit la zone 304 base de données de description de la grappe de serveurs. [0027] Dans une étape 1002 optionnelle l'ordinateur 101 hyperviseur filtre la liste de noms complets. Ce filtrage peut être fait soit sur la liste résultant de l'étape d'extraction, soit par la spécification de clauses de filtrage dans la requête de sélection auquel cas la liste reçue ne comporte que les noms complets des noeuds correspondant aux clauses de filtrage. Dans le deuxième cas le filtrage est fait au niveau de la base de données qui se charge de l'interprétation des clauses de filtrage de la requête, dans le premier cas il est fait au niveau de l'ordinateur 101 hyperviseur et par des codes instructions correspondant à la mise en oeuvre de l'invention. [0028] Une clause de filtrage peut porter sur n'importe quelle propriété d'un noeud stocké dans la base de grappe. Si le filtrage est réalisé coté ordinateur hyperviseur, il faut que la liste reçu en réponse comporte les valeurs des propriétés sur lesquels le filtrage doit être effectué. [0029] L'étape 1001 d'extraction ou l'étape 1002 de filtrage, selon la variante de l'invention, est suivie d'une étape 1003 de production de certificats de sécurité. [0030] L'étape 1003 est suivie d'une étape de mise à jour, pour chaque certificat de sécurité produit à l'étape précédente, de la zone 303 base de données de configuration. [0031] Dans la pratique il est possible de réaliser les étapes de production et de mise à jour en une seule commande. Ainsi avec « Puppet » la commande : puppetca --generate N1.D1 produit un certificat de sécurité et le stocke dans la base de données associée à « Puppet ». [0032] Dans un cas plus général, à l'étape de génération on produit un certificat de sécurité compatible avec l'application de gestion de configurations. A l'étape de mise à jour on enregistre, dans la base de données associée à l'application de gestion de configuration les différentes parties du certificat de sécurité produit à l'étape précédente. Dans la pratique les certificats de sécurité sont des certificats à clé asymétrique. Un tel certificat de sécurité comporte donc au moins une clé publique et une clé privée. [0033] Les étapes de production et de mise à jour sont répétées pour chaque nom complet de la liste produite à l'étape d'extraction ou à l'étape de filtrage. [0034] II est également possible de produire tous les certificats puis de tous les enregistrer. [0035] A la fin du procédé selon l'invention, l'application de gestion de configuration est prête à communiquer avec les noeuds de la grappe de serveurs alors même qu'elle n'a jamais été en contact avec aucun d'entre eux. [0036] La mise en oeuvre préféré de l'invention correspond au pseudo code suivant : Is = extraire noeuds de « ClusterDb » selon critères pour chaque noeud dans Is appelle commande métier de l'application de gestion de configuration [0037] Parmi les avantages de cette invention on remarque au moins que la base de données dont sont issues les données qui contrôlent la création des certificats utilisés par l'application de gestion de configuration est externe à l'application de gestion de configuration. Le processus standard de gestion de ces certificats est ainsi court-circuité, et remplacé par un processus propre à la gestion de la grappe de serveur. Cela renforce la sécurité de l'application de gestion de configurations car pour qu'un noeud puisse communiquer avec elle, il faut que le noeud en question ait été inscrit dans la base de données de gestion de la grappe. [0038] Un autre avantage de l'invention est que les certificats de sécurité propres aux noeuds peuvent être produits sans que les noeuds soient connectés à l'ordinateur hyperviseur. En d'autres termes la production des certificats de sécurités est automatique une fois que la base de données de description de la grappe est alimentée. [0039] L'invention se rapporte également à un dispositif de stockage numérique comportant un fichier correspondant à des codes instructions mettant en oeuvre le procédé selon l'une des revendications précédentes. Un tel dispositif est, par exemple, un disque dur, une clé USB, un CD/DVD/BD, la liste n'est pas exhaustive. [0040] L'invention se rapporte également à un dispositif mettant en oeuvre le procédé selon l'une des revendications précédentes. On cite par exemple l'ordinateur 101 hyperviseur. REVENDICATIONS1. Procédé de production d'une pluralité de certificats de sécurité pour une application de déploiement d'une pluralité de configurations vers une pluralité d'ordinateurs caractérisé en ce qu'il comporte les étapes suivantes : - Extraction (1001) d'enregistrements de description d'ordinateur d'une première base de données de description de la pluralité d'ordinateurs - Production (1003), pour chaque enregistrement de description d'ordinateur extrait, d'un certificat de sécurité à partir de l'enregistrement extrait, - Mise à jour (1004), pour chaque certificat de sécurité produit, d'une deuxième base de données de l'application de configuration. 2. Procédé de selon la revendication 1, caractérisé en ce que la production des certificats de sécurité est automatique. 3. Procédé selon l'une des revendications précédentes, caractérisé en ce que la première base de donnée est externe à l'application de déploiement. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'étape d'extraction comporte une étape (1002) de filtrage. 5. Dispositif (203) de stockage numérique comportant un fichier correspondant 20 à des codes instructions mettant en oeuvre le procédé selon l'une des revendications précédentes. 6. Dispositif (101) mettant en oeuvre le procédé selon l'une des revendications précédentes. 25