28.5.1 Sécurité et robustesse de BGP
BGP appartient à la classe des protocoles de routage vectoriel de chemin, dans lesquels chaque nœud annonce la » meilleure » route pour chaque destination à tous ses voisins. Un nœud BGP stocke tous les chemins envoyés par ses voisins mais n’utilise et n’annonce que celui qui est le « meilleur » selon une politique donnée. Lorsque ce chemin primaire échoue, BGP retire ce chemin et sélectionne la meilleure route de secours suivante. La nouvelle route est ensuite annoncée à ses voisins.
La raison fondamentale de la popularité de BGP est sa grande flexibilité dans la mise en place et l’utilisation des routes, de sorte que chaque fournisseur de services Internet (ISP) peut mettre en œuvre les politiques qu’il souhaite sans avoir à les rendre publiques. Malheureusement, cette flexibilité et cette opacité sont également à l’origine de nombreux problèmes liés à BGP, notamment des configurations incompatibles entre différents FAI, le manque de visibilité globale de la qualité ou de l’état des routes et l’incapacité à mettre en place une approche coordonnée pour traiter les problèmes de routage. Par exemple, même si tous les chemins sont choisis en se basant strictement sur les estimations de coûts, BGP présente souvent un comportement indésirable, comme de longs délais de convergence et des oscillations, car les informations sur la disponibilité des chemins sont généralement déduites plutôt que propagées explicitement. Par conséquent, BGP peut remplacer un chemin défaillant par le meilleur chemin suivant sans se rendre compte que son évaluation locale de ce chemin est incorrecte. Cette absence d’information sur la validité d’une route peut amener BGP à parcourir un certain nombre de routes de secours avant de sélectionner une route valide. Le cycle de retraits/annonces peut se poursuivre pendant un temps considérable. Ce délai est connu sous le nom de délai de convergence (ou délai de récupération). Ces vulnérabilités peuvent même être exploitées par un attaquant pour faire en sorte que BGP se comporte d’une manière pire qu’autrement.
Le problème de convergence a été largement examiné dans la littérature . En particulier, il a été montré par Labovitz et al. que le délai de convergence pour les retraits de routes isolées peut être supérieur à trois minutes dans 30% des cas et pourrait atteindre 15 minutes. Ils ont également constaté que le taux de perte de paquets peut augmenter de 30 fois et le retard des paquets de 4 fois pendant la récupération. Il existe également de nombreuses tentatives pour améliorer le délai de convergence BGP par le biais d’une variété de techniques. Reference examine la question des performances de livraison des paquets et propose une technique pour réduire la perte et le retard des paquets.
Nous examinons maintenant la robustesse des tables de routage elles-mêmes. Bien qu’il soit difficile de corrompre directement les tables de routage, les messages légitimes de mise à jour des tables de routage pourraient être détournés afin de créer des tables de routage incohérentes. D’autre part, de faux messages de mise à jour pourraient être envoyés simplement pour épuiser les ressources de calcul, de mémoire ou autres des routeurs. Un problème connexe est celui de la perturbation des paramètres de qualité de service, qui peut être exploité pour perturber le traitement approprié du trafic. Une suppression, une duplication ou une modification des messages de mise à jour de l’itinéraire peut entraîner une mauvaise livraison et une congestion. De telles attaques ont été largement étudiées dans la littérature, et la protection passe par des moyens cryptographiques tels que l’authentification des messages de mise à jour et le cryptage du contenu ou des en-têtes des paquets. Reference fournit une étude complète des vulnérabilités de BGP et de nombreux mécanismes de protection.
Secure BGP (SBGP) utilise des mises à jour de route signées en faisant appel à deux hiérarchies PKI, l’une pour assurer l’intégrité des préfixes IP et l’autre pour les numéros AS. L’objectif principal de SBGP est de garantir l’intégrité de l' »AS-path » enregistré dans les mises à jour de routes et les préfixes IP annoncés. (L’AS-path est la liste des AS par lesquels un message d’annonce de route ou de retrait BGP passe avant d’atteindre sa destination). L’utilisation d’une hiérarchie PKI est essentielle pour disposer d’une chaîne de confiance pour chaque préfixe IP et chaque chemin AS ; cependant, la nécessité de multiples opérations de clés publiques rend le schéma assez lent. Hu, Perrig et Johnson discutent d’un mécanisme rapide pour sécuriser les mises à jour de routage pour BGP. Les auteurs plaident pour l’utilisation de la cryptographie symétrique, qui est beaucoup plus efficace que l’utilisation de la PKI. Ils préconisent l’utilisation de chaînes de hachage impliquant un code d’authentification de message (MAC) à chaque nœud le long du chemin emprunté par les paquets de mise à jour afin de garantir que les mises à jour ne sont pas altérées et que les nœuds sont ajoutés ou retirés du chemin. Bien qu’un tel schéma puisse sécuriser les mises à jour, il reste des problèmes d’échange de clés et de surcharge de vérification des MAC sur les chaînes de hachage. La validation de route interdomaine (IRV) est une authentification très différente où un serveur IRV dans chaque AS peut éventuellement valider la mise à jour de l’initiateur de l’AS.
Bien que les techniques cryptographiques soient capables de sécuriser les mises à jour de routage contre les changements non autorisés, elles apportent une complexité supplémentaire et augmentent ainsi les chances de mauvaises configurations. En fait, les problèmes de SBGP, qui utilise une hiérarchie PKI, sont similaires aux problèmes de DNSSEC discutés dans la section 28.3.3.
Dans de rares cas, un AS peut lui-même devenir malveillant peut-être en raison de la compromission par un adversaire. Par exemple, un AS BGP malveillant peut décider de ne pas retirer une route non fonctionnelle ou ne pas mettre une route fonctionnelle dans l’ensemble des routes actuelles. Un AS malveillant peut également annoncer à tort qu’il possède le chemin le plus souhaitable (par exemple, le plus court) vers une certaine destination. Ainsi, tout le trafic vers la destination sera acheminé par cet AS et l’AS peut soit espionner le trafic, soit simplement en rejeter une partie ou la totalité et provoquer un déni de service. La modification de l’AS-path peut également avoir des effets similaires. Parvenir à un routage robuste malgré certains AS malveillants peut être très difficile, mais il peut suffire de simplement détecter et mettre en quarantaine de tels AS.