FR 2895815 A1 20070706 FR 0513462 A 20051229 La présente invention concerne le domaine de la sécurisation des données électroniques et plus particulièrement un procédé et un système de contrôle d'accès, détection de modification, de déplacement ou de remplacement concernant des données stockées sur un support ré-inscriptible. L'utilisation de l'outil informatique est aujourd'hui répandue dans un très grand nombre d'activités. Les documents de travail sont créés, diffusés, stockés de manière électronique. Si, pour certains domaines, la sécurisation de ces données n'est pas une préoccupation majeure, pour d'autres domaines, les données doivent être obligatoirement sécurisées à un très haut niveau. Par sécurisation on entend notamment la protection de la confidentialité ou de l'intégrité des données et la protection de la vie privée des personnes. On distingue différentes façons de mettre en péril l'intégrité d'un document. Tout d'abord, la falsification d'un document à laquelle on peut remédier en lui adjoignant, par exemple, une signature numérique. Un attaquant peut aussi modifier la date d'un document, par exemple réutiliser des documents dont la date de validité est périmée ou qui sont censés être utilisés une seule fois. Pour contrer ce type d'attaques, on utilise l'horodatage afin d'estampiller le document à une date donnée. Deux autres types d'attaques possibles sont le remplacement d'un document par un autre et le déplacement d'un document. Ces deux types d'attaque ne sont pas toujours pris en compte par les mesures de sécurité informatique alors que leur impact technique et économique peut être très important. Concernant le remplacement d'un document par un autre, prenons l'exemple d'un logiciel protégé par deux types de licences : une licence A d'accès total au logiciel et une licence B d'accès limité au logiciel. Si une personne qui a acquis des droits d'utilisation d'un logiciel avec la licence B se procure frauduleusement la licence A, cette personne peut en toute impunité remplacer sa licence B valide par la licence A, acquise illégalement, et utiliser ainsi le logiciel en outrepassant ses droits. En effet, actuellement, en l'absence de système de détection de déplacement ou de remplacement de fichiers, l'accès aux données n'est pas rendu impossible après un déplacement ou un remplacement illicite. L'utilisation de supports non-réinscriptibles tels que le disque optique permet d'empêcher le remplacement d'un document par un autre document mais ces supports ne peuvent servir qu'au stockage de données statiques (non modifiables) telles que des données d'archive par exemple. Concernant le déplacement d'un document que ce soit un déplacement du document par rapport à son support physique ou par rapport à un déplacement géographique, il s'agit d'une attaque. Les seules solutions connues pour contrer les attaques comportant des modifications illicites de données consistent à chiffrer toutes les données à protéger. Les désavantages d'un tel système de sécurité sont nombreux. Ainsi ce type de sécurité nécessite d'implémenter un système particulier pour chaque type de support de stockage considéré, ce qui implique un coût supplémentaire. De plus, le fait de chiffrer toutes les données du fichier entraîne une dégradation des performances du système. Enfin, si une personne malveillante tente de corrompre le support chiffré, alors cela peut entraîner des anomalies dans la récupération des fichiers concernés mais aussi impacter d'autres fichiers. Un but de la présente invention est de remédier à ces inconvénients en proposant un procédé et un système pour détecter la modification, le déplacement ou le remplacement de données stockées sur un support réinscriptible. Il s'agit en particulier d'un procédé et d'un système de gestion de données électroniques pour gérer au moins un paramètre dedites données électroniques, ledit procédé étant caractérisé en ce qu'il comprend les étapes suivantes : - dans un premier temps, l'application d'une fonction auxdites parties du contenu desdites données et la mémorisation des premiers résultats ainsi obtenus ; - dans un deuxième temps, l'application de ladite fonction auxdites parties du contenu desdites données pour obtenir des deuxièmes résultats et la mémorisation des deuxièmes résultats ainsi obtenus ; - la comparaison des premiers et des deuxièmes résultats pour détecter un changement tel que la modification, le déplacement ou le remplacement desdites données. Selon un mode de réalisation particulier, l'étape de mémorisation des premiers résultats est exécutée après la réception d'une requête de modification, de déplacement, d'ajout, ou de retrait de données. Avantageusement, une entité émettrice exécute l'envoi de la requête de modification, de déplacement, d'ajout, ou de retrait de données. Avantageusement, l'étape de mémorisation est exécutée par un module de mise à jour et l'entité émettrice de la requête de modification, de déplacement, d'ajout, ou de retrait de données est authentifiée par ledit module de mise à jour qui n'exécute ladite requête uniquement si l'entité émettrice figure sur la liste des entités autorisées. Les autres buts, objets et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description qui suit faite en référence aux dessins dans lesquels : - la figure 1 représente un schéma du contenu du support de données et des relations entre les 5 différents éléments ; -la figure 2 représente un schéma du contenu du support de données et des relations entre les différents éléments en présence d'un module de contrôle d'accès à ces éléments. 10 Dans la présente invention, un utilisateur manipule un appareil électronique. Cet appareil est un support de stockage pour des données électroniques 1 présentées sur la figure 1. Ce 15 support est de type réinscriptible. Ainsi l'utilisateur peut modifier les données sans que cela nécessite le changement de support. Ce support peut par exemple être une clé USB amovible, un CDRW, une bande magnétique, un disque dur. Ces 20 exemples ne sont pas limitatifs. Comme présenté sur la figure 1, ce support contient également des applications 2. Ces applications peuvent être quelconques. Il peut s'agir par exemple d'applications de type bureautique (traitement de 25 texte, tableur,...). L'objet du procédé selon l'invention est de protéger des données stockées sur le support quelles que soient les applications qui les manipulent. 30 Les données à protéger sont caractérisées par des paramètres. Ces paramètres sont, par exemple, le contenu, également nommé valeur, de ces données et la localisation, ou chemin d'accès, de ces données. Pour ce qui est de leur contenu, il peut s'agir de contenu de fichiers, d'enregistrements physiques, de cellules de mémoire ou encore des représentations d'objets logiques. Ces exemples ne sont pas limitatifs. Concernant la localisation, il peut s'agir d'une localisation logique comme par exemple le chemin absolu du fichier qui constitue ou qui contient la donnée concernée ou encore d'un nom symbolique ou d'une adresse indirecte. Il peut également s'agir d'une localisation physique comme par exemple l'adresse mémoire qui contient la donnée concernée. S'il s'agit d'une localisation logique, celle-ci est alors utilisée pour calculer la localisation physique qui permet d'accéder aux données. Que la localisation soit logique ou physique, elle est identifiée par des coordonnées. Ces coordonnées peuvent être par exemple le chemin absolu, l'adresse mémoire ou encore le numéro de secteur, le numéro de plateau ou le numéro de cylindre d'un disque dur. Ces coordonnées permettent de retrouver sans aucune ambiguïté les données. Une donnée est donc précisément définie par le couple composé du contenu de la donnée et de sa localisation. Les applications 2 sont en liaison avec une interface de communication 3. Cette interface de communication permet de gérer les différentes applications 2 qui, selon le cas, souhaitent exécuter une vérification de déplacement, de modification ou de remplacement de données. Cette interface 3 est elle-même reliée à un module de détection 4 de déplacement, de modification ou de remplacement (dit Module de Détection ). Ce Module de Détection a accès à une liste de résultats. Cette liste est obtenue à partir d'un traitement appliqué pour chaque donnée au couple de paramètres définissant la donnée. Ce traitement est réalisé par une fonction de calcul (dite Fonction de Calcul ). Cette Fonction de Calcul produit un résultat à partir des paramètres d'entrée que sont le contenu de la donnée et sa localisation. Le procédé selon l'invention n'est pas limité à une Fonction de Calcul particulière. Les propriétés idéales d'une Fonction de Calcul sont listées ci-dessous. La première propriété souhaitable pour une Fonction de Calcul est d'être sans collisions c'est-à-dire de minimiser le nombre de collisions possibles. Une fonction est dite sans collisions si elle ne fournit des résultats identiques qu'à partir de paramètres d'entrée identiques. Elle assure donc que si deux couples de paramètres d'entrée sont différents, alors les deux résultats sont différents. Ainsi pour deux données d et d' et une Fonction de Calcul f, on a : d e d' => f(d) e f(d') ou encore f(d) = f(d') => d = d' La deuxième propriété souhaitable pour une Fonction de Calcul est d'être à sens unique , ce qui signifie que, lorsque l'on dispose du résultat, on ne peut pas utiliser cette fonction pour retrouver le couple de paramètres d'entrée qui a été utilisé pour obtenir le résultat. Ainsi, connaissant la donnée d, on peut facilement calculer f(d) mais connaissant f(d) on ne peut pas retrouver d. Enfin la troisième propriété souhaitable pour une Fonction de Calcul est de produire un résultat (appelé condensé ) de une taille inférieure aux paramètres d'entrée. Les fonctions de hachage, qui sont couramment utilisées dans le domaine de la cryptographie, possèdent ces trois propriétés. La Fonction de Calcul peut donc être, par exemple, une fonction de hachage telle que SHA-1 ou MD. Une bonne Fonction de Calcul permet donc de réduire la taille des résultats qui peuvent être stockés plus facilement. La Fonction de Calcul est appliquée au couple contenu et localisation de la donnée ou application à protéger : ceci est appelé résultat . Le Module de Détection a accès à une liste de résultats constituée à l'avance, c'est à dire préalablement à une requête de vérification de détection ou de remplacement au préalable par une ou plusieurs applications. Le Module de Détection possède également des moyens de comparaison pour pouvoir comparer un résultat quelconque obtenu par la Fonction de Calcul avec les éléments de la liste de résultats, lors d'une demande de vérification par une application au moyen d'une requête de vérification. Cette liste de résultats concerne toutes les applications et données présentes sur le support de stockage réinscriptible que l'on souhaite protéger contre les modifications, remplacements ou déplacements. Cette liste de résultats est elle-même protégée contre la modification. Cette protection peut consister en une signature digitale de la liste ou bien en l'application de protections matérielles. Le Module de Détection est en liaison avec un module de mise à jour 6 (dit Module de Mise à Jour ) dans le support de stockage. Le Module de Mise à Jour 6 doit être activé lors d'un ajout, d'un retrait ou d'une modification concernant le contenu ou l'emplacement des données. Ainsi, lorsqu'une nouvelle donnée 1 est ajoutée au support de stockage, une application 2 envoie une requête de mise à jour de données au Module de Mise à Jour 6. L'opération est autorisée si l'entité requérante ou entité émettrice, par exemple la personne qui a lancé l'application, appartient à une liste d'entités autorisées, cette liste étant établie au préalable. Le Module de Mise à Jour 6 autorise éventuellement la création d'un nouveau résultat qui vient compléter la liste des résultats déjà existante dans le Module de Détection 4. Ce Module de Mise à Jour 6 est donc en accès restreint et ne concerne que les personnes autorisées. Un système d'authentification 5 peut gérer cet accès au moyen, par exemple, d'une carte à puce, d'un mot de passe ou même d'une clé physique. Ces exemples ne sont pas limitatifs. De la même façon, ce Module de Mise à Jour 6 permet de supprimer des résultats de la liste des résultats lors de la suppression de données ou de remplacer les résultats si le contenu ou l'emplacement de la donnée change. Après cette description, nous allons maintenant détailler le principe de fonctionnement de ce système. Nous décrivons dans un premier temps le premier mode de fonctionnement du système qui permet d'avertir l'utilisateur d'un éventuel déplacement, remplacement ou changement de donnée. Le second mode de fonctionnement, présenté ensuite, permet de contrôler l'accès aux données en refusant l'accès aux données qui ont été déplacées, remplacées ou modifiées. Dans le premier mode de fonctionnement du système, lorsque l'utilisateur souhaite accéder à un document sur un support réinscriptible, l'application 2 présente sur le support et qui gère ce document, et qui connaît donc son emplacement, accède d'abord à ce document et obtient son contenu. Ce document est caractérisé par le couple contenu et localisation. Si la donnée 1 en question est classée sensible c'est à dire protégée par le procédé selon l'invention, l'interface de communication 3 lance ensuite la requête de vérification auprès du Module de Détection 4. L'application 2, via l'interface de communication 3 fournit comme paramètres le contenu et la localisation du document. Le Module de Détection 4 utilise alors la Fonction de Calcul pour calculer le résultat propre à ce couple de paramètres. Ensuite le Module de Détection 4 applique des moyens de comparaison pour déterminer si ce résultat est présent dans la liste de résultats à laquelle il a accès. Cette recherche dans la liste de résultats peut être optimisée par un algorithme. Ainsi il est possible d'organiser les résultats dans une table de hachage. Si le résultat est effectivement présent dans la liste alors le document n'a été ni modifié ni remplacé ni déplacé. En effet, dans la mesure où la Fonction de Calcul est sans collision, deux résultats identiques indiquent que l'intégrité du document a été respectée. Si, après la comparaison, le résultat n'appartient pas à la liste, alors le document a été modifié ou remplacé ou déplacé. En effet, dans la mesure où la Fonction de Calcul est sans collision, deux résultats différents indiquent que l'intégrité du document n'a pas été respectée. Dans les deux cas l'information est retournée par le Module de Détection 4 via l'interface de communication 3. Le Module de Détection 4 peut ainsi détecter toute modification de données authentiques par des données non authentiques, c'est à dire illégitimes. Lors du stockage d'une donnée A aux coordonnées locA, une personne autorisée invoque d'abord le Module de Mise à Jour 6 du système de détection 4. Le système mémorise alors le résultat de la Fonction de Calcul F appliquée au couple de paramètre (A, locA). La donnée A est dite authentique car son ajout a été approuvé par une personnne autorisée. Si un attaquant accède au support réinscriptible et modifie A par A', A' est considérée comme une donnée non authentique car cette donnée n'a pas été approuvée par une personne autorisée. Le résultat de la Fonction de Calcul F appliquée au couple de paramètres (A', locA) est donc différent du résultat obtenu par la même Fonction de Calcul F avec le couple de paramètres (A, locA). Le système de détection 4 ne peut donc pas retrouver le résultat dans la liste de résultats. Le système de détection détecte donc la modification de la donnée 1. Le Module de Détection 4 peut également détecter tout remplacement d'une donnée authentique par une autre donnée authentique. Considérons par exemple les données A et B qui sont respectivement stockées aux coordonnées locA et locB. Lors du stockage de ces données, une personne autorisée a invoqué le Module de Mise à Jour 6 qui a enregistré les résultats F(A, locA) et F(B, locB). Si un attaquant accède au support réinscriptible et copie B à la place de A. B est une donnée authentique, car l'attaquant ne l'a pas modifiée. Cependant, le résultat de la Fonction de Calcul F appliquée au couple de paramètres (B, loc A) est différent du résultat de la Fonction de Calcul F appliquée au couple de paramètres (A, locA) ou du résultat de la Fonction de Calcul appliquée au couple de paramètres (B, loc B). Le système de détection ne peut donc pas retrouver le résultat dans la liste de résultats et détecte ainsi le remplacement de la donnée. Le Module de Détection 4 peut également détecter tout déplacement d'une donnée authentique à une autre localisation. En utilisant l'exemple précédent, si un attaquant déplace la donnée A aux coordonnées locB, la donnée A est toujours une donnée authentique car l'attaquant ne l'a pas modifiée. Cependant, le résultat de la Fonction de Calcul F appliquée au couple de paramètre (A, locB) est différent du résultat de la Fonction de Calcul appliquée au couple de paramètres (A, locA). Le système de détection ne peut donc pas retrouver le résultat dans la liste de résultats et détecte ainsi le déplacement de la donnée. Dans le second mode de fonctionnement du système présenté sur la figure 2, un module de contrôle d'accès 7 (dit Module de Contrôle d'Accès ) aux données est ajouté. Ce Module de Contrôle d'Accès 7 est en liaison avec les applications 2 et le Module de Détection 4. Ce Module de Contrôle d'Accès 7 peut, par exemple, être situé dans le système d'exploitation de l'ordinateur de telle sorte que si une application souhaite accéder à ces données, seul ce Module de Contrôle d'Accès 7 peut accéder au support réinscriptible pour récupérer les données aux coordonnées indiquées. Dans ce second mode de fonctionnement du système, lorsque l'utilisateur souhaite accéder à un document sur un support réinscriptible, l'application présente sur le support et qui gère ce document, et qui connaît donc son emplacement, soumet d'abord une requête d'accès au Module de Contrôle d'Accès 7. Le Module de Contrôle d'Accès obtient le contenu de la donnée (à partir de la localisation fournie par l'application) et lance ensuite une requête de vérification auprès du Module de Détection 4. Le Module de Détection utilise alors la Fonction de Calcul pour calculer le résultat propre au couple de paramètres localisation, contenu caractérisant cette donnée. Ensuite le Module de Détection 4 applique des moyens de comparaison pour déterminer si ce résultat est présent dans la liste de résultats à laquelle il a accès. Si le résultat est effectivement présent dans la liste alors le document n'a été ni modifié ni remplacé ni déplacé et le Module de Contrôle d'Accès 7retourne à l'application la valeur (contenu) de la donnée. Si, après la comparaison, le résultat n'appartient pas à la liste, alors le document a été modifié ou remplacé ou déplacé et le Module de Contrôle d'Accès 7 refuse à l'application l'accès au contenu de la donnée. Un tel système de détection de modification, de déplacement ou de remplacement de données peut être réalisé pour protéger, par exemple, des fichiers, des enregistrements physiques, des cellules de mémoire ou des représentations d'objets logiques c'est à dire des objets des langages de programmation dits à objets . Selon un autre exemple de réalisation, l'accès au support réinscriptible peut être conditionné par la possession d'une clé secrète, elle-même protégée par un dispositif matériel. Ce dispositif matériel empêche le support réinscriptible d'être physiquement déplacé sur une autre plateforme. Il assure également que seul le système réalisé peut avoir accès à la clé secrète qu'il protége. Le contenu des données stockées sur le support réinscriptible peut alors être protégé en confidentialité et en intégrité. La localisation de ces données, le chemin dans le cas présent) est également protégé par le calcul d'un condensé issu d'une fonction cryptographique de hachage. Enfin, la liste des résultats peut être protégée contre la modification à l'aide d'un dispositif matériel. REVENDICATIONS 1- Procédé de gestion de données électroniques pour gérer au moins un paramètre dedites données électroniques, ledit procédé étant caractérisé en ce qu'il comprend les étapes suivantes : - dans un premier temps, l'application d'une fonction auxdites parties du contenu desdites données et la mémorisation des premiers résultats ainsi obtenus ; - dans un deuxième temps, l'application de ladite fonction auxdites parties du contenu desdites données pour obtenir des deuxièmes résultats et la mémorisation des deuxièmes résultats ainsi obtenus ; - la comparaison des premiers et des deuxièmes résultats pour détecter un changement tel que la modification, le déplacement ou le remplacement desdites données. 2- Procédé selon la revendication 1, caractérisé en ce que la fonction est réalisée par une fonction à sens unique, sans collisions et produisant un condensé. 3- Procédé selon l'une des revendications précédentes, caractérisé en ce que la fonction est réalisée par une fonction de hachage. 30 4- Procédé selon l'une des revendications précédentes caractérisé en ce que l'étape de mémorisation des premiers résultats est exécutée25après la réception d'une requête de modification, de déplacement, d'ajout ou de retrait de données. 5- Procédé selon la revendication 4, 5 caractérisée en ce qu'une entité émettrice exécute l'envoi de la requête de modification, de déplacement, d'ajout ou de retrait de données. 6- Procédé selon l'une des revendications 10 précédentes, caractérisé en ce que l'étape de mémorisation est exécutée par un module de mise à jour et que l'entité émettrice de la requête de modification, de déplacement, d'ajout ou de retrait de données est authentifiée par ledit module de mise 15 à jour qui n'exécute ladite requête que si l'entité émettrice figure sur la liste des entités autorisées. 7- Procédé selon l'une des revendications 20 précédentes, caractérisé en ce que l'étape de comparaison est exécutée après la réception d'une requête de vérification émanant d'une application. 8- Procédé selon l'une des revendications 25 précédentes, caractérisé en ce que l'étape de comparaison est exécutée après la réception d'une requête d'accès à une donnée émanant d'une application. 30 9- Procédé selon la revendication 8, caractérisé en ce qu'une entité émettrice exécutel'envoi de la requête d'accès à une donnée émanant d'une application. 10- Procédé selon l'une des revendications précédentes, caractérisé en ce que l'étape de comparaison est exécutée par un module de contrôle d'accès et que l'accès à la donnée n'est accordé à l'entité émettrice de la requête d'accès que si la comparaison a été exécutée avec succès. 11- Procédé selon l'une des revendications précédentes caractérisé en ce que les paramètres des données comprennent le contenu des données, le chemin d'accès auxdites données. 12- Système de gestion pour gérer le contenu de données électroniques caractérisé en ce que le système comprend des moyens pour exécuter les étapes du procédé selon l'une quelconque des revendications précédentes. 13- Système de gestion pour gérer le contenu de données électroniques selon la revendication 12 caractérisé en ce que les données sont des fichiers, des enregistrements physiques, des cellules de mémoire ou des représentations d'objets logiques. 14- Système de gestion pour gérer le contenu de données électroniques selon l'une des revendications 12 ou 13 caractérisé en ce que les chemins d'accès sont des localisations physiques permettant d'accéder directement aux données ou deslocalisations logiques utilisées pour calculer les localisations physiques permettant d'accéder aux données. 15- Système de gestion pour gérer le contenu de données électroniques selon l'une des revendications 12 à 14 caractérisé en ce que les données sont stockées sur un support réinscriptible.