Brevet FR3026514A1 — publié le 20160401

DOMAINE TECHNIQUE GENERAL La présente invention concerne le domaine du cloud computing. Plus précisément, elle concerne un procédé de lecture de données dans un système comprenant un serveur de stockage distant. ETAT DE L'ART Le cloud (en français « le Nuage ») désigne des ensembles de serveurs informatiques dispersés dans un réseau, généralement Internet, utilisés pour le stockage de données à distance. Des fournisseurs d'accès à Internet proposent ainsi des solutions d'externalisation de données vers des clouds publics. Cette solution s'adresse en particulier aux entités telles que les entreprises disposant de ressources informatiques limitées et qui veulent étendre leur capacité de stockage tout en permettant un accès étendu à leurs données. De façon générale, l'entité comprend sur son site une passerelle d'accès (typiquement un boiter d'accès à Internet) appelée « cloud gateway », via laquelle les utilisateurs (typiquement les collaborateurs de l'entreprise) doivent passer (en utilisant des clients) pour accéder au service de stockage offert par le cloud public. Cette passerelle comprend une mémoire cache sur laquelle sont temporairement stockées les données en attente d'externalisation ou les données récemment extraites du cloud public sur requête d'un utilisateur. Cette utilisation de mémoire cache au niveau de la passerelle permet d'augmenter le confort d'utilisation pour les utilisateurs : les données en cache sont instantanément lisible ou modifiables, contrairement à celles stockées de façon distante, pour lesquelles des phénomènes de latence (le durée nécessaire à un paquet de données pour passer de la source à la destination à travers le réseau) augmente sensiblement les temps de réponse. La Demanderesse a néanmoins constaté que l'utilisation des caches entraînait parfois un problème d'asymétrie d'information entre les différents utilisateurs. En effet, dans la mesure où les données récemment utilisées restent temporairement dans le cache, il peut être identifié en observant les performances du système que certains utilisateurs ont accédé à certains fichiers particuliers dans une certaine période de temps. Des utilisateurs malveillants pourraient même tenir un historique d'accès aux données sans trop de difficultés, ce qui constituerait une violation de la vie privée des utilisateurs. Il est ainsi souhaitable d'améliorer les solutions existantes de sorte à conserver les avantages apportés par l'utilisation du cache tout en garantissant une non-traçabilité des accès aux données par des utilisateurs tiers. PRESENTATION DE L'INVENTION La présente invention se rapporte ainsi selon un premier aspect à un procédé d'accès à un contenu par un équipement client dans un réseau, l'équipement client étant connecté à un serveur de stockage via une passerelle, ledit contenu étant stocké sur une mémoire cache de la passerelle et/ou au niveau du serveur de stockage, le procédé étant caractérisé en ce qu'il comprend la mise en oeuvre, par une module de traitement de données de la passerelle d'étapes de : (a) Réception d'une requête d'accès audit contenu émise par l'équipement client ; (b) Si ledit contenu est présent dans la mémoire cache de la passerelle, transmission du contenu à l'équipement client à l'expiration d'un délai donné, de sorte à simuler la récupération dudit contenu depuis le serveur de stockage. Le fait de délayer l'envoi du contenu fait croire à l'utilisateur de l'équipement que ce contenu est chargé depuis le serveur de stockage, et permet de cacher le fait qu'un autre utilisateur ait pu accéder au contenu (et donc qu'il soit dans le cache). Selon d'autres caractéristiques avantageuses et non limitatives : - le procédé comprend, si ledit contenu n'est pas présent dans la mémoire cache de la passerelle, une étape (c) de récupération du contenu auprès du serveur de stockage puis la transmission du contenu à l'équipement client. Si le contenu n'est pas présent dans la mémoire cache, c'est qu'il extemalisé dans le cloud, lequel offre un vaste espace de stockage accessible de partout avec un niveau de sécurité élevé ; - la récupération dudit contenu auprès du serveur de stockage comprend le stockage temporaire du contenu sur la mémoire cache de la passerelle. Cela permet de le resservir rapidement si un autre accès au contenu est demandé ultérieurement ; - Le contenu peut êtyre chiffré sur le serveur de stockage ; dans cette configuration, la récupération dudit contenu auprès du serveur de stockage comprenant son déchiffrement. Ce chiffrement augmente encore la sécurité du stockage extemalisé ; - un fichier d'historique d'accès est stocké de façon sécurisée sur la passerelle, l'étape (a) comprenant la vérification dudit fichier d'historique de sorte à déterminer si l'équipement client a accédé audit contenu récemment. Un accès au contenu entraîne son chargement en mémoire cache. L'utilisation d'un fichier d'historique d'accès permet de détecter cela efficacement ; - l'étape (b) est mise en oeuvre seulement si l'équipement client n'a pas accédé audit contenu récemment. Dans le cas où c'est l'utilisateur lui-même qui a accédé au contenu récemment, il sait que ce dernier est dans le cache. Il n'est donc pas nécessaire de mettre en oeuvre l'étape (b) ; - le procédé comprend, si l'équipement client a accédé audit contenu récemment, une étape (b') de transmission du contenu à l'équipement client sans délai. Cela permet d'éviter l'éventuel délai supplémentaire quand il n'est pas nécessaire ; - le procédé comprend, suite à la transmission du contenu à l'équipement client, une étape (d) de mise à jour dudit fichier d'historique d'accès. Cela permet de savoir ultérieurement si le contenu est en cache ou pas, et qui l'y a mis ; - ladite requête reçue à l'étape (a) contient des métadonnées locales permettant à la passerelle d'identifier le contenu. Ces métadonnées locale ne sont compréhensibles que de la passerelle, et lui permettent facilement d'identifier le contenu requis ; - l'étape (c) comprend la détermination de métadonnées anonymisées en fonction des métadonnées locales, les métadonnées anonymisées permettant au serveur de stockage d'identifier le contenu ; la récupération du contenu auprès du serveur de stockage comprenant en outre l'émission d'une requête contenant lesdites métadonnées anonymisées. L'utilisation d'un deuxième niveau de métadonnées garantit une confidentialité parfaite : le serveur de stockage ne peut ainsi pas déterminer quelle sorte de données sont présentes ; - la passerelle agit comme un serveur mandataire pour le serveur de stockage. Cela augmente encore la sécurité. Selon un deuxième aspect, l'invention concerne un passerelle pour l'accès à un contenu par un équipement client dans un réseau, la passerelle connectant l'équipement client à un serveur de stockage, ledit contenu étant stocké sur une mémoire cache de la passerelle et/ou au niveau du serveur de stockage, la passerelle étant caractérisée en ce qu'elle comprend un module de traitement de données configure pour : Recevoir une requête d'accès audit contenu émise par l'équipement client ; Si ledit contenu est présent dans la mémoire cache de la passerelle, transmettre le contenu à l'équipement client à l'expiration d'un délai donné, de sorte à simuler la récupération dudit contenu depuis le serveur de stockage. Selon un troisième aspect, l'invention concerne un produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon le premier aspect de l'invention d'accès à un contenu par un équipement client dans un réseau. Selon un quatrième aspect, l'invention concerne un moyen de stockage lisible par un équipement informatique sur lequel on trouve ce produit programme d'ordinateur. PRESENTATION DES FIGURES D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation préférentiel. Cette description sera donnée en référence à la figure 1 la figure 1 représente une architecture de réseau dans lequel est mis en oeuvre le procédé selon l'invention ; la figure 2 est un logigramme représentant la mise en oeuvre d'un mode de réalisation préféré de l'invention. DESCRIPTION DETAILLEE Architecture En référence à la figure 1, l'invention propose un procédé pour l'accès à un contenu par un équipement client 10 dans un réseau 1. Le réseau 1 est préférentiellement le réseau Internet, et comprend un (ou plusieurs) serveur de stockage 3 constituant un cloud, comme expliqué précédemment. Le serveur 3 héberge un grand nombre de contenus de diverses sortes : par contenu on entend toutes les données informatiques qu'un utilisateur peut souhaiter stocker, que ce soit tout ou partie de média (films, photos, etc.), de documents, de fichiers de travail, etc. Le serveur 3 est considéré comme un serveur sécurisé sur lequel les contenus sont préférentiellement chiffrés pour prévenir toute lecture par un tiers malveillant même s'il avait réussi à pénétrer le serveur 3. Le ou les équipements clients 10 peuvent être des équipements de toute sorte tels que des postes de travail, des smartphones, des tablettes tactiles, etc. connectés au réseau 1. Toute connexion au serveur 3 ne peut se faire que via une passerelle 2 (la « cloud gateway » évoquée précédemment). Elle agit comme un « proxy », c'est-à-dire un serveur mandataire, pour ce serveur 3. Cela signifie que la passerelle 2 joue le rôle d'intermédiaire entre le serveur 3 et tout équipement 10, et qu'aucune connexion directe entre ces derniers n'est possible : seule la passerelle 2 ne peut communiquer avec le serveur 3, ce qui garantit une sécurité des données encore accrue. La passerelle 2 comprend un module de traitement de données 21 (tel qu'un processeur) et une mémoire cache 22 (en particulier une mémoire vive). Elle peut ainsi stocker des données de façon temporaire avec une forte vitesse d'accès. Il peut être ainsi prévu que tout contenu à externaliser sur le serveur 3 ou qui vient d'être récupéré soit disponible par exemple 1h, ce qui évite la nécessité d'aller-retours multiples et inutiles entre la passerelle 2 et le serveur 3. Dans le cas du présent procédé, on suppose que le ledit contenu auquel l'équipement 10 souhaite accéder est stocké sur cette mémoire cache 22 de la passerelle 2 et/ou au niveau du serveur de stockage 3 (le cas échéant au milieu de milliers d'autre). A moins qu'il n'ait demandé il y a peu de temps à y accéder, l'équipement 10 n'a aucun moyen de savoir si le contenu est disponible sur la mémoire cache 22, ou s'il n'est plus que sur le serveur de stockage 3, on verra pourquoi plus loin. Dans un mode de réalisation, la passerelle 2 est un boitier d'accès à Internet de type « box », (c'est ce que l'on appelle un IAD, « Integrated Access Device »), et il fournit en particulier l'accès au réseau à le ou les équipements client 10. Dans l'exemple représenté à la figure 1, les équipements client 10 sont ceux d'une entité telle qu'une entreprise et forment un réseau local 11 que la passerelle 2 connecte au réseau 1. Dans un tel mode de réalisation, un équipement client 10 qui n'est pas présent physiquement dans le réseau local 11 (cas du smartphone représenté) peut néanmoins accéder au serveur 3 en se connectant à la passerelle 2 par exemple grâce à un VPN (« réseau privé virtuel »). Comme l'on verra la passerelle 2 peut avantageusement également gérer un serveur de métadonnées (MDS), et/ou un fichier d'historique d'accès. Ce dernier, hébergé localement et de façon sécurisée (non accessible aux équipements clients 10) liste les divers accès à un contenu requis par les équipements clients 10. Procédé d'accès au contenu Dans une étape (a), le module de traitement de données 21 de la passerelle reçoit une requête d'accès audit contenu émise par l'équipement client 10. Cette requête (qui est une première requête, comme l'on verra plus loin) contient des informations sur le contenu. Préférentiellement, il s'agit de « métadonnées locales », c'est-à-dire des métadonnées (non du contenu, type, date de modification, mot-clé, etc.) permettant à la passerelle (2) d'identifier le contenu. En d'autres termes, par « locales » on entend qu'elles sont compréhensibles par les autres équipements 10 et le MDS de la passerelle 2. Comme l'on verra plus loin ces métadonnées publiques ne sont pas compréhensibles par le serveur de stockage 3. A réception de la requête, la passerelle 2 identifie ainsi le contenu, et détermine s'il est présent dans sa mémoire cache 22, par exemple en consultant un index. S'il est présent (que ce soit parce que l'utilisateur de l'équipement 10 ou un autre utilisateur l'a récemment consulté), nul besoin d'aller le chercher sur le serveur 3. Mais si la passerelle 2 transmet immédiatement le contenu à l'équipement client 10 qui l'a requis, son utilisateur peut comprendre qu'il était déjà en cache et donc qu'un utilisateur l'a récemment consulté. En effet, la vitesse à laquelle l'équipement client 10 peut accéder au contenu révèle s'il est dans la mémoire cache 22 ou non : comme expliqué, la mémoire cache évite le temps de latence correspondant au temps mis par la passerelle 2 pour récupérer le contenu depuis le serveur 3. Le présent procédé résout ce problème grâce à une étape (b) de transmission du contenu à l'équipement client 10 à l'expiration d'un délai donné, de sorte à simuler la récupération dudit contenu depuis le serveur de stockage 3. En d'autre termes, le module de traitement de données 21 délaie la transmission du contenu à l'équipement client 10 pour lui faire croire que le contenu provient du serveur 3 (et n'est donc pas dans la mémoire cache 22). Le délai donné est avantageusement une approximation du temps nécessaire à récupérer le contenu depuis le serveur 3, il est typiquement de quelques secondes (et peut dépendre de la taille du contenu). Cette astuce permet ainsi de cacher aux utilisateurs qu'un contenu est déjà dans le cache, et donc de protéger la confidentialité de celui qui l'a réellement requis pour la première fois (et a conduit à son chargement en mémoire cache 22). Récupération depuis le cloud et métadonnées De façon préférée, si ledit contenu n'est pas présent dans la mémoire cache (22) de la passerelle 2 (et donc si l'étape (b) n'a pas lieu), le procédé comprend une étape (c) de récupération du contenu auprès du serveur de stockage 3 puis la transmission du contenu à l'équipement client 10. Pour cela, le module de traitement de données 21 de la passerelle 2 génère et émet sa propre requête du contenu (qui est une deuxième requête après la première requête émise par l'équipement client 10). Cette requête contient des métadonnées permettant au serveur de stockage 3 d'identifier le contenu. De façon préférée, il s'agit de métadonnées « anonymisées », ou « publiques », par oppositions aux métadonnées locales contenues dans la première requête. Il est en effet souhaitable de ne pas transmettre des métadonnées compréhensibles par un humain, car un tiers mal intentionné pourrait intercepter les deuxièmes requêtes et compromettre la confidentialité des utilisateurs. Ainsi, là où les métadonnées locales sont des mots en clair, les métadonnées anonymisées sont par exemple des identifiants numériques ou des versions chiffrées des métadonnées locales. C'est la passerelle 2 qui réalise la correspondance entre les métadonnées locales et les métadonnées anonymisées grâce à son MDS, et l'étape (c) comprend ainsi la détermination de métadonnées anonymisées en fonction des métadonnées locales, de sorte à constituer la seconde requête, en vue de la récupération du contenu. Cette récupération depuis le cloud comprend comme expliqué le stockage temporaire du contenu sur la mémoire cache 22 de la passerelle 2, et le cas échéant son déchiffrement (s'il était chiffré sur le serveur 3). On comprendra que les interactions entre la passerelle 2 et le serveur de stockage 3 sont connues de l'homme du métier. Historique d'accès Le délaiement d'envoi si le contenu est présent dans la mémoire cache 22 permet comme expliqué d'éviter les fuites d'informations. Toutefois, dans le cas précis où l'utilisateur qui a provoqué le premier chargement du contenu dans la mémoire cache 22 est le même utilisateur qui en demande l'accès maintenant (et de façon générale quand le même utilisateur demande une deuxième fois accès au même contenu alors que l'écart entre les deux demandes est inférieur à la durée pendant laquelle des données sont conservées en cache (durée du stockage temporaire), ce délaiement est inutile. En effet, l'utilisateur sait que le contenu est déjà dans la moire cache 22. Il convient donc d'éviter de perdre du temps. Pour cela, il est proposé d'utiliser le fichier d'historique d'accès évoqué précédemment. Ainsi l'étape (a) comprend avantageusement la vérification dudit fichier d'historique de sorte à déterminer si l'équipement client 10 a accédé audit contenu récemment. Et suite à cette vérification, l'étape (b) est avantageusement mise en oeuvre seulement si l'équipement client 10 n'a pas accédé audit contenu récemment (et donc seulement s'il ne peut pas savoir si le contenu est dans la mémoire cache 22). En d'autres termes, si au contraire l'équipement client 10 a récemment accédé audit contenu (et donc ledit contenu est présent dans la mémoire cache 22 de la passerelle 2), l'étape (b) n'est pas mise en oeuvre, et à la place est mise en oeuvre une étape (b') alternative de transmission du contenu à l'équipement client 10. Cette transmission est sans délai, c'est-à-dire dans la foulée, par opposition à la transmission délayée de l'étape (b). Dans tous les cas (i.e. que le contenu ait été récupéré via l'étape (b), l'étape (b') ou l'étape (c)), le procédé comprend suite à la transmission du contenu à l'équipement client 10 une étape (d) de mise à jour dudit fichier d'historique d'accès, de sorte à éviter le délaiement s'il redemande plus tard le même contenu. Mode de réalisation préféré De façon préférée, le présent procédé combine les trois voies précédemment décrites de récupération du contenu (de sorte à ce que suite à toute requête l'équipement 10 puisse d'une façon ou d'une autre accéder au contenu, et que ce soit en temps optimal). La figure 2 représente un logigramme illustrant ce mode de réalisation préféré. Le présent procédé est alors un procédé d'accès à un contenu par un équipement client 10 dans un réseau 1, l'équipement client 10 étant connecté à un serveur de stockage 3 via une passerelle 2, ledit contenu étant stocké sur une mémoire cache 22 de la passerelle 2 et/ou au niveau du serveur de stockage 3, le procédé étant caractérisé en ce qu'il comprend la mise en oeuvre, par un module de traitement de données 21 de la passerelle 2 d'étapes de : (a) Réception d'une requête d'accès audit contenu émise par l'équipement client (10) ; et vérification d'un fichier d'historique un fichier d'historique d'accès stocké de façon sécurisée sur la passerelle (2), de sorte à déterminer si l'équipement client (10) a accédé audit contenu récemment ; (b) Si ledit contenu est présent dans la mémoire cache (22) de la passerelle (2) et si l'équipement client (10) n'a pas accédé audit contenu récemment, transmission du contenu à l'équipement client (10) à l'expiration d'un délai donné, de sorte à simuler la récupération dudit contenu depuis le serveur de stockage (3) ; (b') Si ledit contenu est présent dans la mémoire cache (22) de la passerelle (2) et si l'équipement client (10) a accédé audit contenu récemment, transmission du contenu à l'équipement client (10) sans délai ; (c) si ledit contenu n'est pas présent dans la mémoire cache (22) de la passerelle (2), récupération du contenu auprès du serveur de stockage (3) ; puis transmission du contenu à l'équipement client (10) ; (d) Mise à jour dudit fichier d'historique d'accès. Procédé Selon un deuxième aspect, l'invention concerne la passerelle 2 pour la mise en oeuvre du présent procédé. Il s'agit donc d'une passerelle 2 pour l'accès à un contenu par un équipement client 10 dans un réseau 1, la passerelle connectant l'équipement client 10 à un serveur de stockage 3, ledit contenu étant stocké sur une mémoire cache 22 de la passerelle 2 et/ou au niveau du serveur de stockage 3. Outre la mémoire cache 22, la passerelle 2 comprend un module de traitement de données 21 configure pour : Recevoir une requête d'accès audit contenu émise par l'équipement client 10; Si ledit contenu est présent dans la mémoire cache 22, transmettre le contenu à l'équipement client 10 à l'expiration d'un délai donné, de sorte à simuler la récupération dudit contenu depuis le serveur de stockage 3. Le module de traitement de données 21 peut en outre être configure pour : Gérer (i.e. mettre à jour le cas échéant) et vérifier un fichier d'historique un fichier d'historique d'accès stocké de façon sécurisée sur la passerelle 2, de sorte à déterminer si l'équipement client 10 a accédé audit contenu récemment ; Si ledit contenu est présent dans la mémoire cache 22 a accédé audit contenu récemment, transmettre du contenu à l'équipement client 10 sans délai ; si ledit contenu n'est pas présent dans la mémoire cache 22, récupérer le contenu auprès du serveur de stockage 3, puis le transmettre à l'équipement client 10. Produit programme d'ordinateur Selon un troisième et un quatrième aspects, l'invention concerne un produit programme d'ordinateur comprenant des instructions de code pour l'exécution (en particulier sur le modules de traitement de données 21 de la passerelle) d'un procédé selon le premier aspect de l'invention d'accès à un contenu par un équipement client 10 dans un réseau 1, ainsi que des moyens de stockage lisibles par un équipement informatique (par exemple un module de stockage de données de la passerelle 2 tel qu'une mémoire de masse, par opposition à la mémoire cache 22) sur lequel on trouve ce produit programme d'ordinateur.20 REVENDICATIONS1. Procédé d'accès à un contenu par un équipement client (10) dans un réseau (1), l'équipement client (10) étant connecté à un serveur de stockage (3) via une passerelle (2), ledit contenu étant stocké sur une mémoire cache (22) de la passerelle (2) et/ou au niveau du serveur de stockage (3), le procédé étant caractérisé en ce qu'il comprend la mise en oeuvre, par une module de traitement de données (21) de la passerelle (2) d'étapes de : (a) Réception d'une requête d'accès audit contenu émise par l'équipement client (10) ; (b) Si ledit contenu est présent dans la mémoire cache (22) de la passerelle (2), transmission du contenu à l'équipement client (10) à l'expiration d'un délai donné, de sorte à simuler la récupération dudit contenu depuis le serveur de stockage (3). 2. Procédé selon l'une des revendications précédentes, comprenant si ledit contenu n'est pas présent dans la mémoire cache (22) de la passerelle (2), une étape (c) de récupération du contenu auprès du serveur de stockage (3) puis la transmission du contenu à l'équipement client (10). 3. Procédé selon la revendication 2, dans lequel la récupération dudit contenu auprès du serveur de stockage (3) comprend le stockage temporaire du contenu sur la mémoire cache (22) de la passerelle (2). 4. Procédé selon l'une des revendications précédentes, dans lequel un fichier d'historique d'accès est stocké de façon sécurisée sur la passerelle (2), l'étape (a) comprenant la vérification dudit fichier d'historique de sorte à déterminer si l'équipement client (10) a accédé audit contenu récemment. 5. Procédé selon la revendication 4, dans lequel l'étape (b) étant mise en oeuvre seulement si l'équipement client (10) n'a pas accédé audit contenu récemment. 6. Procédé selon la revendication 4, comprenant, si l'équipement client (10) a accédé audit contenu récemment, une étape (b') de transmission du contenu à l'équipement client (10) sans délai. 7. Procédé selon l'une des revendications 5 à 6, comprenant suite à la transmission du contenu à l'équipement client (10) une étape (d) de mise à jour dudit fichier d'historique d'accès. 8. Procédé selon l'une des revendications précédentes, dans lequel ladite requête reçue à l'étape (a) contient des métadonnées locales permettant à la passerelle (2) d'identifier le contenu. 9. Procédé selon l'une des revendications 2 à 3 en combinaison avec la revendication 8, dans lequel l'étape (c) comprend la détermination de métadonnées anonymisées en fonction des métadonnées locales, les métadonnées anonymisées permettant au serveur de stockage (3) d'identifier le contenu ; la récupération du contenu auprès du serveur de stockage (3) comprenant en outre l'émission d'une requête contenant lesdites métadonnées anonymisées. 10. Procédé selon l'une des revendications précédentes, dans lequel la passerelle (2) agit comme un serveur mandataire pour le serveur de stockage (3). 11. Passerelle (2) pour l'accès à un contenu par un équipement client (10) dans un réseau (1), la passerelle connectant l'équipement client (10) à un serveur de stockage (3), ledit contenu étant stocké sur une mémoire cache (22) de la passerelle (2) et/ou au niveau du serveur de stockage (3), la passerelle (2) étant caractérisée en ce qu'elle comprend un module de traitement de données (21) configuré pour : Recevoir une requête d'accès audit contenu émise par l'équipement client (10) ; Si ledit contenu est présent dans la mémoire cache (22) de la passerelle (2), transmettre le contenu à l'équipement client (10) à l'expiration d'un délai donné, de sorte à simuler la récupération dudit contenu depuis le serveur de stockage (3). 12. Produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon l'une des revendications 1 à 10 d'accès à un contenu par un équipement client (10) dans un réseau (1). 13. Moyen de stockage lisible par un équipement informatique sur lequel un produit programme d'ordinateur comprend des instructions de code pour l'exécution d'un procédé selon l'une des revendications 1 à 10 d'accès à un contenu par un équipement client (10) dans un réseau (1).