Brevet FR2945368A1 — publié le 20101112

La présente invention concerne un module de visualisation d'un contenu d'un site internet, un système comprenant un tel module ainsi qu'un procédé de consultation d'un contenu d'un site internet. Il est connu notamment des documents WO0109703 et FR2869131 de réaliser des systèmes destinés à sécuriser la diffusion de contenus sur Internet en vue d'empêcher la recopie de ces contenus en dehors de leur utilisation autorisée. Ces systèmes mettent en oeuvre une identification des utilisateurs sur laquelle se base un cryptage des informations à transmettre. Ce type de système donne satisfaction dans certains types d'application mais ne permet pas de protéger des contenus destinés à un public large d'utilisateurs non identifiés, pour lesquels l'enregistrement sur un site donné représente une gêne d'utilisation. En particulier, les éditeurs de presse proposent la mise à disposition partielle ou intégrale d'articles de journaux sur un site web. Ces éditeurs ne souhaitent pas que des internautes exportent certains articles pour les transmettre à des tiers, et ce sous de multiples formes et notamment: - par copier/coller de l'article dans un email à un tiers au lieu 20 d'envoyer un lien sur l'article par email qui permettrait de s'assurer que le tiers consulterait l'article sur le site ; - par impression de l'article et sa diffusion par photocopie ; - par importation de l'article sur un autre site web ; - par duplication et mise à disposition sur un réseau intranet ; 25 Il est donc souhaitable de permettre une libre consultation des contenus présents sur le site tout en s'assurant que l'extraction du contenu ou sa diffusion en dehors du site soit empêchée ou soumise à une autorisation de la part de l'éditeur. La présente invention a pour but de résoudre tout ou partie des 30 inconvénients mentionnés ci-dessus. A cet effet, la présente invention a pour objet un module de visualisation d'un contenu d'un site internet comprenant des moyens de déchiffrement agencés pour opérer un déchiffrement d'un contenu chiffré, fourni par un serveur de contenu, par une clef de déchiffrement et des moyens 35 agencés pour réaliser un rendu de ce contenu sur un écran, le module de visualisation comprenant des moyens de stockage de la clef de déchiffrement adaptés pour enregistrer de façon cryptée la clef dans un code exécutable du module de visualisation. Les dispositions selon l'invention permettent uniquement la visualisation des contenus par un internaute en empêchant l'export de ces contenus (copier/coller, sauvegarde, impression, téléchargement via un aspirateur ou un outil de veille) car le contenu n'est pas disponible de façon non chiffrée dans le composant en dehors de son rendu sur l'écran. Ce système permet la protection des contenus de site web accessibles gratuitement de façon anonyme. Avantageusement, le module de visualisation comprend des moyens de vérification agencés pour vérifier si le module est exécuté depuis un site web donné correspondant à un nom de domaine hôte enregistré dans les moyens de stockage. Selon une possibilité, le rendu sur l'écran du contenu est réalisé 15 sous forme d'une image. Selon une autre possibilité, le rendu sur l'écran du contenu est réalisé sous forme d'un dessin vectoriel. Ces dispositions permettent de renforcer la protection du contenu et d'éviter une copie de texte. 20 Selon un mode de réalisation, le module de visualisation est agencé pour chiffrer par la clef de chiffrage la demande destinée au serveur et contenant l'identifiant du contenu demandé. Avantageusement, le module de visualisation comprend des moyens agencés pour répondre à une requête d'impression de l'utilisateur en 25 fournissant un contenu d'impression vide et/ou un message d'information. La présente invention a également pour objet un système comprenant un serveur comportant des moyens de communication en réseau, des moyens de stockage d'un contenu, et des moyens de cryptage de ce contenu et au moins un poste client relié au serveur par des moyens de 30 communication en réseau comprenant un module de visualisation de contenu selon l'une des revendications précédentes. Selon un mode de réalisation, le serveur comprend des moyens de routage agencés pour différencier des requêtes provenant d'une adresse appartenant à une liste d'adresse autorisées, correspondant notamment à un 35 ou plusieurs moteurs de recherche, de façon à retourner en réponse au requête provenant des adresses listées un contenu non chiffré. Ces dispositions permettent de préserver l'indexation sur des moteurs de recherches internet choisis, de façon à permettre le référencement du site. La présente invention a également pour objet un procédé de consultation du contenu d'un site internet fourni par un serveur de contenu, dans lequel un utilisateur demande la consultation sur une page web d'un contenu correspondant à un identifiant donné à un module de visualisation, la demande est transmise par le module de visualisation au serveur, le serveur envoyant en réponse un contenu chiffré au module de visualisation, le module de visualisation opérant un déchiffrement du contenu chiffré par une clef de déchiffrement enregistrée de façon cryptée dans un code exécutable du module de visualisation et réalisant un rendu de ce contenu sur un écran. Avantageusement, la demande transmise au serveur contient l'adresse du poste client de l'utilisateur, le serveur opérant une vérification de l'adresse afin d'identifier si l'adresse correspond ou non à une adresse autorisée à recevoir un contenu non chiffré. Avantageusement, le module de visualisation, à réception de la demande de visualisation de contenu vérifie qu'il est exécuté depuis un site web donné correspondant à un nom de domaine hôte autorisé, la demande de visualisation étant transmise au serveur dans le cas ou la vérification est positive, et la demande de visualisation n'étant pas transmise au serveur si cette vérification est négative. La présente invention a également pour objet un support d'enregistrement de données lisibles par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé décrit précédemment. L'invention sera mieux comprise à l'aide de la description détaillée qui est exposée ci-dessous en regard du dessin annexé dans lequel : La figure 1 est une représentation schématique d'un système selon l'invention. La figure 2 est un organigramme d'un procédé selon l'invention selon un premier cas d'utilisation. La figure 3 est un organigramme d'un procédé selon l'invention selon un second cas d'utilisation Dans la description détaillée qui va suivre des figures définies ci-dessus, les mêmes éléments ou les éléments remplissant des fonctions identiques pourront conserver les mêmes références de manière à simplifier la compréhension de l'invention. Ainsi que représenté sur la figure 1 en annexe, un système selon l'invention comprend un serveur S comportant des moyens de communication en réseau COM, permettant par exemple son accès au réseau Internet. On entend par serveur une entité pouvant éventuellement comprendre plusieurs serveurs physiques en communication sur un réseau. Le serveur S comprend des moyens de stockage de contenus C, par exemple sous la forme d'une première base de donnée DB1. Les contenus C peuvent être constitués par des fichiers comprenant des données sous forme de texte, d'images et/ou de vidéo. Le serveur comprend également des moyens de chiffrement CR des contenus C par une première clef KI stockée sur le serveur S. Le contenu renvoyé est sous-forme de XML, permettant ainsi un contenu structuré et multimédia. Selon une variante, les données multimédia binaires (image, son, vidéo..) peuvent être également être ajoutées dans le XML via un encodage, par exemple en base64. Le serveur S comprend des moyens de routage R agencés pour différencier des requêtes provenant d'une adresse AD appartenant à une liste d'adresse autorisées, correspondant notamment à un ou plusieurs moteurs de recherche, de façon à retourner en réponse au requête provenant des adresses listées un contenu non chiffré C. A cet effet, des moyens de stockage sous forme d'une seconde base de données ou partie de base de données DB2 stockent une liste d'adresses autorisées. Ainsi, à partir d'une requête HTTP, les moyens de routage R du serveur web vont renvoyer, en fonction de l'adresse IP : - soit un contenu non chiffré, par exemple une page HTML, qui peut être indexé pour les tiers autorisés, et notamment pour des moteurs de recherche autorisés ; - soit un contenu chiffré EC. Le système comprend également au moins un poste client CL relié au serveur par des moyens de communication en réseau COM, le poste client étant équipé d'un système d'exploitation OS et d'un navigateur internet WB. Un module de visualisation de contenu VM peut notamment être hébergé dans une page Web en HTML chargée sur le poste client à partir d'un site internet donné. Ainsi, une page protégée sur laquelle l'utilisateur souhaite visualiser un contenu C se compose d'un code HTML classique et d'un module de visualisation VM constitué par exemple par un composant Flash, SilverLight ou Applet. Le module de visualisation VM est agencé pour obtenir le contenu C correspondant par exemple au corps d'un article sur le serveur S. A cet effet le module de visualisation VM comprend des moyens de stockage ST d'une clef de déchiffrement K2 et d'un identifiant du nom de domaine hôte H sur lequel le composant est hébergé. Les moyens de stockage ST sont adaptés pour réaliser un chiffrement de la clef K2 dans le code du composant de visualisation VM. Les moyens de stockage sont agencés de façon à ce que le module soit offusqué après compilation de manière a rendre quasi impossible sa décompilation. Toutes les chaînes de caractères critiques, et notamment la clé de déchiffrement K2 et nom de domaine hôte H sont ainsi cryptées dans le code source. La clef de chiffrage K2 peut elle-même être construite dynamiquement dans le code. Si ce code est offusqué, l'algorithme utilisé pour construire la clef ne sera pas lisible. L'offuscation du module rend la décompilation quasi impossible. II est à noter que les clefs de chiffrement K1 et K2 peuvent être identiques ou distinctes. Le module de visualisation comprend un composant PM de vérification du contexte d'exécution du module de visualisation. Ce composant est agencé pour vérifier que le module de visualisation est effectivement exécuté depuis un site web donné correspondant au nom de domaine hôte H. Le module de visualisation VM comprend également des moyens de déchiffrement DC d'un contenu. Ces moyens de déchiffrement DC vont opérer un déchiffrement d'un contenu chiffré EC par la clef de déchiffrement K2 enregistrée par les moyens de stockage ST de façon à réaliser un rendu de ce contenu C sur un écran DISP pouvant être consulté par un utilisateur. Le composant PM utilise les moyens de déchiffrement du contenu chiffré EC pour obtenir le contenu C au format XML. Une certaine balise du XML indique alors quel modèle de visualisation M1, M2, M3 appliquer. Les modèles de visualisation M1, M2, M3 permettent d'utiliser une charte graphique spécifique selon telle ou telle catégorie d'article. Le module de visualisation interdit l'impression papier ou dans un fichier, par exemple au format PDF, du contenu C. A cet effet, il est possible de modifier la feuille de style (CSS) de la page qui accueille le contenu C. Le module ne sera pas imprimé. II est important de ne pas laisser l'impression possible étant donné que des outils très répandus comme PDF Creator permettent de transformer toute page web en un fichier au format PDF lisible et pouvant être indexé. Le procédé de visualisation d'un contenu C par un utilisateur va à présent être décrit en référence à la figure 2. Dans une première étape El, un utilisateur demande la consultation d'une page web W d'un contenu C correspondant à un identifiant donné ID, qui peut correspondre à une URL déterminé. L'utilisateur réalise cette consultation à partir d'une adresse AD identifiée. Cette adresse peut correspondre à une adresse IP. La demande de consultation est transmise au module de routage R. Dans une seconde étape E2, le module de routage R du serveur S opère une vérification de l'adresse AD auprès de la seconde base de données DB2, afin d'identifier si l'adresse correspond à une adresse autorisée à recevoir un contenu non chiffré. Si l'adresse AD ne correspond pas à une adresse autorisée à recevoir un contenu non chiffré, ce qui est le cas d'un utilisateur standard anonyme, le module de routage renvoie une page HTML comprenant un module de visualisation VM. Dans une troisième étape E3, le module de visualisation VM, par son composant de vérification PM vérifie qu'il est exécuté depuis un site web donné correspondant au nom de domaine hôte H. Si cette vérification est négative, la demande de visualisation n'est pas transmise. Si la vérification est positive, la demande de visualisation est transmise au module de routage R du serveur S. Cette demande contient, de façon chiffrée par la clef de chiffrage K2, l'identifiant ID du contenu demandé. Il est à noter que selon une variante, la demande peut ne pas être chiffrée. Dans une quatrième étape E4, le module de routage opère une 35 requête auprès de la première base de donnée ou partie de base de donnée pour obtenir le contenu C correspondant à l'identifiant ID communiqué. Dans une cinquième étape E5, le module de routage fourni le contenu aux moyens de chiffrement CR afin que le contenu soit chiffré en utilisant la clef K1. Le module de routage envoie le contenu chiffré EC au module de visualisation VM. Selon une variante, le contenu chiffré pourrait être envoyé directement des moyens de chiffrement CR au module de visualisation VM. Dans une sixième étape E6, le module de visualisation VM opère un déchiffrement du contenu chiffré EC par les moyens de déchiffrement DC et réalise son rendu RC directement sur l'écran DISP à la volée, sans stocker le contenu C sur le poste client. Le procédé d'obtention du contenu C par un moteur de recherche autorisé va à présent être décrit en référence à la figure 3. Dans une première étape El', un moteur de recherche SE demande la consultation sur une page web d'un contenu C correspondant à un identifiant donné ID, qui peut correspondre à un URL déterminé. Le moteur SE réalise cette consultation à partir d'une adresse AD identifiée. Cette adresse peut correspondre à une adresse IP. La demande de consultation est transmise au module de routage R. Dans une seconde étape E2', le module de routage R du serveur S opère une vérification de l'adresse AD auprès de la seconde base de données DB2, afin d'identifier si l'adresse correspond à une adresse autorisée à recevoir un contenu non chiffré. Dans une troisième étape E3', le module de routage opère une requête auprès de la première base de donnée ou partie de base de donnée pour obtenir le contenu C correspondant à l'identifiant ID communiqué. Dans une quatrième étape E4', si l'adresse AD correspond à une adresse autorisée à recevoir un contenu non chiffré, ce qui est le cas d'un moteur de recherche autorisé, le module de routage retourne une page HTML standard comprenant le contenu non chiffré C, ce contenu étant donc indexable par le moteur de recherche SE. En variante, le contenu C peut être stocké de façon chiffrée sur le serveur S. Dans ce cas, le chiffrement est réalisé avant le stockage dans la base de données DB1. Un déchiffrement est réalisé lors de l'envoi à un moteur de recherche autorisé pour permettre l'indexation. Avantageusement, le module de visualisation opère un rendu sur l'écran DISP du contenu C est réalisé sous forme d'une image. Un exemple de réalisation d'un système selon l'invention est décrit ci-dessous, de façon non-limitative. Dans cet exemple, les contenus C correspondent à des articles qu'un éditeur souhaite mettre à disposition en ligne. Le serveur S de contenu est mis en oeuvre sous forme d'un service web écrit en langage C# qui publie une méthode : string GetArticle(int ID) La méthode GetArticle renvoie une chaîne de caractère encodée en base 64 d'un contenu XML correspondant à l'identifiant ID crypté via l'algorithme AES avec une clé de 192 bit en mode � Electronic CodeBook �. Les classes native du framework .net, et notamment la classe RijndaelManaged permettent l'encryptage d'un contenu UNICODE. Un exemple du contenu XML retourné par la méthode, mais dans sa version non chiffrée est reproduit en annexe. Le contenu et la structure de la balise Article est libre et ne dépend que du numéro de style indiquée par la balise Style qui conditionnera le choix du modèle de visualisation qui sera à même d'opérer le rendu du contenu XML. Le module de visualisation VM est mis en oeuvre par un composant logiciel de type Flash écrit dans le langage FLEX. Ce composant flash vérifie son contexte d'exécution en comparant l'adresse du site dans lequel il est exécuté avec identifiant du nom de domaine hôte H puis appelle la méthode GetArticle du serveur S avec l'identifiant ID donné dans la page HTML qui embarque ce composant. Pour obtenir l'adresse du site à partir duquel le module est exécuté, il est possible notamment de consulter des variables globales dites d'environnement de l'environnement d'exécution du module VM. Un exemple, d'instructions en langage FLEX est présenté en annexes. Dans cet exemple, la variable browser.url contient alors l'adresse du site. Il suffit alors de comparer à l'identifiant de domaine hôte H. Le module principal PM du module de visualisation, déchiffre le résultat, interprète une partie du XML afin de déterminer le modèle approprié M1, M2, M3 de visualisation correspondant à la balise Style. Le composant Flash prend en charge un menu contextuel standard faisant partie du langage flash pour y enlever l'option d'impression. Le modèle de visualisation interprète la partie Contenu du XML pour y afficher le contenu non sélectionnable. Une page HTML intègre l'objet flash, lui-même dans un DIV. Un style est déclaré dans la page HTML gérant le comportement du DIV en cas d'impression. Un exemple d'une telle page HTML est donné en annexe. La mise en oeuvre décrite ci-dessus permet le comportement suivant : - La page web ressemble à une page web classique ; - L'impression s'opère en laissant le contenu blanc ; - Le copier/coller s'opère en laissant le contenu blanc ; - Le contenu n'est ni présent dans le code source HTML ni dans le 10 composant Flash ; - Le module reste blanc si on essaie de l'exécuter depuis une autre page web ou depuis le disque dur. Selon une variante, il est possible de réaliser un système utilisant un module de visualisation sous forme de composant logiciel compilé à la volée 15 pour un contenu donné. Dans cette variante, c'est le serveur web qui fournit le contenu sous forme d'un module de visualisation spécifique. Cette variante ne permet toutefois pas au navigateur web de mettre en cache le module de visualisation car celui-ci est différent à chaque fois. 20 Dans le système décrit ci-dessus, le contenu n'est pas inclus dans la page HTML en tant que tel. Un tiers non autorisé ne peut donc pas récupérer le contenu d'une page. Le téléchargement du module lui-même ne saurait permettre d'avantage l'affichage des articles, le seul propriétaire du site bénéficiant de l'exclusivité de son contenu. 25 Le système décrit ci-dessus permet donc de maintenir la charte graphique du site, et de visionner le contenu avec une mise en forme (sous-titre, lien, gras, italique, couleur, vidéo, photo, etc....), de préserver l'indexation du site par des tiers identifiés de type moteurs de recherche et de permettre l'accès du site à des visiteurs anonyme du site. 30 Grâce à une modification seulement partielle du contenu du site, il est possible d'interdire les opérations de copier/coller textuel du contenu, d'impression papier ou PDF, d'empêcher l'affichage du contenu depuis un autre site que celui d'origine, le téléchargement du contenu, et l'indexation/extraction du contenu par un aspirateur/crawler/indexeur autre que 35 les indexeurs tiers autorisés et identifiés. L'invention permet de protéger un contenu public et ouvert à tous contre la duplication de son contenu. Vu que le contenu est affiché sur un écran, un internaute peut néanmoins prendre le contenu en photo ou opérer une impression écran, mais le contenu ainsi dupliqué ne le sera que sous forme d'image (il faut d'ailleurs potentiellement plusieurs images à recoller ensemble si le contenu ne tient pas dans la page). L'internaute a aussi la possibilité de retaper le contenu dans un traitement de texte. Ces dispositions ne permettent pas une utilisation industrielle (via un aspirateur ou un logiciel de veille) et minimisent la rediffusion numérique. Bien que l'invention ait été décrite en liaison avec des exemples particuliers de réalisation, il est bien évident qu'elle n'y est nullement limitée et qu'elle comprend tous les équivalents techniques des moyens décrits ainsi que leurs combinaisons si celles-ci entrent dans le cadre de l'invention. Annexes : Exemple du contenu XML dans sa version non chiffrée retourné par la méthode : 1 Lorem ipsum dolor sit amet Sous titre 1 img/651285.jpg I mageCaption Exemple d'instructions pouvant être utilisé en langage FLEX : var browser:lBrowserManager = BrowserManager.getlnstance(); 30 browser.init(null,null); Langage HTML intégrant un style déclaré en cas d'impression : @media print { 35 #CentralPanel object { 20 25 display : none; } } @media screen { #CentralPanel object { display : inline;10 REVENDICATIONS1. Module de visualisation (VM) d'un contenu d'un site internet comprenant des moyens de déchiffrement (DC) agencés pour opérer un déchiffrement d'un contenu chiffré (EC) fourni par un serveur (S) de contenu par une clef de déchiffrement (K2) et des moyens (PM) agencés pour réaliser un rendu (RC) de ce contenu (C) sur un écran (DISP), le module de visualisation comprenant des moyens de stockage (ST) de la clef de déchiffrement (K2) adaptés pour enregistrer de façon cryptée la clef (K2) dans un code exécutable du module de visualisation (VM). 2. Module de visualisation (VM) selon la revendication 1, comprenant des moyens de vérification (PM) agencés pour vérifier si le module est exécuté depuis un site web donné correspondant à un nom de domaine hôte (H) enregistré dans les moyens de stockage (ST). 3. Module de visualisation (VM) selon l'une des revendications 15 précédentes, dans lequel le rendu sur l'écran (DISP) du contenu (C) est réalisé sous forme d'une image. 4. Module de visualisation (VM) selon l'une des revendications 1 à 2, dans lequel le rendu sur l'écran (DISP) du contenu (C) est réalisé sous forme d'un dessin vectoriel. 20 5. Module de visualisation (VM) selon l'une des revendications précédentes, comprenant des moyens (PM) agencés pour chiffrer par la clef de chiffrage (K2) une demande destinée au serveur et contenant un identifiant (ID) du contenu demandé. 6. Module de visualisation (VM) selon l'une des revendications 25 précédentes, comprenant des moyens (PM) agencé pour répondre à une requête d'impression de l'utilisateur en fournissant un contenu d'impression vide et/ou un message d'information. 7. Système comprenant un serveur (S) comportant des moyens de communication en réseau (COM), des moyens de stockage d'un contenu (C), 30 et des moyens de cryptage de ce contenu (CR) et au moins un poste client (CL) relié au serveur par des moyens de communication en réseau (COM) comprenant un module de visualisation de contenu (VM) selon l'une des revendications précédentes. 8. Système selon la revendication 7, dans lequel le serveur (S) 35 comprenant des moyens de routage (R) agencés pour différencier des requêtes provenant d'une adresse (AD) appartenant à une liste d'adresseautorisées, correspondant notamment à un ou plusieurs moteurs de recherche, de façon à retourner en réponse au requête provenant des adresses listées un contenu non chiffré (C). 9. Procédé de consultation du contenu d'un site internet fourni par un serveur de contenu, dans lequel un utilisateur demande la consultation sur une page web d'un contenu (C) correspondant à un identifiant donné (ID) à un module de visualisation (VM), la demande est transmise par le module de visualisation au serveur (S), le serveur envoyant en réponse un contenu chiffré (EC) au module de visualisation, le module de visualisation (VM) opérant un déchiffrement du contenu chiffré par une clef de déchiffrement (K2) enregistrée de façon cryptée dans un code exécutable du module de visualisation (VM) et réalisant un rendu de ce contenu sur un écran (DISP). 10. Procédé selon la revendication 9, dans lequel la demande transmise au serveur contient l'adresse du poste client (AD) de l'utilisateur, le serveur (S) opérant une vérification de l'adresse (AD) afin d'identifier si l'adresse correspond ou non à une adresse autorisée à recevoir un contenu non chiffré. 11. Procédé selon l'une des revendications 9 et 10, dans lequel le module de visualisation, à réception de la demande de visualisation de contenu vérifie qu'il est exécuté depuis un site web donné correspondant à un nom de domaine hôte (H) autorisé, la demande de visualisation étant transmise au serveur S dans le cas ou la vérification est positive, et la demande de visualisation n'étant pas transmise au serveur (S) si cette vérification est négative. 12. Support d'enregistrement de données lisibles par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'une des revendications 9 à 11.