Bernard Ourghanlian - PowerPoint PPT Presentation

About This Presentation
Title:

Bernard Ourghanlian

Description:

Le Peer-to-Peer IPv6 en environnement Windows Bernard Ourghanlian bourghan_at_microsoft.com Chief Technology & Security Officer Microsoft France – PowerPoint PPT presentation

Number of Views:78
Avg rating:3.0/5.0
Slides: 49
Provided by: shawnas4
Learn more at: http://www.fr.ipv6tf.org
Category:

less

Transcript and Presenter's Notes

Title: Bernard Ourghanlian


1
Bernard Ourghanlian bourghan_at_microsoft.com
Chief Technology Security OfficerMicrosoft
France
  • Le Peer-to-Peer IPv6 en environnement Windows

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
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
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
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
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
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
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
Scénario 1 Jeu à plusieurs (Exemple Age of
Empires II en Direct Play)
P1
P2
LAN Maison
LAN Maison
Internet
NAT
NAT
P3
  • 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

10
Scénario 2 Peer-To-Peer(Exemple RTC ou
récupération de fichiers)
P1
P2
LAN Maison
LAN Maison
Internet
NAT
NAT
  • 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

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

12
2003 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
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
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
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
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
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
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
Larchitecture de limplémentation Peer-to-Peer
en environnement Windows
20
Les Technologies clés
  • NAT Traversal
  • Résolution des noms
  • Graphes
  • Groupes et groupements
  • Stockage répliqué
  • Recherche distribuée

21
Les mécanismes du NAT
Machine B 10.1.1.2
Machine A 10.1.1.1
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/techno
    logies/ipv6/ipv6coexist.mspx)

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
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,
    http//www.ietf.org/html.charters/ngtrans-charter.
    html)
  • 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/a
    dministration/p2p/overview.asp)

25
Teredo NAT Traversal
Machine A XX9D01101460XX
Machine C XXAC01101464XX
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
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
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
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
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
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
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
Simple résolution de nom
34
Simple résolution de nom
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
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/10m
    (0mltlog10n) de lespace 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 quun 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
    lordre de log10(nombre total de PNRP ID dans le
    nuage)
  • Avec 100 millions de PNRP ID, on na 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

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/10m (0mlt3) (1000, 100, 10)
    de lespace total dID et ne peut stocker que 4
    entrées

38
Cache dans N1000
Distance depuis my ID ( de N)
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
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
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
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
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
Exemple de graphe
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
É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
É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
É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
Exemple de partition et de réparation
Nœud Adresse IP


350 XX0000
800 XX0001
Noeud Adresse IP


350 XX0000
800 XX0001
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/)

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
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
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
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
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
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
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
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
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
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
Utiliser IPv6 avec Windows XP
  • C\gt ipv6 install
  • C\gt ipv6 if
  • Affiche la liste des interfaces et des adresses
  • C\gt ping6 1
  • Adresse de bouclage
  • http//anyIPv6server.com
  • Documentation complète au sein de laide en ligne
  • Rechercher  ipv6 , voir aussi les livres blancs
  • Important voir aussi netsh

63
Commande Remarques 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 subnet Commande SQL Server. SQL Server nest pas encore IPv6
finger Fonctionne tel quel
ftp Fonctionne tel quel
getmac Fonctionne tel quel (pas spécifique IPv4 ou v6)
ipconfig Utiliser la commande netsh, ipconfig deviendra agnostique IPv6/4 pour .NET Server.
nbtstat Fonctionne tel quel (pas de WINS ou NETBIOS spécial avec IPv6)
netsh dhcp Pas de DHCP avec IPv6
netsh diag Spécifique IPv4, mais il est possible dutiliser simplement des commandes IPv6 telles que ping, telnet, netstat, etc.
netsh interface ip netsh interface ipv6
netsh interface portproxy Est une commande dinteropérabilité IPv6-IPv4 (genproxy avec les bêtas IPv6), fonctionne donc de la même façon
netsh ras RRAS non encore disponible avec IPv6
netsh routing RRAS non encore disponible avec IPv6
netsh wins Nexiste plus pas de WINS avec IPv6
netstat Fonctionne tel quel
nslookup Liste 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).
ping Fonctionnera avec .NET Server en attendant utiliser ping6
route Utiliser 'netsh interface ipv6 show routes (ou ipv6 rt' dans les bêtas) fonctionnera avec .NET Server
telnet Fonctionne tel quel
tracert Fonctionnera avec .NET Server utiliser tracert6 en attendant
64
Liste des fonctionnalités
Fonctionnalité Win2K Tech Preview WinXP WinXP SP1 Win .NET Server
IPv6 transport Oui Oui (caché) Oui (GUI indique "Preview") Oui
Winsock API Oui Oui Oui Oui
Command line Utilities Oui Oui Oui Oui
IE/WinInet (except literals) Oui Oui Oui  Oui
FTP Client Oui Oui Oui Oui
6to4 node/router Oui Oui Oui Oui
Teredo Non Non Supprimé temporairement Supprimé temporairement
Persistent netsh config Non Non Oui (caché) Oui
RPC (post-install reboot) Non Oui Oui Oui
DCOM Non ignore IPv6 Non mais IPv4 ok Non mais IPv4 ok Oui
IPHLPAPI Non API de base Oui Oui Oui
DNS AAAA records over IPv4 Oui Oui Oui Oui
DNS AAAA records over IPv6 Non Non Non Oui
Dynamic DNS Oui Oui Oui Oui
Multicast DNS (aka LLMNR) Non Non Non Oui (RC2)
File and Print sharing Non Non Non Oui
HTTP Server Non Non Non Oui
Media Server Non Non Non Oui
FTP Server Non Non Non Oui, à confirmer
E-mail client Non Non Non Non
Terminal Server Non Non Non Non
Active Directory Non Non Non Non
SNMP/v4 MIBs, Netmon Non Oui Oui Oui
.NET Framework Non Non Non Oui (RC2)
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

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
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
Références
  • Windows et IPv6 http//www.microsoft.com/windows
    server2003/technologies/ipv6/default.mspx
  • Introduction au Peer-to-Peer http//www.microsof
    t.com/windowsxp/pro/techinfo/administration/p2p/p2
    p_intro.doc
  • IPv6 et mise à jour Windows XP
    http//www.microsoft.com/technet/treeview/default.
    asp?url/technet/columns/cableguy/cg0403.asp
  • Téléchargement de la bêta du Peer-to-Peer pour
    Windows XP http//www.microsoft.com/windowsxp/p2
    p/ et http//msdn.microsoft.com/library/default.as
    p?url/downloads/list/winxppeer.asp
  • Teredo http//www.microsoft.com/windowsxp/pro/te
    chinfo/administration/p2p/Teredo_Overview.doc

69
Informations complémentaires
  • Microsoft IPv6 Technology Preview for Windows
    2000 http//msdn.microsoft.com/downloads/sdks/pl
    atform/tpipv6.asp
  • Microsoft Research IPv6 http//research.microsof
    t.com/msripv6/
  • Windows CE .NET IPv6 http//www.microsoft.com/
    windows/Embedded/ce.NET/evaluation/features/ip6sup
    port.asp
  • Microsoft WindowsIPv6 http//www.microsoft.com/
    windows.netserver/technologies/ipv6/default.mspx
  • IPv6 Guide for Windows Sockets Applications
    http//msdn.microsoft.com/library/default.asp?url
    /library/en-us/winsock/winsock/ipv6_guide_for_wind
    ows_sockets_applications_2.asp

70
Informations complémentaires
  • Microsoft's Objectives for IP version 6
    http//www.microsoft.com/windows.netserver/technol
    ogies/ipv6/ipv6.mspx
  • Introduction to IP Version 6 http//www.microsof
    t.com/windows.netserver/docs/IPv6.doc
  • IPv6/IPv4 Coexistence and Migration
    http//www.microsoft.com/windows.netserver/docs/IP
    v6-IPv4.doc
  • IPv6 Configurations and Test Lab
    http//www.microsoft.com/windows.netserver/docs/IP
    v6configs.doc

71
  • Démonstration 3 degrees

72
3 degrees
  • http//www.threedegrees.com/

73
3 degrees
74
3 degrees aperçu de la solution
Mariage de Messenger du Peer-to-Peer
Problème Technologie
Identité Messenger / Passport
Transport multipoint Graphe P2P
Stockage synchronisé Graphe P2P
Système de fichiers groupe Moteur de transfert de fichier
Dé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
75
3 degrees architecture
76
Questions et Réponses
Write a Comment
User Comments (0)
About PowerShow.com