RFC 9887 - Résumé technique (version française)
Document : Terminal Access Controller Access-Control System Plus (TACACS+) sur TLS 1.3
Numéro RFC : 9887
Date de publication : décembre 2025
Statut : NORME PROPOSÉE (PROPOSED STANDARD)
Met à jour : RFC 8907
Fiche de référence rapide
Exigences critiques (MUST)
| Exigence | Spécification | Section |
|---|---|---|
| Version TLS | TLS 1.3 minimum | 3.2 |
| Numéro de port | TCP 300 pour TLS | 3.1, 7 |
| Authentication | Mutuelle (client + serveur) | 3.1 |
| Validation des certificats | Chaîne complète + révocation | 3.4.1 |
| Obfuscation | NE DOIT PAS être utilisée avec TLS | 4 |
| Indicateur non chiffré | DOIT être fixé à 1 | 4 |
| Données 0-RTT | NE DOIT PAS être envoyées | 5.1.2 |
| Repli (fallback) | NE DOIT PAS vers du non-TLS | 5.1.1 |
Méthodes d’Authentication prises en charge
-
Par certificat (Certificate-Based) (OBLIGATOIRE)
- Certificats X.509 avec validation de chaîne complète
- Vérification de révocation requise
- DNS-ID, IP-ID ou SRV-ID pour l’identité du serveur
- Prise en charge de l’extension SNI requise
-
Clés pré-partagées (Pre-Shared Keys, PSK) (OPTIONNEL)
- PSK externes (pas des PSK de reprise de session)
- Longueur minimale 16 octets
- DOIVENT différer des secrets partagés d’obfuscation
-
Clés publiques brutes (Raw Public Keys, RPK) (OPTIONNEL)
- Hors du périmètre de ce document
- Voir la RFC 7250 pour les détails
Attribution des ports
| Service | Port | Protocole | Usage |
|---|---|---|---|
| TACACS+ (héritage) | 49 | TCP | Connexions sans TLS |
| TACACS+ sur TLS | 300 | TCP | Connexions TLS 1.3 et ultérieures |
Enregistrement IANA : nom de service « tacacss » sur le port 300/TCP
Exigences de configuration TLS
Suites cryptographiques obligatoires
- Suites obligatoires de TLS 1.3 (RFC 8446, section 9.1)
- Devraient être configurables par les opérateurs
Exigences relatives aux certificats
- Validation de chemin : RFC 5280, section 6
- Validation d’identité : RFC 9525
- Révocation : doit être vérifiée lors de l’établissement initial et de la reprise
- SNI : doit être pris en charge (RFC 6066, section 3)
Fonctionnalités interdites
- Versions TLS < 1.3
- Données anticipées 0-RTT
- Passage depuis une connexion non-TLS
- Obfuscation basée sur MD5
- Repli vers du non-TLS
Cycle de vie de la connexion
Client Serveur
| |
|--- Connexion TCP vers le port 300 ----->|
| |
|<-- Poignée de main TLS 1.3 (auth mutuelle) -->|
| |
|--- Données TACACS+ (données applicatives TLS) ->|
|<-- Réponse TACACS+ ----------------------|
| |
|--- Fermeture (après session ou délai) -->|
Modes de connexion
-
Mode connexion unique (Single Connection Mode) (RFC 8907, section 4.3)
- Plusieurs sessions TACACS+ sur une connexion TLS
- Soumis à un délai d’inactivité
- La connexion peut persister brièvement
-
Mode sans connexion unique (Non-Single Connection Mode)
- Une session TACACS+ par connexion TLS
- TCP fermé après fin de session
Reprise TLS
- Durée de vie du ticket : devrait être configurable (y compris 0 seconde)
- Usage unique : chaque ticket pour une seule reprise
- Vérification de révocation : requise pendant la période de reprise
- Comportement du serveur : devrait autoriser si le ticket est valide et inutilisé
Synthèse des considérations de sécurité
Modèle de menace pris en charge
| Menace | Atténuation |
|---|---|
| Écoute clandestine | Chiffrement TLS 1.3 |
| Homme du milieu (Man-in-the-Middle) | Authentication mutuelle |
| Attaques par rejeu | Pas de 0-RTT, mécanismes de nonce |
| Attaques par rétrogradation | Ports distincts, pas de repli |
| Cryptographie faible | MD5 obsolète, TLS 1.3 uniquement |
Sécurité du déploiement
-
Séparation TLS et non-TLS
- RECOMMANDÉ : hôtes physiques distincts
- DOIT : numéros de port distincts
- Limite l’exposition due à une mauvaise configuration
-
Gestion des certificats
- Suivre la BCP 195 (RFC 7525)
- Certificats génériques (wildcard) : limités à un sous-domaine dédié
- Atteignabilité de l’AC : prévoir l’isolement réseau
-
Clarté de la configuration
- Indicateurs explicites de mode TLS / non-TLS
- Avertissements de validation en cas d’incohérence de port
- Sections de configuration distinctes
Stratégie de migration (5 phases)
Phase 1 : Évaluation
- Inventorier tous les clients et serveurs TACACS+
- Identifier les équipements compatibles TLS et hérités
- Planifier les changements de topologie réseau
Phase 2 : Pilote
- Déployer des serveurs TLS sur le port 300 en environnement de test
- Configurer les clients de test
- Valider l’infrastructure de certificats
Phase 3 : Déploiement initial
- Migrer un sous-ensemble de clients de production
- Surveiller les incidents
- Maintenir une infrastructure non-TLS en parallèle
Phase 4 : Déploiement progressif
- Migrer par étapes les clients restants
- Documenter les exceptions pour équipements hérités
- Mettre en œuvre des mesures compensatoires pour le non-TLS
Phase 5 : Achèvement
- Désactiver l’infrastructure non-TLS
- Audit de sécurité final
- Mettre à jour la documentation
Règle critique : les clients NE DOIVENT PAS se replier sur du non-TLS en cas d’échec TLS
Liste de contrôle d’implémentation
Implémentation serveur
- Prise en charge de TLS 1.3 (minimum)
- Écoute sur le port 300 (ou alternative configurée)
- Authentication mutuelle par certificat
- Validation du chemin de certificat (RFC 5280)
- Vérification de révocation
- Prise en charge de l’extension SNI
- Rejet des paquets sans TAC_PLUS_UNENCRYPTED_FLAG
- Rejet des données 0-RTT
- Prise en charge de la reprise TLS
- Durée de vie du ticket configurable
- Optionnel : Authentication par PSK
- Optionnel : Raw Public Keys
Implémentation client
- Prise en charge de TLS 1.3 (minimum)
- Connexion au port 300 (ou configuré)
- Négociation TLS immédiate (sans upgrade)
- Validation des certificats
- Extension SNI dans ClientHello
- Définir TAC_PLUS_UNENCRYPTED_FLAG = 1
- Aucune transmission de données 0-RTT
- Pas de repli vers du non-TLS
- Prise en charge de la reprise TLS
- Optionnel : Authentication par PSK
- Optionnel : Raw Public Keys
Notes pour une implémentation de référence
Validation de l’identité par certificat
Types d’identifiants acceptables :
- DNS-ID : tacacs.example.com
- IP-ID : 192.0.2.1 ou 2001:db8::1
- SRV-ID : _tacacs._tcp.example.com
NON acceptables :
- URI-ID (non utilisé pour TACACS+)
Certificats génériques (wildcard)
✅ BON : *.tacacs.example.com (sous-domaine dédié)
❌ MAUVAIS : *.example.com (trop large)
Format d’identité PSK
- Longueur minimale : 16 octets
- Suivre la RFC 9257, section 6.1
- Doit différer des secrets d’obfuscation
Bonnes pratiques opérationnelles
-
Supervision
- Journaliser tous les échecs de poignée de main TLS
- Alerter sur les tentatives de connexion non-TLS vers le port 300
- Suivre les dates d’expiration des certificats
-
Cycle de vie des certificats
- Automatiser le renouvellement (par ex. protocole ACME)
- Conserver les chaînes de certificats localement
- Prévoir les pannes d’AC
-
Tests
- Audits réguliers de la configuration TLS
- Tests de compatibilité des suites cryptographiques
- Validation des scénarios de basculement
-
Documentation
- Tenir un inventaire des serveurs TLS vs non-TLS
- Documenter le calendrier de migration
- Enregistrer les ancres de confiance des certificats
Exigences de conformité
FIPS 140-3
- TLS 1.3 avec suites cryptographiques approuvées
- Obfuscation MD5 obsolète (non conforme)
- Authentication par certificat recommandée
Normes du secteur
- PCI DSS : cryptographie forte requise
- NIST SP 800-52 : lignes directrices TLS
- BCP 195 : bonnes pratiques TLS
Pièges courants à éviter
- ❌ Incohérence de port : client TLS se connectant au port 49
- ❌ Logique de repli : tentative de non-TLS après échec TLS
- ❌ Secrets mélangés : mêmes clés pour obfuscation et PSK
- ❌ 0-RTT activé : envoi de données anticipées
- ❌ Validation des certificats désactivée : acceptation de certificats invalides
- ❌ Même hôte : TLS et non-TLS sur le même serveur
- ❌ Abus de wildcard : utilisation de *.example.com pour tous les services
- ❌ Absence de vérification de révocation : omission de la validation CRL/OCSP
Considérations de performance
Surcharge de la poignée de main TLS
- Poignée de main complète : ~2 aller-retour (TLS 1.3)
- Reprise : ~1 aller-retour
- Atténuation : utiliser la reprise pour les connexions répétées
Persistance des connexions
- Le mode connexion unique réduit la fréquence des poignées de main
- Équilibre entre réutilisation des connexions et paramètres de délai
- Délai typique : 60 à 300 secondes
Validation des certificats
- Mettre en cache les certificats validés
- Utiliser l’OCSP stapling pour réduire la latence
- Envisager l’extension TLS Cached Information (RFC 7924)
Guide de dépannage
| Symptôme | Cause possible | Solution |
|---|---|---|
| Connexion refusée | Mauvais port | Vérifier que le client est configuré pour le port 300 |
| Échec de poignée de main | Incompatibilité de version TLS | Garantir la prise en charge de TLS 1.3 |
| Erreur de certificat | Chaîne de certificats invalide | Vérifier la confiance en l’AC et la validité du certificat |
| Authentication échouée | Problème d’auth mutuelle | Vérifier les certificats client et serveur |
| Erreur TAC_PLUS_UNENCRYPTED_FLAG | Indicateur non défini | S’assurer que le client fixe l’indicateur à 1 |
| Reprise refusée | Ticket expiré / déjà utilisé | Normal ; une poignée de main complète suivra |
Évolutions futures
Modèle de données YANG
- Besoin d’un modèle de configuration normalisé
- Bénéficierait de l’automatisation et de la cohérence
- Devrait inclure des paramètres spécifiques à TLS
Extensions de protocole
- Ce document se concentre sur TLS 1.3
- Les versions TLS ultérieures devraient fonctionner
- Suivre le groupe de travail TLS de l’IETF pour les mises à jour
Déploiement IPv6
- Aucun changement aux recommandations IPv6
- TLS fonctionne de la même manière sur IPv4 et IPv6
- Utiliser IP-ID pour l’identité par certificat basée sur l’IP
Arbre de décision rapide
Avez-vous besoin de la sécurité TACACS+ ?
├─ OUI → Utiliser TLS (cette RFC)
│ ├─ Équipements récents → Authentication par certificat
│ ├─ Équipements contraints → Envisager PSK
│ └─ Équipements hérités → Infrastructure non-TLS séparée
│
└─ NON → Évaluer si TACACS+ est adapté
└─ Les environnements à haute exigence de sécurité exigent TLS
RFC associées
- RFC 8907 : protocole TACACS+ de base (mise à jour par cette RFC)
- RFC 8446 : TLS 1.3 (couche transport)
- RFC 5280 : PKI X.509 (certificats)
- RFC 9525 : identité de service dans TLS (validation d’identité)
- RFC 9257 : lignes directrices sur les PSK externes
- RFC 7525 (BCP 195) : bonnes pratiques TLS
Statut du document
- Piste des normes (Standards Track) : oui
- Implémentation requise : pour les nouveaux déploiements
- Rétrocompatibilité : fonctionnement en parallèle pendant la migration
- Rend obsolète : uniquement le mécanisme d’obfuscation MD5
- Met à jour : RFC 8907 (ajoute le profil TLS)
Dernière mise à jour : 26 décembre 2025
Version du document : 1.0 (version française complète)
Maintenu par : Projet de traduction RFC