FR 3004552 A1 20141017 FR 1353302 A 20130411 Procédé de mise en place sécurisé d'une pluralité de certificats de sécurité DOMAINE TECHNIQUE DE L'INVENTION [0001] L'invention se rapporte à un procédé de mise en place 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 hyperviseurs. Un hyperviseur permet d'administrer tout ou partie des noeuds de la grappe de serveurs. [0004] On entendra par application, dans le cadre de la présente invention, un ensemble de codes instructions dont la mise en oeuvre correspond à un besoin fonctionnel, par exemple gérer des configurations de noeuds dans une grappe de serveurs. [0005] On entendra par partie serveur d'une application un ensemble de codes instructions dont la mise en oeuvre permet de traiter et ou de répondre à des messages émis par une partie cliente de ladite application. La partie cliente de ladite application correspond à des codes instructions dont la mise en oeuvre permet d'émettre des messages vers la partie serveur de l'application et de traiter des messages de la partie serveur de l'application. En général la partie serveur d'une application serveur est installée sur une machine, la partie cliente est installée sur une pluralité de machines. Il existe des variantes multiserveurs par exemple. ETAT DE LA TECHNIQUE ANTERIEURE [0006] 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é 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. [0007] 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 demander à un administrateur de valider tous les certificats de tous les noeuds de la grappe de serveurs. EXPOSE DE L'INVENTION [0008] 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'une application de gestion de configurations. On extrait des informations de cette première base de données pour mettre à jour une image système à déployer sur les noeuds de la grappe de serveurs. Une fois l'image déployée sur un noeud on met à jour, sur le noeud, les informations de configuration de l'application de gestion de configuration pour ne laisser sur le noeud que les informations concernant ledit noeud. A ce stade le noeud est prêt à communiquer de manière sécurisée avec le serveur de configuration qui lui est prêt à déployer ses configurations sans qu'il soit besoin de plus de configuration. [0009] Dans ce dessein, un aspect de l'invention se rapporte à un procédé de configuration d'une partie cliente d'une application de gestion de configurations lors d'un déploiement d'une image système sur une pluralité de noeuds d'une grappe de serveurs caractérisé en ce qu'il comporte les étapes suivantes : - Mise à jour de l'image système à déployer selon un paramétrage d'une partie serveur de l'application de gestion de configurations et en fonction de la pluralité de noeuds, - Déploiement de l'image système mise à jour sur chaque noeud de la pluralité de noeuds de la grappe de serveurs, - Mise à jour, sur chaque noeud, de l'image système déployée en fonction du noeud. [0010] 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 mise à jour de l'image à déployer comporte les étapes suivantes : - Lecture d'une pluralité de certificats de sécurité dans une base de données de l'application de gestion de configurations, chaque certificat de sécurité correspondant à un noeud de la pluralité de noeuds, - Ecriture, dans une zone de configuration de l'image système, de la pluralité de certificats de sécurité lus ; - la zone de configuration de l'image système correspond à une zone de configuration de la partie cliente de l'application de gestion de configurations ; - la mise à jour d'un noeud comporte l'étape suivante : - Suppression, dans une zone de configuration de la partie cliente de l'application de gestion de configuration, de données de configuration ne concernant pas le noeud ; - l'étape de mise à jour de l'image système à déployer est précédée d'une étape de copie de l'image système à déployer, la copie étant alors mise à jour et déployée. [0011] 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 caractéristiques précédentes. [0012] L'invention se rapporte également à un dispositif mettant en oeuvre le procédé selon l'une des caractéristiques précédentes. BREVE DESCRIPTION DES FIGURES [0013] 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. [0014] 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. [0015] 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 [0016] La figure 1 montre une grappe de serveurs 100. La grappe 100 de serveurs comporte au moins un ordinateur 101 hyperviseur 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. L'ordinateur hyperviseur est aussi appelé l'hyperviseur. 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 hyperviseur 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. [0017] La figure 1 montre aussi que l'ordinateur 101 hyperviseur 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. [0018] 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 les plus utiles pour la description de l'invention. [0019] 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... [0020] 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 configurations, - Une zone 302 base de données de configurations de l'application de gestion de configurations, - Une zone 303 image système comportant toute l'arborescence de fichiers dont a besoin une machine pour fonctionner, c'est-à-dire un système d'exploitation, une image système comporte aussi des informations de configuration relatives au secteur de démarrage qu'il faut configurer sur la machine sur laquelle l'image système est déployée ; - Une zone 304, dans la zone 303 image système, correspondant à une zone de données de configuration d'une partie cliente de l'application de gestion de configurations. [0021] Dans cette description on confond la zone de stockage avec l'objet qu'elle stocke. Ainsi on parle indifféremment de la zone 303 image système ou de l'image 303 système. [0022] 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 dudit dispositif. [0023] 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 distantes, 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. [0024] Les étapes du procédé selon l'invention sont mises en oeuvre après la sélection d'une pluralité de noeuds à déployer. Cette pluralité peut être tout ou partie des noeuds de la grappe 100 de serveurs. A l'extrême il se peut qu'il n'y ait qu'un seul noeud dans la pluralité. [0025] La figure 2 montre une étape 1001, mise en oeuvre par l'hyperviseur, de copie de l'image 303 système, facultative, du procédé selon l'invention. Cette copie est réalisée, sur les moyens 203 de stockage ou en mémoire de travail. Dans la mesure où l'image 303 système doit être déployée, le processus de déploiement effectue lui-même une copie de déploiement qu'il déploie via le réseau. Dans une variante l'invention utilise cette copie de déploiement. On parlera alors de mise à jour à la volée. Dans ce dernier cas, l'étape de l'invention se greffe, c'est-à-dire interagit, avec une étape d'un autre procédé. [0026] Le fait de mettre en oeuvre une étape de copie, ou d'interagir avec une étape de copie, permet de garder un original de l'image système. Cela participe à la stabilité des processus de déploiements. [0027] L'étape 1001 est suivie d'une étape 1010, mise en oeuvre par l'hyperviseur, de mise à jour de la copie de l'image système. En l'absence de copie, c'est l'image système elle-même qui est mise à jour. Ainsi, pour la suite, lorsque l'on parle de copie il faut garder à l'esprit que ce n'est qu'une variante de réalisation. [0028] Dans une mise en oeuvre de l'invention l'étape 1010 de mise à jour de la copie de l'image système comporte une étape 1012 de lecture de certificats de sécurité clients dans la base de données 302 de l'application de gestion de configuration. Un certificat de sécurité client est un certificat de sécurité destiné à être utilisé par la partie cliente de l'application de gestion de sécurité. Plus généralement on pourrait lire n'importe quelle donnée de la base de données de l'application de gestion de configurations. Un certificat de sécurité est composé, en général, d'au moins une clé publique et une clé privé. Un certificat de sécurité peut comporter d'autres données et/ou fichier selon la nature du certificat. [0029] Dans la pratique les bases de données d'application de gestion de configuration sont structurées au moins par identifiant de machine à configurer. Dans le cas de l'invention on rappelle que les machines à configurer sont des noeuds d'une grappe de serveurs. Dans ce contexte, il est classique pour l'homme du métier d'extraire des données relatives à une pluralité de noeuds à configurer. Les données extraites, dans le cas décrit des certificats de sécurité, sont associées à un identifiant de noeud. [0030] L'étape 1012 de lecture est suivie d'une étape 1014 de mise à jour de la copie de l'image système. La copie comporte les mêmes zones que l'originale. [0031] Dans l'étape 1014 on utilise les données lue à l'étape 1012 de lecture pour mettre à jour la zone de la copie correspondant la zone 304 données de configuration de la partie cliente de l'application de configuration. Cette zone de la copie est mise à jour comme si elle correspondait à tous les noeuds de la pluralité de noeuds sur lesquels il faut déployer l'image système. Cette mise à jour se fait en maintenant un lien entre les données écrites et un identifiant du noeud auquel la donnée écrite correspond. Ce lien se fait, par exemple, via le nom d'un fichier dans le lequel est écrit la donnée, via un préfixe ou suffixe appliqué à la donnée. Cette liste n'est pas limitative. Ici le point important est que l'image mise à jour comporte toutes les données de configuration, relativement à la partie cliente de l'application de gestion de configurations, de tous les noeuds sur lesquels il faut déployer l'image système. [0032] De l'étape 1010 on passe à une étape 1020, mise en oeuvre pour partie par l'hyperviseur et pour le reste par chacun des noeuds de la pluralité de noeuds sur laquelle il faut déployer l'image système maintenant mise à jour. [0033] L'hyperviseur émet la copie de l'image système mise à jour et chaque noeud la réceptionne pour l'installer. Chaque noeud traite l'image émise par l'hyperviseur. Ainsi avec l'invention, une seule image système est déployée pour tous les noeuds, ce qui permet des optimisations au niveau de l'utilisation du réseau et donc des déploiements rapides. L'étape 1020 de déploiement est classique, elle consiste à recopier le contenu de l'image système sur le noeud et d'y appliquer les directives de configuration du secteur de boot. A la fin de l'étape 1020 de déploiement chaque noeud est donc installé selon l'image système mise à jour. [0034] De l'étape 1020 de déploiement on passe à une étape 1030 de mise à jour de l'image système déployée. L'étape 1030 de mise à jour de l'image 15 déployée est mise en oeuvre par chaque noeud de la pluralité de noeuds à déployer. Dans l'étape 1030 un noeud efface de la zone de l'image déployée correspondant à la zone 304 de l'image système toutes les données de configuration ne correspondant pas au noeud. Le cas échéant les informations restantes, après la suppression, sont renommées et/ou remise en forme pour 20 correspondre à une configuration attendue par la partie cliente de l'application de gestion de configurations. [0035] Dans cette description on a décrit que les données de configuration étaient transportées dans la zone correspondant à la zone de configuration de la partie cliente de l'application de gestion de configurations. Dans la pratique ces 25 données de configuration pourraient être transportées dans une autre zone de l'image système. A l'étape 1030 on irait alors chercher les données de configuration pertinentes, c'est-à-dire liées au noeud, dans cette autre zone pour les copier dans la zone de configuration de la partie cliente de l'application de gestion de configurations. L'autre zone serait ensuite effacée. 30 [0036] A la fin de l'étape 1030 le noeud est configuré et prêt à communiquer de manière sécurisée avec la partie serveur de l'application de gestion de configuration. [0037] Le procédé selon l'invention a donc permis de rendre apte, de manière optimisée, chaque noeud déployés à communiquer avec l'application de gestion de configurations et ce dès la fin du processus de déploiement et sans étape de configuration supplémentaire qui impliquerait une validation de sécurité. [0038] Dans la description on a illustré le fait que l'application de gestion de configurations est installée sur un hyperviseur chargé du déploiement d'images système dans la grappe de serveurs. Cela n'est pas limitatif. L'application de gestion de configuration, et sa base de données, peuvent être sur une autre machine accessible par l'hyperviseur via une connexion réseau. [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 configuration d'une partie cliente d'une application de gestion de configurations lors d'un déploiement d'une image système sur une pluralité de noeuds d'une grappe de serveurs caractérisé en ce qu'il comporte les étapes suivantes : - Mise à jour (1010) de l'image système à déployer selon un paramétrage d'une partie serveur de l'application de gestion de configurations et en fonction de la pluralité de noeuds, - Déploiement (1020) de l'image système mise à jour sur chaque noeud de la pluralité de noeuds de la grappe de serveurs, - Mise à jour (1030), sur chaque noeud, de l'image système déployée en fonction du noeud. 2. Procédé selon la revendication 1, caractérisé en ce que la mise à jour de l'image à déployer comporte les étapes suivantes : - Lecture (1012) d'une pluralité de certificats de sécurité dans une base de données de l'application de gestion de configurations, chaque certificat de sécurité correspondant à un noeud de la pluralité de noeuds, - Ecriture (1014), dans une zone de configuration de l'image système, de la pluralité de certificats de sécurité lus. 3. Procédé selon la revendication 2 caractérisé en ce que la zone (304) de configuration de l'image système correspond à une zone de configuration de la partie cliente de l'application de gestion de configurations. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que la mise à jour d'un noeud comporte l'étape suivante : - Suppression (1030), dans une zone de configuration de la partie cliente de l'application de gestion de configuration, de données de configuration ne concernant pas le noeud. 5. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'étape de mise à jour de l'image système à déployer est précédée d'une étape (1001) de copie de l'image système à déployer, la copie étant alors mise à jour et déployée. 6. Dispositif (203) 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. 7. Dispositif (101) mettant en oeuvre le procédé selon l'une des revendications précédentes.