Le Thu, 2 Feb 2012 08:37:18 +0100,
Stephane Bortzmeyer <bortzme...@nic.fr> a écrit :

> http://www.bortzmeyer.org/6518.html
> 
> ----------------------------
> 
> Auteur(s) du RFC: G. Lebovitz, M. Bhatia (Alcatel-Lucent)
> 
> 
> 
> ----------------------------
> 
> 
> Dans l'ensemble du travail engagé pour améliorer la sécurité du
> routage sur l'Internet, un sous-problème important est celui de la
> gestion des clés. En cryptographie, c'est souvent par une faiblesse
> dans cette gestion que les systèmes de sécurité sont compromis. Le
> groupe de travail KARP <http://tools.ietf.org/wg/karp> de l'IETF est
> occupé à améliorer les protocoles de gestion de clés et son premier
> RFC, ce RFC 6518, expose les propriétés attendues des futurs
> protocoles de gestion des clés des routeurs.
> 
> Prenons par exemple N routeurs OSPF qui veulent s'authentifier les
> uns les autres. La technique du RFC 2328 est d'avoir un secret
> partagé par tous les routeurs du même réseau local. Les messages OSPF
> sont concaténés avec ce secret, le résultat de la concaténation est
> ensuite condensé cryptographiquement, ce qui permettra au
> destinataire de s'assurer que l'émetteur connaissait bien le secret.
> Ce secret partagé est une clé cryptographique. Qui va la générer ?
> Comment la distribuer de façon sûre ? Comment la changer facilement
> et rapidement si le secret est compromis (ou, tout simplement, si un
> employé quitte l'entreprise) ? Ce genre de questions est la
> problématique de *gestion de clés*. Dans le cas d'OSPF, actuellement,
> la quasi-totalité des opérateurs de routeurs fait cela à la main (on
> se logue sur chaque routeur et on change le secret...) ou, à la
> rigueur, via un protocole général de configuration des routeurs.
> Peut-on faire mieux ? C'est en tout cas ce que va essayer de faire le
> groupe KARP.
> 
> C'est que les mécanismes actuels ne sont pas satisfaisants. Comme le 
> rappelle la section 1 du RFC, lors d'un colloque en 2006 (cf. RFC 
> 4948), les participants avaient dénoncé la vulnérabilité des routeurs 
> aux tentatives de prise de contrôle et appelé à durcir leur sécurité. 
> Quatre axes d'amélioration avaient été identifiés, améliorer la
> gestion des routeurs (groupe de travail OPSEC 
> <http://tools.ietf.org/wg/opsec>), améliorer les IRR, valider les 
> annonces de route (groupe de travail SIDR 
> <http://tools.ietf.org/wg/sidr>), et enfin sécuriser les
> communications entre routeurs (groupe de travail KARP 
> <http://tools.ietf.org/wg/karp>), ce qui fait l'objet de ce RFC. Les 
> informations de routage sont échangées via un protocole et la 
> protection de ce protocole se fait par la cryptographie. Qui dit 
> cryptographie dit clés. Lorsqu'un routeur cherche une clé pour
> protéger un message, où demande-t-il ? Pour l'instant, il n'y a pas
> de mécanisme standard et KARP va essayer d'en développer un. Le plus
> courant aujourd'hui est la gestion manuelle des clés (l'opérateur
> configure les clés, les change à la main - lorsqu'il y pense, les
> communique via PGP, SCP voire sans aucune sécurité) mais le RFC
> estime que le futur est dans des mécanismes automatisés de gestion de
> clés, les *KMP* (pour "Key Management Protocol"). Un KMP, par
> exemple, change automatiquement les clés au bout d'une période
> pré-définie.
> 
> Compte-tenu de la variété des protocoles de routage, et du transport 
> qu'ils utilisent, ce sera un mécanisme abstrait, pas un protocole 
> précis (ce RFC 6518 n'a donc pas d'implémentation, il définit juste
> un cadre). Plus précisement, KARP va concevoir les interfaces
> abstraites entre le système de gestion de clés et le protocole de
> routage, puis, pour chaque protocole de routage, la correspondance
> entre cette interface abstraite et le protocole réel. Un projet
> ambitieux.
> 
> Maintenant, au boulot. Qu'est-ce qui est déjà fait dans ce RFC ? La 
> section 2 classe les protocoles de routage selon leurs propriétés. 
> L'idée est que les protocoles de routage qui partagent les mêmes 
> propriétés pourront, avec un peu de chance, utiliser les mêmes 
> mécanismes de gestion de clés. Première propriété, le type de
> message. Certains protocoles sont de type un-vers-un : les messages
> d'un routeur sont envoyés à un autre routeur. Les UPDATE BGP (RFC
> 4271) fonctionnent ainsi. Mais c'est aussi le cas de LDP (RFC 5036),
> de BFD (RFC 5880) et même d'OSPF (RFC 2328 dans certaines conditions
> (liens point -à-point). D'autres protocoles fonctionnent en
> un-vers-plusieurs. Un routeur diffuse sur le réseau local
> l'information de routage. C'est le mode de fonctionnement le plus
> courant d'OSPF et c'est aussi celui de RIP (RFC 2453). Enfin, il y a
> les protocoles utilisés pour le "multicast".
> 
> Deuxième propriété pour classer les protocoles de routage, proche de
> la précédente mais pas identique, le fait que la clé soit par groupe
> ou par pair. Dans BGP ou LDP, les clés sont individuelles, on a une
> clé différente par pair. Dans OSPF, la clé est la même pour tous les
> pairs d'un groupe.
> 
> La section 3 liste ensuite les points auxquels il faut penser
> lorsqu'on envisage un protocole de gestion de clés, un KMP. Le RFC
> 4107 fournit les bases générales et notre RFC l'adapte aux protocoles
> de routage. Entre autres, il faudra penser aux paramètres à passer
> avec le système de gestion de clés, comme la durée de vie pour les
> clés, l'identificateur de l'association de sécurité (SPI dans IPsec,
> KeyID dans TCP-AO, etc), l'algorithme de chiffrement et plusieurs
> autres.
> 
> Deux points sont soulignés par le RFC, les questions particulières
> des clés asymétriques (section 3.1) et le cycle de vie des clés
> (section 3.2). Les clés asymétriques sont souvent une bonne solution
> aux problèmes de sécurité : déjà utilisées par les routeurs
> (lorsqu'ils sont administrés via SSH), générées sur le routeur, elles
> peuvent n'avoir jamais besoin de le quitter (le RFC ne le dit pas
> clairement mais on peut même imaginer un petit HSM dans le routeur).
> Générées aléatoirement, elles ne peuvent pas être devinées comme le
> sont tant de mots de passe choisis par des humains. Il faut juste
> faire attention à leur taille, pour limiter les risques des attaques
> par force brute (RFC 3766). L'algorithme classique pour ces clés est
> RSA mais les algorithmes à base de courbes elliptiques commencent à
> se répandre, et permettent d'utiliser des clés plus courtes.
> 
> Quant au cycle de vie des clés, notre RFC insiste surtout sur la 
> nécessité d'avoir des remplacements ("rollover") de clés qui soient 
> discrets : un remplacement de clés ne devrait pas casser les sessions 
> de routage existantes, car cela imposerait des recalculs lourds des 
> tables de routage, se propageant dans tout le réseau, et entraînant 
> parfois des perturbations dans la connectivité. (Le RFC ne le cite
> pas mais la traditionnelle authentification MD5 de BGP - RFC 2385 -
> n'a pas cette propriété. Changer la clé impose de relancer les
> sessions BGP. C'est sans doute une des raisons pour lesquelles ces
> clés ne sont jamais changées, même quand tout le monde les connait.)
> 
> Pourquoi, d'ailleurs, faut-il changer les clés de temps en temps ? Il 
> peut y avoir des raisons cryptographiques (progrès de la
> cryptanalyse, mais le RFC note qu'en pratique, ce sont les cas les
> plus rares, des problèmes moins prestigieux scientifiquement sont
> bien plus communs), des raisons liées au personnel (départ d'un
> ingénieur qui connaissait les clés), des raisons plus urgentes
> (compromission d'une machine où étaient stockées des clés). Même s'il
> n'y a aucune raison immédiate de changer, un remplacement des clés de
> temps en temps peut être nécessaire pour s'assurer qu'un attaquant
> qui a obtenu une clé et l'utilise discrètement (de manière purement
> passive), ne puisse pas profiter de son butin éternellement.
> 
> Lorsque les procédures de changement de clés sont manuelles, les 
> changements peuvent être en eux-mêmes une source de vulnérabilité 
> (l'erreur est humaine...).
> 
> Après ces préliminaires, la section 4 dessine le travail futur. Il y
> a deux chantiers génériques (indépendants du protocole de routage) 
> importants, le premier étant un pré-requis du second :
> * Doter tous les protocoles de routage de mécanismes leur permettant 
> l'agilité des algorithmes (changer d'algorithme facilement, 
> contrairement au RFC 2385, qui ne permettait que MD5) et celle des
> clés (changer de clés sans casser les sessions entre routeurs). À
> l'heure actuelle, c'est très loin d'être le cas.
> * Une fois ces mécanismes en place, développer un KMP, un "Key 
> Management Protocol" permettant la gestion et le remplacement 
> automatique des clés. Ce dernier protocole devrait être aussi 
> indépendant du protocole de routage que possible.
> Pour que les mécanismes nouveaux aient des chances de succès, ils 
> doivent pouvoir être déployés sans ajouter de complexité par rapport
> à ce que font déjà les opérateurs (qui connaissent SSH, TCP-MD5,
> HTTPS et les certificats, etc). Le but n'est pas de faire un système
> qui empêche l'opérateur de faire une erreur (comme d'utiliser
> « foobar » comme mot de passe pour tous les systèmes) mais de faire
> un système qui soit utilisé dans le monde réel, et pour cela, la
> simplicité et la déployabilité sont des critères essentiels (mais
> très souvent oubliés par les experts en sécurité, qui se soucient
> d'avantage de faire des systèmes parfaits que des systèmes
> déployables, cf. section 6).
> 
> Avec une gestion manuelle des clés, on ne peut gérer de manière 
> raisonnablement sûre que des petits réseaux. La deuxième étape sera 
> donc de déployer le mécanisme de gestion automatique.
> 
> Le travail d'amélioration de chaque protocole de routage est décrit
> en section 4.2 sous forme d'une liste de tâches :
> * Analyser le protocole actuel pour déterminer de façon précise quels 
> sont ses mécanismes de sécurité présents,
> * Déterminer ce qui lui manque pour atteindre le premier état de 
> sécurité souhaité (agilité des algorithmes et possibilité de changer
> de clés en vol),
> * Analyse des étapes nécessaires pour aller du premier point au 
> deuxième sans tout casser, en faisant particulièrement attention aux 
> questions de déployabilité dans le monde existant,
> * Analyser le futur KMP (protocole de gestion de clés) pour ce 
> protocole de routage particulier : a-t-il des demandes spécifiques ?
> * Déterminer ce qui manque pour atteindre le deuxième état de
> sécurité (gestion automatique des clés),
> * Normaliser l'adaptation du KMP à ce protocole et déployer le 
> résultat.
> 
> 
> On l'a vu en section 2, KARP classe les protocoles de routage en 
> catégories selon leurs propriétés. La section 5 examine les points
> qui sont spécifiques à chaque catégorie. BGP, LDP et quelques autres
> sont dans la catégorie « messages un-vers-un et clés par pair ». BGP 
> fonctionne toujours sur TCP, LDP parfois sur TCP et parfois sur UDP. 
> Pour le cas de TCP, une bonne partie du travail a déjà été faite dans 
> le groupe TCPM <http://tools.ietf.org/wg/tcpm>, avec la technique 
> d'authentification AO (RFC 5925) qui a les propriétés voulues pour la 
> première phase du travail de KARP (agilité des algorithmes et 
> changement de clé facile). Il ne reste donc que le cas de LDP sur UDP.
> 
> Pour la catégorie « un-vers-plusieurs avec clés par groupe », qui 
> comprend OSPF, IS-IS et RIP, rien de générique n'est fait. Le
> problème est ici bien plus difficile, d'autant plus que ces
> protocoles n'utilisent pas en général de protocole de transport
> standard, et ne peuvent donc pas réutiliser un mécanisme fourni par
> la couche 4 (comme peut le faire BGP avec AO).
> 
> BFD est un cas à part et qui nécessitera sa propre équipe. Par
> exemple, il est beaucoup plus sensible aux délais que les autres.
> Pour lui, une milliseconde est très longue.
> 
> On l'a vu, ce RFC répète régulièrement qu'il est essentiel de prévoir 
> un déploiement incrémental des nouveaux mécanismes de sécurité. Pas 
> question d'ignorer l'existant. La section 6 insiste sur ce point. 
> Contrairement à une attitude fréquente chez les experts en sécurité, 
> qui est de chercher une solution parfaite, KARP va essayer de trouver 
> des solutions qui puissent être déployées par étapes, sans casser le 
> routage actuel, même si ces solutions ne sont pas les meilleures, 
> question sécurité. Par exemple, les routeurs configurés avec les 
> nouveaux mécanismes doivent pouvoir interagir sans ennuis avec les 
> vieux routeurs non sécurisés.
> 
> Un des problèmes de sécurité les plus difficiles dans l'Internet est 
> celui des attaques par déni de service (section 7). Ces attaques 
> touchent aussi les routeurs et les protocoles de routage. Il ne faut 
> donc pas que les nouvelles techniques conçues dans le cadre du groupe 
> KARP aggravent le problème. Par exemple, les calculs cryptographiques 
> peuvent être coûteux, surtout pour les ressources matérielles souvent 
> limitées des routeurs, et les protocoles ne doivent donc pas
> permettre à un attaquant de faire faire au routeur une énorme
> quantité de ces calculs. Pour éviter cela, il faut permettre au
> routeur de faire des vérifications non-cryptographiques, donc bien
> plus légères, avant de se lancer dans les calculs compliqués. Par
> exemple, le RFC 5082 utilise le TTL du paquet entrant (quelque chose
> de trivial à vérifier) pour empêcher certaines attaques. Il est
> important, dans le cadre de KARP, de développer et de documenter de
> telles alternatives. D'autre part, le protocole doit être conçu de
> manière à ce que ce soit l'initiateur de la connexion (un attaquant
> potentiel) qui ait le plus de travail cryptographique à faire, et qui
> doive maintenir un état pendant ce temps.
> 
> La section 9 du RFC, la traditionnelle section sur la sécurité, 
> détaille quelques points précis qui n'avaient pas trouvé leur place 
> dans le reste du RFC. Par exemple, il est important de considérer
> aussi si le protocole de routage qu'on veut protéger est un IGP ou un
> EGP (certains protocoles peuvent être utilisés pour les deux, comme
> BGP avec son mode iBGP). Les deux sont sans doute aussi importants
> mais les menaces et les solutions ne seront pas forcément les mêmes.
> Un routeur purement interne et qui n'a aucun accès à l'Internet est
> ainsi sans doute moins menacé qu'un routeur BGP posé sur un point
> d'échange avec des dizaines d'autres routeurs inconnus.
> 
> Autre question transversale, celle des clés partagées ou uniques. 
> Faut-il utiliser la même clé à plusieurs endroits ? Le débat est
> simple : c'est la sécurité (clés uniques !) contre la commodité (clés 
> partagées). Actuellement, dans la grande majorité des environnements, 
> les opérateurs ont choisi la commodité, réutilisant la même clé à 
> plusieurs endroits. Les clés des routeurs sont stables dans l'espace 
> (utilisées dans plusieurs routeurs) et dans le temps (on les change 
> rarement, voire jamais et certains routeurs gardent la même clé toute 
> leur vie). L'un des buts de KARP est de casser ce dilemne « sécurité
> ou commodité » en fournissant des mécanismes de gestion de clés qui
> soient sûrs (clés uniques) tout en étant faciles à déployer.
> 
> Enfin, la section 9.4 discute du dernier problème transversal, la 
> distribution des clés. La méthode la plus courante aujourd'hui est un 
> mécanisme « hors-bande », par exemple l'administrateur qui se
> connecte en SSH au routeur et entre manuellement les clés dans la
> configuration. Ça ne passe pas tellement à l'échelle (il faudrait
> automatiser les connexions SSH, par exemple avec Capistrano, pour
> faire l'opération sur N routeurs). Et changer toutes les clés en cas,
> par exemple de départ d'un administrateur (ou, pire, en cas de
> compromission de la clé) est trop lent. L'approche d'un KMP,
> protocole de gestion de clés, est donc préférée par KARP, comme nous
> l'avons déjà vu. Mais le RFC ne cache pas que le KMP a ses propres
> problèmes : lenteur au début (davantage de calculs cryptographiques)
> et surtout risques liés au manque de maturité des programmes, les KMP
> étant encore chose récente.
> 
> Une des possibilités envisagées est de réutiliser un KMP existant
> comme IKE, adapté au monde du routage, mais tournant en dehors du
> protocole de routage. L'autre possibilité est un nouveau KMP,
> embarqué dans le protocole de routage. Mais la décision n'est pas
> encore prise.
> 
> 
> ---------------------------
> Liste de diffusion du FRnOG
> http://www.frnog.org/

Merci beaucoup pour l'info, c'est une lecture extrêmement intéressante !


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

Répondre à