Brevet FR2937205A1 — publié le 20100416

Système de réseau comportant une pluralité de dispositifs informatiques utilisant un adressage de type IPv6 et dispositif informatique apte à se connecter à un tel système de réseau. La présente invention concerne un système de réseau comportant une pluralité de dispositifs informatiques fonctionnant à l'aide d'un système d'exploitation et utilisant un adressage de type IPv6, système qui est accessible à au moins un groupe d'au moins un utilisateur et dans lequel au moins une application est exécutable L'invention concerne aussi un dispositif informatique apte à se connecter à un tel système de réseau, dispositif comportant un processeur pour le traitement de l'information coopérant avec de la mémoire et impliquant un système d'exploitation acceptant de coopérer avec des modules de logiciel. Le protocole IPv6 impose un système d'adressage différent pour le réseau Internet va s'imposer dans les prochaines années. Cet adressage offre des possibilités nouvelles. Ainsi dans la demande de brevet des Etats d'Amérique : US 2004/0139187, on décrit un système domotique comportant des dispositifs électroniques tels que télévision, chauffage, climatiseurs, etc. qu'il convient de gérer au mieux et, en outre, il est souhaité d'effectuer cette gestion à distance ce qui impose l'utilisation du réseau Internet. Le problème qui se pose alors est l'attribution d'adresses pour ces différents dispositifs qui sont connectés au réseau domotique. Dans la demande de brevet mentionnée ci-dessus, on propose d'affecter des adresses de type IPv6 à tous les dispositifs connectés. L'invention propose d'aller plus loin dans l'utilisation de l'adressage IPv6 et de profiter pleinement des larges capacités d'adressage de ce protocole IPv6. Elle propose de réaliser un système de réseau présentant de bonnes conditions de sécurité sans pour cela utiliser une approche basée sur un serveur central. En outre, la mise en place de ce réseau est facilitée par les mesures que préconise l'invention. Conformément à l'invention, le système de réseau selon le préambule est remarquable en ce que des adresses IPv6 sont attribuées à chacun de ces groupes et à des applications. Un dispositif mentionné ci-dessus est remarquable en ce qu'il est prévu un ensemble d'au moins un module pour être compatible avec ledit système. L'idée de l'invention repose sur l'idée de gérer le système au moyen d'adresses de type IPv6 et sur cette base d'accorder des droits à chaque utilisateur avec des accès à certains programmes qui tournent sur le système d'une manière simultanée et indépendante selon des possibilités dépendant de l'utilisateur. L'idée de l'invention consiste aussi de s'affranchir de la présence d'un serveur qui gère les droits de tous les utilisateurs d'une manière centralisée. La description suivante accompagnée des dessins ci-annexés, le tout donné à titre d'exemple non limitatif, fera bien comprendre comment l'invention peut être réalisée. Dans les dessins, les figures représentent : la FIG. 1 montre un système de réseau conforme à l'invention, la FIG. 2 montre un schéma d'un dispositif informatique apte à se connecter audit système, la FIG.3 montre des modules rattachés au noyau du système d'exploitation des dispositifs informatiques, la FIG. 4 montre un schéma explicitant un exemple d'affectation d'une adresse lPv6 à partir d'un code UID, la FIG. 5 montre un schéma explicitant l'aiguillage des adresses IPv6 au niveau d'une carte Ethernet, la FIG. 6 montre un schéma explicitant l'accès aux applications, la FIG.7 montre un organigramme explicitant le fonctionnement du module d'accès local aux applications, La FIG.8 montre un organigramme explicitant le fonctionnement du module de surveillance de l'accès à la mémoire des dispositifs informatiques. Le système de réseau montré à la figure 1, porte la référence 1 et se présente 25 sous la forme d'un réseau LAN simple, ponté ou routé adapté à la gestion d'une habitation (réseau domotique). Autour d'un câblage Ethernet 5, sont connectés différents dispositifs informatiques (en pratique, des ordinateurs) destinés aux occupants de l'habitation. Ainsi, le système comporte des ordinateurs fixes 14, 15, un ordinateur mobile 18 relié au système de réseau via un dispositif d'interface 20. 30 Comme on souhaite gérer différents équipements de l'habitation, on a prévu qu'un ensemble d'équipements 26 soit relié au système de réseau 1. Cet ensemble 15 20 2937205 -3 d'équipements 26 est affecté à la gestion de l'éclairage 26a, du chauffage 26b de l'habitation ainsi que du système d'alarme 26c. D'autres dispositifs peuvent bien évidemment se connecter, ceci est indiqué par la référence 28 de manière indistincte. Le dispositif 14 peut avoir les fonctions de serveur vidéo tandis que le dispositif 15 5 contient un vidéolecteur destiné aux enfants. Un dispositif de routage 32, connu en littérature anglo-saxonne sous le nom de � home-gateway � permet à ce système de réseau 1 de se connecter à l' Internet. On a représenté par la référence 33 un serveur connecté au réseau Internet 35 et accessible au système de réseau 1. Ce serveur peut être géré par le fournisseur d'accès auquel le 10 réseau 1 est rattaché. Il peut fournir des préfixes aux adresses IPv6 impliquées par l'invention. Tous les dispositifs 14, 15, 20, 26, 28 qui font partie du réseau 1 sont munis d'un circuit d'interface genre carte Ethernet 44, 45, 50, 56, 58 respectivement. Ce qui permet leur adressage au moyen du protocole Internet (IP) et plus précisément, dans le cadre de la présente invention, du protocole IPv6. Pour des raisons de clarté des explications qui vont suivre, il ne sera fait mention que du système d'exploitation LINUX pour l'implémentation de l'invention. Il va de soi que cette implémentation à base de LINUX ne limite en rien la portée de l'invention. On admet qu'un utilisateur privilégié, un administrateur (� root � en littérature anglo-saxonne), a un accès total sur toutes les machines. Le système de réseau 1 est accessible à des utilisateurs fréquentant l'habitation. L'invention propose d'utiliser le protocole IPv6 pour assurer les différentes liaisons entre tous les dispositifs et équipement et aussi d'affecter à chaque utilisateur une adresse IPv6. Il va de soi, que selon les techniques bien connues, un autre utilisateur, dûment autorisé et situé hors du réseau peut se connecter à celui-ci via Internet. La figure 2 donne la structure du dispositif informatique 14, à titre d'exemple. La structure des autres éléments du système 1 est semblable à celle montrée sur cette figure. Le dispositif informatique 14 se compose d'un écran 60, d'un clavier 62 reliés à une unité de traitement 65 par l'intermédiaire d'un circuit d'interface 69. L'unité de traitement 65 comporte la carte Ethernet 44 qui permet la liaison avec le câblage 5, un microprocesseur 70, de la mémoire vive 71, de la mémoire non volatile 72, au moins un disque dur 73 et d'autres éléments habituels aux ordinateurs, référencés d'une manière indistincte par 75.[1] Le dispositif fonctionne à l'aide du système d'exploitation LINUX. Le fonctionnement de ce système d'exploitation est basé sur un noyau 100, voir figure 3. Selon un aspect important de l'invention, la gestion du réseau s'effectue surtout au moyen de ce noyau 100 auquel on a adjoint des modules. Sur la figure 3, on a montré des modules participant à la mise en application de l'invention. Les modules entourés d'un cercle sont plus spécifiquement associés à l'invention tandis que ceux entourés d'un rectangle sont utilisés par l'invention et font partie de l'art antérieur. Parmi ces modules, on distingue : - le module 110 qui implémente la sécurité des différentes liaisons à assurer au sein des dispositifs. Il est basé sur le protocole IPsec. - le module 112 qui permet de surveiller les accès au noyau connu sous le nom de module LSM ( Linux Security Module), - le module 114 qui est un contrôle d'accès discrétionnaire (DAC). Il gère l'accès aux fichiers en écriture, lecture exécution en se basant sur l'identification de l'utilisateur. Selon l'invention, on propose d'autres modules : - un module 120 qui permet d'attribuer des adresses IPv6, - un module 122 qui s'assure que chaque utilisateur n'a accès qu'à ses informations et ne va pas consulter des informations appartenant à d'autres utilisateurs, - un module 124 qui surveille les accès système. - un module 126 qui est formé essentiellement par une table donnant des adresses IPv6 des applications installées sur le système de réseau 1 La figure 4 montre comment est établi l'adressage IPv6 effectué par le module 120. Selon l'invention, chaque utilisateur se voit affectée d'une adresse IPv6. Les utilisateurs peuvent être des personnes physiques ou des applications. Cette adresse IPv6 peut être élaborée à partir de l'adresse MAC de la carte Ethernet 44 qui fait partie de la machine sur la quelle se connecte l'utilisateur. Par exemple cette adresse est, en hexadécimal : 00B0 3A6D F097. On scinde, en deux, ce 2937205 -5 code de l'adresse MAC pour insérer le code UID (16 éléments binaires) fourni par le système d'exploitation. Le premier octet � 00 � est changé en � 02 � selon la norme IPv6. Ainsi l'adresse IPv6 de l'utilisateur devient après adjonction du préfixe �pref� fourni par le serveur 33: �pref� 02B0 3A UID 6D F097. Mais l'adresse peut être 5 produite par tout autre moyen (génération aléatoire par exemple). On comprend bien que si un autre utilisateur se connecte sur la même machine il obtiendra une adresse différente puisque le système LINUX lui attribuera un autre UID. Comme il peut y avoir plusieurs adresses IPv6 affectées à un même ordinateur, on doit prévoir un système d'aiguillage qui permet une liaison bidirectionnelle à partir 10 d'une seule carte Ethernet 44 ayant un seul code MAC. Ceci est explicité au moyen de la figure 5. En fait, on fait appel au protocole ND (Neighbor Discovery Protocol) qui permet de faire la conversion MAC vers IPv6 (IPv6_l, IPv6_2 etc.) et réciproquement. La table 90, � Neighbor Cache �, est consultée pour la conversion adresse IPv6 û adresse MAC. 15 Dans le cadre de l'invention, un tel dispositif fonctionne de la façon suivante. On se reporte à la figure 6 qui montre un organigramme explicitant une première partie du fonctionnement. Sur cet organigramme, plusieurs cases sont montrées. La case K1 explicite le démarrage de l'ordinateur. Après cette phase, l'utilisateur doit s'identifier et la question qui est posée à la case K3 concerne 20 l'utilisateur : est-il un nouvel utilisateur ou pas ? Si c'est un utilisateur inconnu, il ne pourra pas accéder à cette machine et il devra faire appel à l'administrateur de la machine pour se faire accorder un accès. S'il est connu, une adresse IPv6 lui est attribuée en faisant intervenir le module du noyau 120. Une fois identifié, l'utilisateur peut parmi d'autres possibilités (par exemple 25 régler son bureau etc.) accéder à un certain nombre d'applications (cases K7). Selon ses droits, il verra les applications auxquelles il a un droit d'accès (case K10). Ces applications sont générées à partir du module 126. Ceci est défini par l'administrateur du réseau (root). S'il lance une de ses applications, son adresse IPv6 sera envoyée avec celle de l'application module de sécurité 124 (case K12) qui attribue l'autorisation 30 d'accès à ce programme pouvant être situé sur un autre dispositif informatique. Si l'accès est autorisé, le programme est alors enclenché (case K14), sinon il retourne à la case K7 pour entreprendre une autre action. On revient aussi à la case K7 à la fin de l'exécution de l'application. Il est à noter que la même application appelée par plusieurs utilisateurs à la fois se déroulera d'une manière indépendante l'une de l'autre et aura un comportement dépendant de l'utilisateur. Contrôle de l'accès à une application FIG.7. On admet qu'un utilisateur Usr-X veut accéder à une application Appl-Y ce qui est à rapprocher de la case K10 de la figure 6. Il faut s'assurer que Usr-X et l'application Appl-Y ont le droit d'accéder à l'adresse IPv6_Z .De là, se met en route le module 124. La case K32 montre un appel à la fonction BindO qui doit permettre de réaliser cette liaison. La case K34, qui suit, indique une phase de contrôle qui effectue un premier contrôle. Si ce contrôle est positif, on passe à la case K36 et de là, on teste si l'utilisateur Usr X et l'adresse IPv6_Z sont compatibles (case K38) , si oui, alors on teste si l'application Appl-Y et l'adresse IPv6_Z sont compatibles entre elles.(case K40) Si oui , la fonction bind() peut s'effectuer (case K40 ) mais avant d'être mis en relation on fait appel au protocole IPsec pour bien vérifier les accès (case K44) si c'est OK, alors l'utilisateur a pleinement accès à l'utilisation Appl-Y. (case K14 de la figure 7). Si un des tests indiqués par les cases K34, K38 K40, K44 est négatif on va à la case K45 qui interdit l'accès de l'application Appl-Y pour l'utilisateur Usr_X. Surveillance des accès aux accès aux informations réseau module 122 Comme déjà dit il y a intérêt à ce que l'utilisateur n'ait accès qu'aux informations du noyau le concernant, de sorte qu'il ne puisse accéder à des informations qui ne le concernent pas, par exemple des données personnelles d'un autre utilisateur accédant au même ordinateur. Pour accéder à ces informations, on fait appel d'une façon implicite au répertoire /proc. Ceci est détecté à la case K60. On va alors à la case K62 où l'on cherche le nom Nme de la fonction appelée dans proc_dir_entry. On teste ensuite si ce nom est dans le fichier if inet6 concernant l'adressage IPv6 (case K64). Si oui, on va à la case K64 pour déterminer si la fonction appelée est en lecture seulement si oui, on va à la case K66 où seules les informations de l'utilisateur en question sont lues. Si les tests indiqués aux cases K64 et K65 sont négatifs, rien n'est entrepris case K68 qui indique la poursuite du programme. EXEMPLES. - Dans le cadre de l'application envisagée de réseau domotique, différents dispositifs auront des accès prioritaires. Ainsi, le démarrage du chauffage 26b peut être effectué par les parents et non par les enfants. Les tables d'accès règlent ce problème. - un vidéolecteur placé dans la chambre des enfants et faisant partie du dispositif 15 se connecte serveur vidéo avec la même adresse IPv6 source, @child video_player ; cette adresse identifie le vidéolecteur. Il suffit que l'utilisateur, l'administrateur, le déclare. Si le serveur vidéo est soumis à deux adresses IPv6 différentes (@dest_parent IPv6 et @dest child IPv6), qui permettent la fourniture de deux espaces vidéo différents à respectivement chacune de ses adresses, 1' administrateur doit spécifier l'accès au niveau du serveur par deux règles simples de filtrage : accept ûsource @child video player ûdest @dest child IPv6 accept ûsource @parent_video player ûdest @dest_parent_IPv6 - Cas d'un navigateur web. Lancé par l'enfant Bob, le trafic qui en résulte aura comme adresse IPv6 source celle qui appartient à Bob.. Si l'enfant Alice lance le même navigateur, ce trafic réseau se différencie facilement de celui de Bob car il comprend l'adresse source appartenant à Alice. Les éventuelles tentatives de usurpation d'adresse de la part de Alice qui veut se faire passer pour Bob échouent, sauf si, bien entendu Alice devient administrateur. REVENDICATIONS. 1- Système de réseau (1) comportant une pluralité de dispositifs informatiques (14, 15, 20, 26, 28) fonctionnant à l'aide d'un système d'exploitation et utilisant un adressage de type IPv6, système qui est accessible à au moins un groupe d'au moins un utilisateur et dans lequel au moins une application est exécutable, caractérisé en ce que des adresses IPv6 sont attribuées à chacun de ces groupes et à des applications. 2- Système de réseau selon la revendication 1 caractérisé en ce que les relations entre lesdits dispositifs sont gérées au niveau de chaque machine. 3- Système selon la revendication 1 ou 2 caractérisé en ce que les adresses des groupes d'utilisateurs sont établies sur la base de leur identification (UID) au sein du système d'exploitation gérant le dispositif sur lequel ils sont identifiés. 4- Système de réseau selon la revendication 1 ou 2 ou 3 caractérisé en que les applications sont exécutées en fonction de l'adresse de l'utilisateur qui y font appel et d'une manière indépendante pour chacun des utilisateurs. 5- Système selon l'une des revendications 1 à 4 pour lequel les dispositifs fonctionnent au moyen d'un système d'exploitation mis en oeuvre à partir d'un noyau (100) caractérisé en ce que des modules (110, 112, 114, 120, 122, 124, 126) sont rattachés à ce noyau pour la gestion dudit système. 6- Système selon l'une des revendications 1 à 4 caractérisé en ce qu'il est prévu un module d'accès local (112) pour accorder l'accès des utilisateurs aux différentes applications situées sur le même ordinateur. 7- Système selon l'une des revendications 1 à 5 caractérisé en ce qu'il est prévu des moyens pour la mise en oeuvre du protocole IPsec pour valider les relations avec les applications. 8- Système selon l'une des revendications 1 à 6 caractérisé en qu'il est prévu un module de surveillance (122) pour limiter l'accès des utilisateurs à la zone mémoire qu'utilisent les différents dispositifs informatiques. 9- Système selon l'une des revendications 1 à 8 caractérisé en ce que le système d'exploitation est le système LINUX. 10- Dispositif informatique apte à se connecter à un système de réseau selon l'une des revendications 1 à 9, dispositif comportant un processeur (70) pour le traitement de l'information coopérant avec de la mémoire (71, 72) et impliquant un système d'exploitation basé sur un noyau (100) acceptant de coopérer avec des modules de logiciel) caractérisé en ce qu'il est prévu un ensemble d'au moins un module (110, 112, 114, 120, 122, 124, 126 ) pour être compatible avec ledit système. 10- Dispositif informatique selon la revendication 9, caractérisé en ce qu'il est prévu un module (122) pour la surveillance des accès aux zones de mémoire utilisées par le processeur. 11- Dispositif informatique selon les revendications 9 ou 10, caractérisé en ce qu'il comporte un module (120) pour réglementer l'accès à l'utilisateur aux différentes applications disponibles sur ledit système de réseau.