FR 3090149 A1 20200619 FR 1873130 A 20181218 Description Titre de l'invention : Procédé et système d'optimisation de contrôle d'accès [0001] La présente invention concerne un procédé et un système de contrôle d'accès à base de requêtes multi-attributs, pour l'accès à une partie d'un système informatique, le contrôle (l'accès permettant (l'autoriser ou de refuser un accès à un émetteur de requête en fonction de valeurs d'attributs contenus dans la requête. [0002] L'invention se situe dans le domaine de la sécurisation des systèmes informatiques. [0003] Dans de nombreux domaines (l'application il est nécessaire de contrôler l'accès des utilisateurs ou des applications distantes à des systèmes et des services informatiques, afin dc protéger des données confidentielles et d'éviter les éventuels piratages. [0004] On connaît, dans le domaine de la sécurisation des systèmes informatiques, le contrôle d'accès basé sur les attributs, également appelé ABAC pour « Attribute-based Access Control », qui définit un contrôle d'accès basé sur un ensemble de règles d'accès formant une politique d'accès, en anglais « access policy », définissant des règles d'accès à des parties de système informatique associées à des ressources en fonction dc valeurs d'attributs (par exemple des attributs d'utilisateurs, attributs associés aux ressources, des attributs d'action, des attributs d'environnement), d'opérations sur les attributs pour former des prédicats et d'opérateurs logiques, tels que la conjonction (opérateur booléen ET) ou la disjonction logique (opérateur booléen OU), appliqués sur les prédicats. Il est ainsi possible dc définir des règles d'accès complexes et conditionnelles à divers contextes. Dans le reste du document, on désignera donc par politiqued'cuyès l'ensemble des règles d'accès susmentionnées, sachant qu'une politique d'accès peut cllc-même contenir des politiques d'accès (sous-politiques) ou faire appel à d'autres politiques via des références, et récursivement dans les deux cas. [0005] Le contrôle d'accès ABAC a pallié les limitations du contrôle d'accès basé sur le rôle des utilisateurs (ou RBAC pour « Role-Based Access Control ») qui définissait des privilèges d'accès uniquement en fonction du rôle dc l'utilisateur émetteur d'une requête, par exemple administrateur d'un système informatique, utilisateur principal ou utilisateur invité. En effet, le contrôle d'accès ABAC permet d'accorder des accès en fonction du contexte. Par exemple, il est possible de définir une règle permettant à un utilisateur (le sujet, par exemple un médecin) d'accéder à un fichier (la ressource, par exemple un dossier médical) associé à une personne (par exemple un patient) si et seulement si une relation donnée entre l'utilisateur et la personne est vérifiée (par exemple, la personne est patient du médecin). Ainsi, le contrôle d'accès ABAC permet 2 de définir et vérifier des politiques d'accès complexes, mais induit également une complexité calculatoire dans l'évaluation de ces politiques. [0006] Un des standards d'implémentation du contrôle d'accès basé sur les attributs est le langage XACML (pour « eXtensible Access Control Markup Language »), standardisé par OASIS (« Organization for the Advancement of Structurcd Information Standards »), qui définit une architecture et un langage pour exprimer une politique d'accès et pour spécifier des requêtes d'accès et des réponses. [0007] Une requête d'accès contient un ensemble d'attributs informant sur le contexte d'une tentative d'accès à une ressource protégée, c'est-à-dire des informations sur le sujet à l'origine de la tentative, la ressource demandée, l'opération demandée, etc. Autrement dit en termes simples : qui tente de faire quoi sur quoi/qui et dans quelles circonstances ? La réponse d'accès consiste essentiellement en une décision d'autorisation (permise ou refusée), accompagnée éventuellement d'ordres ou recommandations destinées au module appliquant la décision - PEP - tel que décrit dans le paragraphe suivant. [0008] L'architecture XACML v3.0 comprend plusieurs types de modules, également appelés points : un point de décision PDP (pour « Policy Decision Point »), qui est un point de décision centralisé, adapté à communiquer avec des points de vérification distribués ou PEP pour « Pol icy Enforcement Point », qui protègent des ressources spécifiques contre tout accès non-autorisé, en appliquant systématiquement la décision du PDP. Cette architecture distribuée présente des avantages en termes de modularité et de sécurité, mais présente également des inconvénients car elle augmente la latence du système. En effet, la communication entre le PDP et les PEP, en particulier la communication sécurisée avec authentification mutuelle, induit une augmentation des temps de traitement, et de plus le PDP a une charge calculatoire très élevée en tant que point de décision centralisé. [0009] 11 est connu, afin de diminuer la latence du contrôle d'accès, d'utiliser des mé- canismes de mise en cache, afin de ré-utiliser des décisions d'accès préalablement calculées pour des requêtes ayant les mêmes attributs. [0010] Les mécanismes de mise en cache s'appuient sur des structures de données qui fa- vorisent l'accès rapide à une donnée préalablement mémorisée telles que les tables de hachage, ainsi que la mémoire cache qui est une mémoire volatile, à accès rapide en lecture/écriture. Cependant, l'efficacité d'un tel mécanisme connu est limitée généralement à des requêtes répétées à l'identique ou quasi-identiques, c'est-à-dire avec exactement les mêmes valeurs d'attributs, des attributs présentés dans le même ordre, et sans attribut supplémentaire. [0011] En effet, dans le cas où les requêtes comportent des attributs qui ne sont pas utiles pour la décision d'autorisation ou de refus d'accès, et qui prennent des valeurs dif- 3 férentes, comme par exemple la date d'émission d'une requête, un mécanisme de cache simple ne permet pas de prendre une décision sur la base de mémorisation de valeurs d'attributs de requêtes préalables. [0012] Donc avec un mécanisme de cache simple, dès que des requêtes sont différentes, la décision à partir du cache est considérée impossible, et le contrôle d'accès complet effectué par le PDP en lien avec le PEP est effectué. La complexité du contrôle d'accès demeure importante. [0013] Il existe donc un besoin d'optimiser le contrôle d'accès basé sur les attributs pour diminuer la complexité et le temps de latence. [0014] A cet effet, l'invention propose selon un premier aspect, un procédé de contrôle d'accès à base de requêtes multi-attributs, pour un accès à une partie d'un système informatique, le contrôle d'accès permettant d'autoriser ou de refuser un accès à un émetteur de requête en fonction de valeurs d'attributs contenus dans la requête, le contrôle d'accès étant effectué par un système de contrôle d'accès en fonction d'une politique d'accès comportant un ensemble de règles préalablement mémorisé, le système de contrôle d'accès comportant un système de cache de décisions, adapté à mémoriser des valeurs d'attributs de requêtes dans un cache et au moins un processeur de calcul. [0015] Ce procédé comporte les étapes suivantes, mises en oeuvre par un processeur : [0016] - obtention d'une requête d'accès à une partie du système informatique, dite requête d'accès en cours de traitement, comportant une pluralité d'attributs ayant des valeurs d'attributs de requête, [0017] - vérification, à partir d'au moins un sous-ensemble de ladite pluralité d'attributs de la requête d'accès en cours de traitement, ayant des valeurs d'attributs de requête, de présence dans le cache de valeurs d'attributs issus de requêtes préalables et permettant d'obtenir une décision d'autorisation ou de refus d'accès à ladite partie du système informatique, la vérification comportant une comparaison de valeurs d'attributs de requête à des valeurs d'attributs mémorisés dans ledit système de cache de décisions sous forme d'arbre de décision, [0018] et en cas de vérification positive, autorisation ou refus d'accès à ladite partie du système informatique à partir dudit arbre de décision. [0019] Avantageusement, le procédé de contrôle d'accès selon l'invention permet d'optimiser l'utilisation d'un système de cache de décisions, et le temps de calcul, grâce à la mémorisation de valeurs d'attributs - pertinents pour l'évaluation de politique - de requêtes préalables sous forme d'arbres de décision. [0020] Le procédé de contrôle d'accès selon l'invention peut présenter une ou plusieurs des caractéristiques ci-dessous, prises indépendamment ou en combinaison. [0021] En cas de vérification négative, le procédé comporte en outre des étapes de : [0022] -transmission de la requête d'accès en cours de traitement à un module de décision configure pour effectuer une évaluation de la politique d'accès dans le contexte de ladite requête, et [0023] -obtention d'une réponse comprenant une décision d'autorisation ou de refus d'accès en fonction dudit ensemble d'attributs ayant des valeurs d'attributs de requête, et au moins une information de mise à jour de l'arbre de décision du système de cache de décisions. [0024] Ladite au moins une information de mise à jour comporte au moins une liste d'attributs, sous-ensemble des attributs de la requête d'accès en cours de traitement effectivement utilisés pour l'évaluation de la politique d'accès par le module de décision. [0025] Chaque arbre de décision mémorisé dans ledit système de cache de décisions comprend un noeud racine associé à un attribut utilisé pour autoriser ou refuser un accès selon la politique d'accès préalablement mémorisée, au moins un noeud terminal représentatif d'une décision d'autorisation ou de refus d'accès, et au moins une arête reliant ledit noeud racine à un noeud intermédiaire ou à un noeud terminal, ladite arête étant associée à une valeur de l'attribut associé au noeud racine. [0026] Au moins un arbre de décision mémorisé comporte en outre au moins un noeud inter- médiaire entre ledit noeud racine et un noeud terminal, le noeud intermédiaire étant associé à un attribut utilisé pour autoriser ou refuser un accès selon la politique d'accès préalablement mémorisée, le noeud intermédiaire ayant un niveau de profondeur associé, le noeud intermédiaire étant relié par une première arête à un noeud parent, ledit noeud parent étant le noeud racine ou un noeud intermédiaire parent de niveau de profondeur inférieur et par une deuxième arête à au moins un noeud enfant, ledit noeud enfant étant un noeud terminal ou un noeud intermédiaire enfant de niveau de profondeur supérieur, ladite première arête étant associée à la valeur de l'attribut associé au noeud parent, ladite deuxième arête étant associée à une valeur de l'attribut associé audit noeud intermédiaire. [0027] La vérification comporte, dans un ordre croissant des niveaux de profondeur de l'arbre de décision, pour chaque niveau de profondeur : [0028] -une sélection d'un noeud courant ayant un attribut courant associé, [0029] -une obtention de la ou des valeurs de l'attribut correspondant dans la requête d'accès en cours de traitement et une comparaison de ladite valeur à chaque valeur d'attribut associée à une arête reliant ledit noeud courant à un noeud enfant, [0030] et en cas de comparaison positive, sélection dudit noeud enfant comme noeud courant, et si le noeud courant est un noeud terminal, obtention de la décision d'autorisation ou de refus d'accès associée audit noeud terminal. [0031] Lorsque, pour un niveau de profondeur, la valeur d'attribut de la requête en cours de traitement est différente de chaque valeur d'attribut associée à une arête reliant ledit noeud courant à un noeud enfant, ladite vérification est négative. [0032] Le procédé comporte une étape de mise à jour dudit arbre de décision en fonction de ladite au moins une information de mise à jour, ladite mise à jour comportant un ajout d'un noeud intermédiaire associé à un attribut indiqué dans ladite information de mise à jour et/ou un ajout d'une arête ayant pour valeur associée une valeur d'attribut de requête associé à un attribut indiqué dans ladite information de mise à jour et un ajout de noeud terminal associé à la décision d'autorisation ou de refus d'accès. [0033] La pluralité de valeurs d'attributs de ladite requête d'accès forme un premier ensemble de valeurs d'attributs, comportant en outre une étape de mise en forme canonique dudit premier ensemble de valeurs d'attributs permettant d'obtenir un deuxième ensemble de valeurs d'attributs, et la vérification de correspondance en cache est appliquée sur le deuxième ensemble de valeurs d'attributs. [0034] Selon un autre aspect, l'invention concerne un système de contrôle d'accès à base de requêtes multi-attributs, pour un accès à une partie d'un système informatique, le contrôle d'accès permettant d'autoriser ou de refuser un accès à un émetteur de requête en fonction de valeurs d'attributs contenus dans une requête, le contrôle d'accès étant effectué en fonction d'une politique d'accès comportant un ensemble de règles préalablement mémorisé. Ce système de contrôle d'accès comportant un système de cache de décisions, adapté à mémoriser des valeurs d'attributs de requêtes dans un cache et au moins un processeur de calcul configure pour mettre en oeuvre: [0035] - une obtention d'une requête d'accès à une partie du système informatique, dite requête d'accès en cours de traitement, comportant une pluralité d'attributs ayant des valeurs d'attributs de requête, [0036] - une vérification, à partir d'au moins un sous-ensemble de ladite pluralité d'attributs de la requête d'accès en cours de traitement, ayant des valeurs d'attributs de requête, de présence dans le cache de valeurs d'attributs issus de requêtes préalables et permettant d'obtenir une décision d'autorisation ou de refus d'accès à ladite partie du système informatique, la vérification comportant une comparaison de valeurs d'attributs de requête à des valeurs d'attributs mémorisés dans ledit système de cache de décisions sous forme d'arbre de décision, [0037] et en cas de vérification positive, une autorisation ou refus d'accès à ladite partie du système informatique à partir dudit arbre de décision. [0038] Selon un autre aspect, l'invention concerne un programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont mises en oeuvre par un dispositif électronique de calcul, mettent en oeuvre un procédé contrôle d'accès tel que brièvement décrit ci-dessus. [0039] Selon un autre aspect, l'invention concerne un support d'informations, sur lequel sont enregistrées des instructions logicielles qui, lorsqu'elles sont mises en oeuvre par 6 un dispositif électronique de calcul, mettent en oeuvre un procédé de contrôle d'accès tel que brièvement décrit ci-dessus. [0040] D'autres caractéristiques et avantages de l'invention ressortiront de la description qui en est donnée ci-dessous, à titre indicatif et nullement limitatif, en référence aux figures annexées, parmi lesquelles : [0041] - [fig.1] la figure 1 est un exemple d'architecture de contrôle d'accès dans un scénario d'utilisation de l'invention ; [0042] - [fig.2] la figure 2 illustre schématiquement un système de contrôle d'accès selon un mode de réalisation de l'invention; [0043] - [fig.3] la figure 3 illustre la mise à jour d'un arbre de décision mémorisé dans un exemple ; [0044] - [fig.4] la figure 4 est un synoptique des blocs fonctionnels d'un dispositif élec- tronique de calcul adapté à mettre en oeuvre des étapes du procédé de contrôle d'accès de l'invention selon un mode de réalisation ; [0045] - [fig.5] la figure 5 est un synoptique des principales étapes d'un mode de réalisation d'un procédé de contrôle d'accès selon l'invention. [0046] La figure 1 illustre schématiquement un cas d'utilisation d'un système d'accès à un système ou à un service informatique selon l'invention. [0047] Des utilisateurs Ui. U2 demandent un accès à une partie d'un système informatique 2, qui est un système protégé par des droits d'accès et comporte plusieurs serveurs 4a, 4b, ainsi qu'un système de stockage des données 6, qui stocke des données protégées. [0048] L'émetteur d'une requête d'accès est soit un utilisateur comme illustré dans l'exemple de la figure 1, soit une application. [0049] La partie du système informatique pour laquelle est demandé l'accès est de manière générale une ressource sensible, par exemple une base de données ou un serveur de fichiers, un appareil connecté, ou bien un service ou un ensemble de services exécutables. [0050] La partie du système informatique pour laquelle est demandé l'accès est également appelée ressource protégée. [0051] L'accès demandé est, dans un mode de réalisation, caractérisé par des attributs d'action, par exemple, si la partie du système informatique pour laquelle l'accès est demandé est un ensemble de fichiers, l'accès demandé peut être un accès en lecture et/ ou un accès en écriture. Si l'accès demandé concerne l'exécution d'un logiciel, plusieurs niveaux de service peuvent être associés à l'accès. [0052] Pour accéder à une partie du système informatique 2, un système de contrôle d'accès multi-attributs 8 est mis en place. [0053] Le système de contrôle d'accès multi-attributs 8 comporte une unité électronique 10 de stockage, qui mémorise une ou plusieurs politiques d'accès 12 (ou « access policies 7 » en anglais), chaque politique d'accès 12 comprenant un ensemble dc règles à valider pour accéder à la partie requise du système informatique 2. [0054] Par exemple, plusieurs politiques d'accès 12 sont mémorisées, correspondant à des domaines d'administration différents, selon les contraintes organisationnelles de l'entreprise, et donc gérées par des administrateurs spécifiques. [0055] Les politiques d'accès 12 sont susceptibles d'être modifiées uniquement par des uti- lisateurs autorisés Us, ayant un niveau d'habilitation de sécurité donné. Ainsi, les politiques d'accès sont sécurisées. [0056] Le système de contrôle d'accès multi-attributs 8 comporte également un dispositif électronique de calcul 14, par exemple un ordinateur, adapté à mettre en oeuvre un module 15 centralisé de décision d'autorisation/refus d'accès sur la base de requêtes multi-attributs, en fonction de la politique d'accès 12. Selon la terminologie XACML, le dispositif 14 réalise une fonction PDF, mais cette fonction est enrichie par l'invention comme expliqué ci-après. [0057] Dans un mode de réalisation, le module 15 d'autorisation/refus d'accès sur la base de requêtes multi-attributs, composant principal du PDP, est mis en oeuvre sous forme de programme d'ordinateur comportant des instructions logicielles, stocké sur un support, non représenté, lisible par un ordinateur 14. Le support lisible par ordinateur est par exemple, un médium apte à mémoriser les instructions électroniques et à être couplé à un bus d'un système informatique. A titre d'exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non-volatile (par exemple EPROM, EEPROM, FLASH. NVRAM), une carte magnétique ou une carte optique. [0058] En variante, le module 15 est réalisé sous forme d'un composant logique pro- grammable, tel qu'un FPGA (de l'anglais Field Programmable Gate Array), un GPU (processeur graphique) ou un GPGPU ((le l'anglais General-purpose processing on graphics processing), ou encore sous forme d'un circuit intégré dédié, tel qu'un ASIC ((le l'anglais Application Specific Mtegrated Circuit). [0059] Le système de contrôle d'accès multi-attributs 8 comporte également des dispositifs de stockage et de calcul 16, adaptés à mémoriser et fournir des attributs supplémentaires au module 15 (PDP) qui viennent compléter les attributs déjà fournis dans la requête par le module 20 (PEP) de traitement de requêtes d'accès utilisateur, par exemple des bases de données ou services d'identité. [0060] Le système de contrôle d'accès multi-attributs 8 comporte également un ou plusieurs dispositifs électroniques de calcul 18 mettant en oeuvre chacun un module 20 de traitement de requêtes d'accès utilisateur. Selon la terminologie XACML, chaque module 20 réalise une fonction PEP qui est enrichie par l'invention comme expliqué ci-après. 8 [0061] Chaque utilisateur U1 (resp. U,) effectue une requête d'accès RI (rcsp. R,) appelée requête utilisateur. [0062] Par exemple, chaque utilisateur U1, LI, souhaite accéder en lecture à un fichier stocké sur le serveur 4b du système informatique 2. [0063] Le module 20 est configure pour mettre en forme des requêtes d'accès multi-attributs REQ' REQ2 à partir des requêtes utilisateur, et pour vérifier une possibilité d'accorder ou de refuser un accès en fonction de données stockées dans le système de cache de décisions du dispositif de calcul 18, décrit en détail ci-après. [0064] Les attributs sont par exemple : des attributs relatifs à l'émetteur de la requête, ou sujet (utilisateur U, ou U,), par exemple son identifiant, son rôle dans son organisation, son niveau d'habilitation ; des attributs relatifs à l'action du sujet ; des attributs relatifs à la partie du système ou à la ressource à accéder, par exemple un identifiant, un type, une adresse ; des attributs relatifs à l'environnement, par exemple la date/heure courante. [0065] En cas d'impossibilité de décision à partir des données mémorisées dans le système de cache de décision, les requêtes de contrôle d'accès multi-attributs REQ,, REQ, sont si besoin formatées selon un format prédéterminé approprié, par exemple le format XACML, et transmises au module 15 centralisé en fonction de la politique d'accès 12. [0066] Dans l'exemple illustré à la figure 1, l'accès au système informatique 2 est refusé en réponse à la requête d'accès multi-attributs REQ1, donc l'utilisateur U, ayant émis la requête utilisateur R, n'est pas autorisé à accéder à la partie du système informatique 2. [0067] L'accès au système informatique 2 est autorisé en réponse à la requête d'accès muid- attributs REQ2, donc l'utilisateur U2 ayant émis la requête utilisateur R2 est autorisé à accéder au système informatique 2, ce qui est indiqué par la flèche 25 dans la figure 1. [0068] Dans un mode de réalisation, le module 20 de traitement de requêtes d'accès uti- lisateur est mis en oeuvre sous forme de programmes d'ordinateur comportant des instructions logicielles. Chaque programme d'ordinateur est stocké sur un support, non représenté, lisible par un ordinateur 18. Le support lisible par ordinateur est par exemple, un médium apte à mémoriser les instructions électroniques et à être couplé à un bus d'un système informatique. A titre d'exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non-volatile (par exemple EPROM, EEPROM, FLASH, NVRAM), une carte magnétique ou une carte optique. [0069] En variante, le module 20 est réalisé sous forme de composants logiques pro- grammables, tel qu'un FPGA (de l'anglais Field Programmable Gate Array), un GPU (processeur graphique) ou un GPGPU (de l'anglais General-purpose processing on graphics processing), ou encore sous forme d'un circuit intégré dédié, tel qu'un ASIC (de l'anglais Application Specific Mtegrated Circuit). 9 [0070] Le système de contrôle d'accès 8, avec tous ses composants matériels et logiciels joue un rôle de mur de protection pour l'accès au du système informatique 2. [0071] La figure 2 illustre des composants, appelées également modules, du module 20 de traitement des requêtes d'accès utilisateur et du module 15 centralisé de d'autorisation/refus d'accès sur la base de requêtes multi-attributs sur la base des ensembles de règles formant des politiques d'accès 12, mis en oeuvre dans un système de contrôle d'accès 8 selon un mode de réalisation de l'invention. [0072] Dans un mode de réalisation, chaque module est mis en oeuvre sous forme de programmes d'ordinateur comportant des instructions logicielles comme expliqué ci-dessus, ou sous forme de composants logiques programmables. [0073] Le module 20 de traitement des requêtes utilisateur comprend un module 30 de trans- formation des requêtes, configure pour recevoir des requêtes d'accès à une partie d'un système informatique 2, transmises par un système informatique client 28 opéré par un utilisateur. [0074] Le module de transformation des requêtes 30 est également adapté à transmettre le résultat d'autorisation ou de refus au système informatique client 28. En cas d'autorisation, l'accès à la partie du système informatique est fourni au système client. [0075] Le module 30 de transformation des requêtes est configure pour appliquer un ordon- nancement et une factorisation des attributs d'une requête d'accès multi-attributs, afin d'obtenir un ensemble d'attributs dans un format appelé format canonique. [0076] Par exemple, les attributs d'une requête multi-attributs sont ré-ordonnancés selon un ordre prédéterminé, et les valeurs d'attributs sont regroupées en cas de répétition du même identifiant d'attribut. Par exemple, si un attribut a plusieurs valeurs d'atnibuts associées dans la requête, ces valeurs sont regroupées, par exemple sous forme de liste de valeurs. Ainsi, un deuxième ensemble d'attributs est obtenu à partir d'un premier ensemble d'attributs. [0077] Les valeurs d'attributs d'une requête multi-attributs sont appelées ci-après valeurs d'attributs de requête. [0078] Une requête d'accès multi-attributs, avec les valeurs d'attributs de requête, est transmise à un système 32 de cache de décisions permettant d'obtenir, dans une partie des cas, une décision rapide d'autorisation ou de refus d'accès à la partie du système informatique, sur la base de données relatives à des requêtes d'accès multi-attributs mémorisées au préalable. [0079] Un système de cache de décisions s'appuie sur une structure de données optimisée pour l'accès en lecture, mémorisée de préférence en mémoire cache (mémoire électronique volatile à accès rapide en lecture et écriture). L'accès rapide est obtenu par des tables de hachage ou d'autres types de tableau associatif optimisés pour l'accès rapide. [0080] Le système 32 de cache de décisions est configuré pour gérer un cache de décisions d'autorisation à accès rapide 34, qui mémorise un arbre de décision associé à un module 15 centralisé de décision d'autorisation/refus d'accès (module PDP). [0081] Le système 32 de cache de décisions est configure pour mettre en oeuvre une véri- fication de présence dans le cache 34 de données (arbre de décision) permettant d'obtenir une décision d'autorisation d'accès ou de refus d'accès sur la base des valeurs d'attributs de la requête courante, et des décisions passées et déjà mémorisées. [0082] Le système 32 de cache de décisions d'autorisation est également configure pour effectuer des mises à jour des arbres de décision mémorisés dans le module 34. [0083] Le module 20 comprend également un module 36 d' interfaçage avec le module 15 de décision d'autorisation/refus d'accès sur la base des ensembles de règles formant des politiques d'accès 12. [0084] Il est à noter que, dans une variante non illustrée à la figure 2, si le module 20 de traitement de requêtes utilisateurs (PEP) communique avec plusieurs PDPs, le PEP doit utiliser un arbre de décision et un module d'interfaçagc 36 spécifique par PDP. [0085] Le module d'intcrfaçage 36 est notamment configure pour la mise en forme d'une requête d'accès multi-attributs dans un format approprié pour communiquer avec le module 15, par exemple XACML, et la transmission d'une telle requête mise en forme au module 15 de décision d'autorisation/refus d'accès. [0086] Ce module 36 est utilisé dans le cas où les données mémorisées dans le cache de décisions 34 ne permettent pas d'obtenir une décision d'autorisation d'accès ou de refus d'accès. [0087] Le module 15 comprend un module 38 de gestion des requêtes d'accès et des contextes d'évaluation des décisions associées à chaque requête. Ce module traite chaque requête d'autorisation venant du module d'interfaçage 36 et à partir de cette requête, crée, maintient et éventuellement enrichit au fur et à mesure un contexte d'évaluation associé, et communique ce contexte basé sur la requête d'accès à un module d'évaluation de politique d'accès 42, aussi appelé moteur de décision. Le module 38 est adapté à communiquer avec un module 40 de collecte d'informations - méta-données - et de supervision sur l'évaluation de politique par le module 42. Le module 40 est configuré pour transmettre des informations relatives à la mise en oeuvre et l'évaluation de la politique d'accès, comprenant au moins la liste des attributs effectivement utilisés par le module 42 pour la prise de décision, et éventuellement d'autres informations permettant d'améliorer le système 32 de cache de décisions du module 20. [0088] En effet, une requête multi-attributs peut, dans certains cas d'application, contenir des valeurs d'attributs qui ne sont pas utiles pour l'évaluation de la politique. Ces informations relatives à la mise en oeuvre et l'évaluation de la politique sont transmises au module 38 qui les transmet, en tant que paramètres de mise à jour du système de 11 cache de décisions 32, dans les réponses envoyées au module d'interfaçage 36. [0089] La figure 3 illustre schématiquement des mises à jour d'un arbre de décision, mémorisé dans le cache à accès rapide 34 et associé à des requêtes d'accès à un système informatique, par exemple une partie d'une base de données mémorisée. Par exemple, la partie du système est une base de données de ressources humaines dans une entreprise. [0090] Bien entendu, il s'agit d'un exemple simplifié présenté ici à des fins explicatives. [0091] Suite à une première requête d'accès utilisateur, un premier arbre de décision 50 est mémorisé. Suite à une première mise à jour, un deuxième arbre de décision 52 est mémorisé. Suite à une deuxième mise à jour, un troisième arbre de décision 54 est mémorisé. [0092] Un arbre de décision est un graphe de décision hiérarchique, formé de noeuds comprenant un noeud racine, un ou plusieurs noeuds intermédiaires et un ou plusieurs noeuds terminaux ou feuilles, les noeuds ayant chacun un niveau de profondeur associé comme expliqué en détail ci-après. [0093] Chaque arbre de décision mémorisé 50, 52, 54 comprend un noeud racine 60 associé à un attribut, qui est l'attribut « subjectrole » dans cet exemple, représentatif du rôle du sujet (utilisateur demandant l'accès à une partie du système) dans l'entreprise. [0094] L'arbre de décision 50 comprend en outre un noeud terminal 62 représentatif de la décision d'autorisation ou de refus d'accès attribué au sujet caractérisé par la valeur d'attribut « subjectrole » mémorisée en lien avec l'arête 64 liant le noeud racine 60 et le noeud terminal 62. Dans l'exemple, la valeur d'attribut est « Chief_HR_Officer ». En d'autres termes, l'accès à l'ensemble de la base de données est autorisé si le rôle du sujet identifié dans la requête utilisateur est « Chief HR_Officer ». [0095] Suite à une nouvelle requête d'accès multi-attributs REQ1 une autorisation d'accès est obtenue du module centralisé de décision 15. Dans cet exemple, la requête d'accès comporte les attributs suivants : [0096] REQ1: Subjectid=Charlie [0097] Subjectrole=Manager [0098] Action.id=read_HR_profile [0099] Resource.id=Bob [0100] Resource.mgr=Charlie [0101] Cette requête concerne un accès à une sous-partie de la base de données concernant une personne, également appelée ressource, dont l'identifiant est Bob. [0102] La réponse RESP1 à la requête REQ1comportant la décision d'autorisation ou du refus d'accès comprend en plus au moins une information de mise à jour destinée au module 20, comportant les attributs effectivement utilisés par l'évaluation de la politique par le module 42 pour la requête REQ1. 12 [0103] Par exemple la réponse RESPI comprend : [0104] Decision : Permit [0105] Advice : attributs :{ subjectrole resource.mgr, subject. id} [0106] Le paramètre « advice » comporte l'information de mise à jour, en particulier une liste des attributs effectivement utilisés dans la décision d'autorisation ou de refus d'accès selon la politique à appliquer. [0107] L'arbre de décision 50 est mis à jour et l'arbre de décision 52 est obtenu. La mise à jour consiste, dans l'exemple illustré, en un ajout de branches dans l'arbre de décision 50 pour obtenir l'arbre de décision 52. [0108] Des noeuds intermédiaires 66 et 68 sont ajoutés, ainsi qu'un autre noeud terminal 70. Le noeud intermédiaire 66 est un noeud enfant du noeud racine 60, et est associé à l'attribut « resource.mgr ». [0109] Dans un mode de réalisation, on associe des niveaux de profondeur croissants en partant du noeud racine vers les noeuds terminaux. [0110] Bien entendu, il s'agit d'une convention, un autre ordonnancement étant possible. [0111] Ainsi, si on associe le niveau de profondeur 0 au noeud racine, le noeud intermédiaire 66 a un niveau de profondeur égal à 1. [0112] Un noeud (noeud racine ou noeud intermédiaire) de niveau de profondeur N, N étant un entier supérieur ou égal à 0, est parent d'un noeud de profondeur N+1 lorsqu'ils sont reliés par une arête dans l'arbre. Un noeud de profondeur N+1 (noeud intermédiaire ou noeud terminal) est enfant d'un noeud de profondeur N lorsqu'ils sont reliés par une arête dans l'arbre. [0113] Par exemple, le noeud racine 60 est parent du noeud terminal 62 et du noeud inter- médiaire 66. Le noeud intermédiaire 66 est enfant du noeud racine 60. Le noeud intermédiaire 68 est un noeud enfant du noeud intermédiaire 66, et est associé à l'attribut subjectid ». Dans cet exemple, le noeud intermédiaire 68 a un niveau de profondeur égal à 2. [0114] Le noeud 70 est un noeud terminal représentation de l'autorisation ou du refus d'accès. Dans l'arbre de décision 52, le noeud terminal 70 est un noeud enfant du noeud 68. [0115] Les noeuds sont reliés dans l'arbre de décision 52 par des arêtes, associées à des valeurs d'attribut. Chaque arête 72, 74, 76 qui relie deux noeuds est associée à la valeur d'attribut du noeud parent, qui est également le noeud de profondeur de niveau inférieur selon la convention choisie. [0116] Ainsi. l'arête 72, reliant le noeud racine 60 associé à l'attribut « subject.role » et le noeud intermédiaire 66, est associée à la valeur « Manager » de l'attribut subjectrole » de la requête REQ1. [0117] L'arête 74, reliant le noeud intermédiaire 66 associé à l'attribut « resource.mgr » et le 13 noeud intermédiaire 68 est associée à la valeur « Charlie» de l'attribut « resource.mgr » de la requête REQ1. [0118] L'arête 76, reliant le noeud intermédiaire 68 associé à l'attribut « subject.id » et le noeud terminal 70 est associée à la valeur « Charlie» de l'attribut « subject.id » de la requête REQ1. [0119] En d'autres termes, le sujet Charlie, qui a un rôle de manager, est autorisé à accéder, dans la base de données, aux informations relatives aux personnes dont il est inscrit comme manager, en particulier « Bob ». [0120] Suite à une nouvelle requête d'accès multi-attributs REQ2 un refus d'accès est obtenu du PDP. Dans cet exemple, la requête d'accès REQ2 comporte les attributs suivants : [0121] REQ2: Subjectid,Dave [0122] Subjectrole,Manager [0123] Action.id=read HR profile [0124] Resource.id=Bob [0125] Resource. ingr,Charl ic [0126] En d'autres termes, dans cet exemple, la requête REQ2 est similaire à la requête REQ1, mais le sujet de la requête est Dave et non Charlie. [0127] La réponse RESP2 à la requête REQ2 comportant la décision de refus d'accès comprend en plus au moins une information de mise à jour comportant les attributs effectivement utilisés pour l'évaluation de la politique d'accès. [0128] Par exemple la réponse RESP1 comprend : [0129] Decision : Deny [0130] Advice : attributs :{ subject.role, resource.mgr, subjectid} [0131] Le paramètre « Advice » comporte l'information de mise à jour, et fournit une liste des attributs effectivement utilisés dans la décision d'autorisation ou de refus d'accès selon la politique d'accès à appliquer. [0132] L'arbre de décision 52 est mis à jour et l'arbre de décision 54 est obtenu. La mise à jour consiste, dans l'exemple illustré, en un ajout de branches clans l'arbre de décision 54. [0133] Un noeud terminal 78, enfant du noeud intermédiaire 68 est ajouté, et ce noeud terminal est associé à une décision de refus «Deny ». [0134] L'arête 80 reliant le noeud intermédiaire 68 associé à l'attribut « subject.id » et le noeud terminal 78 est associée à la valeur « Dave» de l'attribut « subject.id » de la requête REQ2. [0135] En d'autres termes, le sujet Dave, qui a un rôle de manager, n'est pas autorisé à accéder, dans la base de données, aux informations relatives à une personne ayant un manager différent (Charlie clans cet exemple). 14 [0136] La figure 4 illustre schématiquement les principaux blocs fonctionnels d'un dispositif électronique de calcul 82 adapté à mettre en oeuvre des étapes d'un procédé de contrôle d'accès à base de requêtes multi-attributs tel que décrit. [0137] Le dispositif 82 comprend une unité centrale de calcul 84, ou CPU, comportant un ou plusieurs processeurs électroniques, apte à exécuter des instructions de programme informatique lorsque le dispositif 82 est mis sous tension. [0138] Le dispositif 82 comporte également une unité de mémoire électronique 86 adaptée à stocker des informations, en particulier des registres. En particulier, des instructions de code exécutable aptes à mettre en oeuvre le procédé de contrôle d'accès selon l'invention sont mémorisées. [0139] Le dispositif 82 comporte une interface de commande 85 permettant de mettre à jour des paramètres et de recevoir des commandes d'un opérateur. [0140] De manière optionnelle, le dispositif 82 comprend un écran 88 et un moyen supplé- mentaire de pointage 90, tel une souris. [0141] Les divers blocs fonctionnels du dispositif 6 décrits ci-dessus sont connectés via un bus de communication 92. [0142] La figure 5 est un synoptique des principales étapes d'un mode de réalisation d'un procédé de contrôle d'accès selon l'invention. [0143] Lors d'une première étape 100, une requête d'accès utilisateur est reçue par le module 20 de traitement de requêtes d'accès utilisateur. [0144] En particulier, la requête d'accès utilisateur comprend des valeurs d'attribut relatives à l'identification de l'émetteur qui formule la requête (le sujet), de l'action qu'il veut effectuer sur la ressource, et de la ressource à accéder. [0145] L'étape 100 est suivie d'une étape 102 de formation d'un premier ensemble d'attributs de requête d'accès multi-attributs à partir des attributs de la requête utilisateur, enrichi le cas échéant d'attributs d'environnement, puis une étape de mise sous forme canonique (ordonnancement et factorisation des valeurs d'attributs) dudit premier ensemble de valeurs d'attributs permettant d'obtenir un deuxième ensemble de valeurs d'attributs. [0146] Cette étape permet, avantageusement, de présenter les attributs dans un ordre pré- déterminé et de regrouper, le cas échéant, toutes les valeurs associées à un même attribut. En effet, un même attribut peut dans certains cas prendre plusieurs valeurs, comme par exemple l'attribut « subject.role » de l'exemple de la figure 3, car une même personne peut cumuler plusieurs rôles dans une organisation telle une entreprise. [0147] L'étape 102 de formation d'une requête multi-attributs, comportant un premier ensemble d'attributs ou un deuxième ensemble d'attributs sous forme canonique, est suivie d'une étape 104 de vérification de la possibilité d'obtenir une décision d'autorisation ou de refus d'accès à partir des données mémorisées relatives aux requêtes préalables. L'étape 104 met en oeuvre en particulier une comparaison de valeurs d'attributs de requête à des valeurs d'attributs mémorisés dans le cache de données à accès rapide, sous forme d'arbre de décision. [0148] Au moins une partie des valeurs d'attributs de la requête, issues du premier ou du deuxième ensemble d'attributs après application de l'étape 102, est comparée aux valeurs mémorisées. En effet, comme expliqué ci-dessus, toutes les valeurs d'attribut de la requête ne sont pas nécessairement utilisées dans la prise de décision. [0149] Par exemple, en se référant à l'exemple de la figure 3, si une requête d'accès avec une action « read HR profile » est émise par un sujet dont le rôle est « Chief HR Officer », l'autorisation est accordée (arbre de décision 50) quelles que soient les valeurs des autres attributs de la requête, par exemple « resource.id » et « resource.mgr » . [0150] Dans un mode de réalisation, les noeuds de l'arbre de décision sont parcourus dans l'ordre croissant des niveaux de profondeur de l'arbre de décision. [0151] Pour chaque niveau de profondeur un noeud courant ayant un attribut courant associé est sélectionné. Si l'attribut courant est un des attributs de la requête, la valeur d'attribut de la requête est comparée à chaque valeur d'attribut associée à une arête reliant ledit noeud courant à un noeud enfant. En cas de comparaison positive, ce noeud enfant est sélectionné comme nouveau noeud courant s'il s'agit d'un noeud intermédiaire. S'il s'agit d'un noeud terminal, la décision d'autorisation ou de refus d'accès est obtenue par la valeur du noeud. [0152] Dès qu'un noeud terminal comportant une décision d'autorisation d'accès ou de refus est atteint, l'étape de vérification 104 est terminée avec un résultat positif Si un attribut courant donné, correspondant à un noeud de l'arbre de décision, a une valeur d'attribut dans la requête différente de toutes les valeurs d'attribut associées à des arêtes du graphe de décision, la décision ne peut pas être obtenue à partir des données mémorisées dans le cache et la vérification est terminée avec un résultat négatif [0153] Le résultat de la vérification est testé à l'étape 106. [0154] En cas de vérification positive, l'étape 106 est suivie d'une étape 108 d'autorisation ou refus d'accès au requérant. [0155] En cas de vérification négative, l'étape 106 est suivie d'une étape 110 de transmission de la requête d'accès au module 15 qui effectue l'évaluation de politique. Lors de cette étape 110, la requête d'accès est formatée selon un format approprié, par exemple XACML ou tout autre langage adapté pour le formatage de requêtes multi-attributs. [0156] Ainsi, avantageusement, la compatibilité avec un format standardisé telle que le standard XACML 3.0 de l'OASIS est maintenue. [0157] Le procédé comprend une étape 112 de réception d'une requête d'accès multi- 16 attributs formatée et d'initial isation du contexte d'évaluation avec les éléments suivants : [0158] - attributs provenant de la requête d'accès (envoyé par le module 20) ; [0159] - attributs déterminés localement par le module 38, telles que la date et heure courante (date/heure de réception de la requête) ; [0160] - attributs récupérées depuis des sources externes (éléments 16) telles que serveurs de base de données ou services. [0161] L'étape 112 est suivie d'une étape 114 de mise en oeuvre de l'évaluation de la politique d'accès à appliquer en fonction du contexte, permettant d'obtenir une décision d'autorisation ou de refus d'accès. [0162] Une étape 116 d'obtention d'informations de mise à jour du système de cache de décisions 32 est également mise en oeuvre. En variante, l'étape 116 est mise en oeuvre sensiblement en parallèle avec l'étape 114. Elle consiste à collecter des informations utiles pour la mise à jour des arbres de décision mémorisés, en particulier répertorier les attributs effectivement utilisés pour la prise de décision, comme déjà expliqué ci-dessus en référence à l'exemple de la figure 3 (les parties « Advice » dans les réponses RESP1 et RESP2 données en exemple). [0163] Dans un mode de réalisation, les informations de mise à jour comportent également des instructions de mise en cache de la décision d'autorisation, par exemple une durée de validité (après quoi la décision n'est considérée comme plus valide et doit être retirée du cache), également appelée TTL pour « time to live » en anglais, de maintien de la décision associée aux attributs de la requête. Une fois le TTL expiré, le noeud terminal correspondant doit être supprimé ainsi que tous les noeuds ancêtres laissés sans descendant (suppression récursive). [0164] Le résultat de la décision à la requête d'accès ainsi que des informations de mise à jour sont obtenues, lors de l'étape 118 de réception de la réponse à la requête d'accès multi-attributs. [0165] Lorsque les modules 15 de décision d'autorisation ou refus d'accès et 20 de traitement des requêtes d'accès utilisateur sont mis en oeuvre par des dispositifs distants adaptés à communiquer via un réseau de télécommunications, la réponse - comportant la décision d'autorisation d'accès ou de refus d'accès et les informations de mise à jour -est transmise par le module 15 au module 20 par un protocole de communications choisi. [0166] De plus, l'étape 118 est suivie d'une étape 120 de mise à jour de l'arbre de décision correspondant à la requête traitée dans le système de cache 32. [0167] La mise à jour 120 d'un arbre de décision comporte l'ajout d'un ou plusieurs noeuds intermédiaires et d'un noeud terminal, et d'arêtes reliant les noeuds ajoutés, avec des valeurs d'attribut associées. Seuls des noeuds ayant des attributs associés qui figurent 17 dans la liste des attributs effectivement utilisés dans la décision sont ajoutés dans la structure d'arbre de décision mémorisée, s'ils ne sont pas déjà présents dans l'arbre. Les noeuds sont reliés par des arêtes auxquelles sont associées les valeurs d'attributs de la requête d'accès traitée. [0168] Le noeud terminal ajouté est associé à la décision d'autorisation ou de refus reçue dans la réponse. [0169] L'étape 120 est suivie de l'étape 108 préalablement décrite d'autorisation ou refus d'accès au requérant selon la réponse reçue. [0170] Dans un mode de réalisation, les étapes 100 à 110 et 118, 120 sont effectuées par un module 20 de traitement des requêtes utilisateurs, qui effectue un rôle d'interface d'entrée/sortie et d'autorisation ou de refus d'accès vis-à-vis de l'émetteur des requêtes. Les étapes 112 à 114 sont effectuées par le module 15 de décision, qui est de préférence centralisé. [0171] De préférence, les modules 20 de traitement de requêtes utilisateur sont distribués, et le module 15 de décision est centralisé, et ils sont mis en oeuvre respectivement par des dispositifs de calcul différents. [0172] En variante, les modules 15 et 20 sont mis en oeuvre par un même dispositif de calcul. [0173] Avantageusement, le procédé de contrôle d'accès selon l'invention permet d'optimiser l'utilisation d'un système de cache de décision à base de tables de hachage ou autres types de tableau associatif optimisés pour l'accès rapide (en 0(1)) à des valeurs indexées ; et a fortiori le temps de calcul, grâce à la mise sous forme canonique des requêtes d'accès et la mémorisation de valeurs d'attributs - pertinents pour l'évaluation de politique - de requêtes préalables sous forme d'arbres de décision, et en particulier de traiter des requêtes complexes à partir du système de cache à accès rapide. [0174] 18 [Revendication 1] [Revendication 2] [Revendication 3]