Brevet FR2990037A1 — publié le 20131101

Système de sécurité et procédé pour commander des interactions entre des composants d'un système informatique La présente invention concerne les systèmes informatiques et, en particulier, la commande d'accès au sein d'un système informatique. Avec le développement continu des technologies de l'information, le volume toujours croissant de données sous forme numérique et la sécurisation de ces données constituent un problème crucial auquel sont aujourd'hui confrontées la plupart des entreprises, lesquelles ont besoin de protéger les données à chaque point d'accès en mettant en oeuvre des systèmes plus sûrs mais en même temps plus accessibles. Les sociétés commerciales hébergent leurs sites Internet dans des serveurs en réseau avec le reste des équipements informatiques de leur organisme. Nombres d'organismes commerciaux et non commerciaux (p. ex. gouvernementaux, militaires, sanitaires et scolaires) communiquent sur des réseaux et accèdent à l'Internet depuis des postes de travail eux-mêmes en réseau avec des systèmes stockant et traitant des données confidentielles. L'adoption généralisée de dispositifs mobiles et d'applications associées a ajouté une nouvelle dimension, de tels dispositifs servant de plus en plus pour des transactions bancaires et des achats. L'attaque d'un seul client ou serveur assure a un délinquant une connectivité immédiate aux informations et aux ressources informatiques de tout un organisme, compromettant la confidentialité des informations et instaurant éventuellement le chaos dans le fonctionnement de l'organisme. Les attaques visant des données ont plus que triplé au cours des cinq dernières années, ce qui rend encore plus urgente la nécessité d'adapter la sécurité à la hausse de la demande d'accès. Les éléments habituels dans l'élaboration d'un modèle de sécurité sont la confidentialité, l'intégrité, l'accessibilité et la confiance vis-à-vis des données. La confidentialité des données s'obtient en limitant la divulgation de celles-ci aux personnes habilitées à y accéder, tandis que l'intégrité des données garantit que les données ne risquent pas d'être modifiées, volontairement ou accidentellement. L'accessibilité des données implique un accès commode aux données, tandis que la confiance vis-à-vis des données a pour effet qu'une utilisation spécifique offre un certain degré de confiance quant à des objectifs de sécurité préétablis, la confidentialité revêtant par exemple une importance cruciale dans le domaine de la défense, et la confidentialité et l'intégrité des données étant l'une et l'autre tout aussi pertinentes dans les secteurs de la santé et des finances. Des modèles de sécurité multiniveau utilisent une démarche de classification en fonction de la confidentialité des données. Des données ayant été classées avec des niveaux de confidentialité différents peuvent se trouver toutes dans un seul domaine et être reçues, traitées, stockées et diffusées même si tous les utilisateurs présents dans le domaine n'ont pas l'habilitation de sécurité pour accéder à toutes les données situées dans le domaine. Les modèles de sécurité multiniveau les plus connus sont Bell- LaPadula et Biba, dans lesquels un système comporte des intervenants et des objets, avec des opérations de lecture impliquant la circulation de données d'un objet à un intervenant et des opérations d'écriture impliquant la circulation de données d'un intervenant à un objet. Le modèle Bell- LaPadula ne concerne que la confidentialité des données, chaque intervenant et objet ayant un niveau de confidentialité qui consiste en une classification ou une habilitation (à savoir SECRET, CONFIDENTIEL, etc.) qui indique le niveau de protection des données. Le modèle BallLaPadula met en oeuvre deux propriétés : (i) la propriété de sécurité simple : un intervenant à un niveau de sécurité donné ne doit pas lire un objet à niveau de sécurité supérieur (pas de lecture d'un niveau supérieur) ; et (ii) la propriété notée "m" : un intervenant à un niveau de sécurité donné ne doit pas écrire dans un objet à niveau de sécurité inférieure (pas d'écriture dans un niveau inférieur). Le modèle Biba concerne uniquement l'intégrité, ne tenant nullement compte de la confidentialité et mettant également en oeuvre deux propriétés inverses de celles de Bell-LaPadula : (i) la propriété d'intégrité simple : un intervenant à un niveau d'intégrité donné ne doit pas lire un objet à niveau d'intégrité inférieur (pas de lecture d'un niveau inférieur) ; et (ii) la propriété d'intégrité notée "m" : un intervenant à un niveau d'intégrité donné ne doit pas écrire dans un objet à niveau d'intégrité supérieur (pas d'écriture dans un niveau supérieur). Bien que les deux modèles de sécurité Bell-LaPadula et Biba aient cherché à faire face à la circulation de données sur plusieurs niveaux de sécurité, il est admis que l'un et l'autre sont limités et manquent de souplesse. Les deux modèles ne permettent efficacement une circulation de données que dans un seul sens, Bell-LaPadula permettant une lecture d'un niveau inférieur et une écriture dans un niveau supérieur (par rapport au niveau de sécurité), ce qui assure la confidentialité des données, et Biba ne permettant que la lecture d'un niveau supérieur et l'écriture dans un niveau inférieur, ce qui assure l'intégrité des données. Cependant, aucun des deux modèles n'assure à la fois l'intégrité et la confidentialité des données. S'ils sont mis en oeuvre d'une manière stricte, les deux modèles s'accompagnent de problèmes inévitables, car il n'est pas possible, dans la pratique, de mettre en oeuvre un système où des données ne circulent que dans un seul sens. Des solutions de rechange sont apparues lors de tentatives visant à mettre en oeuvre les deux modèles dans des situations concrètes, notamment en permettant une circulation à largeur de bande limitée dans un sens interdit. Cependant, il s'agit en fait d'une forme de déclassification qui, au moins dans une certaine mesure, compromet toujours la sécurité d'un système. De plus, cette déclassification implique généralement une hausse du niveau de sécurité ou d'intégrité d'un intervenant ou d'un objet dans le but de limiter le plus possible le risque, ce qui aboutit en fin de compte à ce que la plupart des intervenants/objets ont le niveau maximal de sécurité ou d'intégrité, ce qui donne en fait un système sans cloisonnement du niveau de sécurité ou d'intégrité. Afin d'assurer la sécurité des composants et données les plus sensibles d'un système, on a recouru à des solutions du type muraille de Chine, impliquant la construction d'énormes mécanismes défensifs autour de ces composants, mais là encore il en résulte un manque de souplesse du système et une utilisation dispendieuse de ressources. La présente invention vise à proposer une manière de commander les interactions entre composants d'un système informatique de telle sorte que la sécurité du système ou des données ne soit pas amoindrie. L'invention vise en outre à proposer une manière de commander les interactions entre des composants situés à des niveaux de sécurité différents de telle sorte que la sécurité du système ou des données ne soit pas amoindrie, et qui permette une circulation de données dans les deux sens. Selon un aspect, la présente invention a pour objet un procédé de commande d'interactions entre un ou plusieurs composants d'un système informatique, le système comportant une pluralité de composants conçus pour interagir les uns avec les autres afin d'entreprendre des activités, le procédé comportant l'attribution d'un niveau de sécurité fixe à chaque composant du système et le contrôle de toutes les interactions alors actives et nouvellement demandées entre composants du système, une interaction nouvellement demandée comprenant une demande, par un composant source, d'interaction avec un composant destinataire. Tout d'abord, les niveaux de sécurité attribués des composants sont évalués et si la différence entre les niveaux de sécurité des composants source et destinataire dépasse un seul niveau, l'interaction demandée est empêchée. S'il existe une différence d'un seul niveau entre les niveaux de sécurité des composants, les interactions des deux composants sont évaluées. Si un composant participe à une interaction avec n'importe quel composant à niveau de sécurité attribué inférieur au sien, et si l'interaction demandée implique un composant source ou destinataire à niveau de sécurité attribué supérieur, ou participe alors à une interaction avec n'importe quel composant à niveau de sécurité attribué supérieur, l'interaction demandée est empêchée. Cependant, si un composant participe à une interaction avec n'importe quel composant à niveau de sécurité attribué supérieur au sien, et si l'interaction demandée implique un composant source ou destinataire à niveau de sécurité attribué inférieur, ou participe alors à une interaction avec n'importe quel composant à niveau de sécurité attribué inférieur, l'interaction demandée est empêchée. En outre, si un composant contient des données à niveau de sécurité supérieur à celui attribué au composant, et si l'interaction demandée implique un composant source ou destinataire à niveau de sécurité attribué inférieur, ou qui participe alors à une interaction avec n'importe quel composant à niveau de sécurité attribué inférieur, l'interaction demandée est empêchée. Cependant, si un composant contient des données à niveau de sécurité inférieur à celui attribué au composant, et si l'interaction demandée implique un composant source ou destinataire à niveau de sécurité attribué supérieur, ou qui participe alors à une interaction avec n'importe quel composant à niveau de sécurité attribué supérieur, l'interaction demandée est empêchée. Dans tous les autres cas, l'interaction demandée est autorisée. Lors du contrôle de toutes les interactions alors actives et nouvellement demandées entre composants du système, une valeur d'état est déterminée pour chacun des composant source et composant destinataire d'une interaction demandée, la valeur d'état dépendant des 5 niveaux de sécurité attribués des composants participant alors à une interaction avec les composants source et destinataire de l'interaction demandée. Les valeurs d'état des composants source et destinataire de l'interaction demandée sont comparées et une condition de blocage d'état est imposée quand une différence de plus d'un seul niveau de sécurité 10 existe entre les valeurs d'état des composants source et destinataire. L'interaction demandée est empêchée pendant qu'existe une condition de blocage d'état. Un niveau de priorité est attribué à chaque activité à laquelle peut participer un composant pendant une interaction. Quand une condition de 15 blocage d'état a été imposée, les interactions existantes des composants source et destinataire qui ont provoqué à la condition de blocage d'état sont isolées et les niveaux de priorité associés à l'activité impliquée dans les interactions isolées sont comparés avec le niveau de priorité associé à l'activité impliquée dans l'interaction demandée entre les composants 20 source et destinataire. La condition de blocage d'état est levée quand le niveau de priorité de l'activité de l'interaction isolée est inférieur à celui de l'activité de l'interaction demandée entre les composants source et destinataire et l'interaction demandée est autorisée. Sinon, la condition de blocage d'état est maintenue et l'interaction demandée entre les 25 composants source et destinataire reste empêchée. La présente invention concerne en outre un programme informatique comportant un moyen formant code de programme informatique conçu pour exécuter toutes les étapes du procédé décrit plus haut et concerne la mise en oeuvre du programme informatique sur un 30 support exploitable par ordinateur. Selon un autre aspect, la présente invention concerne un système de sécurité pour commander des interactions entre un ou plusieurs composants d'un système informatique, le système informatique comportant une pluralité de composants conçus pour interagir les uns avec les autres afin de participer à des activités, le système comprenant un mécanisme d'application de modèle de sécurité (« SMEM »: Security Model Enforcement Mechanism » en langue anglaise) doté du programme informatique précité. L'invention sera mieux comprise à l'étude détaillée de quelques modes de réalisation pris à titre d'exemples non limitatifs et illustrés par les dessins annexés sur lesquels : - la figure 1 représente un schéma de principe d'un système informatique dans lequel peut être mise en oeuvre la présente invention ; - les figures 2 à 4 illustrent des exemples simples de mise en oeuvre concrète du modèle de sécurité selon la présente invention ; - la figure 5 est un schéma de principe illustrant les interactions existantes de deux composants d'une transaction nouvellement demandée ; - la figure 6 est un organigramme illustrant la manière dont est déterminé l'état d'un composant, et si, oui ou non, il existe un blocage d'état ; et - la figure 7 illustre l'équation 7 de la description. Au sens de la présente invention, le terme "composant" désigne une entité informatique, soit un matériel, soit une combinaison d'un matériel et d'un logiciel, soit un logiciel, soit à exécution par un logiciel. Par exemple, un composant peut être, de manière nullement limitative, un processus exécuté dans un processeur, un processeur, un objet, un exécutable, un processus élémentaire d'exécution, un programme et/ou un ordinateur. Un ou plusieurs composants peut/peuvent figurer dans un processus et/ou un processus élémentaire d'exécution et un composant peut se trouver dans un seul ordinateur et/ou être réparti entre deux ou plus de deux ordinateurs. Bien que la présente invention soit décrite en référence à des composants logiciels, l'invention ne se limite pas à cela. Considérant la figure 1, il y est représenté un système informatique 100, comportant une pluralité de composants 110 à fonctionnement commandé par un système d'exploitation 120 qui comprend un mécanisme SMEM 130 d'application de modèle de sécurité. Le mécanisme SMEM 130 d'application de modèle de sécurité commande toutes les interactions 140 entre tous les composants 110 du système informatique 100 et fonctionne au niveau du noyau du système d'exploitation 120 d'ordinateur en ayant les mêmes droits que le système d'exploitation 120, de telle sorte que toutes les interactions puissent être contrôlées et commandées. Une interaction 140 est une demande transmise par un composant 110 à un autre composant pour qu'ils interagissent afin d'exécuter un ou plusieurs processus ou qu'ils accèdent à des données, et peut comprendre des données transmises entre composants 110 pendant l'interaction. Le mécanisme SMEM d'application de modèle de sécurité 130 est conçu pour mettre en oeuvre un modèle de sécurité 150 qui évalue toutes les interactions demandées entre les composants 110 du système et, d'après l'évaluation, autorise ou refuse l'interaction demandée entre les composants 110. Le mécanisme SMEM d'application de modèle de sécurité 130 est mis en oeuvre dans un environnement sécurisé qui n'est ni accessible ni contournable par aucun des composants 110 du système 100. Il faut souligner que le modèle de sécurité 150 peut être mis en oeuvre de nombreuses manières en fonction de l'architecture employée. Par exemple, le SMEM 130 peut être une application indépendante sécurisée possédant le droit de contrôler et de commander toutes les interactions. A chaque composant 110 du système 100 est attribué un niveau de sécurité ql.....qn, en fonction de l'importance ou de la confidentialité relative de ses fonctions et/ou des données stockées, ql désignant le niveau de sécurité le plus haut et qn le niveau de sécurité le plus bas. Le système d'exploitation 120 selon la présente invention exploite un environnement multitâche où chaque composant 110 peut interagir avec un ou plusieurs autres composants 110 du système 100 afin d'exécuter simultanément un ou plusieurs processus ou activités 160. Aux fins de la description de la présente invention, un composant source 112 est le composant demandant une interaction 140 et un composant destinataire 114 est le composant avec lequel une interaction est souhaitée. Dans le modèle de sécurité 150 selon la présente invention, l'évaluation faite par le SMEM 130 pour déterminer si, oui ou non, une interaction entre deux composants 110 peut être autorisée est faite non seulement d'après les niveaux de sécurité attribués ql.....qn des composants, mais encore en fonction des activités en cours 160 exécutées par chacun des deux composants 110. Voici un résumé simplifié des règles du modèle de sécurité 150 selon la présente invention, appliqué par le SMEM 130 : 1. Si un composant 110 participe à une interaction 140 avec un composant 110 à niveau de sécurité inférieur, il ne peut pas entamer une nouvelle interaction 140 avec, ni accepter une nouvelle demande d'interaction émanant d'un composant 110 qui relève d'une interaction ou participe alors à une interaction avec un composant d'un niveau de sécurité supérieur au sien. 2. Si un composant 110 participe à une interaction 140 avec un composant 110 à niveau de sécurité supérieur, il ne peut pas entamer une nouvelle interaction 140 avec, ni accepter une demande d'interaction 140 émanant d'un composant 110 qui relève d'une interaction ou participe alors à une interaction 140 avec un composant 110 d'un niveau de sécurité inférieur au sien. 3. Si un composant 110 contient des données d'un niveau de sécurité supérieur au sien, il ne peut pas entamer une interaction 140 avec, ni accepter une demande d'interaction 140 émanant d'un composant 110 qui relève d'une interaction ou participe alors à une interaction 140 avec un composant 110 d'un niveau de sécurité inférieur au sien. 4. Si un composant 110 contient des données d'un niveau de sécurité inférieur au sien, il ne peut pas entamer une nouvelle interaction 140 avec, ni accepter une demande d'interaction émanant d'un composant 110 qui relève d'une interaction ou participe alors à une interaction 140 avec un composant 110 d'un niveau de sécurité supérieur au sien. Les figures 2 à 4 illustrent trois exemples différents de la mise en oeuvre concrète des règles du modèle de sécurité 150 selon la présente invention. Un niveau de sécurité q allant du Niveau 1 au Niveau 4 (N1-N4) est attribué à chaque composant 110, le Niveau 1 désignant la sécurité la plus grande et le Niveau 4 la plus petite. Considérant la figure 2, le composant 112 à Niveau de sécurité 2 accède alors à des données depuis le composant 116 auquel est attribué un Niveau de sécurité 1 en raison des données confidentielles qui y sont stockées, tandis que le composant 114, qui a lui aussi un Niveau de sécurité 2, interagit alors avec les deux composants 117 et 118 auxquels a été attribué un Niveau de sécurité 3. Dans cette situation, l'interaction entre les composants 112 et 114 est empêchée, car le composant 112 interagit alors avec le composant 116 qui a un niveau de sécurité supérieur et le composant 114 participe alors à des interactions avec les composants 117 et 118 à niveau de sécurité inférieur. L'interaction entre le composant 114 et le composant 116 est empêchée par suite du fait que le composant 114 participe alors à des interactions avec les composants 117 et 118 à niveau de sécurité inférieur. Les composants 117 et 118 peuvent interagir l'un avec l'autre indépendamment de leur interaction avec le composant 114 à niveau de sécurité supérieur car ils ont le même niveau de sécurité, mais la communication avec tout composant 110 à niveau de sécurité inférieur sera empêchée. La communication entre les composants 117 et 118 et le composant 112 est empêchée en conséquence de l'accession du composant 112 à des données présentes dans le composant 116. Considérant la figure 3, les deux composants 112 et 114 accèdent alors à des données confidentielles présentes dans le composant 116. Les interactions entre les composants 112 et 114 aux fins de partager des données sont autorisées, bien que les deux composants participent à des interactions avec le composant 116, car les composants 112 et 114 ont le même niveau de sécurité. Cependant, les transactions d'interaction impliquant l'un ou l'autre des composants 112 et 114 avec l'un ou l'autre des composants 117 et 118 seront empêchées par suite du fait que les composants 112 et 114 accèdent alors à des données présentes dans le composant 116. Les interactions entre les composants 117 et 118 sont autorisées, car ceux-ci ont le même niveau de sécurité et ni l'un ni l'autre n'est impliqué dans une interaction avec des composants 110 à niveau de sécurité supérieur ou inférieur. Dans le scenario illustré sur la figure 4, le composant est impliqué dans une interaction avec le composant 117, tandis que le composant 114 est impliqué dans une transaction avec le composant 118. En appliquant les règles du modèle 150 selon la présente invention, les deux composants 112 et 114 sont empêchés d'accéder aux données présentes dans le composant 116 en conséquence de leur implication dans une interaction avec les composants 117 et 118 à niveau de sécurité inférieur, mais peuvent demander une interaction l'un avec l'autre ou accepter une demande d'interaction de l'un à l'autre. Le composant 112 peut également entrer en communication avec le composant 118 ou accepter une demande émanant du composant 118, tandis que le composant 114 peut demander une interaction avec le composant 117 ou accepter une demande d'interaction émanant du composant 117. Les composants 117 et 118 peuvent aussi communiquer l'une avec l'autre, car ils ont le même niveau de sécurité, mais ils seront totalement empêchés de communiquer avec les composants 110 à niveau de sécurité inférieur. On va maintenant décrire plus en détail le modèle de sécurité 150 selon la présente invention appliqué par le SMEM 130. Exprimé plus formellement, le modèle de sécurité 150 repose sur les ensembles suivants : (i) composant c du système : c E c72) identifiant chaque composant du système ; (ii) état S de sécurité, qui est une valeur dynamique dépendant des activités particulières exécutées à un moment particulier par un composant ; (iii) niveau q de sécurité : q = qi,) qui est une valeur fixe attribuée à chaque composant en fonction de l'importance relative ou de la confidentialité de ses fonctions ou de l'une quelconque des données stockées dans celui-ci, qi désignant la cote de sécurité la plus haute et qn la cote de sécurité la plus basse. Plus la valeur de q est élevée, plus le niveau de sécurité attribué à celui-ci est bas (c'est-à-dire qu'un composant auquel est attribuée une valeur qi a un plus haut niveau de sécurité qu'un composant auquel est attribuée une valeur q3). Par exemple, dans un système d'aéronef, les composants concernant les commandes de l'aéronef peuvent, pour des raisons de sûreté, se voir attribuer le plus haut niveau de sécurité qi, tandis qu'un réseau de capteurs qui, dans le système d'aéronef, contrôle et fournit des données relatives au mouvement des organes de l'aéronef peut avoir des noeuds de capteurs à chacun desquels est attribué un niveau de sécurité inférieur q3, car ces composants sont moins critiques que les commandes de l'aéronef. Il existe un lien fonctionnel entre les capteurs et les commandes, mais ceux-ci sont séparés par une entité fonctionnelle de prise de décision à laquelle est attribué un niveau de sécurité q2. Bien que le niveau de sécurité q d'un composant soit fixe au moment où système est en marche, les niveaux de sécurité attribués peuvent, si nécessaire, être reconfigurés lorsque changent des besoins du système ; (iv) niveau de priorité p : p .pn), qui est une valeur fixe attribuée à chaque activité d'un composant, pl désignant la cote de priorité la plus haute et pn la cote de priorité la plus basse. Comme pour le niveau de sécurité q, plus la valeur de p est élevée, plus le niveau de sécurité attribué à celui-ci est bas (c'est-à-dire qu'une activité à laquelle est attribuée une valeur pl a un plus haut niveau de sécurité qu'une activité à laquelle est attribuée une valeur p3). Par exemple, dans un système d'aéronef, une fonction ordinaire telle que l'entraînement d'un vérin, à laquelle est attribué un niveau de priorité p3, pourrait être empêchée par une condition spéciale telle qu'un seuil d'alerte détecté par un capteur, a niveau de priorité supérieur pz ; (v) associations actives d'un composant t E ...ti)c où t1 c ck x cn désigne une interaction en cours entre deux composants ck et cn; et ti+i désigne une interaction nouvellement demandée à évaluer par le SMEM 130. Chaque composant ck du système est défini d'après son état de 20 sécurité Sck, un état de sécurité fixe qck attribué à ce composant et l'ensemble en cours d'associations actives du composant TCk : Ck = Sck x qck x TCk s'exprime sous la forme ck = (d, d,d) Equation 1 Chaque activité t est définie d'après les deux composants 110 25 impliqués dans l'activité (à savoir un composant source k 112 qui a demandé l'interaction et un composant destinataire n 114 avec lequel est demandée l'interaction), et le niveau de priorité fixe pti attribué à l'activité t : t1= ck x C x pti s'exprime sous la forme t1= (tf,tL* Equation 2 Une activité existante est représentée sous la forme t1, désignant une activité en cours impliquant le composant k (tf) et le composant n (t), le composant k étant le composant source qui a déclenché l'interaction avec le composant destinataire n. Une activité nouvelle est représentée sous la forme (ti+i), désignant une activité nouvellement demandée impliquant une interaction entre le composant k (t1+1) et le composant n (t+1-), déclenchée par le composant k et qui est à évaluer par le SMEM 130 avant que l'interaction ne soit autorisée. La valeur d'état S est une valeur dynamique déterminée par le SMEM 130 pour les composants source 112 et destinataire 114 de chaque nouvelle demande d'interaction et reflète l'activité en cours de chaque composant. La valeur d'état déterminée doit prendre en compte des différences de niveau de sécurité entre tous les composants 110 avec lesquels le composant source 112 ou destinataire 114 est alors activement associé (c'est-à-dire avec lesquels il est impliqué dans une interaction). Par exemple, comme illustré sur la figure 5, un composant k interagit alors avec les composants d, e, f et g, un niveau de sécurité q2 ayant été attribué au composant d, un niveau de sécurité qi ayant été attribué au composant e et un niveau de sécurité q3 ayant été attribué aux composants f et g (c'est-à-dire que le composant e est le plus sûr de tous les composants en interaction et que les composants f et g sont les moins sûrs, qf > qe). En même temps, le composant i coopère alors avec les composants h et i, un niveau de sécurité q2 ayant été attribué au composant i et un niveau de sécurité q3 ayant été attribué au composant h (c'est-à-dire que le composant i est plus sûr que le composant h). Une autre interaction impliquant le composant k avec le composant n est maintenant demandée par le composant source k. Tout d'abord, la légitimité de la demande doit être déterminée en référence aux niveaux de sécurité des composants k et n. Si les composants sont séparés par plus d'un niveau de sécurité, la communication est empêchée et toute autre évaluation est inutile. t1+1 1+1 = faux) Equation 3 cf ) ((c21 t c22 ) > -> IP( t1+1 La détermination des valeurs d'état pour les composants k et n, illustrée sur la figure 5, par le SMEM 130 en appliquant le modèle de sécurité 150 selon la présente invention va maintenant être décrite en référence à l'organigramme de la figure 6. Le processus commence par l'étape 200 et, lors de l'étape 202, les niveaux de sécurité attribués qk et qn des composants k et n sont lus. Lors de l'étape 204, le SMEM examine toutes les associations alors actives (c'est-à-dire les interactions en cours) de chacun des composants k et n et lit les niveaux de sécurité des composants impliqués. Lors de l'étape 206, le SMEM compare les niveaux de sécurité qk et qn des composants k et n. Lors de l'étape 208, il est déterminé que le composant k a une cote de sécurité inférieure (c'est-à- dire est moins sûr) à celle du composant n (c'est-à-dire que qk > qn), à l'état S ck du composant k doit être attribuée une valeur qui correspond au niveau de sécurité du composant 110 le moins sûr auquel il est activement associé (à savoir Qmax\ ) tandis qu'à l'état Scn du composant n doit être attribuée une valeur qui correspond au niveau de sécurité du composant 110 le plus sûr auquel il est alors associé (à savoir Qmin). Par conséquent, lors de l'étape 210, au composant k sera affectée une valeur d'état Sck correspondant au niveau de sécurité du composant f ou g (Sck= qfg = q3) et au composant n sera affectée une valeur d'état Scn correspondant au niveau de sécurité du composant i (Scn= qh = q2). Cependant, si, lors de l'étape 208, il est déterminé que le composant k n'a pas une cote de sécurité inférieure à celle du composant n (c'est-à-dire que qk > qn), le processus se poursuit lors de l'étape 212 où il est déterminé si, oui ou non, le composant k a une cote de sécurité supérieure (c'est-à-dire est plus sûr) à celle du composant n (qk cf , cic = Qmax (cnET cl` = (c) pour ck -> d G cf 4 = Qmin(cnET cl` = Qrnax (c.131) Equation 4 cc = cf, d = Qmin(d)ETdt = Qinin(cD Après que la valeur d'état Sck et Scn de chacun des composant source 112 et composant destinataire 114 a été déterminée par le SMEM 130 de la manière décrite plus haut en référence aux figures 5 et 6, il est décidé si, oui ou non, l'interaction demandée doit être autorisée d'après la différence de valeur d'état des composants k et n. Si la différence entre les valeurs d'état S déterminées des composants k et n est supérieure à 1 (c'est-à-dire qu'il y a plus d'un seul niveau de sécurité entre les activités associées en cours à niveau le plus haut/le plus bas des composants k et n), un blocage d'état de sécurité survient et l'interaction entre les deux composants est empêchée. Autrement dit, le modèle de sécurité 150 selon la présente invention ne permet une interaction entre composants qu'à un seul niveau de sécurité au-dessus et un niveau de sécurité au-dessous (c'est-à-dire qu'il est découvrable à un seul niveau). Par conséquent, une interaction demandée entre les deux composants aboutira à une condition de blocage d'état si une différence entre les niveaux de sécurité de n'importe quels composants avec lesquels les deux interagissent alors dépasse un seul niveau de sécurité. Par conséquent, revenant à la figure 6, lors de l'étape 210, où la valeur d'état du composant k a été attribuée sous la forme Sck = qfg = q3 et celle du composant n sous la forme Scn = q, = q2, du fait que le composant k a une cote de sécurité plus basse que celle du composant n (c'est-à-dire que qk > qn) lors de l'étape 208, il existe une différence d'un seul niveau de sécurité entre les valeurs d'état des composants k et n (à savoir de q3 a q2). Par conséquent, il n'existe pas de situation de blocage d'état de sécurité lors de l'étape 218 et la nouvelle interaction demandée entre les composants k et n sera autorisée. Cependant, si, lors de l'étape 214 de la figure 6, la valeur d'état du composant k a été déterminée sous la forme Sck = qe = qi et celle du composant n sous la forme Scn = qh = q3, du fait que le composant k a une cote de sécurité supérieure à celle du composant n (c'est-à-dire que qk > qh) lors de l'étape 212 , il existe une différence de deux niveaux de sécurité entre les valeurs d'état des composants k et n (à savoir de qi à q3). Par conséquent, il existe lors de l'étape 220 une situation de blocage d'état et la nouvelle interaction demandée entre les composants k et n sera empêchée. Pour l'étape 216 de la figure 6, où la valeur d'état du composant k a été déterminée sous la forme Sck = qe = qi et celle du composant n sous la forme Scn = qi = q2, du fait que les composants k et n ont le même niveau de sécurité (c'est-à-dire que ni l'une ni l'autre des étapes 208 et 212 n'est exacte), l'existence d'une différence d'un seul niveau de sécurité est déterminée entre les valeurs d'état des composants k et n (à savoir de qi à q2). Par conséquent, lors de l'étape 222, il n'existe aucune situation de blocage d'état et la nouvelle interaction est autorisée. C'est ce qu'on peut exprimer plus formellement par : (d cf) > 110, tuki = exact 1, tuki = faux Equation 5 En résumé, un blocage d'état surviendra dans les trois conditions suivantes : (i) le niveau de sécurité du composant source 112 ( qck) est inférieur (c'est-à-dire moins sûr) à celui du composant destinataire 114 (qcn) et la différence entre le niveau de sécurité du composant le moins sûr 110 auquel le composant source 112 est alors activement associé (q (tn) et le niveau de sécurité du composant le plus sûr 110 auquel le composant destinataire 114 est activement associé (q (tn) est supérieure à 1 ; (ii) le niveau de sécurité du composant source 112 ( q,k) est supérieur (c'est-à-dire plus sûr) à celui du composant destinataire 114 ( q,n) et la différence entre le niveau de sécurité du composant le plus sûr 110 auquel le composant source 112 est activement associé (q (tn) et le niveau de sécurité du composant 110 le moins sûr auquel le composant destinataire 114 est activement associé (q (tn) est supérieure à 1 ; (iii) le niveau de sécurité du composant source 112 ( q,k) est égal à celui du composant destinataire 114 ( q,n) et la différence entre les niveaux de sécurité des composants 110 les plus sûrs auxquels chacun des composant source 112 (q (tD) et composant destinataire 114 (q (tn) est alors activement associé est supérieure à 1 ; Cependant, même quand existe une condition de blocage d'état, l'interaction entre les composants source 112 et destinataire 114 peut encore être autorisée si un empêchement reposant sur la priorité peut survenir. Comme décrit plus haut, une valeur de priorité est attribuée à toutes les activités et, dans le cas d'une condition de blocage d'état, des activités d'un niveau de priorité inférieur peuvent être empêchées si l'interaction demandée implique une activité à niveau de priorité supérieur. Afin de déterminer si un empêchement reposant sur la priorité peut survenir, les interactions qui provoquent alors le blocage d'état sont isolées. Pour la condition de blocage d'état, si l'interaction existante (ti) du composant source 112 qui provoque alors le blocage d'état a un niveau de priorité inférieur à celui de l'interaction nouvellement demandée (tz+i) entre les composants 112 et 114, demandée par le composant source 112 (c'est-à-dire si t > tri), le SMEM 130 détermine qu'un empêchement reposant sur la priorité doit survenir, provoquant l'interruption de l'interaction existante (tf) et le commencement de l'activité nouvellement demandée (ti+i), à priorité supérieure, impliquant une interaction entre les composants 112 et 114. Cependant, si l'interaction existante (ti) n'a pas une priorité inférieure à celle de l'interaction nouvellement demandée (t/±1), (c'est-à-dire si tri), le SMEM 130 détermine que l'interaction existante se poursuit et que l'interaction nouvellement demandée reste empêchée. En résumé, pour toutes les activités provoquant un blocage d'état, si la priorité de l'activité existante est supérieure ou égale à la priorité d'une activité nouvellement demandée, l'activité existante se poursuit et l'interaction demandée reste empêchée. Cependant, si la priorité de l'activité nouvellement demandée est supérieure à celle de l'activité existante provoquant le blocage d'état, un empêchement reposant sur la priorité survient, provoquant l'interruption de l'activité existante et le commencement de l'interaction demandée entre les deux composants. C'est ce qu'expriment plus formellement les équations 6 et 7. a d t1 t1+1 +1 > ci2 V (1+1 1+1) t2) C3 c3 t1 t1+1 +1 2t111, t1+1 1+1 1 t1 t E c31 m ax(c t 1+1 t21+1 t E32 , min (c21, c) 22 G c2 t tl t1+1 +1 t E c31 , min (c2 , c) d 2 G c2 d t1+1 1 t1 t1 E32m ax (ctl c 2) 2 2 0, t1 = exact i+1 (0, ti = exact > t3 1, t1 = faux 0, t1 = exact i+1 (0, ti = exact > t3 1, t1 = faux 0, t1 = exact i+1 (0, t1 = exact > t3 1,t1 = faux 0, t1 = exact i+1 (0, t1 = exact > t3 1, t1 = faux t1+1 > c22 Equation 6 ou, plus en détail > = QEf = 4 é é 4 > cc = Q-(4)ET 0-GD 4= cc = en(4)E7-= = Qm-W fa.4 T 21 pour t é- L,2 ) > 1,v (,`,' 1 > 1t t = faux 0, t, = exact [0, t = exact > 1, t = f aux O t = exact 0, t, = exact (O t = exact t1, to = faux f 0, t, = exact [0, t = exact 1, t, >t _ fuuo 0, t, = exact 0, t, = exact Equation 7 L'Equation 7 est également représentée sur la figure 7. En résumé, pour toutes les associations actives (c'est-à-dire toutes les interactions en cours avec d'autres composants) du composant source t1+1 112 de la nouvelle association proposée (c31 ) et toutes les associations actives du composant destinataire 114 de la nouvelle association proposée l+1 (c32 (c32 ), il convient tout d'abord de déterminer si la valeur d'état du tl+1 composant source 112 de la nouvelle association proposée (c11 ) est inférieure à la valeur d'état du composant destinataire 112 de la nouvelle tl+1 association proposée (c12 ), ou inversement. Il faut souligner qu'il n'y a pas d'option de valeurs d'état égales, car une différence a déjà été déterminée entre les niveaux de sécurité des composants source et destinataire 112 et 114. Ensuite, il est déterminé si, oui ou non, la nouvelle association proposée est un élément de l'ensemble d'associations actives tl+1 appartenant au composant source 112 (t1 E c31 ) ou au composant l+1 destinataire destinataire (t1 E c32 ) . Ensuite, il faut évaluer si, oui ou non, la différence de niveau de sécurité des composants 110 et 113 de l'association existante (ti) provoquerait un blocage d'état. Si, par exemple, t1+1 t1+1 t1+1 E c31 et c12 > c1 , 2 n'importe quelle t1, où l'un des composants 110 a tuk1 un niveau de sécurité supérieur à (c21 , provoquera un blocage d'état. S'il n'existe aucun blocage d'état, l'association existante (ti) peut se poursuivre. S'il existe un blocage d'état, une évaluation de priorité est réalisée. Si l'interaction existante (ti) a une priorité supérieure ou égale à celle de l'association nouvellement demandée, elle peut se poursuivre, sinon l'interaction existante doit prendre fin et l'interaction nouvellement demandée est autorisée. Les quatre étapes présentées ci-dessus sont combinées en une évaluation unique effectuée chaque fois qu'un composant source 110 demande une activité avec un composant destinataire 114, ce qui aboutit à décider si, oui ou non, il faut autoriser la formation de la nouvelle association (c'est-à-dire que (t1+1 = exact)). REVENDICATIONS1. Procédé pour commander des interactions (140) entre un ou plusieurs composants (110) d'un système informatique (100), le système (100) comportant une pluralité de composants (110) conçus pour interagir les uns avec les autres afin d'entreprendre des activités (160), le procédé comportant : l'attribution d'un niveau de sécurité fixe à chaque composant (110) du système ; le contrôle de toutes les interactions alors actives et nouvellement 10 demandées (140) entre composants (110) du système, une interaction nouvellement demandée comprenant une demande, par un composant source (112), d'interaction avec un composant destinataire (114) ; si la différence entre les niveaux de sécurité des composants source (112) et destinataire (114) dépasse un seul niveau, l'empêchement de 15 l'interaction demandée ; si un composant (110) participe à une interaction (140) avec n'importe quel composant (110) à niveau de sécurité attribué inférieur au sien, et si l'interaction demandée (140) implique un composant source ou destinataire (112, 114) à niveau de sécurité attribué supérieur, ou participe 20 alors à une interaction avec n'importe quel composant (110) à niveau de sécurité attribué supérieur, l'empêchement de l'interaction demandée ; si un composant (112) participe à une interaction (140) avec n'importe quel composant (110) à niveau de sécurité attribué supérieur au sien, et si l'interaction demandée (140) implique un composant source ou 25 destinataire (112, 114) à niveau de sécurité attribué inférieur, ou participe alors à une interaction (140) avec n'importe quel composant (110) à niveau de sécurité attribué inférieur, l'empêchement de l'interaction demandée ; si un composant contient des données à niveau de sécurité supérieur à celui attribué au composant, et si l'interaction demandée (140) impliqueun composant source ou destinataire (112, 114) à niveau de sécurité attribué inférieur, ou qui participe alors à une interaction avec n'importe quel composant (110) à niveau de sécurité attribué inférieur, l'empêchement de l'interaction demandée ; si un composant contient des données à niveau de sécurité inférieur à celui attribué au composant, et si l'interaction demandée (140) implique un composant source ou destinataire (112, 114) à niveau de sécurité attribué supérieur, ou qui participe alors à une interaction avec n'importe quel composant (110) a niveau de sécurité attribué supérieur, l'empêchement de l'interaction demandée ; autrement, l'autorisation de l'interaction demandée (140). 2. Procédé selon la revendication 1, dans lequel le contrôle de toutes les interactions alors actives et nouvellement demandées (140) entre composants (110) du système comprend : la détermination d'une valeur d'état pour chacun des composant source (112) et composant destinataire (114) d'une interaction demandée (140), la valeur d'état étant déterminée en fonction des niveaux de sécurité attribués des composants (110) participant alors à une interaction avec les composants source et destinataire (112, 114) de l'interaction demandée (140) ; la comparaison des valeurs d'état des composants source et destinataire (112, 114) de l'interaction demandée (140) ; l'imposition d'une condition de blocage d'état quand une différence de plus d'un seul niveau de sécurité existe entre les valeurs d'état des composants source et destinataire (112, 114) de l'interaction demandée ; et l'empêchement de l'interaction demandée pendant qu'existe une condition de blocage d'état. 3. Procédé selon la revendication 2, comportant en outre : l'attribution d'un niveau de priorité à chaque activité (160) laquelle peut participer un composant (110) pendant une interaction (140) ;quand une condition de blocage d'état a été imposée, l'isolement des interactions existantes (140) des composants source et destinataire (112, 114) qui ont provoqué la condition de blocage d'état ; la comparaison des niveaux de priorité associés à l'activité (160) impliquée dans les interactions isolées (140) avec le niveau de priorité associé à l'activité (160) impliquée dans l'interaction demandée (140) entre les composants source et destinataire (112, 114) ; la levée de la condition de blocage d'état quand le niveau de priorité de l'activité de l'interaction isolée (140) est inférieur à celui de 10 l'activité de l'interaction demandée entre les composants source et destinataire (112, 114) et l'autorisation de l'interaction demandée ; sinon, le maintien de la condition de blocage d'état et l'empêchement de l'interaction demandée entre les composants source et destinataire (112, 114). 15 4. Procédé selon la revendication 2 ou 3, dans lequel l'étape de détermination d'une valeur d'état pour le composant source (112) et le composant destinataire (114) d'une interaction demandée (140) comprend : la comparaison des niveaux de sécurité attribués au composant 20 source (112) et au composant destinataire (114) ; si le niveau de sécurité attribué du composant source (112) est inférieur à celui du composant destinataire (114), l'attribution, au composant source (112), d'une valeur d'état qui correspond au niveau de sécurité du composant (110) le moins sûr avec lequel le composant source 25 (112) participe alors à une interaction et l'attribution, au composant destinataire (114), d'une valeur d'état qui correspond au niveau de sécurité du composant (110) le plus sûr avec lequel le composant destinataire (114) participe alors à une interaction (140) ; si le niveau de sécurité attribué du composant source (112) est 30 supérieur à celui du composant destinataire (114), l'attribution, aucomposant source (112), d'une valeur d'état qui correspond au niveau de sécurité du composant (110) le plus sûr avec lequel le composant source (112) participe alors à une interaction et l'attribution, au composant destinataire (114), d'une valeur d'état qui correspond au niveau de sécurité du composant (110) le moins sûr avec lequel le composant destinataire (114) participe alors à une interaction (140) ; sinon, l'attribution, au composant source (112) et au composant destinataire (114), d'une valeur d'état qui correspond au niveau de sécurité du composant (110) le plus sûr avec lequel le composant source (112) et le composant destinataire (114) respectifs participent alors à une interaction (140). 5. Programme informatique comportant un moyen formant code de programme informatique conçu pour exécuter toutes les étapes du procédé selon l'une quelconque des revendications 1 à 4, mis en oeuvre dans un ordinateur. 6. Programme informatique selon la revendication 5, mis en oeuvre sur un support exploitable par un ordinateur. 7. Système de sécurité pour commander des interactions (140) entre un ou plusieurs composants (110) d'un système informatique (100), le système informatique (100) comportant une pluralité de composants (110) conçus pour interagir les uns avec les autres afin de participer à des activités, le système comprenant : un mécanisme SMEM (130) d'application de modèle de sécurité doté du programme informatique selon la revendication 6. 8. Système selon la revendication 7, dans lequel le mécanisme (130) d'application de modèle de sécurité est mis en oeuvre dans le système d'exploitation (120) du système informatique. 9. Système selon la revendication 7 ou 8, dans lequel le mécanisme (130) d'application de modèle de sécurité est mis en oeuvre dans unenvironnement sécurisé qui n'est ni accessible ni contournable par aucun des composants (110) du système (100).