Brevet FR2820529A1 — publié le 20020809

L'invention concerne un système et un procédé permettant à travers un réseau non-sécurisé de type Internet le partage d'informations sensibles entre plusieurs organisations ayant chacune des droits d'accès différents. Le partage des bases de données entre organisations repose le plus souvent sur une duplication de l'information entre deux serveurs de bases de données, appelée également récation. Or, la notion de réplication entre deux bases de données relationnelles n'a pas de solution technique cohérente, notamment lorsque les bases de données n'ont pas le même schéma. En outre, le partage d'informations entre organisation pose des problèmes de propriété intellectuelle. Le droit des bases de données garantit en effet une propriété à celui qui investit pour constituer une base de données, et non à la source d'une information. Aussi, les négociations entre organisations pour le partage de données sont souvent longues, coûteuses et peuvent aboutir à bloquer le partage d'information entre organisations pour des questions organisationnelles plus que techniques. Enfin, les accorda de partage d'informations entre organisations peuvent être également bloqués en raison d'accords entre les sources de l'information-des entreprises par exemple-et les producteurs de bases de données qui interdisent aux producteurs de bases de données tout échange d'information avec un tiers. L'un des buts de l'invention est de faciliter le partage d'informations entre organisations en considérant que toute problématique de partage d'informations est équivalente à une problématique d'accès à une pluralité de sources d'information. Un autre but de l'invention est de permettre un accès à une pluralité de sources d'informations à travers un système simulant un serveur de base de données relationnelle. Un autre but de l'invention est de con'rôler l'accès à l'information en fonction d'une politique de droits maîtrisée par la source de l'information. Le système de l'invention est constituée de quatre type de dispositifs : * une pluralité de serveurs de documents structurés (1) 'un réseau ouvert (2) . une pluralité de proxy intelligents (3) 'une pluralité de clients SQL (4) Chaque serveur de document structuré (1) peut consister en un serveur Web, un serveur de fichiers SMB ou un serveur FTP. Une telle configuration n'est cependant pas limitative et peut inclure diverses variantes : serveur de courrier électronique configuré comme un serveur de fichier, serveur de fichiers Novel Le réseau ouvert (2) est le réseau Internet, un Intranet ou un réseau Novell. Une telle configuration n'est cependant pas limitative et peut inclure diverses variantes : réseau Transpac, réseau GSM, réseau UMTS, réseau i-mode. Chaque proxy intelligent (3) est un ordinateur comprenant un module de téléchargement, un module de déchiffrement, un module d'analyse de données structurées, un module de stockage intermédiaire de documents structurés et un module d'indexation. Le module de téléchargement est un logiciel client FTP, un client HTTP ou un client SMB. Une telle configuration n'est cependant pas limitative et peut inclure diverses variantes : client Novell, client de courrier électronique configuré pour accéder à serveur de courrier électronique configuré comme un serveur de fichier. Le module de déchiffrement est un système à clef publique de type PGP. Le modulé d'analyse de données structurées est un analyseur de données XML. Une telle configuration n'est cependant pas limitative et peut inclure diverses variantes : analyseur SGML, lecteur de graphe d'objets sérialisés. Le module de stockage intermédiaire de documents structurés est un serveur de base de données relationnelle ou un système de fichiers. Une telle configuration n'est cependant pas limitative et peut inclure diverses variantes : mémoire à accès dynamique, base à objets. Le module d'indexation est un système de recherche de documents structurés en fonction des propriétés de ces documents. H peut s'agir d'une base à objet ou d'un serveur de base de données relationnelle. Une telle configuration n'est cependant pas limitative et peut inclure diverses variantes : gestionnaire de données à arbres équilibrés, fichier plat obtenu à partir d'un parcours exhaustif des documents disponibles dans le module de stockage intermédiaire. Chaque client SQL est constitué d'un système compatible avec un protocole d'accès à un serveur de base de données de type SQL. Le procédé de l'invention comprend les étapes suivantes : générer aléatoirement un jeu de clefs publiques/privées pour chaque type de noeud du document structuré, chiffrer le document structuré, publier le document structuré sur le serveur de document structurés, générer pour chaque organisation un trousseau de clefs privées, chiffrer le trousseau de chaque organisation avec le clef publique de l'organisation, envoyer à chaque organisation son trousseau chiffré, télécharger un document structuré, déchiffrer un document structuré, stocker un document structuré, indexer un document structuré, effectuer une requête relationnelle sur l'index, fournir la liste des enregistrements d'index correspondant à la requête, fournir le document structuré stocké en mémoire tampon, mettre à jour l'index. Les étapes de chiffrement, de publication et de génération de trousseau sont répétées à intervalles réguliers. Les étapes de téléchargement ne sont effectuées que lorsqu'un document structuré à été mis à jour. Les autres étapes sont répétées à chaque consultation. L'invention permet : CI d'accéder à des sources d'information distribuées sur un réseau ouvert à travers une interface qui simule une base de données relationnelle locale, * d'assurer aux sources d'information un contrôle sur les destinataires de l'information. * D'autres caractéristiques avantageuses apparaîtront à la lecture de la description détaillée ci-dessous d'un mode de mise en oeuvre du procédé de l'invention, en référence à la figure unique annexée, qui illustre les différents moyens et ressources indiqués dans la mise en oeuvre du procédé. * Cn considérera dans l'exemple ci-dessous que chaque serveur de documents structurer un serveur Web Apache, que le réseau ouvert est Internet et que le client SQL est un tableur Excel comportant un module ODBC. Le proxy intelligent est constitué des modules suivants : * un ordinateur sous Linux o un serveur de bases de données MySQL # un serveur d'application Zope avec module d'accès MySQL et module de téléchargement Les documents structurés sont conformes à la norme XML. Par exemple : Zero Box manufactures boxes John is the boss John is not the boss A PC computer A Mac computer Not a great Year A PC computer A Linux computer Great Year Une table de chiffrement permet de spécifier quelles balises doivent être chiffrés et quelles organisations y ont un accès restreint. Dans cet exemple, les balises téléphone, accounting et asset auront un accès restreint. telephone : Préfecture, Trésorerie accounting : Banque, Préfecture asset : Banque Une table de clefs privées 1 clefs publiques est ensuite produite telephone : 1024D CDA0B002 accounting : 2234A ZDFOHOOI asset : 2256XRDF90112 On lance alors le chiffrement du document structuré en commençant par les feuilles les plus profondes de l'arbre puis en remontant vers la racine de l'arbre du document structuré. Les étapes du calcul détaillé sont les suivantes. On commence par chiffrer les balises asset et telephone lors du premier passage. Zero Box manufactures boxes DJE2NzedYNfEZIUHù% èdhjE John is the boss John is not the boss key="RDF90112" > DJE2NzzdedYaaaadjkljk$$NfEZIezczUHù% èdhjE 2adjkljk$$UNID36EUHù%èdhjZIezeNzzdedYaaazE . Not a great Year key="RDF90112" > djkljk$$NfEZIezezUHDJE2NzzdedYaaaaù% èdhjE 2adjkljk$$NfD36EUHù% edhjZIezeNzzdedYaaazE Great Y ear On chiffre à l'étape suivante les balises de type accounting. Zero Box manufactures boxes DJE2NzedYNfEZIUHù% èdh) E John is the boss John is not the boss edYaaaadjkljk$$edh ! ZIezeNzzdedYNfEZIezczUHDJE$Nf036EUHù% èd'"èàç JeDfgezjQié''dYÛENfEZIezezUHDJE$NiD36EUHù% èd'''eàçejei) fgejfhezjf jQjié"dYNfEZIezezUHDJE$Nn) 36EUHù% èd'"eàçejej] fgcjmezjQQjié" (hn] lNL KHyè-M% lùOIT-è (3jgbHJGT-èRkjG-èrkJhui t7 On publie le résultat de ce processus de chiffrement sur le serveur Web Apache. On envoie par courrier électronique à chaque organisation la liste des clefs auxquelles cette organisation a accès, sous forme de message chiffré au moyen d'une clef publique fournie par l'organisation. Avec cette liste de clés, on fournit l'adresse de publication du document structuré chiffré. La liste des clés envoyée à une organisation de type banque est par exemple. P. Î http ://www. zero. com/entreprise. xml ZDFOH001 RDF90112 La première ligne définit l'emplacement du document structuré chiffré. Les autres lignes définissent les clefs de chiffrement 1 déchiffrement. On supposera que ce message est envoyé à l'adresse électronique entreprise-info&commat;banque. com Le dispositif de proxy intelligent lit régulièrement le courrier électronique envoyé pour lui indiquer l'emplacement des documents structurés et les clefs de chiffrement. Par exemple, le proxy intelligent de la banque consulte le compte de courrier électronique entreprise- info&commat;banque. com par un protocole IMAP. Pour chaque courrier reçu, il met à jour deux tables dans la base de donnée (ENTREPRISE et CLEF) puis lance une mise à jour de l'index. La table ENTREPRISE contient deux champs : un champ ID d'identification et un champ URL correspondant à l'adresse de publication du document structuré. La table CLEF comprend cinq champs : un champ ID d'identification d'une paire de clefs, un champ IDENTREPRISE d'identification de l'entreprise concernée dans la table ENTREPRISE, un champ TAG pour la balise concernée, un champ PUBLIC pour la clef publique et un champ PRIVATE pour la clef privée. Par exemple, dans le cas de l'exemple de message précédent, les tables ENTREPRISE et CLEF sont mises à jour de façon à contenir les informations suivantes : ENTREPRISE : (ID1, http ://www. zero. com/entrepnse. xml) CLEF : (ID1,ID1, accounting, 2234A, ZDPOH001) (ID2, ID1, accounting, 2256X, RDF90112) L'index du proxy intelligent peut alors être mis à jour. Si l'on suppose que cet index ne stocke que des informations sur les profits et actifs d'une entreprise, il peut être construit autour de deux tables PROFIT (IDENTREPRISE, YEAR, VALUE) et ASSET (ID, IDJENTREPRISE, YEAR, TYPE, VALUE). Pour mettre à jour cet index, le proxy intelligent télécharge le document http ://www. zero. com/entreprise. xml, déchiffre le xnu document au moyen des clefs fournies par la table CLEF, place une version déchiffrée dans le système de fichier local, en éliminant le cas échénat toute les balise CRYPTO non déchiffrables. Le proxy intelligent lance un parcours du document afin de mettre à jour les tables PROFIT et ASSET qui ont alors les valeurs suivantes : PROFIT : (ID1, 1999, 0) (ID1, 2000, 300000000) ASSET : (ID 1, ÏD1, 1999, computer, 100) (ID2, ID1, 1999, computer, 200) (ID 1, ID 1, 2000, computer, 100) (ID2, IDl, 2000, computer, 300) Le proxy intelligent parcourt alors l'ensemble de la table ENTREPRISE toutes les nuits pour mettre à jour les tables PROFIT et ASSET lorsque le document stocké temporairement est plus ancien que les documents publiés sur le site Web indiqué. Les valeurs présentes ne sont remplacées que lorsque de nouvelles valeurs sont disponibles. Par exemple, si une entreprise cesse de publier sa situation comptable de l'année 1999, les valeurs de 1999 sont conservées par la banque. Au sein de la banque, tout utilisateur d'Excel peut alors accéder par protocole ODBC requêtes SQL aux tables ASSET et PROFIT en lecture uniquement pour effectuer des études statistiques. Lorsque des informations qualitatives sont nécessaires, il est également possible d'accéder au document structuré stocké temporairement par le proxy intelligent et présenté, optionnellement, sous forme de document HTML par application d'une feuile de style XSLT. Lors de toute consultation d'un document XML stocké temporairement, le procédé de téléchargement et de déchiffrement est appelé si nécessaire afin de s'assurer que le document stocké temporairement est bien à jour. Le proxy intelligent inclut également une fonction d'indexation en texte intégral des documents XML stockés temporairement afin de compléter les fonctions d'indexation structurée par la base relationnelle. Cette indexation est effectuée par un module de type HTDIG (indexation différée) ou de type Zope Catalog (indexation au fil de l'eau). REVENDICATIONS 1. Tout système permettant à travers un réseau non-sécurisé de type Internet le partage d'informations sensibles entre une pluralité d'organisations ayant chacune des droits d'accès différents. 2. Tout procédé permettant à travers un réseau non-sécurisé de type Internet le partage d'informations sensibles entre une pluralité d'organisations ayant chacune des droits d'accès différents.