3. TACACS+ sur TLS (TACACS+ over TLS)
TACACS+ sur TLS prend le protocole défini dans [RFC8907], supprime l'option d'obfuscation et spécifie que TLS 1.3 doit être utilisé pour le transport. Un nouveau numéro de port hôte par défaut bien connu est utilisé.
TLS est introduit dans TACACS+ pour répondre aux exigences suivantes :
-
Confidentialité et intégrité : L'algorithme MD5 sous-jacent au mécanisme d'obfuscation spécifié dans [RFC8907] s'est avéré non sécurisé [RFC6151] lorsqu'il est utilisé pour le chiffrement. Sécuriser le protocole TACACS+ avec TLS est destiné à fournir la confidentialité et l'intégrité sans nécessiter la fourniture d'un réseau sécurisé.
-
Authentification des pairs : Les capacités d'authentification de TLS remplacent les secrets partagés de l'obfuscation pour l'authentification mutuelle.
3.1. Séparation des connexions TLS (Separating TLS Connections)
Les pairs implémentant la variante du protocole TACACS+ définie dans ce document doivent (MUST) appliquer l'authentification mutuelle et chiffrer toutes les données échangées entre eux. Par conséquent, lorsqu'une connexion TCP est établie pour le service, une poignée de main TLS commence immédiatement.
Pour assurer une séparation claire entre le trafic TACACS+ utilisant TLS et celui qui ne l'utilise pas, les serveurs prenant en charge TACACS+ sur TLS doivent (MUST) écouter sur un port TCP/IP distinct de celui utilisé par les serveurs TACACS+ non-TLS.
Cette spécification attribue le numéro de port TCP bien connu 300 pour TACACS+ sur TLS.
3.2. Connexion TLS (TLS Connection)
Un client TACACS+ initie une connexion TLS en établissant une connexion TCP vers un serveur TLS TACACS+ configuré sur le numéro de port TLS TACACS+. Une fois la connexion TCP établie, le client doit (MUST) immédiatement commencer la négociation TLS avant d'envoyer des données de protocole TACACS+.
Un minimum de TLS 1.3 [RFC8446] doit (MUST) être utilisé pour le transport. Les versions antérieures de TLS ne doivent pas (MUST NOT) être utilisées.
Une fois la connexion TLS établie avec succès, l'échange de données TACACS+ doit (MUST) se dérouler conformément aux procédures définies dans [RFC8907]. Cependant, tous les messages TACACS+ doivent (SHALL) être transmis en tant que données d'application TLS. Le mécanisme d'obfuscation TACACS+ défini dans [RFC8907] ne doit pas (MUST NOT) être appliqué lors du fonctionnement sur TLS.
3.3. Options d'authentification TLS (TLS Authentication Options)
Les implémentations doivent (MUST) prendre en charge l'authentification mutuelle basée sur les certificats, pour fournir une option de base pour l'interopérabilité entre les déploiements.
En plus de l'authentification TLS basée sur les certificats, les implémentations peuvent (MAY) prendre en charge les mécanismes d'authentification alternatifs suivants :
- Clés pré-partagées (PSK) (Section 3.5)
- Clés publiques brutes (RPK)
3.4. Authentification basée sur certificat TLS (TLS Certificate-Based Authentication)
L'authentification par certificat TLS est l'option d'authentification principale pour TACACS+ sur TLS.
Le déploiement correct de l'authentification basée sur les certificats TLS améliorera considérablement la sécurité des déploiements TACACS+. Il est essentiel que les implémenteurs et les opérateurs comprennent les implications d'une solution d'authentification basée sur les certificats TLS.
Chaque pair doit (MUST) valider le chemin de certificat de son pair distant, y compris la vérification de révocation.
3.4.2. Identification du certificat TLS
Pour la validation côté client des identités de serveur TLS TACACS+ présentées, les implémentations doivent (MUST) suivre les techniques de validation définies dans [RFC9525].
Les implémentations doivent (MUST) prendre en charge l'extension TLS Server Name Indication (SNI) (Section 3 de [RFC6066]).
3.4.3. Exigences relatives aux suites de chiffrement
Les implémentations doivent (MUST) prendre en charge les suites de chiffrement obligatoires TLS 1.3 (Section 9.1 de [RFC8446]).
3.5. Authentification TLS PSK (TLS PSK Authentication)
Comme alternative à l'authentification basée sur les certificats, les implémentations peuvent (MAY) prendre en charge les PSK, également connus sous le nom de PSK externes dans TLS 1.3 [RFC8446].
Les secrets partagés configurés pour les clients d'obfuscation TACACS+ ne doivent pas (MUST NOT) être les mêmes que les PSK configurés pour les clients TLS.
3.6. Reprise TLS (TLS Resumption)
La reprise TLS [RFC8446] peut minimiser le nombre d'allers-retours nécessaires pendant le processus de poignée de main.
Le client devrait (SHOULD) utiliser la reprise lorsqu'il détient un ticket valide non utilisé du serveur TLS TACACS+.