TACACS+

termo

redessegurança

Significa: Terminal Access Controller Access-Control System Plus (RFC 8907)

Um protocolo para centralizar o acesso administrativo a equipamentos de rede, separando autenticação, autorização e contabilização em trocas distintas.

A separação é a diferença prática em relação ao RADIUS: como a autorização é uma troca própria, o equipamento pode consultar o servidor sobre cada comando conforme ele é digitado, e é assim que controle por comando e registro completo funcionam. Isso o torna a escolha usual para administração de equipamento, enquanto o RADIUS segue usual para acesso à rede. A RFC 8907 (setembro de 2020) documenta o protocolo como implantado: porta TCP 49, um header de 12 bytes com versão maior e menor, tipo (0x01 autenticação, 0x02 autorização, 0x03 contabilização), número de sequência, flags, identificador de sessão e comprimento, e um corpo ofuscado por XOR com um enchimento derivado de MD5 do segredo compartilhado; a própria RFC diz que isso é melhor chamado de ofuscação, e não de cifragem, e que o protocolo não inclui um mecanismo de segurança que atenda aos requisitos de hoje. A comparação da Cisco põe o contraste sem rodeios: o TACACS+ cifra o corpo inteiro do pacote, mas deixa um header TACACS+ padrão. A dependência merece ser dita - se o servidor está inalcançável e o retorno local nunca foi configurado nem testado, o parque fica ingerenciável exatamente no momento em que alguém precisa entrar.

O TACACS+ é o protocolo que um roteador ou switch usa para perguntar a um servidor se um administrador pode entrar, se esse administrador pode executar o comando que acabou de digitar e para avisar ao servidor que o comando foi executado. É o descendente do TACACS original dos servidores de terminal da ARPANET e do XTACACS estendido da Cisco, e carregou o nome da Cisco por duas décadas antes de ser posto no papel para o registro: a RFC 8907, The Terminal Access Controller Access-Control System Plus (TACACS+) Protocol, publicada em setembro de 2020 por Dahm e Ota, do Google, Medway Gash, da Cisco, Carrel e Grant como documento Informational, descreve o protocolo como implantado desde o Draft de 1998, a especificação de fabricante que nunca foi padronizada até este documento. O verbete TACACS e XTACACS cobre os ancestrais.

O protocolo roda sobre TCP na porta 49. Todo pacote começa com um header de 12 bytes: versão maior e menor, um octeto de tipo, 0x01 para autenticação, 0x02 para autorização e 0x03 para contabilização, um número de sequência, flags, um identificador de sessão e o comprimento do corpo. Os três tipos são conversas separadas, e essa separação é o ponto. Um Access-Accept do RADIUS combina a autenticação com a autorização que o servidor resolver anexar; uma troca de autorização do TACACS+ é um pedido e uma resposta próprios, que um equipamento pode fazer quantas vezes quiser, inclusive uma por comando. O documento de comparação da Cisco, que também registra que a Cisco avaliou seriamente o RADIUS como protocolo de segurança antes de desenvolver o TACACS+, enuncia a consequência: o RADIUS não permite controlar quais comandos podem ser executados num roteador, enquanto o TACACS+ oferece dois métodos para controlar a autorização de comandos de roteador por usuário ou por grupo. A contabilização é uma terceira troca com flags próprias, START (0x02), STOP (0x04) e WATCHDOG (0x08), para que o início de uma sessão, seu fim e sua existência continuada possam ser registrados cada um; o verbete accounting e o artigo sobre quem fez o quê e quando descrevem o que os registros contêm.

Segurança é onde a RFC 8907 é incomumente franca para um documento de protocolo. O corpo de cada pacote é combinado por XOR com um pseudoenchimento feito de sucessivos resumos MD5, o primeiro calculado sobre o identificador de sessão, a chave compartilhada, a versão e o número de sequência e cada um dos seguintes sobre os mesmos valores mais o resumo anterior. A RFC diz que isso é melhor chamado de ofuscação, e não de cifragem, que o protocolo não inclui um mecanismo de segurança que atenda aos requisitos de hoje e que, portanto, deve ser implantado em redes que garantam privacidade e integridade, separadas do restante do tráfego. O header nunca é ofuscado, e é isso que a Cisco chama de deixar um header TACACS+ padrão. A leitura prática é que o TACACS+ pertence a uma rede de gerência, ou a um túnel, e que a chave compartilhada é um segredo que vale a pena rotacionar. O que se implanta na maioria dos parques é o protocolo da RFC 8907 numa rede protegida.

O risco operacional é a disponibilidade, e é o que os engenheiros lembram. Um equipamento configurado para autenticar administradores contra servidores TACACS+ que não consegue alcançar recorre ao que sua lista de métodos disser, e se a lista termina nos servidores, ou se a conta local no fim dela nunca foi criada ou sua senha nunca testada, ninguém consegue entrar para consertar o que quebrou o caminho até os servidores. A disciplina é uma lista de métodos que termina numa credencial local testada, servidores alcançáveis por mais de uma rota e um exercício periódico em que a contingência é de fato usada. O segundo hábito é tratar o lado da contabilização como um produto em si: a contabilização de comandos de todo equipamento para um servidor que a guarda é o registro que responde à pergunta feita depois de toda queda e de toda invasão, e ela só existe nos equipamentos em que alguém a ligou.

Diante do RADIUS, a divisão é estável e vale ser dita como regra: TACACS+ para administração de equipamentos, onde autorização por comando e contabilização de comandos são o requisito, e RADIUS para acesso à rede, onde o usuário ou o dispositivo está sendo admitido numa porta, num SSID ou numa VPN e onde o 802.1X e os métodos EAP só existem em RADIUS. A maioria dos parques roda os dois, em geral a partir dos mesmos servidores de política, e o artigo sobre administração de equipamentos com TACACS+ percorre um login e um comando pelas três trocas.

Também conhecido como: tacacs plus, tcp 49, command authorization, command accounting, device administration

← Todos os verbetes do glossário