Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Option d’authentification TCP (TCP-AO)

RÉSUMÉ Découvrez l’option d’authentification TCP (TCP-AO) pour les sessions BGP et LDP.

TCP-AO pour les sessions BGP et LDP

Les protocoles BGP et LDP utilisent TCP pour le transport. TCP-AO est une nouvelle méthode d’authentification proposée par RFC5925, L’option d’authentification TCP pour améliorer la sécurité et l’authenticité des segments TCP échangés pendant les sessions BGP et LDP. Il prend également en charge le trafic IPv4 et IPv6.

Avantages de TCP-AO

TCP-AO offre les avantages suivants par rapport à TCP MD5 :

  • Algorithmes plus forts : prend en charge plusieurs algorithmes d’authentification plus forts tels que HMAC-SHA-1-96 et AES-128-CMAC-96 (mandaté par RFC5925, The TCP Authentication Option). HMAC-SHA-1-96 est un MAC basé sur le hachage et AES-128-CMAC-96 est un MAC basé sur le chiffrement, ce qui rend le résumé des messages plus complexe et plus sécurisé que le digest créé à l’aide de l’algorithme MD5.

  • Double sécurité : dans la méthode TCP-AO, l’algorithme d’authentification configuré est utilisé en deux étapes : une fois pour générer une clé de trafic interne à partir d’une clé configurée par l’utilisateur, puis pour générer un résumé de message à l’aide de la clé de trafic générée, tandis que dans la méthode TCP MD5, l’algorithme MD5 génère un résumé de message à l’aide de sa clé configurée par l’utilisateur.

  • Amélioration de la gestion des clés et de l’agilité : vous pouvez configurer jusqu’à 64 clés pour une session et les ajouter à tout moment de la durée de vie d’une session. Il fournit un mécanisme de coordination de clé simple en permettant de changer les clés (passer d’une clé à une autre) au sein de la même connexion sans provoquer de fermeture de connexion TCP. La modification des clés TCP MD5 pendant une connexion établie peut entraîner un rabat ou un redémarrage de la connexion.

  • Convient aux connexions de longue durée : convient mieux aux connexions de longue durée pour des protocoles de routage tels que BGP et LDP et sur des instances répétées d’une seule connexion.

Qu’est-ce que TCP-AO ?

TCP-AO fournit un cadre pour :

  • Prenez en charge plusieurs algorithmes plus forts, tels que HMAC-SHA1 et AES-128 pour créer une clé de trafic interne et un résumé des messages.

  • Ajoutez une nouvelle clé configurée par l’utilisateur pour régénéler les clés de trafic interne pour une connexion établie et un mécanisme permettant de synchroniser les modifications de clé entre les pairs BGP ou LDP.

Dans les versions précédentes, les équipements Junos ne supportaient que la méthode d’authentification TCP MD5 pour les sessions BGP et LDP. La méthode MD5 ne prend en charge que l’algorithme MD5, qui est moins sécurisé que TCP-AO. En outre, la modification d’une clé MD5 perturbe normalement la session TCP, contrairement à TCP-AO. Le protocole TCP MD5 est défini dans la RFC2385, Protection des sessions BGP via l’option de signature TCP MD5. Pour plus d’informations sur TCP MD5, voir TCP.

Note:
  • Bien que les équipements Junos prennent en charge à la fois les méthodes d’authentification TCP-AO et TCP MD5, vous ne pouvez pas utiliser les deux en même temps pour une connexion donnée.

  • TCP-AO prend en charge le routage actif sans interruption.

Le diagramme suivant explique la différence entre TCP-AO et l’authentification TCP MD5. Le premier flux affiche le flux de configuration et de traitement de TCP-AO et le deuxième flux indique le flux de configuration et de traitement pour TCP-MD5.

Figure 1 : TCP-AO par rapport à TCP MD5 TCP-AO in comparison with TCP MD5

Vous trouverez ci-dessous une explication des flux de traitement illustrés en figure 1 :

  • TCP-AO : l’utilisateur a configuré deux clés dans le trousseau (clé 0 et clé 1) avec tous les paramètres requis. Le trousseau prend en charge deux algorithmes : HMAC SHA1 et AES-128 (obligatoire selon la RFC5925). TCP récupère la clé 0, qui est la clé actuellement active, comme le montre l’horodatage de la figure. Dans l’exemple, la clé 0 est configurée avec HMAC-SHA1.

    SHA1 prend les paramètres spécifiques au chiffrement du « secret » (de la configuration clé 0) et de la connexion et génère une clé de trafic interne.

    SHA1 chiffre à nouveau la clé de trafic interne et le segment TCP pour générer le résumé des messages. Le résumé est copié dans le champ MAC TCP-AO de l’option TCP-AO du segment TCP. Le segment est ensuite envoyé à l’équipement de réception.

  • TCP-MD5 : l’utilisateur a configuré une seule clé car l’option TCP MD5 ne prend en charge qu’une seule clé pour une connexion. De plus, il ne prend en charge que l’algorithme MD5. L’algorithme MD5 extrait le « secret » de la clé et du segment TCP pour le chiffrement et génère un résumé des messages. Ce résumé de message est ensuite copié dans le champ de synthèse MD5 du segment TCP et envoyé à l’équipement de réception.

Configuration

Tout d’abord, configurez un trousseau. Appliquez ensuite TCP-AO à la session BGP ou LDP.

Pour configurer une chaîne de clés pour TCP-AO (avec une clé), configurez l’instruction suivante au niveau de la [edit security] hiérarchie.

Pour appliquer TCP-AO à une session BGP (avec le trousseau configuré), configurez l’instruction suivante au niveau hiérarchique [edit protocols] .

Pour appliquer TCP-AO à une session LDP (avec le trousseau configuré), configurez l’instruction suivante au niveau de la [edit protocols] hiérarchie.

Exemple : configurer un trousseau (TCP-AO)

RÉSUMÉ Cet exemple vous montre comment créer un trousseau TCP-AO pour authentifier une session BGP ou LDP.

Cet exemple utilise les composants matériels et logiciels suivants :

  • Routeurs MX Series ou PTX Series.

  • Junos OS Version 20.3R1 ou version ultérieure.

Cet exemple vous montre comment créer un trousseau TCP-AO pour authentifier une session BGP ou LDP.

Dans cet exemple, vous pouvez créer un trousseau new_auth_key avec deux clés et key 0 key 1 sur les équipements R1 et R2.

  1. Pour créer une chaîne de clés new_auth_key avec la première clé, (key 0) :
    Note:

    Copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne et modifiez les détails nécessaires pour correspondre à votre configuration réseau, copiez et collez les commandes dans la CLI.

    R1

    R2 (avec send-id et recv-id valeurs inversées)

    Prenez en compte les paramètres suivants lors de la configuration d’un trousseau :

    Tableau 1 : Paramètres du keychain

    Paramètre

    Description

    key-chain

    Saisissez un nom unique.

    key

    Saisissez un ID de clé unique.

    secret

    Saisissez un mot de passe unique.

    start-time

    Saisissez une heure unique au YYYY-MM-DD.HH:MM format pour spécifier l’heure de début de la clé.

    algorithm

    Saisissez l’algorithme ao.

    send-id Et recv-id

    Saisissez deux numéros entre 0 et 255. Vous ne devez pas utiliser ces chiffres pour toute autre clé de ce trousseau.

    cryptographic-algorithm

    Choisissez soit hmac-sha-1-96 ou aes-128-cmac-96.

    tcp-ao-option

    Choisissez enabled d’activer l’option TCP-AO.

  2. Pour ajouter une autre clé (key 1), après avoir créé key 0:

    R1

    R2 (avec send-id et recv-id valeurs inversées)

  3. Entrez commit depuis le mode de configuration sur les deux équipements pour activer vos modifications.
  4. Pour vérifier le trousseau new_auth_key avec les 2 clés configurées, utilisez la show security authentication-key-chains commande du mode de configuration.

    Voici un exemple de sortie basé sur cet exemple :

Vous avez créé un porte-clés avec succès !

Pour supprimer un trousseau, utilisez la delete security authentication-key-chains key-chain key-chain-name commande du mode de configuration.

Note:
  • Vous ne pouvez associer qu’un seul trousseau TCP-AO à une session BGP ou LDP pendant sa durée de vie. Vous ne pouvez pas rediriger un autre chaîne clé vers la session dans son temps de vie.

  • Nous recommandons un intervalle d’au moins 30 minutes entre le temps de démarrage de deux clés ultérieures dans un trousseau.

  • Une fois qu’une chaîne de clés est configurée et utilisée par une connexion TCP, vous ne pouvez pas modifier la ou recv-id les send-id valeurs de sa clé active. Toutefois, vous pouvez modifier les autres paramètres de la clé, et toute nouvelle connexion associée au trousseau mis à jour prendra les paramètres mis à jour pour l’établissement de sa connexion.

  • À partir de la version 21.2R1 de Junos OS, vous pouvez utiliser le tcpao-auth-mismatch allow-without-tcpao pour autoriser l’établissement de la connexion sans TCP-AO si un point de terminaison TCP n’est pas configuré sur celui-ci.

Pour afficher des informations sur les keychains existants (le cas échéant) du mode opérationnel, utilisez la show security keychain commande. Voici un exemple de sortie :

Exemple : utiliser TCP-AO pour authentifier une session BGP

RÉSUMÉ Cet exemple vous montre comment authentifier une session BGP à l’aide d’un trousseau d’option d’authentification TCP (TCP-AO).

Exigences

Cet exemple utilise les composants matériels et logiciels suivants :

Aperçu

BGP utilise TCP comme protocole de transport. TCP-AO est une méthode que vous pouvez utiliser pour authentifier les sessions BGP. Vous pouvez appliquer un trousseau TCP-AO au niveau du voisin BGP ou au niveau du groupe BGP de la hiérarchie de configuration.

Topologie

Figure 2 : Topologie de l’authentification Topology for BGP Authentication BGP

Configuration

Dans cet exemple, vous associez le trousseau new_auth_key d’authentification TCP-AO et l’algorithme ao d’authentification sur les deux équipements pour authentifier une session BGP.

Configuration rapide cli

Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour correspondre à votre configuration réseau, puis copiez et collez les commandes dans la CLI.

R1

R2

Procédure étape par étape

  1. Passez en mode configuration.

  2. Configurez les paramètres de base tels que l’adresse IP de l’interface, la description de l’interface, une adresse de bouclage, l’ID de routeur, le numéro AS sur les deux équipements.

    R1

    R2

  3. Configurez un EBGP entre R1 et R2.

    R1

    R2

  4. Associez le trousseau new_auth_key d’authentification et l’algorithme ao d’authentification à la session BGP sur les deux équipements.

    R1

    R2

  5. Entrez commit depuis le mode de configuration sur les deux équipements.

    Une fois que vous validez les instructions de configuration sur les deux équipements, la session BGP doit établir à l’aide de la méthode d’authentification TCP-AO.

Résultats

Confirmez vos configurations en utilisant le show interfaces, show routing-optionset show protocols les commandes du mode de configuration.

user@R1# show interfaces

user@R1# show routing-options

user@R1# show protocols

Vérification

Vérifier l’établissement des sessions BGP
But

Confirmez la sortie de l’établissement des sessions BGP après avoir activé TCP-AO.

Action

Consultez un récapitulatif BGP de l’état de la session BGP avec la commande du show bgp summary mode opérationnel.

Sens

Les valeurs de sortie mises en évidence indiquent que BGP a réussi à établir une session avec la méthode d’authentification TCP-AO il y a 1:19 minute.

Vérifier que la session BGP utilise TCP-AO
But

Vérifiez qu’un voisin BGP est authentifié avec le trousseau TCP-AO.

Action

Utilisez la show bgp neighbor neighbor commande pour afficher les détails de configuration des pairs BGP. Pour filtrer uniquement les détails spécifiques à l’authentification dans la sortie, utilisez la fonction de pipeline (|) et faites correspondre sur authentication, comme illustré :

Sens

La sortie indique que le trousseau new_auth_key d’authentification et l’algorithme ao d’authentification sont appliqués au voisin 192.0.2.2BGP .

Exemple : utiliser TCP-AO pour authentifier une session LDP

RÉSUMÉ Cet exemple vous montre comment authentifier une session LDP à l’aide d’un trousseau d’option d’authentification TCP (TCP-AO).

Exigences

Cet exemple utilise les composants matériels et logiciels suivants :

Aperçu

Le protocole LDP (Label Distribution Protocol) est un protocole de signalisation MPLS. Il permet aux routeurs d’établir des chemins de commutation d’étiquettes (LSP) via un réseau. TCP-AO permet d’améliorer la sécurité des sessions créées entre pairs LDP.

Figure 3 : topologie pour la configuration Topology for LDP Configuration LDP

Configuration

Dans cet exemple, vous associez le trousseau new_auth_key d’authentification TCP-AO et l’algorithme ao d’authentification aux deux équipements pour authentifier leur session LDP.

Configuration rapide cli

Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour correspondre à votre configuration réseau, puis copiez et collez les commandes dans la CLI.

R1

R2

Procédure étape par étape

  1. Passez en mode configuration.

  2. Configurez une configuration de base telle que l’interface de l’équipement, le bouclage, la description de l’interface, l’ID du routeur, le numéro AS sur R1 et R2.

    R1

    R2

  3. Configurez MPLS et LDP sur les deux équipements.

    R1

    R2

  4. Configurez un protocole IGP (Interior Gateway Protocol) pour annoncer l’accessibilité des adresses de bouclage. Dans cet exemple, nous configurons OSPF.

    R1

    R2

  5. Associez authentication-key-chain new_auth_key et authentication-algorithm ao avec l’ID d’espace d’étiquette des R1 et R2.

    R1

    R2

  6. Entrez commit depuis le mode de configuration sur les deux équipements.

Résultats

Confirmez votre configuration à l’aide des show interfacescommandes et show routing-options show protocols des commandes.

user@R1# show interfaces

user@R1# show routing-options

user@R1# show protocols

Vérification

Vérifier la session LDP

But

Vérifiez l’établissement des sessions LDP avec TCP-AO.

Action

Utilisez la show ldp session detail commande du mode opérationnel pour vérifier que la session LDP est correctement établie.

Sens

Le résultat indique que la session LDP est établie.

Exemple : utiliser TCP-AO pour authentifier les sessions de validation RPKI

Aperçu

L'infrastructure rpKI (Resource Public Key Infrastructure) est une infrastructure à clé publique conçue pour sécuriser l'infrastructure de routage d'Internet, en particulier le BGP. LE RPKI permet de connecter les informations sur les ressources de numéro Internet, telles que les adresses IP, à une ancre de confiance. En utilisant RPKI, les détenteurs légitimes de ressources nombreuses peuvent contrôler le fonctionnement des protocoles de routage Internet pour empêcher le détournement de route et d’autres attaques.

À partir de la version 22.2R1 de Junos OS, vous pouvez authentifier les sessions RPKI à l’aide de l’option d’authentification TCP (TCP-AO) et du trousseau.

Cet exemple vous montre comment authentifier une session de validation RPKI à l’aide d’un trousseau TCP-AO. Nous établirons une session RPKI authentifiée entre un équipement client (R1) et un serveur (R2).

Exigences

Cet exemple utilise les composants matériels et logiciels suivants :

  • 2 routeurs MX Series
  • Junos OS Version 22.2R1 ou version ultérieure.

Topologie

Figure 4 : topologie des sessions Topology for Authenticated RPKI Session RPKI authentifiées

Configuration

Dans cet exemple, vous devez associer le trousseau new_auth_key d’authentification TCP-AO et l’algorithme ao d’authentification sur les deux équipements pour authentifier une connexion RPKI.

Configuration rapide cli

Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour correspondre à votre configuration réseau, puis copiez et collez les commandes dans la CLI.

R1

R2

Procédure étape par étape

  1. Configurez les paramètres de base tels que les interfaces, une adresse de bouclage, l’ID de routeur et le numéro AS sur les deux équipements. Sur R2, nous configurons l’interface des systèmes logiques pour le serveur.

    R1

    R2

  2. Configurez une session TCP sur l’équipement client (R1) avec le serveur RPKI (R2) avec un autre numéro de port TCP.

    R1

  3. Sur le serveur R2, configurez une session RPKI avec le client R1 pour la validation de l’origine.

  4. Créez un trousseau new_auth_key avec la première clé (clé 0) :

    R1

    R2 (avec inversion des valeurs send-id et recv-id)

  5. Pour ajouter une autre clé (clé 1), après avoir créé la clé 0 :

    R1

    R2 (avec inversion des valeurs send-id et recv-id)

  6. Appliquez le trousseau new_auth_key et l’algorithme ao d’authentification configurés à la fois sur R1 et R2.

    R1

    R2

  7. Entrez commit depuis le mode de configuration sur les deux équipements pour activer vos modifications.

  8. Pour vérifier le trousseau new_auth_key avec les deux clés configurées, utilisez la show security authentication-key-chains commande du mode de configuration.

Résultats

Vérifiez les résultats de la configuration du trousseau sur R1 :

user@R1# show security authentication-key-chains

Confirmez les configurations restantes appliquées sur R1 à l’aide des commandes suivantes :

user@R1# show interfaces

user@R1# show routing-options

Vérification

But

Vérifiez que la session est établie à l’aide de l’algorithme et du trousseau TCP-AO configurés sur les deux pairs.

Action

Affichez une session validée à l’aide de la commande du show validation session 192.168.12.2 detail mode opérationnel.

Sens

La sortie indique que la session est en cours avec le trousseau new_auth_keyconfiguré .

Tableau de l’historique des versions
Libération
Description
22.4R1
À partir de la version 22.4R1 de Junos OS Evolved, vous pouvez configurer l’authentification TCP-AO ou TCP MD5 avec un sous-réseau IP afin d’inclure toute la gamme d’adresses sous ce sous-réseau.
22.4R1
À partir de la version 22.4R1 de Junos OS Evolved, l’authentification TCP est compatible VRF.