48
Bernard Ourghanlian – bourghan @ microsoft.com Chief Technology & Security Officer Microsoft France Le Peer-to-Peer IPv6 en environnement Windows

Bernard Ourghanlian – [email protected] Chief Technology & Security Officer Microsoft [email protected] Le Peer-to-Peer IPv6 en environnement

Embed Size (px)

Citation preview

Page 1: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

Bernard Ourghanlian – [email protected] Chief Technology & Security OfficerMicrosoft France

Le Peer-to-Peer IPv6 en environnement Windows

Page 2: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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

Page 3: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

3

Le Peer-to-Peer

• Le Web correspond fondamentalement un modèle de type client-serveur : l’utilisateur 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 qu’un 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

Page 4: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

5

Le panorama du Peer-To-Peer

• Communications temps réel (RTC)• Messagerie instantanée, voix, vidéo

• Cela existe aujourd’hui mais la plupart des programmes existants ainsi que leurs protocoles de communication reposent sur l’existence de serveurs

• Jeu temps réel / collaboration• La plupart des environnements de jeu distribués reposent sur

l’existence d’un site Web permettant aux joueurs de s’affronter• Collaboration

• Espace de travail projet permettant d’atteindre un objectif commun• Partage de fichiers avec d’autres personnes

• Ce type de partage existe mais n’est pas toujours aisé car les adresses des machines d’extré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 l’existence de gros serveurs

• Distribution de mise à jour de produits• C’est une méthode efficace pour distribuer les mises à jour de logiciels

Page 5: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

6

Le panorama du Peer-To-Peer

• Traitement distribué• Dissection et distribution d’une 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 l’Internet

• Nouveaux protocoles pour l’Internet• Historiquement, l’Internet a été conçu pour permettre

une connectivité de bout en bout ; force est de constater qu’en 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 l’Internet à ses principes de conception originels

Page 6: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

7

Pourquoi du nouveau ?

• Limitation du nombre d’adresses 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

l’infrastructure en fonction de ses besoins

Page 7: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

10

Scénario 2: Peer-To-Peer(Exemple: RTC ou récupération de fichiers)

• Avec NAT• Besoin d’apprendre l’adresse « en dehors du NAT »• Fournir cette adresse à l’application « paire »• Besoin de disposer d’une application « compatible NAT »• On peut avoir besoin d’un serveurs d’enregistrement tiers

pour faciliter la recherche des pairs

LANLANMaisonMaison InternetInternet

P1P1

NATNAT LANLANMaisonMaison

P2P2

NATNAT

Page 8: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

13

Les principes fondateurs d’une solution Peer-to-Peer

• L’objectif long terme de la mise à disposition d’un environnement Peer-to-Peer est le suivant• Permettre aux utilisateurs de communiquer et de

partager de l’information de manière sécurisée avec d’autres 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 l’environnement Peer-to-Peer est la mise à disposition d’un 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 d’IPv6 !

Page 9: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

14

Les principes fondateurs du design d’une solution Peer-to-Peer• Sécurité : robustesse en face d’une défaillance ou

d’une attaque• Scalable : capable d’évoluer depuis des réseaux

ad hoc jusqu’à l’Internet• Sans serveur : pas de point de défaillance central• Self-tuning : s’adapte à 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

Page 10: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

15

Les problèmes techniques à résoudre en environnement Peer-to-Peer• Le DNS

• C’est un autre point de différence majeur entre l’environnement 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 n’ont pas de ressources à partager et ne répondent donc pas aux demandes de ressources

Page 11: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

16

Les problèmes techniques à résoudre en environnement Peer-to-Peer

• Les participants d’un environnement Peer-to-Peer ont, par contre, des ressources à partager tout en continuant cependant d’avoir une connectivité temporaire• Ils peuvent utiliser un DNS dynamique mais il

n’y a que peu de serveurs DNS sur l’Internet 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)

Page 12: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

17

Les problèmes techniques à résoudre en environnement Peer-to-Peer• La sécurité

• Dans un environnement Peer-to-Peer, il n’y 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 l’authentification ou l’autorisation• Dans cet environnement, les pairs doivent procurer leur

propre authentification• Dans l’environnement Windows Peer-to-Peer,

l’authentification 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

Page 13: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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 l’authentification et fournit de l’information sur l’entité « pair »

• Comme l’authentification X.509, l’authentification en environnement Peer-to-Peer repose sur une chaîne de certificats qui permettent de remonter à une clé publique digne de confiance

Page 14: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

19

L’architecture de l’implémentation Peer-to-Peer en environnement Windows

Page 15: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

20

Les Technologies clés

• NAT Traversal• Résolution des noms• Graphes• Groupes et groupements• Stockage répliqué• Recherche distribuée

Page 16: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

22

NAT Traversal

• L’implémentation d’IPv6 sur Windows admet essentiellement deux technologies de transition • Intra-Site Tunnel Addressing Protocol (ISATAP)

• Technologie d’affectation et de tunneling automatique qui est utilisé pour fournir une connectivité unicast entre hôtes IPv6 au travers d’un 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 d’affectation et de tunelling automatique qui est

utilisé pour fournir une connectivité unicast entre hôtes IPv6 au travers de l’Intranet IPv4 (RFC 3056)

• Pour plus d’information à propos d’ISATAP 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)

Page 17: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

23

NAT Traversal

• Pour une connectivité IPv6 au travers de l’Internet IPv4, 6to4 est la méthode privilégiée d’affectation d’adresse et de tunelling

• Toutefois, 6to4 dépend de l’affectation d’une 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 l’Internet Connecion Sharing (ICS) ou manuellement

• Malheureusement il reste quelques obstacles • Peu des NAT utilisés aujourd’hui pour connecter la maison ou

de petites entreprises disposent déjà d’une 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

Page 18: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

24

NAT Traversal

• Pour adresser les besoins d’affectation d’adresses 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 l’IETF 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, http://www.ietf.org/html.charters/ngtrans-charter.html)

• Teredo fonctionne en affectant des adresses globales IPv6 qui sont fondées sur l’adresse publique IPv4 de l’interface NAT qui est connectée à l’Internet 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 d’information du Teredo, consulter le livre

blanc « Teredo Overview » (http://www.microsoft.com/windowsxp/pro/techinfo/administration/p2p/overview.asp)

Page 19: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

25

v6 Service

Teredo : NAT Traversal

157.1.1.1

NATNAT

Envoi de la demande de service, obtention de l’adresse IPv6 (ex : XX:IPv4:port::/64)

1

Envoi d’une « bulle » Teredo vers l’adresse 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 AXX::9D01:101:460:XX

Machine CXX::AC01:101:464:XX

172.1.1.1

NATNAT

La destination envoie alors sa propre « bulle » Teredo

4

Page 20: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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 d’en résoudre les emplacements réseau (adresses, protocoles, ports) à partir de leurs noms ou d’autres types d’identificateurs et tout ceci sans recourir au DNS

• L’environnement 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 n’y 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 d’amorçage – seed node – pour faciliter l’initialisation mais cela n’est pas obligatoire)

Page 21: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

27

Résolution de noms et PNRP

• Utilisation d’identificateurs (ID) à la place de noms• Plutôt que d’utiliser 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 d’ID

• 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 d’ID tout en requerrant des besoins minimums en ressources sur chacun des nœuds

Page 22: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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 l’adresse 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

d’adressage global d’IPv6 et représente tous les calculateurs de l’Internet IPv6 ; il n’y a qu’un seul nuage global

• Le nuage spécifique au site correspond au périmètre d’adressage 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 d’adressage 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 »

Page 23: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

29

Noms et PNRP ID

• Un nom de pair est un point terminal pour la communication, c’est-à-dire une machine, un utilisateur, un groupe, des services, etc.• En fait n’importe quoi pour lequel on a besoin d’une

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 n’importe 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

Page 24: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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

l’application et qui peut être n’importe 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

Page 25: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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• L’ensemble 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 d’avoir 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)• L’adresse IPv6 du nœud d’enregistrement

• Le CPA est un certificat auto-signé qui fournit une protection d’authentification pour le PNRP ID et contient les informations de point terminal pour l’application (adresses, numéros de protocole, numéros de port)

• Le processus de résolution de nom consiste donc en la résolution d’un PNRP ID en CPA ; une fois le CPA obtenu, la communication entre les points terminaux peut commencer

Page 26: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

33

Simple résolution de nom

200200

800800

450450

500500

350350

Créer un Créer un identifieridentifier et et se connecter au se connecter au nuagenuage

1

2 200 transmet la requête 200 transmet la requête au voisin le plus proche au voisin le plus proche de 800de 800

3 500 ne connaît pas la 500 ne connaît pas la réponse, il rejette donc la réponse, il rejette donc la requête de 200requête de 200

4 200 transmet la requête 200 transmet la requête au prochain plus proche au prochain plus proche voisin de 800voisin de 800

5 450 transmet la requête à 800450 transmet la requête à 8006 800 envoie une réponse 800 envoie une réponse

authoritativeauthoritative le long du le long du chemin de la requêtechemin de la requête

Page 27: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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 d’entrées• Chaque niveau du cache représente n/10m (0≤m<log10n) de

l’espace des PNRP ID (2256)• Le niveau le plus bas du cache contient les PNRP ID enregistrés

localement et les autres PNRP ID qui sont numériquement proches

• Lors qu’un niveau du cache est rempli avec un maximum de 20 entrées, on crée un nouveau niveau de cache

• Le nombre maximum de niveaux de cache est de l’ordre de log10(nombre total de PNRP ID dans le nuage)• Avec 100 millions de PNRP ID, on n’a pas plus de 8 =

log10(100 000 000) niveaux dans le cache et un nombre comparable de hops pour résoudre les PNRP ID lors de la résolution de nom

Page 28: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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 d’enregistrements ou de flux de données point à point

• La construction de ce graphe est fondé sur le mécanisme d’irrigation (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 l’addition 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 s’assure que les pairs ont tous les mêmes ensembles d’enregistrement

Page 29: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

41

Graphe

• Un graphe a les propriétés suivantes :• Il est connecté : il y a un chemin entre n’importe 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, c’est-à-dire connecté directement par une connexion TCP)

• Un node ID est un nombre aléatoire qu’un 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)

Page 30: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

42

La maintenance du graphe

• Le protocole d’irrigation définit comment circule l’information 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

Page 31: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

43

La maintenance du graphe

• Quand de l’information 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 l’information et calcule un index bidirectionnel qui est utilisé pour indiquer l’utilité de l’information qui est envoyée entre des pairs connectés donnés

• Cet index a une valeur faible quand l’information envoyée au travers de la connexion a été déjà reçue et n’a donc pas d’utilité

• De manière permanente, en fonction de la valeur courante de l’index et de l’information qui est reçue pendant le processus d’irrigation, 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

Page 32: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

44

Exemple de graphe

200200

800800

450450

500500

350350

Recherche d’un nom, Recherche d’un nom, si non trouvé, si non trouvé, l’enregistrerl’enregistrer

1

2 La deuxième recherche La deuxième recherche trouvera le nom et se trouvera le nom et se connecteraconnectera

3 Un noeud peut « irriguer » Un noeud peut « irriguer » de données tous les autres de données tous les autres nœuds du graphenœuds du graphe

4 Les données d’irrigation Les données d’irrigation atteindront chaque atteindront chaque nœud plusieurs foisnœud plusieurs fois

5 Les nœuds calculent un Les nœuds calculent un utility utility indexindex 6 La forme finale est fondée La forme finale est fondée

sur la topologie et la sur la topologie et la bande passantebande passante

Page 33: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

49

Exemple de partition et de réparation

200200

800800

450450

500500

350350

Un faible Un faible pourcentage de pourcentage de nœuds sont contactsnœuds sont contacts

1

Noeud

Adresse IP

Nœud Adresse IP

Les données de contact Les données de contact sont envoyées au reste sont envoyées au reste du graphedu graphe

2

Les informations de Les informations de contact seront contact seront rafraîchies au cours du rafraîchies au cours du tempstemps

3

S’il y a une partition les S’il y a une partition les données de contact données de contact deviennent obsolètesdeviennent obsolètes

4 Si oui, reconnecter le Si oui, reconnecter le graphegraphe

6

Vérifier si le contact est Vérifier si le contact est encore actifencore actif

5

350 XX::00…00350 XX::00…00

800 XX::00…01800 XX::00…01

350 XX::00…00350 XX::00…00

800 XX::00…01800 XX::00…01

Page 34: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

50

Sécurité du graphe

• Les graphes sont intrinsèquement non sécurisés• Le mécanisme de graphe fournir des moyens permettant

d’instancier 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 d’information, consulter le chapitre Adding

Security for a Peer Graph (http://msdn.microsoft.com/)

Page 35: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

57

Stockage répliqué

• Le stockage répliqué correspond à l’ensemble 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 d’enregistrement• Les nouveaux enregistrements « irriguent » le graphe

• La communication (et le mécanisme de réplication) entre les nœuds utilise SSL afin d’assurer le chiffrement et l’intégrité des données

• Quand un nouveau membre rejoint un groupe, celui-ci reçoit automatiquement tous les enregistrements du groupe auquel il s’attache• Après la synchronisation initiale, les membres du groupe

synchronisent périodiquement leur stockage répliqué afin d’assurer que tous les membres du groupe ont une vue cohérente

• Après avoir joint le groupe, les applications peuvent enregistrer de nouveaux types d’enregistrement et commencer de publier de nouveaux types d’enregistrement 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 à l’enregistrement 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 d’un type donné (définition de handlers pour les enregistrements en question)• L’enregistrement est validé et on invoque alors le handler

correspondant afin de notifier l’application et lui passer les données

Page 36: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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 n’envoie pas de

requête• Recherche distribuée qui envoie des requêtes aux

voisins (ceci n’est pas encore supporté dans la version actuelle)

• API commune pour le moteur de recherche• Support d’opérateurs logiques : AND, OR, NOT• Le schéma standard permet la recherche par mot-

clé

Page 37: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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

Page 38: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

60

IPv6 et Windows aujourd’hui

• IPv6 Developer Edition for Windows XP• Intégré au sein du système d’exploitation, installation

triviale• Destiné aux développeurs d’applications, aux

déploiements pilotes et aux enthousiastes• Windows XP SP1

• Toujours indiquée comme "Developer Preview" car nous ne voulions pas changer l’interface 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 d’applications et aux

premières expérimentation ; pas d’évolution prévue

Page 39: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

61

IPv6 et Windows aujourd’hui

• 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 l’entreprise• 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

Page 40: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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 http://msdn.microsoft.com/library/default.asp?url=/downloads/list/winxppeer.asp

Page 41: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

66

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

• Les fonctionnalités Peer-to-Peer• Network Address Translator traversal

• Améliorations de l’implémentation d’IPv6 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 d’irrigation (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 d’identités Peer-to-Peer

Page 42: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

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 l’auto-tuning et l’auto-réparation• Notion de security provider afin de permettre la

création de groupes• Stockage fiable et répliqué de messages• Support d’une 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

Page 43: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

Démonstration : 3 degrees

Page 44: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

72

3 degrees

• http://www.threedegrees.com/

Page 45: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

73

3 degrees

Page 46: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

74

3 degrees : aperçu de la solution

Mariage de Messenger & du Peer-to-Peer

Problème TechnologieIdentité Messenger / PassportTransport multipoint Graphe P2PStockage synchronisé Graphe P2PSystème de fichiers groupe Moteur de transfert de

fichierDécouverte du groupe PNRP (Peer Name Resolution

Protocol)

Présence dans le groupe Flux de type Messenger Presence

Invitations Invitations aux sessions Messenger

Connectivité de bout en bout

IPV6/Teredo

Sécurité SSP fondé sur des secrets partagés

Page 47: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

75

3 degrees : architecture

Music Mixthreedegrees

groups

threedegrees.exe

musicmix.exe

GFWLIB.DLL

Group Framework

Membership &Presence

Filesystem Record Store

ModuleFramework

AddingPeople/

InvitationsSSP

P2P

Graphing Discovery

IPv6

Teredo

Messenger

PresenceSession

Invite

Page 48: Bernard Ourghanlian – bourghan@microsoft.com Chief Technology & Security Officer Microsoft Francebourghan@microsoft.com Le Peer-to-Peer IPv6 en environnement

76

Questions et Réponses