La sécurité du est devenue préoccupante lorsqu'internet s'est ouvert au grand public, au cours des années 1990.
Depuis l’émergence du , les utilisateurs de navigateurs web sollicitent des serveurs aux localisations géographiques diverses. Le fournisseur d'accès à internet n'est généralement pas en mesure d'acheminer le trafic à sa destination finale par l'intermédiaire de sa seule infrastructure de routage. Pour atteindre cet objectif les différents opérateurs d'internet coopèrent. Afin de permettre l’interconnexion entre les réseaux des différents opérateurs d'internet et ainsi de pouvoir acheminer les paquets IP de bout en bout, internet exploite le protocole (BGP). À ce titre BGP est au cœur de la mise en œuvre d'internet et tout acte de malveillance entraînant son dysfonctionnement a un impact planétaire.
BGP est utilisé au niveau de routeurs spécialisés appelés les annonceurs BGP. Ce protocole consiste en l’échange de chemins d'accès, c'est-à-dire de listes contenant les sous-réseaux pour lesquels le routeur propose du transit. Chaque sous-réseau, le plus souvent géré par une entreprise ou un fournisseur d'accès à Internet, est associé à un système autonome (abrégé « AS ») d'origine ainsi qu'à une liste d'AS qui ont été traversés (généralement des opérateurs de réseau). Chaque organisation qui dispose d'un AS a sa propre politique de routage.
Le protocole BGP, bien que révisé en 2006, date de 1994 et plusieurs incidents liés à une vulnérabilité du protocole ou de son implémentation ont déjà affecté une partie d'internet. Des efforts ont été entrepris par l' (IETF), au sein duquel le groupe de travail (SIDR) est chargé d'améliorer la sécurité du protocole.
Historique
Cette frise chronologique détaille l'historique des technologies relatives à la sécurité du Border Gateway Protocol :
De Perlman à la première définition de BGP4 Avant même l’avénement de protocole Border Gateway, à la fin des années 1980, des failles de sécurité sont étudiées et répertoriées. C’est le cas en 1988 pour les problèmes byzantins avec Radia Perlman qui est une des premières personnes à publier sur ce domaine, et en 1989 avec les failles de sécurité du protocole de communication Transmission Control Protocol (TCP) décortiquées par , il réétudiera le sujet en 2004.
Dans sa thèse Network Layer Protocols with Byzantine Robustness, Radia Perlman reconnaît et étudie les problèmes de la sécurisation des infrastructures de routage. En s’appuyant entre autres sur les travaux de Diffie et Hellman, elle y exprime deux solutions : une infrastructure à clés publiques (PKI) impliquant donc la cryptographie asymétrique pour protéger l'intégrité des données, et l'identification des routeurs et de leur voisinage pour mieux connaître la topologie du réseau.
En 1992, Ronald Rivest publie pour le compte du Network Working Group le document la où il décrit un algorithme de signature rapide Message Digest 5 (MD5)Message Digest 5 (MD5) est une fonction de hachage cryptographique pour obtenir une empreinte/signature d'un ensemble de données. pour les machines 32 bits. Cet algorithme répond partiellement aux problèmes relevés car il permet l’identification des paires voisines d’un routeur et de protéger l’intégrité des données malgré l’utilisation de TCP.
En 1993, Brijesh Kumar étaye les conclusions de Pearlman dans son article “ Integration of security in network routing protocols” où il analyse la présence de la cryptographie dans la sécurisation du routage. Ses conclusions sont que les cryptosystèmes symétriques prendraient trop de ressources mémoires (une clef pour chaque routeur à sauvegarder) et engendreraient autant de calculs qu’il y a de clefs ; Malheureusement, les machines de l’époque ne disposaient pas de la puissance de calcul nécessaire pour l’utilisation de l’infrastructure à clef publique proposée par Perlman qui résoudrait le problème. De plus, il émet la nécessité de regrouper les routeurs dans des domaines, les futurs systèmes autonomes (AS), pour alléger la quantité de ressources requises et fait une distinction entre les routages internes aux domaines (iBGP) et externes (eBGP)
La même année, Brijesh Kumar écrit avec sur l’utilisation d’une signature numérique. Ils mentionnent l'algorithme MD5 de Rivest et y ajoutent l’idée de numéroter les mises à jour par des numéros de séquence, pour protéger leur intégrité et fraîcheurLa fraîcheur d’un message est l’idée d’éviter la réutilisation de messages anciens, qui ont pu être retardés ou utilisés par un attaquant qui pourrait modifier les tables de routages..
En , BGP 4 est une première fois définie dans la pour remplacer le protocole Exterior Gateway (EGP) avant d’être redéfinie en dans la .
Des signatures numériques à la redéfinition de Cisco
Malgré les recherches et études sur le sujet, BGP 4 n’utilise aucun moyen cryptographique pour sécuriser les échanges même si les failles de sécurité sont connues et présentées par l’IETF lui-même par le biais de Sandra Murphy qui dès à 2006() publiera des RFC analysant les vulnérabilités de sécurité.
En 1996, Bradley R. Smith propose un ensemble de modifications au protocole BGP qui consistent à introduire une signature numérique pour chaque annonceur traversé (le prédécesseur). Cette modification améliore l’authentification des chemins et permet d’éviter les boucles.
En 1997, Steven Cheung écrit sur l’utilisation de chaînes de hashage et l’optimisation des acceptations de mises à jour de chemins.
En 1998, Kirk A. Bradley propose une approche collaborative et distribuée pour les vérifications, le protocole WATCHERS.
En août, Andy Heffernan publie la RFC2385 relative à l’option TCP, la signature MD5.
Entre 2000 et 2003, plusieurs protocoles ont été proposés pour améliorer la sécurité des réseaux et en particulier pour vérifier si un système autonome (AS) a le droit d’annoncer un chemin comprenant un certain préfixeMasque de sous-réseau, ensemble d'adresses partageant le même préfixe de n bit. Notation : 192.0.0.0/8 pour les réseaux d'un préfixe de 8 bits dont la valeur est 192..
En 2000, Stephen Kent décrit le protocole Secure BGP (S-BGP) pour le compte de la société Bolt, Beranek and Newman (BBN) qui fonctionne avec deux PKI. À chaque réception de mise à jour, le routeur BGP contacte le premier PKI afin de vérifier le préfixe IP dans le chemin et l'AS auquel il appartient. Le second PKI est ensuite contacté pour vérifier l’AS Ces PKI seraient tenues dans les registres internet régionaux (RIR) et parallèles au système existant d’AS.
En , Xiaoliang Zhao publie un Internet Draft Validation of the multiple origin ASes conflicts through BGP community attribute et An Analysis of BGP Multiple Origin AS (MOAS)Conflicts qui traitent du cas où un préfixe semble faire partie de plusieurs AS (MOAS) qui sont causés par le multi-homing ou les mauvaises configurations. Il y définit les listes de MOA pour distinguer ceux qui sont valides des autres.
En 2002, la société Cisco propose Secure Origin BGP (soBGP) décrit d’abord par James Ng dans le document Extensions to BGP to Support Secure Origin BGP (soBGP) puis par Russ White en 2003. soBGP repose sur une base de données sécurisée pour connaître la topologie et les possesseurs des préfixes. Les mises à jour dans la base de données sont cryptées avec IPsec ou MD5 pour en assurer la sécurité
L'IETF propose également une succession de documents étudiant l'utilisation de certificats X.509 associés à des infrastructures à clef publique ().
En 2003, Stephen M. Bellovin et Emden R. Gansner traitent des attaques permettant de couper les relations entre les annonceurs visant à modifier la topologie.
Lan Wang s’intéresse à la protection des routes BGP grâce aux systèmes de noms de domaine (DNS). Les routes menant aux DNS sont conservées dans une base de données. Lorsque ces routes ont été utilisées un nombre de fois défini, elles sont vérifiées humainement pour servir d’historique afin de filtrer les routes BGP.
C. Kruegel tente de valider les chemins en vérifiant les nœuds traversés. Pour savoir si un chemin conduit à une adresse IP donnée, il se base sur les graphes de connectivité et les informations géographiques des bases de données contenues dans les registres régionaux de l’internet (Whois) pour apprendre la topologie des réseaux.
Geoffrey Goodell propose le protocole et l’architecture Interdomain Routing Validator (IRV). Dans son modèle, la sécurité est assurée en déportant les responsabilités d’autorité à un serveur IRV propre à chaque AS. Lors de la réception d’une nouvelle route, l’annonceur BGP contacte l’IRV et lui communique le chemin qui pour chaque AS traversé requête vers les serveurs IRV correspondant. Cette disposition réduit les besoins en mémoire et calcul pour la cryptographie.
De BGP 4 à l'idée de BGPSEC
En , l’IETF réactualise les spécifications du protocole BGP 4 (RFC 4271) et rend obligatoire l’utilisation de l’option MD5 pour les communications TCP. Pour l’occasion, Sandra Murphy republie une étude des vulnérabilités de BGP (RFC 4272).
En juin, le SIDR, groupe de l'IETF chargé de sécuriser BGP, publie la première version du document A Profile for X.509 PKIX Resource Certificates ().
Josh Karlin propose Pretty Good BGPPretty Good BGP: Improving BGP by Cautiously Adopting Routes qui filtre les annonces en fonction d’un historique de chemins considérés de confiance. Les routes considérées anormales sont mises en quarantaine pendant 24 heures pour ralentir leur propagation et communiquées aux administrateurs pour vérification.
Dionysus Blazakis définit une nouvelle unité pour jauger la stabilité d’une route. Cette unité est la distance d’édition d’ASPATH (AED)Analyzing BGP ASPATH Behavior in the Internet. Elle est convenue sur l’idée que plus le nombre d’AS traversé est élevé, moins le chemin est sûr.
Jian Qiu pense qu’aucune solution permet de contrer efficacement les détournements, et plus précisément celui redistribué. (A et B paires et C un AS malicieux, A apprend à C une route qu’il réapprend à B alors que B est relié à A : il a alors accès au trafic venant de B pour A.). Il propose alors une variante légère à l’épreuve du détournement de BGP et un plan pour son déploiement progressif. Le principe pour éviter le détournement est que chaque AS et RIR fournit un serveur communiquant les informations pertinentes des AS et des préfixes IP (Qui possède cette IP ? Quels sont les voisins de A ?). Ensuite chaque AS utilise ce serveur de maintenance comme base de données basé sur l’historique pour autoriser ses routeurs à accepter et communiquer une route.
Sophie Y. Qiu étudie les changements d’origine des annonces. Lors de la réception d’une route pour un préfixe d’IP donné, si l’AS d’origine change, le serveur contacte le réseau et les AS pour identifier la source de cette modification afin d’identifier les AS mal configurés. Ce mécanisme permet l’évaluation des AS et la confiance qu’on peut porter à leurs annonces. Selon ces évaluations, on peut ralentir la propagation des annonces.
Patrick Reynolds propose N-BGP, un outil de surveillance externe pour la sécurité de BGP. Pour chaque routeur, un serveur N-BGP recherche les erreurs (sniffing) sur les liens avec ses pairs. S’il détecte des routes invalides, il communique des mises en garde.
Kevin Butler explore le moyen de simplifier les opérations cryptographiques de hash et signature en s’appuyant sur la stabilité naturelle des chemins.
Earl Barr travaille sur la détection des MOA et les communications entre les AS. Il en synthétise son framework Descartes BGP (D-BGP). Il fonctionne sur le travail collaboratif des AS pour déterminer le possesseur d’un préfixe et si le conflit persiste fournit des logs détaillés pour les administrateurs.