Le protocole TACACS+ est la dernière version du protocole TACACS mis au point par la société CISCO. Ce protocole utilise la couche de transport TCP et gère séparément les trois fonctions AAA (les implémentations du protocole TACACS+ ne mettent pas toutes en œuvre les trois mécanismes).
Le protocole TACACS+ utilise la notion de session pour ses communications entre le client et le serveur. Une session ne contient qu’un échange qui peut être un échange d’authentification, d’autorisation, ou de rapports. Les échanges TACACS+ peuvent éventuellement être chiffrés (l’identifiant des sessions est alors utilisé pour chiffrer l’intégralité des paquets).
Les implémentations TACACS+ peuvent aussi bien utiliser des techniques d’authentification classiques type login/mot de passe statique, ou bien des procédés plus évolués à base de challenge avec authentification réciproque, par exemple.
Lors d’une nouvelle demande d’authentification, le client émet un message START au serveur décrivant le type d’authentification à utiliser. En retour, le serveur envoie un message REPLY, indiquant que l’authentification est terminée, ou bien qu’elle doit continuer, auquel cas, le client récupère l’information manquante et la retourne dans un message CONTINUE.
Le type de requête provenant du serveur peut être une demande GETDATA, GETUSER ou GETPASS. GETDATA est une requête générique de récupération d’information du profil utilisateur.
Lors d’un accès à un service particulier, le client ouvre une session d’autorisation. Cette session consiste juste en l’échange d’une paire de messages (Requête / Réponse). La requête décrit l’authentification pour l’utilisateur ou le processus qui demande l’accès au service.
La réponse du serveur contient un ensemble d’attributs pouvant restreindre ou modifier les actions du client, plutôt qu’une simple réponse affirmative de type oui/non.
Les échanges utilisés lors de la gestion de rapports sont similaires à ceux employés lors de l’autorisation (Requête / Réponse). Au démarrage et à la terminaison d’un service, un paquet TACACS START ou STOP est émis. Le protocole TACACS+ propose de plus l’émission de paquets UPDATE servant à confirmer qu’un service est en cours d’utilisation.
Le protocole TACACS+ est basé sur le support par les serveurs d’authentification de couples attributs/valeur permettant de définir tous les paramètres d’autorisation que l’administrateur désire mettre en œuvre.
Une implémentation du protocole TACACS+ est ainsi capable de gérer les différents points d’accès distants depuis un simple ensemble de services de gestion. Au regard des trois fonctionnalités AAA, cette implémentation accomplit les fonctions suivantes :
- Authentification : les mécanismes TACACS+ fournissent un contrôle complet de l'authentification à travers un échange de login et mot de passe, un challenge et une réponse, un support de transmission de messages, et un système de prise d’empreinte utilisant l'algorithme MD5. Le mécanisme d'authentification donne la possibilité, après la transaction du login et du mot de passe de l’utilisateur, de vérifier son identité en lui posant un certain nombre de questions, par exemple son adresse postale ou le nom de jeune fille de sa mère… L'administrateur TACACS+ peut augmenter l'intégrité de l'authentification en changeant régulièrement ces questions et le service d'authentification TACACS+ est assez flexible pour pouvoir envoyer des messages sur l'écran de l'utilisateur (changement de mot de passe à cause de la politique de gestion de leur durée de vie par exemple).
- Autorisation : les mécanismes TACACS+ fournissent un contrôle d'accès distant incluant une seule autorisation globale ou bien une autorisation pour chaque service, un support pour les groupes d'utilisateurs et un support pour la gestion différenciée des protocoles réseaux utilisés ainsi que des commandes utilisées. Les mécanismes TACACS+ permettent également la création de permissions et/ou de restriction d’accès ou de commandes.
- Rapport d’activités : Les mécanismes TACACS+ permettent de tracer l'activité d'un utilisateur pour un audit de sécurité ou simplement pour des statistiques. Un rapport peut être réalisé pour fournir différentes informations comme l'identité de l'utilisateur, les heures de début et de fin de sessions, les commandes exécutées, les nombres de paquets et les nombres d'octets échangés.