Très bonne synthèse.

Saleem Batthi, sera en visite à Annecy au printemps 2013 pour une semaine. Au 
cas ou des personnes voudrait avoir des infos de première main,, il fera un 
talk sur ILNP. 

Kv
Le 10 nov. 2012 à 10:58, Stephane Bortzmeyer <bortzme...@nic.fr> a écrit :

> Je vous ai déjà embêté plusieurs fois avec les protocoles réseaux qui
> séparent l'identificateur d'une machine de son localisateur
> (contrairement à l'adresse IP actuelle, qui mélange les deux). Il
> existe trois de ces protocoles qui sont normalisés ou proches de
> l'être, un qui fonctionne dans les routeurs, en tunnelant le trafic
> (LISP, dont les RFC sont prêts mais bloqués par deux drafts
> auxiliaires pas encore publiés). Et deux qui ne fonctionnent que dans
> les machines terminales (pas besoin de toucher à votre infra) et sont
> considérés par leurs promoteurs comme les seuls « vrais » protocoles
> de séparation ID/Loc. Ce sont HIP et le nouveau ILNP, dont les RFC
> viennent de sortir.
> 
> Par contre, si vous êtes impatients de déployer, notez que ILNP est le
> moins implémenté des trois. Pour l'instant, ces RFC sont surtout
> utiles au programmeur, à l'étudiant, au curieux. L'opérateur réseau
> devra attendre la prochaine phase pour tester ILNP.
> 
> http://www.bortzmeyer.org/6740.html
> 
> ----------------------------
> 
> Auteur(s) du RFC: RJ Atkinson (Consultant), SN Bhatti (U. St Andrews)
> 
> ----------------------------
> 
> 
> Le protocole ILNP vient d'être spécifié dans une série de neuf RFC, 
> dont ce RFC 6740 est le point de départ, décrivant l'architecture 
> générale d'ILNP. ILNP appartient à la famille des protocoles à 
> séparation de l'identificateur et du localisateur 
> <http://www.bortzmeyer.org/separation-identificateur-localisateur.html>.
> Ces protocoles visent à résoudre une limite fondamentale de 
> l'Internet : l'adresse IP est utilisée à la fois comme *identificateur* 
> (nommer une machine, par exemple pendant la durée d'une session TCP) et 
> comme localisateur (indiquer son point d'attachement au réseau). Cette 
> confusion rend certaines configurations, notamment le "multi-homing" et 
> la mobilité, très difficiles.
> 
> Ce n'est pas qu'ILNP soit le premier protocole à vouloir séparer ces 
> deux fonctions. Avant de donner le feu vert à la publication de ces 
> RFC, l'IESG a notamment examiné HIP 
> <http://www.bortzmeyer.org/hip-resume.html> et LISP 
> <http://www.bortzmeyer.org/lisp-wg.html>, avant de conclure qu'ILNP 
> avait des caractéristiques suffisamment originales pour qu'il soit 
> intéressant qu'il soit décrit dans des RFC.
> 
> ILNP avait été choisi par les présidents du groupe de recherche Routage 
> de l'IRTF comme étant la base des futurs travaux sur une meilleure 
> architecture pour l'Internet (travaux décrits dans le RFC 6115). S'il 
> faut le résumer en cinq points :
> * ILNP est défini comme une architecture abstraite, avec plusieurs 
> concrétisations possibles. Celle décrite dans ces RFC est compatible 
> avec l'Internet actuel (une autre, plus « table rase », serait 
> possible).
> * ILNP fonctionne entièrement dans les machines terminales, les 
> routeurs ne sont pas changés.
> * Chaque machine ILNP a au moins un Identificateur et au moins un 
> Localisateur. En IPv6, ils sont indiqués dans chaque paquet (ILNP peut 
> aussi tourner au dessus d'IPv4 mais c'est plus complexe.)
> * Pour trouver le Localisateur d'une machine qu'on veut contacter, la 
> méthode standard est d'utiliser le DNS (ILNP repose nettement plus sur 
> le DNS que ses concurrents).
> * Les changements de localisateur en cours de session sont faits par un 
> nouveau message ICMP, "Locator Update". Ces derniers sont sécurisés par 
> un *numnique <http://www.bortzmeyer.org/nonce.html>*, nombre 
> imprévisible envoyé au début de la session.
> 
> Bon, après cette introduction rapide, voyons tout en détail. D'abord, 
> pourquoi veut-on à tout prix séparer identificateur et localisateur ? 
> Le mieux est de relire le RFC 4984 pour avoir tous les détails. Disons 
> que l'actuelle confusion de l'identificateur et du localisateur est 
> pénible pour :
> * La croissance des tables de routage : pour avoir des adresss IP 
> stables, certains réservent du PI et l'annoncent dans la table de 
> routage globale.
> * Le "multi-homing" : sans adresses PI, pas de moyen facile de gérer 
> les adresses de ses fournisseurs d'accès.
> * La mobilité : changer d'endroit ou de fournisseur casse les 
> connexions TCP en cours.
> Face à ces problèmes, des tas de propositions pour améliorer les 
> mécanismes d'adressage et de nommage dans l'Internet ont été faites : 
> RFC 814, RFC 1498, RFC 2101, RFC 2956 et bien d'autres. La conclusion 
> était souvent la même : le mélange de fonctions d'identification d'une 
> machine et de sa localisation dans le réseau est une mauvaise idée. Ces 
> fonctions devraient être séparées.
> 
> Il y a un petit poblème terminologique ici : les architectures où ces 
> fonctions sont séparées sont parfois toutes appelées « séparation de 
> l'identificateur et du localisateur ». Mais notre RFC adopte un 
> vocabulaire plus strict. Il réserve ce terme de « séparation de 
> l'identificateur et du localisateur » aux architectures (comme ILNP) où 
> la séparation est faite dès le début (dans les machines terminales) et 
> utilise le terme de « "map and encapsulate" » (qu'on trouve souvent 
> abrégé en "map-and-encap") aux architectures qui utilisent un tunnel 
> pour transporter les paquets entre deux machines ne connaissant pas la 
> séparation Identificateur/Localisateur. Selon cette terminologie, LISP 
> <http://www.bortzmeyer.org/lisp-wg.html>, dont le nom veut dire 
> "Locator/Identifier Separation Protocol", n'est donc pas un « vrai » 
> système « à séparation de l'identificateur et du localisateur ».
> 
> Ce RFC, le premier à lire lorsqu'on veut comprendre ILNP, est d'abord 
> la description d'une architecture. On n'y trouvera pas de protocole, de 
> format des paquets, etc. Les protocoles concrets viennent après, dans 
> d'autres RFC. Deux protocoles qui mettent en &#339;uvre l'architecture ILNP 
> ont été définis, ILNPv4 pour IPv4 et ILNPv6 pour IPv6. Je parlerai 
> surtout d'ILNP6, qui est plus simple à exposer (le faible espace 
> d'adressage d'IPv4 a nécessité quelques astuces qui rendent ILNPv4 plus 
> difficile à comprendre).
> 
> Comme indiqué plus haut, d'autres incarnations de l'architecture ILNP 
> peuvent être imaginées, notamment en choisissant une approche « table 
> rase » qui ferait tourner cette architecture sur un nouveau protocole, 
> sans relation avec IP. Mais, pour l'instant, ces hypothétiques 
> incarnations n'ont pas été définies.
> 
> Les autres RFC à lire, une fois celui-ci achevé, sont :
> * RFC 6741, « "ILNP Engineering and Implementation Considerations" », 
> qui décrit les questions concrètes communes à ILNPv4 et ILNPv6,
> * RFC 6742, « "DNS Resource Records for ILNP" », qui explique les 
> enregistrements DNS nécessaires pour ILNP,
> * RFC 6743, « "ICMPv6 Locator Update message" », définit le nouveau 
> message ICMP "Locator Update",
> * RFC 6744, « "IPv6 Nonce Destination Option for ILNPv6" », normalise 
> la nouvelle option IPv6 permettant d'indiquer le numnique de la 
> connexion,
> * RFC 6745, « "ICMPv4 Locator Update message" », définit le nouveau 
> message ICMP "Locator Update" pour IPv4,
> * RFC 6746, « "IPv4 Options for ILNP" », normalise deux nouvelles 
> options IPv4, une pour indiquer le numnique de la connexion, une pour 
> indiquer l'identificateur (pour IPv6, il tient dans l'adresse et cette 
> option n'est pas nécessaire),
> * RFC 6747, « "ARP Extension for ILNPv4" », qui décrit comment adapter 
> le vieux protocole ARP à ILNP,
> * RFC 6748, « "Optional Advanced Deployment Scenarios for ILNP" », 
> explore des fonctions plus avancées d'ILNP et des perspectives plus 
> lointaines.
> 
> Les section 2 et 3 détaillent cette architecture. Parmi les propriétés 
> importantes de l'Identifcateur, le fait qu'une machine puisse en avoir 
> plusieurs, par exemple à des fins de protection de la vie privée : 
> avoir le même Identificateur tout le temps permettrait la traque d'une 
> machine à travers ses déplacements, un problème analogue à celui qui a 
> mené au RFC 4941. Une machine peut donc utiliser plusieurs 
> identificateurs (mais, évidemment, pas au sein d'une même session).
> 
> Si l'application ne se sert que de noms de domaine pour contacter son 
> pair, elle est dite « bien élevée » et fonctionnera sans problèmes avec 
> ILNP. Ce comportement est celui recommandé par le RFC 1958. Si, par 
> contre, l'application utilise explicitement des adresses IP (le RFC 
> cite les fichiers de configuration d'Apache), elle pourra avoir des 
> ennuis avec ILNP, où ces adresses ont une sémantique différente.
> 
> Les connexions des protocoles de transport, comme TCP, utilisent 
> uniquement l'identificateur, résistant ainsi aux changements de 
> localisateurs. Une machine d'un site "multi-homé" peut ainsi basculer 
> d'un FAI à l'autre sans casser ses connexions TCP (cf. section 3.4).
> 
> Notez bien que l'identificateur identifie une machine, pas une 
> interface réseau. Sa sémantique est donc très différente de celle des 
> adresses IPv4, IPv6, ou des "Interface Identifier" d'IPv6 (RFC 4219).
> 
> Cela ne signifie pas que l'identificateur puisse être utilisé 
> directement par les applications clientes. Comme indiqué plus haut, il 
> est plutôt recommandé de se servir du nom de domaine.
> 
> Dans cette architecture, qu'est-ce qui est le plus proche d'une adresse 
> IP ? Probablement le couple {Identificateur, Localisateur}, I-LV (pour 
> "Identifier - Locator Vector", cf. section 3.3). Ce couple désigne une 
> liaison, notée (I, L), entre un identificateur et un localisateur.
> 
> Bref, un paquet ILNP contiendra un I-LV source et un I-LV destination. 
> Notez que la sémantique d'un I-LV est proche de celle d'une adresse IP 
> mais pas identique (l'I-LV se sépare en deux, I et L, l'adresse IP est 
> structurée différemment, avec plusieurs préfixes hiérarchiquement 
> emboîtés, etc). Le RFC 6741 indique comment ces IL-V sont représentés 
> dans un paquet IP.
> 
> Dans les fichiers ou entre discussions entre humains, les 
> identificateurs ont le format d'un "Interface Identifier" IPv6 (section 
> 3.1.2). Ce format, normalisé dans le RFC 4291 est fondé sur le format 
> EUI-64 par exemple 3a59:f9ff:fe7d:b647. Si le bit « global » est mis à 
> 1, l'identificateur est supposé être unique au niveau mondial.
> 
> Le localisateur a une syntaxe analogue (par exemple, 2001:db8:43a:c19). 
> Une machine peut aussi avoir plusieurs localisateurs (par exemple parce 
> qu'elle a plusieurs connexions réseau). Le routage sera fait sur la 
> base des localisateurs, comme avec IP Classique aujourd'hui (ce n'est 
> donc pas par hasard que le localisateur ressemble à un préfixe IPv6). 
> Le localisateur peut être modifié en route (cas du NAT). Contrairement 
> à l'identificateur, relativement stable (en tout cas pendant la durée 
> d'une connexion), le localisateur peut changer souvent (par exemple en 
> situation de mobilité). Lorsque cela se produit, la machine avertit ses 
> correspondants (CN pour "Correspondent Nodes") avec un message ICMP 
> "Locator Update". Si elle veut être contactée (si c'est un serveur), 
> elle doit aussi mettre à jour le DNS. Ces deux mécanismes sont décrits 
> en détail dans le RFC 6741.
> 
> Ces identificateurs et localisateurs sont publiés dans le DNS (cf. RFC 
> 6742). Une application qui veut contacter www.example.com aujourd'hui 
> utilise le DNS pour connaître l'adresse IP correspondante. Demain, elle 
> utilisera ILNP pour connaître identificateur et localisateur. (Pour des 
> raisons de sécurité, DNSSEC est recommandé.)
> 
> Il est aussi précisé que l'un des buts d'ILNP est de pouvoir l'incarner 
> dans des protocoles qui sont compatibles avec l'existant (pour 
> permettre à ILNP et IP Classique de coexister) et déployables de 
> manière incrémentale (ne pas exiger que tout le monde passe à ILNP d'un 
> coup).
> 
> La section 4 explique ensuite comment se fait le routage. Alice et Bob 
> connaissent ILNP et veulent se parler, avec, entre eux, plusieurs 
> routeurs traditionnels ne connaissant rien à ILNP. (En terminologie 
> ILNP, Bob est le CN - "Correspondent Node".) Dans le cas le plus 
> courant, Bob a mis son (ou ses) Identificateurs et son (ou ses) 
> Localisateurs dans le DNS (notez que les serveurs DNS utilisés n'ont 
> pas *besoin* de connaître ILNP, mais cela optimise le temps de réponse 
> DNS s'ils le gèrent). Cela a pu être fait manuellement ou, mieux, 
> automatiquement via les mises à jour dynamiques (de préférence 
> sécurisées, cf. RFC 3007). Alice va faire une requête DNS (cf. RFC 
> 6742) et récupérer ainsi Identificateur et Localisateur de Bob (notez 
> qu'ILNP n'a pas pour l'instant de mécanisme pour récupérer un 
> Localisateur à partir d'un Identificateur).
> 
> Alice et Bob vont avoir besoin dans leurs systèmes d'une nouvelle 
> structure de données, l'ILCC ("I-L Communication Cache", section 4.2 et 
> RFC 6741) qui permet de se souvenir des Localisateurs actuellement en 
> service pour un CN donné. Au début, on y met les localisateurs 
> récupérés via le DNS.
> 
> Ensuite, en IPv6, tout est simple. Alice fabrique un paquet IPv6, 
> contenant l'option "Nonce" (numnique) du RFC 6744, et dont la source 
> est la concaténation de son Localisateur et de son Identificateur (avec 
> les valeurs données plus haut à titre d'exemple, ce sera 
> 2001:db8:43a:c19:3a59:f9ff:fe7d:b647). La destination est formée en 
> concaténant Localisateur et Identificateur de Bob. Les deux adresses 
> ainsi fabriquées sont des adresses IPv6 tout à fait normales et les 
> routeurs entre Alice et Bob suivent la méthode de routage, et de 
> résolution d'adresses en local (NDP) traditionnelles.
> 
> En IPv4, cela sera toutefois plus complexe (on ne peut pas mettre 
> Identificateur et Localisateur dans les 32 bits d'une adresse IPv4, et 
> ARP ne permet pas de résoudre un Identificateur, trop gros pour lui). 
> Voir les RFC 6746 et RFC 6747 pour les solutions adoptées.
> 
> Comment est-ce que cela résoud le problème du "multi-homing", déjà cité 
> plusieurs fois ? Comme l'explique la section 5, ILNP traite le 
> "Muti-homing" en fournissant un Identificateur par machine et au moins 
> un Localisateur par FAI. Alice utilise un des localisateurs pour le 
> paquet initial, puis prévient Bob par un message ICMP "Locator Update" 
> pour annoncer les autres. En cas de panne ou de ralentissement d'un des 
> FAI, Bob pourra envoyer ses paquets via les autres localisateurs 
> (l'identificateur restant inchangé).
> 
> Pour les connexions entrantes (si Alice est un serveur Web), on 
> publiera dans le DNS tous les localisateurs et le client les essaiera 
> tous.
> 
> "Multi-homing" est en fait un terme très large. Il y a plusieurs cas :
> * "Host multi-homing" où une machine a plusieurs connexions à 
> l'Internet. C'est relativement rare mais cela peut être, par exemple, 
> un "smartphone" connecté en Wi-Fi et 3G en même temps. ILNP permet à 
> cette machine d'utiliser les deux localisateurs, chacun issu des deux 
> connexions possibles.
> * "Site multi-homing" où c'est un site entier qui est connecté à 
> plusieurs opérateurs. Le RFC cite le cas où le site a des adresses PI 
> et les annonce en BGP (ce qui charge la table de routage globale) mais 
> il oublie le cas où les routeurs de sortie du site font simplement du 
> NAT vers les adresses des FAI (ce qui ne permet ni la redondance des 
> connexions entrantes, ni la continuité des connexions TCP). Dans le 
> scénario typique de "site multi-homing" avec ILNP, les routeurs du site 
> annoncent sur le réseau local avec RA ("Router Advertisment") les N 
> préfixes des N opérateurs utilisés, et les machines les utilisent comme 
> localisateurs. Dans ce cas, les routeurs du site n'ont *pas* besoin de 
> connaître ILNP, les machines terminales font tout le travail 
> (enregistrer les localisateurs, les abandonner s'ils ne sont plus 
> annoncés, etc).
> 
> 
> Dans ILNP, la mobilité est traitée quasiment comme le "multi-homing" 
> (section 6). Elle est donc très différente du "Mobile IP" du RFC 6275. 
> Dans les deux cas, l'identificateur reste constant pendant que le 
> localisateur actuellement utilisé peut changer. La principale 
> différence est le délai : en cas de mobilité rapide, les mécanismes 
> d'ILNP peuvent être trop lents pour assurer la transition (point que le 
> RFC oublie de mentionner).
> 
> Comme pour le "multi-homing", il peut y avoir mobilité d'une machine 
> (le "smartphone" cité précédemment qui, maintenant, se déplace) ou d'un 
> réseau entier (cas d'un bateau en déplacement, par exemple, où il 
> faudra que les machines à bord connaissent ILNP). ILNP obtient le 
> maintien de la connectivité grâce à des localisateurs qui changent 
> dynamiquement (même en cours de session), une mise à jour de la liste 
> que connait le CN, grâce aux messages ICMP "Locator Update" et enfin 
> les mises à jour dynamiques du DNS (RFC 2136) pour continuer à recevoir 
> de nouvelles sessions même après déplacement.
> 
> Avec IP Classic, si le téléphone se déplace et perd la Wi-Fi, les 
> connexions TCP en cours sont coupées. Avec ILNP, le téléphone pourra 
> simplement utiliser le(s) localisateur(s) restant(s) (ici, celui de la 
> 3G) et garder ses connexions.
> 
> On a vu qu'ILNP était un truc assez ambitieux, promettant de résoudre 
> plein de problèmes. Mais, comme l'ont montré les malheurs de plusieurs 
> protocoles, *être meilleur ne suffit pas*. L'inertie de la base 
> installée est forte. Il faut donc absolument, pour qu'un nouveau 
> protocole ait la moindre chance de réussir, des mécanismes de 
> compatibilité avec l'existant et de déploiement incrémental (on ne peut 
> pas exiger que tout le monde migre au même moment). La section 8 
> discute en détail ces points. D'abord, un paquet ILNPv6 ne se distingue 
> en rien d'un paquet IPv6 actuel (c'est un peu plus compliqué avec 
> ILNPv4, pour lequel le traditionnel ARP ne suffit pas, cf. RFC 6747). 
> Cela veut dire que les routeurs, de la petite "box" au gros routeur du 
> c&#339;ur de l'Internet n'auront besoin d'aucun changement. Le routeur ne 
> sait même pas que le paquet est de l'ILNPv6 (voir le RFC 6741 sur les 
> détails concrets des paquets ILNP). On est donc dans un cas très 
> différent de celui d'IPv6 où il fallait modifier tous les routeurs 
> situés sur le trajet.
> 
> Côté DNS, il faudra des nouveaux types d'enregistrement (RFC 6742). 
> Cela ne nécessite pas de modifications des résolveurs/caches. Sur les 
> serveurs faisant autorité, il faudra légèrement modifier le code pour 
> permettre le chargement de ces nouveaux types.
> 
> Il serait tout de même souhaitable que les serveurs DNS, lorsqu'ils 
> reçoivent une requête pour des noms qui ont des enregistrements ILNP, 
> envoient tous ces enregistrements dans la réponse. Ce n'est pas 
> nécessaire (le client pourra toujours les demander après) mais cela 
> diminuera le temps total de traitement. (Les requêtes de type ANY, 
> « donne moi tous les enregistrements que tu as », ne renvoient pas 
> forcément le résultat attendu, un cache n'ayant pas forcément tous les 
> enregistrements correspondant à un nom.)
> 
> Si Alice et Bob connaissent tous les deux ILNP et qu'Alice initie une 
> session avec Bob, tout se passera bien. Alice demandera 
> l'enregistrement DNS de type NID, le serveur lui renverra 
> l'identificateur de Bob, les localisateurs seront ajoutés par le 
> serveur DNS (s'il connait ILNP) ou demandés explicitement par Alice par 
> la suite. Alice générera le numnique, et l'enverra à Bob avec sa 
> demande de connexion (RFC 6744). Mais, dans une optique de déploiement 
> incrémental, il faut prévoir le cas où Alice aura ILNP et pas Bob, ou 
> bien l'inverse. Que se passera-t-il alors ?
> 
> Si Alice connait ILNP et pas Bob, il n'y aura pas d'enregistrement NID 
> dans le DNS pour Bob. Alice devra alors reessayer avec de l'IP 
> classique. Si un enregistrement NID était présent à tort, Alice tentera 
> en ILNP et enverra le numnique. Bob, en recevant cette option inconnue, 
> rejettera le paquet en envoyant un message IMCP indiquant à Alice ce 
> qui s'est passé.
> 
> Si Alice ne connait pas ILNP alors que Bob le connait, Alice ne 
> demandera pas le NID et ne tentera rien en ILNP. Si Bob accepte l'IP 
> Classic, la connexion marchera, sans ILNP.
> 
> Vu du point de vue de Bob (qui ne connait pas les requêtes DNS qui ont 
> été faites), la connexion est en ILNP si l'option "Nonce" était 
> présente dans le paquet initial, et en IP Classic autrement.
> 
> Le RFC ne mentionne toutefois pas trois problèmes pratiques :
> * Si un enregistrement DNS annonce à tort que Bob connait ILNP, Alice 
> essaie d'abord en ILNP puis passe en IP Classic, ce qui augmentera le 
> temps d'établissement d'une connexion.
> * Plus grave, si le paquet ICMP indiquant que Bob ne connait pas ILNP 
> est perdu ou filtré (un certain nombre de sites bloquent stupidement la 
> totalité des messages ICMP), le délai avant qu'Alice n'essaie en IP 
> Classic sera très long. C'est le problème connu sous le nom de 
> « malheur des globes oculaires » (RFC 6555 et RFC 6556).
> * Les options IPv6 sont très rares dans l'Internet d'aujourd'hui 
> <http://www.bortzmeyer.org/destination-options-ipv6.html>. Les 
> mauvaises expériences avec les options IPv4 
> <http://www.bortzmeyer.org/options-interdites.html> font qu'on peut 
> être inquiets de leur viabilité.
> 
> 
> Et la sécurité ? La section 7 couvre le cas particulier des 
> interactions entre ILNP et IPsec (RFC 4301). La principale différence 
> avec IP Classic est que l'association de sécurité IPsec se fait avec 
> les identificateurs et plus avec les adresses.
> 
> Pour la sécurité d'ILNP en général, c'est la section 9 qu'il faut lire. 
> En gros, ILNP a le même genre de risques qu'IP (on peut mentir sur son 
> localisateur aussi facilement qu'on peut mentir sur son adresse IP) et 
> les mêmes mesures de protection (comme IPsec).
> 
> Les "Locator Updates" d'ILNP, qui n'ont pas d'équivalent dans IP, sont 
> protégés essentiellement par le numnique (RFC 6744). Sans cela, un 
> méchant pourrait faire un faux "Locator Update" et rediriger tout le 
> trafic chez lui. Avec le numnique, les attaques en aveugle sont 
> extrêmement difficiles. Par contre, si l'attaquant peut espionner le 
> trafic (par exemple s'il est sur le chemin de celui-ci), le numnique ne 
> protège plus (c'est analogue au problème du numéro de séquence initial 
> de TCP, cf. RFC 6528). Il faut alors chiffrer toute la session avec 
> IPsec (selon le type de menaces, on peut aussi envisager SSH ou TLS). 
> Cette situation n'est pas très différente de celle d'IP Classic.
> 
> Notez qu'il existe deux numniques par session, un dans chaque sens. Les 
> chemins sur l'Internet étant souvent asymétriques, cela complique la 
> tâche de l'attaquant (s'il n'est que sur un seul chemin, il ne trouvera 
> qu'un seul numnique).
> 
> Autre attaque courante sur l'Internet (même si le RFC dit, 
> curieusement, qu'elle existe mais n'est pas répandue), l'usurpation 
> d'adresses. Il est facile de mentir sur son adresse IP. Peut-on mentir 
> sur son Identificateur ou bien son Localisateur ? Disons que mentir sur 
> son Identificateur est en effet facile et qu'on ne peut guère 
> l'empêcher. Contrairement à HIP, ILNP n'a pas forcément de protection 
> cryptographique de l'identificateur (cf. RFC 4843). Il est possible 
> d'utiliser les adresses cryptographiques du RFC 3972, il reste à voir 
> si cela sera déployé. Autre solution dans le futur, utiliser IPsec avec 
> des clés indexées par l'identificateur (mais cela reste bien 
> théorique).
> 
> En revanche, un mensonge sur le Localisateur est plus difficile. Il 
> peut être protégé par les techniques du RFC 2827 et RFC 3704. Certains 
> protocoles au dessus, comme TCP avec ses numéros de séquence initiaux 
> imprévisibles, ajoutent une autre protection.
> 
> Autre aspect de la sécurité, la vie privée. Comme le rappele la section 
> 10, avoir un identificateur stable peut faciliter le suivi d'une 
> machine (et donc de son utilisateur) même lorsqu'elle se déplace. Ce 
> problème est connu sous le nom d'"identity privacy". Le problème avait 
> déjà été mentionné avec IPv6 et la solution est la même : se servir des 
> identificateurs temporaires du RFC 4941. (Une machine ILNP n'est *pas* 
> forcée de n'avoir qu'un seul identificateur.)
> 
> Autre menace, celle sur la "location privacy". Non spécifique à ILNP, 
> c'est le fait qu'on puisse connaître la localisation actuelle d'une 
> machine via son localisateur. Le problème est très difficile à 
> résoudre, la qualité de la connectivité étant inversement 
> proportionnelle à la dissimulation de l'adresse. Si on force le passage 
> par une machine relais fixe (comme le permet Mobile IP), on a une bonne 
> protection de la vie privée... et une bonne chute des performances et 
> de la résilience.
> 
> Si le localisateur a été publié dans le DNS, un indiscret qui veut le 
> connaître n'a même pas besoin d'une communication avec la machine qu'il 
> veut pister, interroger le DNS (qui est public) suffit. Si une machine 
> veut rester discrète sur sa localisation et qu'elle n'a pas besoin 
> d'être contactée, le mieux est qu'elle ne mette pas son localisateur 
> dans le DNS.
> 
> Il n'existe encore aucune mise en &#339;uvre publique d'ILNP. Un projet 
> existe mais rien n'est encore sorti.
> 
> Pour les curieux d'histoire, la section 1.2 présente la vision des 
> auteurs sur les différentes étapes ayant mené à ILNP. Ils remontent 
> jusqu'en 1977 où la note IEN1 
> <http://www.postel.org/ien/pdf/ien001.pdf> notait déjà le problème 
> qu'il y avait à faire dépendre les connexions d'une adresse qui pouvait 
> changer. Cette note proposait déjà une séparation de l'identificateur 
> et du localisateur, qui n'a pas eu lieu dans TCP/IP. Par exemple, TCP 
> utilise dans la structure de données qui identifie une connexion les 
> adresses IP de source et de destination. Tout changement d'une de ces 
> adresses (par exemple parce que la machine a bougé) casse les 
> connexions TCP en cours.
> 
> Après ce choix, et quelques années plus tard, l'idée d'une séparation 
> de l'identificateur et du localisateur est revenue, compte-tenu de 
> l'expérience avec TCP/IP. En 1994, une note de Bob Smart (en ligne sur 
> http://www.bortzmeyer.org/files/bob-smart-sipp-1994.txt) repropose 
> cette idée. Même chose en 1995 avec Dave Clark 
> <ftp://ftp.parc.xerox.com/pub/lixia/address/ddc.address.txt>. Enfin, en 
> 1996, Mike O'Dell propose son fameux 8+8 
> <http://datatracker.ietf.org/doc/draft-odell-8+8/>, qui n'atteindra 
> jamais le statut de RFC mais reste la référence historique des 
> propositions de séparation de l'identificateur et du localisateur. (Une 
> grosse différence entre 8+8 et ILNP est que ce dernier n'impose pas de 
> réécriture du localisateur en cours de route).
> 
> Depuis, plusieurs autres travaux ont été faits en ce sens, mais sans 
> déboucher sur beaucoup de déploiements. Des « vrais » protocoles de 
> séparation de l'identificateur et du localisateur (rappelons que les 
> auteurs ne considèrent pas LISP <lisp-wg> comme faisant partie de cette 
> catégorie), seul HIP <hip-resume> a connu une description dans un RFC 
> et plusieurs mises en &#339;uvres. ILNP offre sans doute moins de sécurité 
> que HIP (contrairement à HIP, pas besoin d'établir une connexion avant 
> toute communication) mais autant qu'avec l'IP actuel. Et ILNP est moins 
> disruptif que HIP, ce qui peut être vu comme un avantage ou un 
> inconvénient.
> 
> Quelques lectures :
> * Un excellent exposé à NANOG 
> <http://www.cs.st-andrews.ac.uk/~saleem/talks/2010/ilnp_nanog50/2010-10-
> 03-ilnp_nanog50-v4_final.pdf>, qui explique notamment bien la 
> différence entre localisateur et identificateur.
> * Un texte plus ancien, décrivant ILNP 
> <http://www0.cs.ucl.ac.uk/research/researchnotes/documents/RN_05_22.pdf>
> 
> 
> ---------------------------
> Liste de diffusion du FRnOG
> http://www.frnog.org/


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à