Neste artigo será descrito algumas tecnologias para controle de acesso remoto de forma centralizada. Geralmente esses protocolos são referenciados apenas como protocolos AAA (Auhentication, Authorization and Auditing/Accounting).
Dependendo do protocolo AAA utilizado existem formas diferentes de autenticar os usuários em uma arquitetura cliente/servidor. Os protocolos para autenticação dos usuários são tradicionalmente o PAP (Password Authentication Protocol), CHAP (Channlenge Handshake Authentication Protocol) e EAP (Extensible Authentication Protocol).
RADIUS
Remote Authentication Dial-In User Service (RADIUS) é um protocol ode rede que provê uma arquitetura cliente/servidor para autenticação, autorização e auditoria de usuários remotos. A rede de acesso ao ambiente do RADIUS pode ser desde um pool de modens até linhas DSL, ISDN e T1. Os usuários remotos estarão nas mais variadas redes onde se comunicarão com os access servers, que requisitarão as credenciais aos usuários remotos através dos protocolos PAP, CHAP ou EAP (o protocolo de autenticação será negociado durante a comunicação). Entre os usuários remotos e os access servers é utilizado o protocolo PPP (Point-to-Point Protocol). Os access servers repassarão as credenciais ao servidor RADIUS, que possui a base de usuários e senhas, utilizando do protocolo RADIUS. Uma vez o processo de autenticação ser concluído, o access server notifica sobre quando a sessão inicia e finalização para o propósito de contabilidade (Auditing/Accounting, lembra?).
No entanto o protocolo RADIUS possui algumas particulares que requererão com que na implementação do protocolo outros controles sejam adotados para minimizar o risco de tampering ou de replay attacks. RADIUS utiliza por padrão do protocolo de transporte UDP – User Datagram Protocol – (o que permite ataques de repetição – replay attacks) e apenas realiza criptografia no campo de senha, sendo que as demais informações do protocolo, como usuário, contabilidade, serviços utilizados, são transmitidas em texto puro (tampering).
Além do uso para autenticação e contabilidade, o RADIUS também é largamente utilizado para prover uma base centralizada de perfis de usuários. Esses perfis, geralmente utilizados para road warriors e usuários de acesso doméstico, podem determinar características de acesso de cada cliente (Qual IP o cliente possuirá? Qual VLAN o usuário será inserido no acesso?). Uma base de perfis centralizada permite maior controle sobre os usuários e auxilia na padronização, o que resulta em maior segurança.
O RADIUS é especificado nas RFCs 2865 e 2866 (accounting), sendo um padrão aberto, o que resulta em uma ampla variedade de implementações com integrações diversas, como integração nativa com LDAP no caso da implementação da Microsoft: NPS (Network Policy Server). Nesse caso o NPS atua basicamente como um RADIUS proxy para autenticação.
O protocolo RADIUS basicamente fornece um método de comunicação. No entanto é flexível para que sejam utilizados diferentes atributos para a comunicação. Esses atributos, chamados de atribute-value pairs (AVP), podem adotar diferentes valores, dependendo das implementações dos access servers e do servidor RADIUS.
TACACS
Terminal Access Controller Access Control System (TATACS) possui três gerações do protocolo: TACACS, XTACACS (Extended TACACS) e TACACS+. Apesar de possuírem parte do mesmo nome, são protocolos distintos e não há necessariamente algum nível de compatibilidade entre esses.
TACACS combina o processo de autenticação e autorização com senhas de tamanho fixo. Era utilizado em antigos sistemas Unix. XTACACS separa a autenticação, autorização e auditoria em processos distintos. Protocolo proprietário desenvolvido pela Cisco. TACACS+ é basicamente o XTACACS com a possibilidade de uso de um segundo fator de autenticação (2FA – Two Factor Authentication) e senhas de tamanho dinâmico. Protocolo inicialmente desenvolvido pela Cisco e depois aberto para amplo uso.
TACACS+ provê basicamente os mesmos serviços que o RADIUS com algumas mudanças interessantes. TACACS+ utiliza de TCP para o transporte de dados e realiza a criptografia por completo entre o cliente remoto e o servidor TACACS+. Também separa os processo de autenticação, autorização e contabilidade, dando a possibilidade de maior flexibilidade em como administrar os usuários remotos.
TACACS+, da mesma forma que o RADIUS, suporta o uso de AVPs. Porém possui um conjunto maior de atributos já existentes, fornecendo maior flexibilidade para o administrador.
Diameter
O protocolo Diameter foi desenvolvido para suprir as limitações do RADIUS. O nome do protocolo é basicamente uma brincadeira com o nome RADIUS, já que um diâmetro (diameter) é o dobro do raio (radius).
Da mesma forma que o RADIUS, o protocolo Diameter também é um protocolo para AAA para prover o mesmo tipo de funcionalidade já vista tanto no RADIUS quanto no TACACS+. Porém promete ser mais flexível que os anteriores. Os clientes remotos se comunicam através dos protocolos PPP e SLIP (Serial Line Internet Protocol). Pode utilizar como protocolos de autenticação o PAP, CHAP ou EAP.
O principal diferencial do Diameter em relação aos protocolos de AAA citados anteriormente é sua maior flexibilidade para uso de tecnologias mais recentes, como Mobile IP, Ethernet over PPP, VoIP.
O protocolo Diameter possui suas partes:
- a primeira parte provê a base para comunicação segura entre as entidades Diameter. Nessa fase é realizada a descoberta de negociação de versões suportadas para a comunicação.
- a segunda se consiste das extensões que variarão de acordo com os protocolos utilizados para a comunicação.
O propósito do Diameter é permitir com que diferentes protocolos, como VoIP, Fax over IP, Mobile IP e outros utilizem de um meio comum para a autenticação. Isso permite com que seja utilizado uma base única para a autenticação e definição de perfis para os usuários remotos, auxiliando na administração do ambiente e tornando esse, assim, mais suscetível a ser seguro.
Diameter é um protocolo que permite com que tanto os usuários remotos quanto os access servers iniciem a comunicação. Isso fornece a flexibilidade de perfis e políticas serem aplicados em tempo real, sendo possível com que os usuários remotos sejam reautenticados a qualquer momento e novos perfis aplicados se necessário.
Da mesma forma que o RADIUS e TACACS+, o Diameter também faz uso de AVPs. Apesar de não ser apenas um upgrade, a mudança de um protocolo de AAA por outro, auxilia em fornecer uma maior facilidade para outros dispositivos suportarem o protocolo.
Conclusão
Percebe-se que apesar dos três protocolos possuírem o mesmo propósito, que é fornecer mecanismos de AAA, o protocolo RADIUS apresenta sinais de envelhecimento e clara insegurança, sendo os protocolos TACACS+ e Diameter mais seguros. No entanto o suporte ao Diameter ainda não é tão disseminado quanto aos anteriores. Ou seja, a escolha por qual protocolo utilizar para AAA dependerão de vários fatores: compatibilidade com o parque tecnológico atual, risco envolvido em uso de protocolos mais antigos quanto ao valor da informação transmitida e infraestrutura legada existente para prover dados de autenticação.