Brevet FR2986351A1 — publié le 20130802

La présente invention relève du domaine des procédés de transfert de données entre systèmes informatiques. Elle concerne plus particulièrement un procédé d'établissement d'une communication entre un terminal et un serveur d'application. Préambule et art antérieur Aujourd'hui il existe de nombreux moyens pour mettre en relation un appareil informatique avec un autre appareil informatique. On connait, par exemple, le protocole de communication dit "UPnP" (de l'anglais "Universel Plug and Play"), qui est présent dans de nombreux appareil, et qui définit une norme de communication entre appareils situés sur un réseau IP. Le protocole UPnP supporte un ensemble technique permettant de créer un réseau sans intervention manuelle, cet ensemble étant connu sous le nom de "zero configuration networking". Ceci implique donc que les périphériques utilisent un même réseau. Le protocole UPnP est particulièrement adapté dans des utilisations domestiques : un utilisateur se trouvant sur son propre réseau prend le contrôle des appareils domestiques présent dans son habitation. Par contre, dans le cadre d'une utilisation sur internet, ce protocole peut poser plusieurs problèmes : problème de sécurité, problème de performance. Le protocole UPnP repose sur les flux XML et SOAP ("Simple Object Access Protocol") pour échanger les données entre objets distants, ces normes étant particulièrement verbeuses (exigence de nombreux échanges de données) qui alourdissent fortement les échanges. Le protocole UPnP est donc réservé principalement a une utilisation sur des réseaux domestiques. Des constructeurs ont également lancés des protocoles de communication pour rendre communicant des systèmes entre eux. Ces communications sont surtout orientées vers une communication entre un dispositif de type "set top box" et "Smartphone". Par exemple, la technique 30 connue sous le nom commercial "Air Sharing" d'Apple (marques déposées) est un bon exemple de ces pratiques. Il est possible de compacter ("streaming") du contenu situé sur son téléphone portable vers un dispositif "Apple TV" (marque déposée), ou tout autre appareil compatible. Toutefois, ces protocoles sont également limités à un usage domestique, c'est à dire un usage sur réseau local. Exposé de l'invention L'invention vise en premier lieu un procédé d'établissement de communications entre un premier système informatique et un second système informatique, au moins l'un des deux systèmes informatiques comportant un dispositif de capture par voie optique d'images numériques et des moyens d'émission / réception de données par voie radioélectrique, et au moins l'autre des deux systèmes informatiques comportant un moyen d'affichage de données. Le procédé comporte des étapes suivantes : - 100 : capture par le premier système informatique d'au moins une image du moyen d'affichage du second système informatique, - 200 : lorsqu'un marqueur optique correspondant à une fonction prédéterminée est détecté par le premier système informatique au sein des images capturées, émission par ledit premier système informatique vers un serveur dit "serveur d'autorisation", d'un message de demande de mise en communication, ledit message étant fonction notamment du marqueur optique relevé sur au moins une image capturée, - 300 : émission par le serveur d'autorisation, à destination des deux systèmes informatiques d'un message d'autorisation de mise en communication, - 400: ouverture d'un lien de communication entre les deux systèmes 25 informatiques, - 500 : réception par un des deux systèmes informatiques, alors dit "serveur d'applications" de commandes reçues de la part de l'autre système informatique, alors dit "terminal utilisateur", et action en fonction de ces commandes reçues. 30 On comprend que, de la sorte, il est réalisé une prise de commande partielle d'un serveur d'applications par un terminal utilisateur, par exemple de type "Smartphone", à la suite de la reconnaissance optique d'un motif diffusé au sein d'une image sur un écran d'affichage du serveur d'applications. Le serveur d'applications n'a pas besoin de connaître d'avance l'identité du terminal utilisateur, ni réciproquement. Ainsi qu'il apparait, l'un ou l'autre des systèmes informatiques peut faire office de serveur d'application ou de terminal utilisateur, indépendamment du système qui porte un écran d'affichage, et du système qui porte une caméra de capture d'images. De même, le serveur d'autorisation peut éventuellement être confondu avec le serveur d'applications. Selon diverses dispositions éventuellement mises en oeuvre en conjonction : - le procédé comporte en outre une étape 150 : analyse par le premier système informatique du contenu des images capturées, et recherche dans des zones préalablement calculées de ces images d'un ensemble de points, ledit ensemble étant dit "marqueur optique", correspondant à une fonction prédéterminée de paramètres comportant notamment le temps et un identifiant unique du second système informatique, - le procédé comporte en outre une étape suivante : 250a : confirmation par le serveur d'autorisation que le message reçu de la part du premier système informatique vérifie une fonction prédéterminée - le procédé comporte en outre une étape suivante : 250b : confirmation par le serveur d'autorisation que le message reçu de la part du premier système informatique fait partie d'un ensemble préalablement mémorisé Dans un cas particulier de serveur à accès nécessitant une sécurité particulière, le procédé comporte en outre des étapes suivantes, le terminal utilisateur comportant des moyens d'affichage et d'entrée de données : - 450 : émission, par le serveur d'applications, d'un message de demande de données d'authentification d'utilisateur vers le terminal utilisateur, et affichage par le terminal utilisateur d'un interface d'entrée de ces données, - 460 : entrée de données d'authentification sur le terminal utilisateur par un utilisateur, et émission de ces données par le terminal vers le serveur d'application, - 470 : selon la compatibilité de ces données avec un protocole d'authentification prédéterminé, accès par l'utilisateur à un ensemble de données à accès limité disponibles sur le serveur d'application. Dans une mise en oeuvre particulière, le serveur d'application comportant des moyens d'émission / réception par voie radioélectrique de données vers d'autres systèmes informatiques, l'étape 400 comporte l'ouverture d'un lien de communication directe par voie radioélectrique entre le serveur d'application et le terminal utilisateur. Dans un cas particulier où le serveur d'application comporte des moyens d'émission / réception par voie radioélectrique de données vers d'autres systèmes informatiques, dans l'étape 400, le lien de communication entre le serveur d'autorisation et le terminal utilisateur est tel que toutes les communications sont transmises de et vers le serveur d'autorisation, qui sert de pare-feu informatique ("firewall") entre le serveur d'application et le terminal utilisateur. Avantageusement, les communications entre le serveur d'autorisation et le serveur d'applications, ainsi que les communications entre le terminal utilisateur et le serveur d'autorisation sont réalisées suivant un protocole de cryptage de données. Présentation des figures Les caractéristiques et avantages de l'invention seront mieux appréciés grâce à la description qui suit, description qui expose les caractéristiques de l'invention au travers d'un exemple non limitatif d'application. La description s'appuie sur les figures annexées qui représentent : Figure 1 : une vue schématique des éléments impliqués dans la mise en oeuvre d'un procédé conforme à la présente description, Figure 2 : un organigramme des différentes étapes du procédé. Description détaillée d'un mode de réalisation de l'invention Le procédé est destiné à être mis en oeuvre de façon logicielle par un ensemble de systèmes informatiques. Comme on le voit sur la figure 1, dans un exemple de mise en oeuvre donné ici à titre non limitatif, le procédé implique un premier système informatique 10, ici dit serveur d'applications. Ce serveur d'applications comporte un écran d'affichage 11, et héberge une ou plusieurs applications logicielles. Le serveur d'applications 10 est par exemple un ordinateur de type PC, connu en soi. Il dispose de moyens classiques de communication au réseau, par voie filaire 15 et/ ou radioélectrique. Il est adapté à héberger en mémoire et exécuter une application logicielle représentant la partie du procédé mise en oeuvre par ledit serveur d'applications. A titre d'exemples non limitatifs, le serveur d'application 10 peut être un automate d'accès à des relevés bancaires, ou une console de jeux. Le procédé implique en second lieu un second système informatique, dit ici terminal utilisateur 20. Dans le présent exemple, ce terminal utilisateur 20 est de type téléphone portable connu sous le nom de "Smartphone". Il comporte une caméra 21, par exemple de résolution supérieure à un mégapixels, adaptée à acquérir des images fixes ou animées dans le domaine visible, notamment d'un écran d'affichage tel que celui du serveur d'applications. Le terminal utilisateur 20 comporte des moyens de calcul (par exemple microprocesseur), des dispositifs mémoire, et des moyens de communication 16 au réseau par voie radioélectrique. Il est adapté à télécharger et exécuter une application logicielle reprenant la partie du procédé mise en oeuvre par ledit terminal. Un tel terminal utilisateur 20 est de type connu en soi, et n'est donc pas détaillé plus avant ici. Le procédé implique en troisième lieu un serveur informatique dit serveur d'autorisation 30. Un tel serveur d'autorisation est par exemple un ordinateur de type PC, connu en soi. Il comporte des moyens de communication avec le réseau, par voie radioélectrique et / ou filaire. Il est adapté à héberger et exécuter une application logicielle reprenant la partie du procédé mise en oeuvre par ledit serveur d'autorisation. On comprend que le procédé peut impliquer plusieurs serveurs d'autorisation différents, ou de nombreux terminaux utilisateurs, ou de nombreux serveurs d'applications, dont les applications sont éventuellement totalement différentes. Mode de fonctionnement La figure 2 illustre un organigramme d'un procédé conforme à un mode de mise en oeuvre de l'invention. Dans une première étape 100, un utilisateur doté d'un terminal utilisateur 20 vient se placer à quelques mètres (typiquement deux mètres) d'un écran d'affichage 11 d'un serveur d'applications 10 auquel il souhaite se connecter. L'utilisateur lance l'exécution de l'application logicielle correspondant au présent procédé sur son terminal utilisateur. L'utilisateur oriente alors la caméra 21 de son terminal utilisateur en direction de l'écran d'affichage, de manière à capturer une série d'images dudit écran d'affichage. Dans une seconde étape 200, les images capturées sont analysées pour y rechercher un marqueur optique spécifique constituant une signature du serveur d'application 10. Un tel marqueur comprend par exemple une zone optique dans laquelle des motifs de couleurs prédéterminés sont présents, ou une zone dans laquelle une succession de motifs suit un scénario prédéterminé etc. Lorsque le terminal utilisateur 20 a détecté un tel marqueur dans les images capturées, il envoie à destination d'un serveur d'autorisation 30, dont l'adresse a été préalablement mémorisée par ledit terminal en même temps 25 que l'application logicielle mettant en oeuvre le procédé, un message comprenant le contenu du marqueur qui a été détecté. Ce message identifie de façon unique le serveur d'applications 10 et le terminal utilisateur 20. Il est associé à une heure et une date certaine au sein du serveur d'autorisation 30. 30 Dans une étape 300, le serveur d'autorisation analyse le message reçu. Ce serveur d'autorisation 30, qui héberge en mémoire une base de données d'identifiants de serveur d'applications correspondant à chaque date ou instant, ou une fonction permettant de déterminer ces identifiants, vérifie que l'identifiant reçu correspond bien à un serveur d'applications 10 valide. Il vérifie éventuellement que les données d'identification du terminal utilisateur 20 correspondent à un terminal utilisateur 20 préalablement enregistré dans une base de données ad hoc au sein dudit serveur d'autorisations 30. Dans une variante de réalisation, le serveur d'autorisation reçoit également des données GPS du terminal utilisateur 20, et vérifie que celles-ci sont comptables avec la proximité du serveur d'applications 10 identifié. Lorsque la comptabilité de l'identifiant avec un serveur d'application valide et un terminal utilisateur autorisé est confirmée, le serveur d'autorisation 30 envoie à destination du terminal utilisateur 20 et du serveur d'applications 10 un message d'autorisation de mise en communication. Un lien de communication sécurisé (utilisant un protocole connu en soi, par exemple de type SSL sur un réseau HTTP) est alors ouvert entre le terminal utilisateur 20 et le serveur d'application 10, par exemple par voie radioélectrique si le terminal utilisateur et le serveur d'applications comportent des moyens de communication de type 3G ou connexion internet. Il n'y a alors pas d'intermédiaire dans la communication entre le serveur d'applications 10 et le terminal utilisateur 20. Cependant, dans une variante de réalisation, le terminal utilisateur 20 et le serveur d'applications 10 ne communiquent que par l'intermédiaire du serveur d'autorisation 30, qui fait alors office de "firewall" pour filtrer les commandes émises par le terminal utilisateur 20. L'utilisateur peut alors s'éloigner du serveur d'applications 10, la phase de capture d'images étant terminée et donc la nécessité d'une position de la caméra du terminal utilisateur en vue de l'écran d'affichage et à faible distance ayant disparu. Le terminal utilisateur 20 accède alors à une partie limitée d'une application, par exemple un jeu multiutilisateurs. Dès lors, le serveur d'applications 10 reçoit des commandes émises par l'utilisateur à l'aide de son terminal utilisateur 20, et utilise ces commandes comme entrées d'une application en cours d'exécution. Dans une première variante, après un délai préalablement déterminé à partir de l'établissement du lien de communication sécurisé entre le terminal utilisateur et le serveur d'applications, ce lien est considéré comme nécessitant une nouvelle vérification, et une nouvelle capture d'image de l'écran d'affichage du serveur d'applications est demandée pour maintenir la connexion. Dans une autre variante, c'est l'utilisateur qui décide la fin de communication, en entrant une commande prédéterminée sur son terminal utilisateur. Dans encore une autre variante, c'est le franchissement d'une distance supérieure à un seuil prédéterminé, entre le terminal utilisateur, géo-localisé de façon connue en soi, et le serveur d'application, dont les coordonnées géographiques sont stockées dans une base de données, qui provoque l'interruption du lien de communication sécurisé. Avantages Le procédé décrit plus haut présente plusieurs avantages : - l'efficacité de la mise en relation : La mise en relation avec dispositif est effective à deux mètres. Cela permet à un utilisateur de prendre le contrôle d'un écran situé dans les lieux publics, comme le métro. La mise en relation est efficace dans des environnements présentant un taux de lumière faible (dans la mesure où la caméra du terminal utilisateur est de sensibilité suffisante). Les technologies existantes de reconnaissance de tag par exemple (ex QR Code) imposent ici des contraintes de distance non acceptables. Par exemple, la taille effective d'un QR code se calcule de cette façon : Taille minimale d'un QR code = distance de scan / 10. Donc si l'on souhaite qu'un QR Code soit détectable à deux mètres, il faut que sa taille soit d'environ 20 cm (soit 28cm de diagonale). Dans le cadre du présent procédé, la taille de l'écran cible est d'environ 50cm de diagonale, donc non compatible avec de telles tailles de marqueurs. - la vélocité de la communication. Le but étant de déporter le côté tactile des écrans vers un Smartphone faisant effet de terminal utilisateur, la communication entre les deux périphériques est extrêmement rapide, et ce quel que soit l'endroit ou se trouve l'utilisateur. Le protocole de communication est donc ici très léger, afin de garantir des échanges rapides, par opposition au protocole UPnP. Le procédé décrit plus haut travaille et simule des échanges sur des supports ayant une bande passante très limitée, la connexion étant acceptable en Edge ("Enhanced Data Rates for GSM Evolution") ou directement en GPRS ("General Packet Radio Service"). - la sécurité la prise de contrôle : le protocole de communication à mettre en place entre les deux appareils est très sécurisé. L'appareil prenant le contrôle n'a accès qu'à une partie des commandes du périphérique distant, le contrôle étant très limité. Le protocole créé est donc non seulement léger, mais également s'exécute de manière limité sur le serveur d'applications. - il fonctionne avec de nombreux types d'appareils connectés (Smartphone, PC, "set top box" etc.) La mise en relation des périphériques par reconnaissance demande la mise en place d'algorithmes complexes de traitement d'image, qui s'exécutent grâce au présent procédé sur des mobiles, périphériques ayant des capacités de calcul limitées. Variantes On note que dans une variante de mise en oeuvre, c'est le serveur 20 d'applications 10, par exemple un PC doté d'une caméra de type webcam, qui capture une image affichée sur l'écran d'un téléphone de type "Smartphone". Le serveur d'applications recherche alors dans cette capture d'écran un marqueur prédéterminé, puis établit la communication si le marqueur détecté correspond à une valeur calculable ou mémorisée. 25 Dans le cas particulier d'un serveur d'applications de type automate bancaire par exemple, le procédé peut également comporter des étapes suivantes : 450: émission, par le serveur d'applications 10, d'un message de 30 demande de données d'identification d'utilisateur vers le terminal utilisateur 20, et affichage par le terminal utilisateur 20 d'un interface d'entrée de ces données, par exemple sous forme de clavier numérique ou d'autre système d'identification ou de signature, 2 9863 5 1 10 - 460 : entrée de données d'authentification sur le terminal utilisateur 20 par un utilisateur, et émission de ces données par le terminal utilisateur 20 vers le serveur d'application 10, - 470 : selon la compatibilité de ces données avec un protocole 5 d'authentification prédéterminé, accès par l'utilisateur du terminal utilisateur 20 à un ensemble de données à accès limité disponibles sur le serveur d'application 10. Dans une variante de mise en oeuvre, le marqueur visuel recherché sur 10 l'écran d'affichage du serveur d'application est constitué du contenu d'un ensemble de zones, par exemple mais non limitativement trois zones, dont la position évolue au cours du temps de façon préalablement mémorisée ou calculable. Dans ce dernier cas, les fonctions de calcul sont stockées par exemple au sein du serveur d'applications 10, et le serveur d'autorisation 30 15 accède à ce serveur d'applications 10 pour chercher dans les images capturées par le terminal utilisateur 20 la position des zones à vérifier, puis le contenu de ces zones. La comparaison du contenu de ces zones (par exemple un paramètre de chrominance) avec des valeurs prédéterminées ou calculables détermine l'authentification de la position du terminal utilisateur 20 face au serveur d'applications 10 à un instant donné. Dans encore une autre variante, le code reçu dans le marqueur détecté dans l'image ou les images capturées par le terminal utilisateur comporte directement une adresse de routage, de type http. REVENDICATIONS1. Procédé d'établissement de communications entre un premier système informatique et un second système informatique, au moins l'un des deux systèmes informatiques comportant un dispositif de capture par voie optique d'images numériques et des moyens d'émission / réception de données par voie radioélectrique, et au moins l'autre des deux systèmes informatiques comportant un moyen d'affichage de données, caractérisé en ce qu'il comporte des étapes suivantes : - 100 : capture par le premier système informatique d'au moins une image du moyen d'affichage du second système informatique, - 200 : lorsqu'un ensemble de points, ledit ensemble étant dit "marqueur optique" correspondant à une fonction prédéterminée est détecté par le premier système informatique au sein des images capturées, émission par ledit premier système informatique vers un serveur dit "serveur d'autorisation", d'un message de demande de mise en communication, ledit message étant fonction 15 notamment du marqueur optique relevé sur au moins une image capturée, - 300 : émission par le serveur d'autorisation, à destination des deux systèmes informatiques d'un message d'autorisation de mise en communication, - 400 : ouverture d'un lien de communication entre les deux systèmes 20 informatiques, - 500 : réception par un des deux systèmes informatiques, alors dit "serveur d'applications" de commandes reçues de la part de l'autre système informatique, alors dit "terminal utilisateur", et action en fonction de ces commandes reçues. 25 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre une étape : 150 - analyse par le premier système informatique du contenu des images capturées, et recherche dans des zones préalablement calculées de ces images d'un marqueur optique, correspondant à une fonction 30 prédéterminée de paramètres comportant notamment le temps et un identifiant unique du second système informatique. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il comporte en outre une étape suivante : - 250a : confirmation par le serveur d'autorisation que le message reçu de la part du premier système informatique vérifie une fonction prédéterminée. 5 4. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il comporte en outre une étape suivante : - 250b : confirmation par le serveur d'autorisation que le message reçu de la part du premier système informatique fait partie d'un ensemble 10 préalablement mémorisé. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comporte en outre des étapes suivantes, le terminal utilisateur comportant des moyens d'affichage et d'entrée de données : 15 - 450 : émission, par le serveur d'applications, d'un message de demande de données d'authentification d'utilisateur vers le terminal utilisateur, et affichage par le terminal utilisateur d'un interface d'entrée de ces données, - 460 : entrée de données d'authentification sur le terminal utilisateur par un utilisateur, et .émission de ces données par le terminal vers le serveur 20 d'application, - 470 : selon la compatibilité de ces données avec un protocole d'authentification prédéterminé, accès par l'utilisateur à un ensemble de données à accès limité disponibles sur le serveur d'application. 25 6. Procédé selon l'une quelconque des revendications 1 à 5, le serveur d'application comportant des moyens d'émission / réception par voie radioélectrique de données vers d'autres systèmes informatiques, caractérisé en ce que l'étape 400 comporte l'ouverture d'un lien de communication directe par voie radioélectrique entre le serveur d'application et le terminal utilisateur. 30 7. Procédé selon l'une quelconque des revendications 1 à 5, le serveur d'application comportant des moyens d'émission / réception par voie radioélectrique de données vers d'autres systèmes informatiques, caractériséen ce que, dans l'étape 400, le lien de communication entre le serveur d'autorisation et le terminal utilisateur est tel que toutes les communications sont transmises de et vers le serveur d'autorisation, qui sert de pare-feu informatique ("firewall") entre le serveur d'application et le terminal utilisateur. 8. Procédé selon la revendication 7, dans lequel les communications entre le serveur d'autorisation et le serveur d'applications, ainsi que les communications entre le terminal utilisateur et le serveur d'autorisation sont réalisées suivant un protocole de cryptage de données.