La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Bernard Ourghanlian – Chief Technology & Security Officer Microsoft Le Peer-to-Peer IPv6 en environnement.

Présentations similaires


Présentation au sujet: "Bernard Ourghanlian – Chief Technology & Security Officer Microsoft Le Peer-to-Peer IPv6 en environnement."— Transcription de la présentation:

1 Bernard Ourghanlian – Chief Technology & Security Officer Microsoft Le Peer-to-Peer IPv6 en environnement Windows

2 2 Sommaire Le panorama du Peer-to-Peer Le Peer-to-Peer en environnement Windows : les principes fondateurs Les technologies requises NAT traversal Résolution des noms Graphes, groupes et groupements Stockage répliqué Recherche distribuée La mise à jour Peer-to-Peer pour Windows XP Résumé Démonstration : 3 degrees

3 3 Le Peer-to-Peer Le Web correspond fondamentalement un modèle de type client-serveur : lutilisateur demande une page Web et le serveur Web lui répond Le Peer-to-Peer, popularisé initialement par Napster ou Gnutella, fonctionne différemment puisque pratiquement toutes les interactions ont lieu entre les clients On peut définir le Peer-to-Peer comme « un modèle de traitement dans lequel les périphériques client communiquent directement » Par rapport au traditionnel modèle du client-serveur, le Peer-to-Peer présente les avantages suivants : Le contenu et les ressources peuvent être partagés à la fois depuis le centre et la bordure du réseau Un réseau de « pairs » peut être facilement étendu et être plus fiable quun seul serveur Un réseau de « pairs » peut partager sa capacité de calcul, afin de consolider des ressources de traitement pour des tâches de traitement distribuées, plutôt que de se reposer sur un seul calculateur (un supercalculateur, par exemple) Les ressources partagées des ordinateurs « pairs » peuvent être accédées directement

4 4 Le Peer-to-Peer Le Peer-to-Peer autorise la résolution des problèmes suivants : Permettre lutilisation des ressources de calcul des ordinateurs situés aux extrémités du réseau pour des tâches de calcul distribuées Permettre le partage des ressources locales directement sans avoir le besoin de serveurs intermédiaires Permettre une communication multipoint efficace sans avoir à reposer sur une infrastructure de type IP multicast

5 5 Le panorama du Peer-To-Peer Communications temps réel (RTC) Messagerie instantanée, voix, vidéo Cela existe aujourdhui mais la plupart des programmes existants ainsi que leurs protocoles de communication reposent sur lexistence de serveurs Jeu temps réel / collaboration La plupart des environnements de jeu distribués reposent sur lexistence dun site Web permettant aux joueurs de saffronter Collaboration Espace de travail projet permettant datteindre un objectif commun Partage de fichiers avec dautres personnes Ce type de partage existe mais nest pas toujours aisé car les adresses des machines dextrémité ne sont pas toujours publiées Distribution de contenu Concert, réunion de société, classe en ligne, audio, vidéo Bien souvent, la diffusion « organisée » de fichiers audio et vidéo repose sur lexistence de gros serveurs Distribution de mise à jour de produits Cest une méthode efficace pour distribuer les mises à jour de logiciels

6 6 Le panorama du Peer-To-Peer Traitement distribué Dissection et distribution dune tâche de calcul Nécessite que les algorithmes soient parallélisés Agrégation de ressources machines Popularisé par le grid computing Amélioration des technologies de lInternet Nouveaux protocoles pour lInternet Historiquement, lInternet a été conçu pour permettre une connectivité de bout en bout ; force est de constater quen raison de la raréfaction des adresses et de la prolifération des NAT, on a perdu cette connectivité de bout en bout IPv6 est la promesse du retour de lInternet à ses principes de conception originels

7 7 Pourquoi du nouveau ? Limitation du nombre dadresses publiques La présence des NATs limite les possibilités de partage Limitation du système de résolution de noms Ne gère pas (assez) les adresses dynamiques Ne fonctionne pas en environnement ad hoc Ne facilite pas une utilisation aisée « à la maison » Communication multipoint inefficace Chacun a une certaine tendance à reconstruire linfrastructure en fonction de ses besoins

8 8 Prolifération des NAT Network Address Translators NAT « résoud » le problème dadresses MAIS Les applications sont souvent « cassées » La sécurité est faible Difficile à gérer, pas de standards Complique le sans-fil et la mobilité Limite linnovation dans les nouveaux scénarios : Mobile IP, VoIP, QoS, Peer-to-Peer… Rompt le modèle Internet « de bout en bout »

9 9 Scénario 1 : Jeu à plusieurs (Exemple : Age of Empires II en Direct Play) Avec NAT, logiciel complexe et fragile : 2 adresses, à lintérieur et à lextérieur P1 fournit « ladresse interne » à P3, « ladresse externe » à P2 Besoin de reconnaître linterne de lexterne P1 ne connaît pas ladresse externe de P3 pour lindiquer à P2 P1P2 P3 LANMaison Internet NAT LANMaison NAT

10 10 Scénario 2: Peer-To-Peer (Exemple: RTC ou récupération de fichiers) Avec NAT Besoin dapprendre ladresse « en dehors du NAT » Fournir cette adresse à lapplication « paire » Besoin de disposer dune application « compatible NAT » On peut avoir besoin dun serveurs denregistrement tiers pour faciliter la recherche des pairs LANMaison Internet P1 NAT LANMaison P2 NAT

11 11 Lépuisement des adresses IP est réel ! Lextrapolation du nombre dadresses DNS enregistrées indique un épuisement total en 2009 Lextrapolation du nombre dadresses DNS enregistrées indique un épuisement total en 2009 Mais, en pratique, cela peut arriver bien avant ! Mais, en pratique, cela peut arriver bien avant ! En fait, En fait, ce nest pas un problème dadresses; cest un problème lié à ce que peuvent faire les utilisateurs (scénarios) Épuisement Total Épuisement pratique

12 : la fin du P2P ? Avec la rareté des adresses, les ISP ne peuvent en avoir suffisamment, ils déploient de plus en plus de NAT et les applications peer-to-peer commencent davoir des problèmes !

13 13 Les principes fondateurs dune solution Peer-to-Peer Lobjectif long terme de la mise à disposition dun environnement Peer-to-Peer est le suivant Permettre aux utilisateurs de communiquer et de partager de linformation de manière sécurisée avec dautres utilisateurs sans dépendre de serveurs centralisés mais en restant capable de fonctionner encore mieux si des serveurs sont présents Dans un premier temps, la cible de lenvironnement Peer- to-Peer est la mise à disposition dun environnement de développement permettant aux développeurs de créer des applications Peer-to-Peer Les applications seront certainement la clé du succès dIPv6 !

14 14 Les principes fondateurs du design dune solution Peer-to-Peer Sécurité : robustesse en face dune défaillance ou dune attaque Scalable : capable dévoluer depuis des réseaux ad hoc jusquà lInternet Sans serveur : pas de point de défaillance central Self-tuning : sadapte à des changements constants Self-repairing : se répare tout seul Sharing : permet à nouveau le partage des données et des applications depuis les frontières du réseau

15 15 Les problèmes techniques à résoudre en environnement Peer-to-Peer Le DNS Cest un autre point de différence majeur entre lenvironnement client-serveur et les réseaux Peer-to- Peer Les serveurs sont généralement enregistrés dans le DNS de telle façon que les clients puissent résoudre le nom de ces serveurs Les clients ne sont généralement pas enregistrés dans le DNS pour les raisons suivantes De nombreux clients ont des connectivités temporaires et on peut leur assigner un adresse différente à chaque connexion Les clients nont pas de ressources à partager et ne répondent donc pas aux demandes de ressources

16 16 Les problèmes techniques à résoudre en environnement Peer-to-Peer Les participants dun environnement Peer-to-Peer ont, par contre, des ressources à partager tout en continuant cependant davoir une connectivité temporaire Ils peuvent utiliser un DNS dynamique mais il ny a que peu de serveurs DNS sur lInternet qui supportent le dynamic DNS Pour avoir du succès, les ordinateurs en environnement Peer-to-Peer ne doivent donc pas reposer sur une infrastructure DNS existante ; il doit donc y avoir un mécanisme permettant de résoudre les noms des pairs qui ne repose pas sur le DNS Le mécanisme utilisé en environnement Windows Peer-to-Peer est le Peer Name Resolution Protocol (PNRP)

17 17 Les problèmes techniques à résoudre en environnement Peer-to-Peer La sécurité Dans un environnement Peer-to-Peer, il ny a pas de serveur centralisé avec des bases de données de sécurité qui peuvent assurer des services de sécurité typiques tels que lauthentification ou lautorisation Dans cet environnement, les pairs doivent procurer leur propre authentification Dans lenvironnement Windows Peer-to-Peer, lauthentification est assurée en utilisant des certificats auto-signés de type X.509 Ces certificats sont créés par chaque pair Chaque nœud agit comme une autorité de certification, ce qui permet de supprimer la nécessité de déposer le certificat racine dans chaque zone de stockage de confiance de chaque pair

18 18 Les problèmes techniques à résoudre en environnement Peer-to-Peer Chaque pair génère la paire de clés privée/publique et le certificat qui est signé en utilisant la clé privée Le certificat auto-signé est utilisé pour lauthentification et fournit de linformation sur lentité « pair » Comme lauthentification X.509, lauthentification en environnement Peer-to-Peer repose sur une chaîne de certificats qui permettent de remonter à une clé publique digne de confiance

19 19 Larchitecture de limplémentation Peer- to-Peer en environnement Windows

20 20 Les Technologies clés NAT Traversal Résolution des noms Graphes Groupes et groupements Stockage répliqué Recherche distribuée

21 21 Les mécanismes du NAT Machine A Machine B Envoyer la requête pour une page web à la gateway 1 La gateway crée la correspondance pour et lenvoie au web 2 Le web retourne les données vers le port mis en correspondance en environnement NAT 3 Le NAT parcourt la correspondance et envoie vers la Machine A NAT

22 22 NAT Traversal Limplémentation dIPv6 sur Windows admet essentiellement deux technologies de transition Intra-Site Tunnel Addressing Protocol (ISATAP) Technologie daffectation et de tunneling automatique qui est utilisé pour fournir une connectivité unicast entre hôtes IPv6 au travers dun Intranet IPv4 ISATAP est décrit dans le draft Internet : « Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) » (draft-ietf-ngtrans-isatap- 0x.txt) 6to4 Technologie daffectation et de tunelling automatique qui est utilisé pour fournir une connectivité unicast entre hôtes IPv6 au travers de lIntranet IPv4 (RFC 3056) Pour plus dinformation à propos dISATAP et de 6to4, on peut consulter avec profit le livre blanc : « IPv6/IPv4 Coexistence and Migration » (http://www.microsoft.com/windows.netserver/technologies/ipv6/ipv6coexist. mspx)http://www.microsoft.com/windows.netserver/technologies/ipv6/ipv6coexist. mspx

23 23 NAT Traversal Pour une connectivité IPv6 au travers de lInternet IPv4, 6to4 est la méthode privilégiée daffectation dadresse et de tunelling Toutefois, 6to4 dépend de laffectation dune adresse publique IP à un ordinateur connecté à un réseau privé qui fonctionne comme un routeur 6to4 Le protocole IPv6 pour Windows XP et Windows Server 2003 peut être utilisé comme routeur 6to4 automatiquement en mettant en service lInternet Connecion Sharing (ICS) ou manuellement Malheureusement il reste quelques obstacles Peu des NAT utilisés aujourdhui pour connecter la maison ou de petites entreprises disposent déjà dune possibilité de routage 6to4 Il peut y avoir plusieurs NAT à traverser ; dans un tel cas, 6to4 ne fonctionne pas Le protocole utilisé par 6to4 est le protocole 41 ; or la plupart des NAT ne permettent que de retransmettre le trafic TCP ou UDP ; si ce type de trafic est ignoré par le NAT, il sera ignoré et donc non retransmis

24 24 NAT Traversal Pour adresser les besoins daffectation dadresses et de tunelling qui fonctionne aussi pour les systèmes hôtes situés à travers des NAT qui ne peuvent aussi être des routeurs 6to4, Microsoft travaille avec lIETF pour définir Teredo également connu sous le nom de NAT Traversal Teredo est défini par le draft « Teredo: Tunneling IPv6 over UDP through NATs » (draft-ietf-ngtrans-shipworm-0x.txt, Teredo fonctionne en affectant des adresses globales IPv6 qui sont fondées sur ladresse publique IPv4 de linterface NAT qui est connectée à lInternet et en encapsulant les paquets IPv4 dans, à la fois, une en-tête IPv4 et une en-tête UDP En utilisant à la fois des en-têtes IPv4 et UDP, la plupart des NAT peuvent traduire le trafic Teredo Pour plus dinformation du Teredo, consulter le livre blanc « Teredo Overview » (http://www.microsoft.com/windowsxp/pro/techinfo/administra tion/p2p/overview.asp)http://www.microsoft.com/windowsxp/pro/techinfo/administra tion/p2p/overview.asp

25 25 v6 Service Teredo : NAT Traversal NAT Envoi de la demande de service, obtention de ladresse IPv6 (ex : XX:IPv4:port::/64) 1 Envoi dune « bulle » Teredo vers ladresse de destination pour ouvrir la correspondance NAT 2 Envoi de la « bulle » Teredo au relais pour délivrance à la destination 3 Le futur trafic peut être envoyé directement aux nœuds 5 Machine A XX::9D01:101:460:XX Machine C XX::AC01:101:464:XX NAT La destination envoie alors sa propre « bulle » Teredo 4

26 26 Résolution de noms et PNRP Pour permettre la communication entre des pairs, ceux-ci doivent être capables de découvrir la présence des autres et den résoudre les emplacements réseau (adresses, protocoles, ports) à partir de leurs noms ou dautres types didentificateurs et tout ceci sans recourir au DNS Lenvironnement Windows Peer-to-Peer résout ce problème en utilisant un mécanisme qui a les attributs suivants : Résolution des noms distribuée et sans serveur Comme en environnement DNS, la liste complète des noms des ordinateurs est stockée dans le « nuage » Contrairement au DNS, il ny a pas de serveur pour fournir la résolution des noms ; chaque pair stocke une portion de la liste dans son cache et peut se référer aux autres pairs en cas de besoin (il peut toutefois y avoir un nœud damorçage – seed node – pour faciliter linitialisation mais cela nest pas obligatoire)

27 27 Résolution de noms et PNRP Utilisation didentificateurs (ID) à la place de noms Plutôt que dutiliser un nom comme un FQDN en environnement DNS, les ID sont utilisés pour identifier les pairs. Les ID sont juste des nombres et ne sont donc pas sujets à des problèmes de langue ou de marque déposée… Utilisation de plusieurs ID Chaque calculateur, utilisateur, groupe, périphérique, service ou autre type de pair peut avoir son propre peer ID Possibilité dévoluer vers un très grand nombre dID La liste des ID qui est distribuée parmi les pairs utilise un cache à plusieurs niveaux et un système de référence qui permet au mécanisme de résolution de noms dévoluer jusquà plusieurs milliards dID tout en requerrant des besoins minimums en ressources sur chacun des nœuds

28 28 Résolution de noms et PNRP Le protocole utilisé pour envoyer des messages de résolution de noms et de découverte des pairs est appelé Peer Name Resolution Protocol PNRP utilise plusieurs types de « nuages »; un nuage est un groupement de machines qui utilisent des adresses dans un périmètre spécifique (scope) Un périmètre spécifique est une zone du réseau sur laquelle ladresse est unique Les nuages PNRP sont fondés sur les address scopes des adresses IPv6 Il y a 3 types de nuages Le nuage global (global cloud) qui correspond au périmètre dadressage global dIPv6 et représente tous les calculateurs de lInternet IPv6 ; il ny a quun seul nuage global Le nuage spécifique au site correspond au périmètre dadressage IPv6 du site (site-local adresses) ; il peut y avoir plusieurs nuages spécifiques au site Le nuage du lien local correspond au périmètre dadressage IPv6 du lien local (link-local addresses) Un nuage de type « lien local » correspond a un lien spécifique, typiquement le même que le sous-réseau local Il peut y avoir plusieurs nuages de type « lien local »

29 29 Noms et PNRP ID Un nom de pair est un point terminal pour la communication, cest-à- dire une machine, un utilisateur, un groupe, des services, etc. En fait nimporte quoi pour lequel on a besoin dune résolution en adresse IPv6 Les noms de pairs peuvent être enregistrés de manière sécurisée ou non sécurisée Non sécurisé : chaîne de caractère qui peut être sujette au spoofing ou pour laquelle nimporte qui peut enregistrer un nom en double Sécurisé : enregistré uniquement par le propriétaire et qui est protégé par un certificat et une signature numérique

30 30 Noms et PNRP ID Les PNRP ID sont définis sur 256 bits et ont la composition suivante : 128 bits de poids fort : P2P ID, hash du nom de pair affecté au point terminal Format : Authority, Classifier Pour les noms sécurisés, Authority est le hash (SHA) de la clé publique du nom de pair en hexadécimal Pour les noms sécurisés, Authority est le caractère « 0 » Classifier est une chaîne de caractère qui identifie lapplication et qui peut être nimporte quelle chaîne Unicode de jusquà 150 caractères de long 128 bits de poids faible : utilisés pour la localisation du service, nombre généré qui identifie de façon unique les différentes instances du même P2P ID dans le même nuage Les combinaisons 256 bits des P2P ID et des emplacements de service permettent à plusieurs PNRP ID dêtre enregistrés pour la même machine

31 31 Noms et PNRP ID Pour chaque nuage, chaque nœud pair gère un cache de PNRP ID qui comprend à la fois ses propres PNRP ID ainsi que des entrées cachées au fur et à mesure Lensemble complet des PNRP ID situés sur tous les nœuds pairs dans un nuage comprend un table de hash distribuée Il est possible davoir des entrées pour un PNRP ID situé sur plusieurs pairs Chaque entée dans le cache PNRP contient Le PNRP ID Une adresse de pair certifiée (CPA – Certified Pair Address) Ladresse IPv6 du nœud denregistrement Le CPA est un certificat auto-signé qui fournit une protection dauthentification pour le PNRP ID et contient les informations de point terminal pour lapplication (adresses, numéros de protocole, numéros de port) Le processus de résolution de nom consiste donc en la résolution dun PNRP ID en CPA ; une fois le CPA obtenu, la communication entre les points terminaux peut commencer

32 32 Résolution des noms PNRP Quand un pair veut faire correspondre un nom de pair et son adresse, son protocole et son numéro de port, il construit le P2P ID en fonction du nom de pair Le pair examine les entrées dans son propre cache Sil trouve le P2P ID en question, le pair envoie une requête PNRP au pair concerné et attend une réponse Ceci permet dassurer que le nœud pair vers lequel on cherche à communiquer est bien actif Sil ne le trouve pas, le pair envoie une requête PNRP vers le pair qui correspond à lentrée dont P2P ID est le plus proche du P2P ID à résoudre Le nœud qui reçoit cette requête regarde dans son propre cache ; si lentrée y est trouvée, il transfère le requête au nœud concerné et ce nœud envoie une réponse vers le nœud requérant en suivant le chemin de la requête Si lentrée nest pas trouvée, le nœud qui a reçu la requête envoie un message PNRP vers le pair qui correspond à lentrée dont le P2P ID est le plus proche du P2P ID à résoudre et ainsi de suite, jusquà ce que lon trouve le bon pair

33 33 Simple résolution de nom Créer un identifier et se connecter au nuage transmet la requête au voisin le plus proche de ne connaît pas la réponse, il rejette donc la requête de transmet la requête au prochain plus proche voisin de transmet la requête à envoie une réponse authoritative le long du chemin de la requête

34 34 Simple résolution de nom

35 35 Simple résolution de nom Pour éviter les boucles dans le transfert des messages de requêtes PNRP, le message contient la liste des pairs qui ont déjà transmis la requête en question Alors que le message de requête PNRP est transmis, son contenu est utilisé pour peupler les caches des nœuds qui le transmettent Quand la réponse est envoyée à travers le chemin de retour, son contenu est également utilisé pour peupler les caches des nœuds traversés

36 36 Gestion du cache à plusieurs niveaux Afin de permettre de garder une taille raisonnable au caches PNRP, les nœuds pairs utilisent un cache à plusieurs niveaux, chaque niveau contenant un nombre maximum dentrées Chaque niveau du cache représente n/10 m (0m

37 37 Gestion du cache à plusieurs niveaux Ce mécanisme permet la création dune table de hash distribuée pour laquelle un PNRP ID arbitraire peut être résolu en transmettant les messages de requête PNRP au pair le plus proche jusquà ce que lon trouve un pair dont le CPA corresponde Lexemple suivant montre un cache à plusieurs niveaux pour un espace de 1000 entrées où chaque niveau représente n/10 m (0m<3) (1000, 100, 10) de lespace total dID et ne peut stocker que 4 entrées

38 38 Niveau 0 (haut) Niveau 1 Niveau 2 (bas) Min ID = 0 Max ID = 999 Cache dans N 1000 My ID = 249 [10, 99] (10 %) [0, 9] (1 %) [100, 999] (100 %) [Distance depuis my ID] (% de N)

39 39 Initialisation du cache PNRP Pour initialiser le cache PNRP quand un nœud pair démarre, on peut utiliser lune des méthodes suivantes : Entrées persistantes dans le cache : des entrées précédentes étaient présentes quand le nœud a été arrêté et sont chargées depuis le disque Nœuds damorçage PNRP : PNRP permet aux administrateurs de spécifier des adresses ou des noms DNS qui contiennent les CPA des participants au nuage Simple Service Discovery Protocol : les nœuds PNRP doivent senregistrer eux-mêmes en utilisant le protocole Universal Plug & Play SSDP ; un nœud peut utiliser le message SSDP MSearch pour localiser les nœuds SSDP proches

40 40 Graphe Un graphe de pairs est un ensemble de nœuds qui sont connectés entre eux pour former un réseau de nœuds couplés dans le but de propager des données sous la forme denregistrements ou de flux de données point à point La construction de ce graphe est fondé sur le mécanisme dirrigation (flooding) Ce mécanisme est le processus par lequel les enregistrements sont propagés à tous les utilisateurs connectés à un graphe Le protocole utilisé effectue les opérations suivantes : Propagation de laddition des nouveaux enregistrements à tous les nœuds du graphe Propagation des mises à jours des enregistrements modifiés à tous les nœuds du graphe Propagation des suppressions des enregistrements supprimés à tous les nœuds du graphe Pour effectuer ces opérations, chaque enregistrement est identifié par un GUID, a un numéro de version croissante (ou un numéro de séquence) et est qualifié par un age ou un statut Un processus de synchronisation sassure que les pairs ont tous les mêmes ensembles denregistrement

41 41 Graphe Un graphe a les propriétés suivantes : Il est connecté : il y a un chemin entre nimporte quelle paire de nœuds Il a un petit diamètre : il y a un nombre relativement bas de sauts entre les nœuds situés sur le pourtour du graphe (afin de permettre des propagations rapides) Il est robuste : le graphe reste connecté même si certains nœuds ou certaines connexions disparaissent Un graphe est construit en se fondant sur la connexion des nœuds voisins (un voisin est un nœud sur le graphe qui est à la distance de un saut, cest-à- dire connecté directement par une connexion TCP) Un node ID est un nombre aléatoire quun nœud du graphe choisit quand il se connecte au graphe Le node ID doit être unique au travers du graphe Un graphe est identifié par une signature du graphe qui est le plus petit node ID de tous les nœuds connectés au graphe Cette signature est utilisée pour détecter les cassures dans le graphe (partitions)

42 42 La maintenance du graphe Le protocole dirrigation définit comment circule linformation dans le graphe Le protocole de maintenance du graphe définit comment le groupe évolue pour maintenir une connectivité robuste et un diamètre réduit Un procédure de signature calcule la signature du groupe ; si le groupe subit une partition, chacune des partitions aura une signature différente Ceci permet de détecter si deux ou plusieurs partitions ont besoin dêtre réparées Des nœuds désignés aléatoirement dans le graphe (appelés contacts) gardent la trace des enregistrements de signature Une procédure de reconnexion permet aux nœuds détablir les connexions appropriées Une procédure de déconnexion permet aux nœuds de quitter le graphe sans y créer un trou

43 43 La maintenance du graphe Quand de linformation est envoyée dans le graphe, un nœud qui a plusieurs connexions recevra plusieurs copies de cette information Pour décider quelles connexions garder et lesquelles supprimer, un nœud évalue linformation et calcule un index bidirectionnel qui est utilisé pour indiquer lutilité de linformation qui est envoyée entre des pairs connectés donnés Cet index a une valeur faible quand linformation envoyée au travers de la connexion a été déjà reçue et na donc pas dutilité De manière permanente, en fonction de la valeur courante de lindex et de linformation qui est reçue pendant le processus dirrigation, les nœuds pairs font des ajustements dans la connexion avec les nœuds voisins Les connexions sont créées et supprimées afin de permettre la convergence du graphe vers une topologie optimale pour le trafic courant

44 44 Exemple de graphe Recherche dun nom, si non trouvé, lenregistrer 1 2 La deuxième recherche trouvera le nom et se connectera 3 Un noeud peut « irriguer » de données tous les autres nœuds du graphe 4 Les données dirrigation atteindront chaque nœud plusieurs fois 5 Les nœuds calculent un utility index 6 La forme finale est fondée sur la topologie et la bande passante

45 45 Évolution du graphe Connexion à un graphe Quand il se connecte initialement à un graphe, un nœud se connecte à un nœud qui est déjà connecté au graphe Ce nœud détermine ladresse du nœud déjà connecté au graphe par lune quelconque des méthodes permettant de résoudre ladresse IP (DNS, PNRP) Si le nœud sélectionné pour cette connexion présente moins que le maximum de connexions à ses voisins, celui-ci acceptera la connexion Dans le cas contraire (il a déjà atteint son maximum de nombre de connexions), il enverra une réponse de rejet contenant une liste de référence (la liste des autres nœuds du graphe) Le nœud qui tente de se connecter et qui reçoit une réponse de rejet, choisira alors aléatoirement un autre nœud dans liste et tentera de sy connecter Le processus pour choisir un nouveau voisin après sêtre connecté au graphe est le même (un message de rejet contient une liste de référence)

46 46 Évolution du graphe Déconnection dun graphe Quand un nœud se déconnecte dun graphe, il envoie un message de déconnexion Ceci peut potentiellement créer une partition du graphe Le message de déconnexion contient une liste de référence contenant tous les voisins excepté le nœud qui est en cours de déconnexion Quand un nœud reçoit un message de déconnexion, il doit essayer de se reconnecter à un pair de la liste de référence

47 47 Évolution du graphe Détection et réparation dune partition du graphe Au fur et à mesure des connexions et des déconnexions du graphe des partitions peuvent survenir Pour chaque graphe, il y a une signature et un ou plusieurs contacts Le nombre de contacts pour le graphe est proportionnel à la taille du graphe Les pairs peuvent appartenir à plusieurs graphes Les informations de contact et de signature sont envoyées à tous les nœuds du graphe et ces informations sont rafraîchies régulièrement Si ces informations deviennent obsolètes, une partition a eu lieu Dans ce cas, on tente de communiquer avec le nœud contact ; en cas de succès, on tente de reconnecter le graphe

48 48 Évolution du graphe La détection du partitionnement du graphe est fondée sur lexpiration de lenregistrement signature La réparation de la partition est fondée sur les tentatives de correction des inconsistances entre la signature du graphe de lenregistrement signature courant et celle contenue dans les enregistrements contact De nouvelles connexions sont tentées vers les contacts qui ont des signatures de graphe incorrectes dans leurs enregistrements signature Ces nouvelles connexions et la synchronisation des enregistrements du graphe assure la réparation du graphe Avec le temps, en utilisant ce processus de maintenance normal, on obtient automatiquement la topologie optimale

49 49 Exemple de partition et de réparation Un faible pourcentage de nœuds sont contacts 1 NoeudAdresse IP NœudAdresse IP Les données de contact sont envoyées au reste du graphe 2 Les informations de contact seront rafraîchies au cours du temps 3 Sil y a une partition les données de contact deviennent obsolètes 4 Si oui, reconnecter le graphe 6 Vérifier si le contact est encore actif XX::00… XX::00… XX::00… XX::00…01

50 50 Sécurité du graphe Les graphes sont intrinsèquement non sécurisés Le mécanisme de graphe fournir des moyens permettant dinstancier de la sécurité Contrôle qui peut se connecter et qui peut envoyer des données au graphe (authentification de connexion, confidentialité, intégrité) Fournit des moyens de chiffrer le trafic (confidentialité des enregistrements et des messages) Fournit des moyens de valider les données (intégrité des enregistrements et des messages) Le SDK est livré avec un Security Provider Pour plus dinformation, consulter le chapitre Adding Security for a Peer Graph (http://msdn.microsoft.com/)http://msdn.microsoft.com/

51 51 Groupement Le groupement est la combinaison de PNRP, du graphe des pairs et du graph security provider ; ce dernier permet La gestion des créances des membres dun groupe La publication sécurisée des enregistrements dans un groupe Un identifiant unique (le Group ID) identifie chacun des groupes Le Group ID est utilisé par les membres des groupes pour différencier les différents groupes dont la machine locale est membre ainsi que pour différencier les groupes entre les différents pairs Les groupes utilisent des noms de pairs sécurisés comme Pair IDs Pour les groupes sécurisés, la participation est restreinte à un ensemble dutilisateurs (les membres du groupe) Chaque membre dun groupe a une identité et des créances qui prouvent la propriété de lidentité du membre du groupe Chaque membre du groupe a aussi des créances pour prouver quil est membre dun groupe

52 52 Groupement Les informations sous la forme denregistrement sont envoyés à travers un groupe ; un enregistrement contient les informations suivantes Lidentité du membre qui publie linformation Les données prouvant la validité de lenregistrement Une durée de validité Les informations de lenregistrement La sécurité fournie par la notion de groupement est la combinaison des éléments suivants Les noms de pairs Les certificats des membres du groupes (GMC – Group Membership Certificates) Les rôles (membre et administrateur) La publication sécurisée Les politiques de sécurité Les connexions sécurisées

53 53 Groupement – noms de pairs Les noms de pairs sécurisés sont uniquement enregistrées par leur propriétaire et sont protégés par un chiffrement à base de clé publique Les noms de pairs non sécurisée peuvent navoir que 3 caractères Les noms de pairs sécurisés doivent avoir au moins 40 caractères Aucun nom de pair ne peut avoir plus de 191 caractères plus un caractère NULL Un nom de pair sécurisé est considéré comme la propriété du pair qui dispose de la clé privée La propriété peut être prouvée à travers le CPA qui est signé en utilisant la clé privée La sécurité dun groupe utilise un nom de pair pour identifier chacun des membres du groupe Les noms de pairs sont statistiquement uniques Le sécurité du groupe utilise également un nom de pair pour identifier un groupe Quand un groupe est créé, une nouvelle paire de clés privée/publique est créée sur laquelle est fondée le nom du pair Le membre qui détient la clé privée correspondant au nom de pair du groupe est le propriétaire de ce groupe

54 54 Groupement – GMC Afin de participer à un groupe, chacun des membres doit avoir les créances qui sont utilisées pour prouver lappartenance au groupe quand il effectue des opérations de groupe telles que se connecter à un groupe ou publier des enregistrements dans un groupe Ces créances sont des certificats X.509 connus sous le nom de Group Member Certificates (GMC) dont les caractéristiques sont les suivantes Le champ Subject est le nom du pair qui identifie le membre Pour quun certificat X.509 soit digne de confiance, la chaîne de certificats, doit amener à un certificat racine auto-signé dont lautorité doit être digne de confiance Pour quun GMC soit validé, il doit être un certificat « fils » descendant dune autorité digne de confiance Or, un groupe est identifié par le nom de pair du groupe ; ce nom de pair du groupe peut donc être digne de confiance et donc agir comme une autorité de confiance qui peut émettre des certificats X.509 Quand le nom de pair du groupe est utilisé comme autorité racine, il est facile de vérifier que la clé utilisée pour auto-signer le certificat racine est la clé privée du groupe Donc, toute chaîne de certificat qui conduit au certificat racine auto-signé du groupe est digne de confiance

55 55 Groupement – GMC Un tel certificat racine doit contenir : Sujet : nom de pair du groupe Émetteur : nom de pair du groupe Signature : utilisation de la clé privée du groupe On appelle un tel certificat un Group Root Certificate ou GRC Dans les certificats X.509, lautorité qui émet les certificats peut être déléguée aux sous-autorités dignes de confiance Il est possible de distribuer la charge démission des GMC des membres à dautres membres du groupes connus sous le nom dadministrateurs du groupe Ces administrateurs peuvent encore déléguer cette responsabilité si cela est autorisé par la politique de sécurité du groupe Comme dans tous les autres certificats X.509, les GMC ont une période de validité

56 56 Droits et rôles extensibles On donne au membres des groupes des rôles avec des droits Les droits déterminent ce que les membres peuvent faire Inviter les autres à joindre le groupe Créer, modifier ou supprimer les données du groupe Révoque les accès au groupe des autres personnes On peut définir de nouveaux droits et rôles La sécurité du groupe est intégrée au sein de Windows Membres, groupes et membres de groupes

57 57 Stockage répliqué Le stockage répliqué correspond à lensemble des enregistrements qui sont publiés de manière sécurisée et synchronisée entre tous les membres du groupe Les applications enregistrent un nouveau type denregistrement Les nouveaux enregistrements « irriguent » le graphe La communication (et le mécanisme de réplication) entre les nœuds utilise SSL afin dassurer le chiffrement et lintégrité des données Quand un nouveau membre rejoint un groupe, celui-ci reçoit automatiquement tous les enregistrements du groupe auquel il sattache Après la synchronisation initiale, les membres du groupe synchronisent périodiquement leur stockage répliqué afin dassurer que tous les membres du groupe ont une vue cohérente Après avoir joint le groupe, les applications peuvent enregistrer de nouveaux types denregistrement et commencer de publier de nouveaux types denregistrement en utilisant la sécurité du groupe Quand une application publie un nouveau enregistrement, les mécanismes de sécurité pour le groupe sont appliquées à lenregistrement et celui-ci est publié de manière sécurisée Les applications peuvent aussi enregistrer leur intérêt pour le fait de recevoir tous les enregistrements dun type donné (définition de handlers pour les enregistrements en question) Lenregistrement est validé et on invoque alors le handler correspondant afin de notifier lapplication et lui passer les données

58 58 Recherche distribuée Mécanisme pour rechercher les données dans un groupe Support de deux modèles de recherche différents Recherche locale du stockage qui nenvoie pas de requête Recherche distribuée qui envoie des requêtes aux voisins (ceci nest pas encore supporté dans la version actuelle) API commune pour le moteur de recherche Support dopérateurs logiques : AND, OR, NOT Le schéma standard permet la recherche par mot-clé

59 La mise à jour Peer-to-Peer pour Windows XP

60 60 IPv6 et Windows aujourdhui IPv6 Developer Edition for Windows XP Intégré au sein du système dexploitation, installation triviale Destiné aux développeurs dapplications, aux déploiements pilotes et aux enthousiastes Windows XP SP1 Toujours indiquée comme "Developer Preview" car nous ne voulions pas changer linterface graphique pour un Service Pack mais la pile IPv6 est prête pour un déploiement et supportée IPv6 Tech Preview for Windows 2000 Disponible sur le site Web MSDN depuis mai 2000 Destiné aux développeurs dapplications et aux premières expérimentation ; pas dévolution prévue

61 61 IPv6 et Windows aujourdhui Pile IPv6 Windows CE.NET 4.1 (disponible et supportée).NET Server Pile IPv6 utilisable en production Testée pour la taille et les besoins de lentreprise Pleinement supportée Comprend des services et des applications compatibles IPv6 Internet Explorer, RPC, telnet, ftp, etc. IIS, Windows Media Server, Terminal Server, ….NET Framework

62 62 Utiliser IPv6 avec Windows XP C:\> ipv6 install C:\> ipv6 if Affiche la liste des interfaces et des adresses C:\> ping6 ::1 Adresse de bouclage Documentation complète au sein de laide en ligne Rechercher « ipv6 », voir aussi les livres blancs Important : voir aussi netsh

63 63 CommandeRemarques IPv6 Arp arp –a arp –s arp -d - netsh interface ipv6 montre les voisins (ou ipv6 nc) - pas déquivalent netsh - netsh interface ipv6 delete neighbor (équivalent à ipv6 ncf dans les bêtas) dsquery subnetCommande SQL Server. SQL Server nest pas encore IPv6 fingerFonctionne tel quel ftpFonctionne tel quel getmacFonctionne tel quel (pas spécifique IPv4 ou v6) ipconfigUtiliser la commande netsh, ipconfig deviendra agnostique IPv6/4 pour.NET Server. nbtstatFonctionne tel quel (pas de WINS ou NETBIOS spécial avec IPv6) netsh dhcpPas de DHCP avec IPv6 netsh diagSpécifique IPv4, mais il est possible dutiliser simplement des commandes IPv6 telles que ping, telnet, netstat, etc. netsh interface ipnetsh interface ipv6 netsh interface portproxyEst une commande dinteropérabilité IPv6-IPv4 (genproxy avec les bêtas IPv6), fonctionne donc de la même façon netsh rasRRAS non encore disponible avec IPv6 netsh routingRRAS non encore disponible avec IPv6 netsh winsNexiste plus; pas de WINS avec IPv6 netstatFonctionne tel quel nslookupListe les enregistrement IPv6 AAAA ainsi que les enregistrements IPv4 A, mais DNS nutilise pas encore IPv6 comme transport pour la résolution des noms (disponible avec.NET Server). pingFonctionnera avec.NET Server ; en attendant utiliser ping6 routeUtiliser 'netsh interface ipv6 show routes (ou ipv6 rt' dans les bêtas); fonctionnera avec.NET Server telnetFonctionne tel quel tracertFonctionnera avec.NET Server ; utiliser tracert6 en attendant

64 64 Liste des fonctionnalités FonctionnalitéWin2K Tech PreviewWinXPWinXP SP1Win.NET Server IPv6 transportOuiOui (caché)Oui (GUI indique "Preview") Oui Winsock APIOui Command line UtilitiesOui IE/WinInet (except literals)Oui FTP ClientOui 6to4 node/routerOui TeredoNon Supprimé temporairement Persistent netsh configNon Oui (caché)Oui RPC (post-install reboot)NonOui DCOMNon [ignore IPv6]Non [mais IPv4 ok] Oui IPHLPAPINon [API de base ]Oui DNS AAAA records over IPv4Oui DNS AAAA records over IPv6Non Oui Dynamic DNSOui Multicast DNS (aka LLMNR)Non Oui (RC2) File and Print sharingNon Oui HTTP ServerNon Oui Media ServerNon Oui FTP ServerNon Oui, à confirmer clientNon Terminal ServerNon Active DirectoryNon SNMP/v4 MIBs, NetmonNonOui.NET FrameworkNon Oui (RC2)

65 65 La mise à jour Peer-to-Peer pour Windows XP Windows XP SP1 et Windows 2003 Server supportent IPv6 en standard Cette mise à jour permet le support du Peer-to-Peer en apportant les nouvelles fonctionnalités suivantes : Mise à jour de la pile IPv6 IPv6 Internet Connection Firewall (ICF) Fonctionne automatiquement – statefull filtering Peut être configuré en utilisant la commande netsh firewall Teredo Client Server Relay Teredo host-specific relay En téléchargement depuis nxppeer.asp nxppeer.asp

66 66 La mise à jour Peer-to-Peer pour Windows XP Les fonctionnalités Peer-to-Peer Network Address Translator traversal Améliorations de limplémentation dIPv6 permettant au trafic Peer-to-Peer de traverser la plupart des NAT Name resolution Support du protocole Peer Name Resolution Protocol (PNRP), un mécanisme de résolution de nom spécifique au Peer-to-Peer qui ne repose pas sur le Domain Name System (DNS) Graphing and grouping Le graphing maintient un ensemble de nœuds connectés et procure un mécanisme dirrigation (flooding) et de réplication de données à travers le graphe. Le grouping définit le modèle de sécurité pour créer et gérer des groupes Peer-to-Peer persistants Identity management Permet la création et la gestion didentités Peer-to-Peer

67 67 Résumé Microsoft Windows XP Peer-to-Peer SDK Solution universelle de NAT traversal Mécanisme de résolution de nom sécurisé et scalable Graphes permettant lauto-tuning et lauto-réparation Notion de security provider afin de permettre la création de groupes Stockage fiable et répliqué de messages Support dune recherche locale et distribuée Ces fonctionnalités Peer-to-Peer seront intégrées en standard avec la prochaine version de Visual Studio.NET Une seule expérience pour les développeurs

68 68 Références Windows et IPv6 : ault.mspx ault.mspx Introduction au Peer-to-Peer : p/p2p_intro.doc p/p2p_intro.doc IPv6 et mise à jour Windows XP : /columns/cableguy/cg0403.asp /columns/cableguy/cg0403.asp Téléchargement de la bêta du Peer-to-Peer pour Windows XP : et nxppeer.asp nxppeer.asp Teredo : p/Teredo_Overview.doc p/Teredo_Overview.doc

69 69 Informations complémentaires Microsoft IPv6 Technology Preview for Windows 2000 : pipv6.asp pipv6.asp Microsoft Research IPv6 : Windows CE.NET & IPv6 : /evaluation/features/ip6support.asp /evaluation/features/ip6support.asp Microsoft WindowsIPv6 : ogies/ipv6/default.mspx ogies/ipv6/default.mspx IPv6 Guide for Windows Sockets Applications : ary/en- us/winsock/winsock/ipv6_guide_for_windows_sockets_ applications_2.asp ary/en- us/winsock/winsock/ipv6_guide_for_windows_sockets_ applications_2.asp

70 70 Informations complémentaires Microsoft's Objectives for IP version 6 : ies/ipv6/ipv6.mspx ies/ipv6/ipv6.mspx Introduction to IP Version 6 : IPv6/IPv4 Coexistence and Migration : -IPv4.doc -IPv4.doc IPv6 Configurations and Test Lab : configs.doc configs.doc

71 Démonstration : 3 degrees

72 72 3 degrees

73 73 3 degrees

74 74 3 degrees : aperçu de la solution Mariage de Messenger & du Peer-to-Peer ProblèmeTechnologie IdentitéMessenger / Passport Transport multipointGraphe P2P Stockage synchroniséGraphe P2P Système de fichiers groupeMoteur de transfert de fichier Découverte du groupe PNRP (Peer Name Resolution Protocol) Présence dans le groupeFlux de type Messenger Presence InvitationsInvitations aux sessions Messenger Connectivité de bout en boutIPV6/Teredo SécuritéSSP fondé sur des secrets partagés

75 75 3 degrees : architecture

76 76 Questions et Réponses


Télécharger ppt "Bernard Ourghanlian – Chief Technology & Security Officer Microsoft Le Peer-to-Peer IPv6 en environnement."

Présentations similaires


Annonces Google