AAA é a sigla para autenticação, autorização e contabilidade (accounting). O padrão AAA define uma arquitetura que autentica e garante privilégios de autorização para os usuários além de, opcionalmente, manter precisos registros sobre sua atividade na rede (contabilidade de uso).
Quando os conceitos AAA não são utilizados, dizemos que a rede é aberta. Assim, qualquer um pode obter acesso ou fazer qualquer coisa sem ser rastreado. AAA é um sistema muito amplo, entretanto é possível implementar porções de um sistema AAA melhorando a segurança da rede.
Podemos nos ater em autenticação e autorização desprezando os recursos de rastreamento e contabilidade onde não são necessários. Sem AAA, o administrador deverá configurar a rede manualmente e de modo estático. Em sistemas pequenos isso pode até ser funcionalmente viável. Mas, comercialmente em ambiente empresarial isso é totalmente inviável.
Os serviços móveis foram responsáveis pela grande demanda de servidos de segurança e autenticação no padrão AAA nos últimos tempos. RADIUS possui um grande número de protocolos para autenticação, autorização e contabilidade.
2.1 - Definições de AAA
Autenticação - É o processo que valida a identidade de um usuário combinando as credenciais fornecidas por ele (nome e senha) com os valores configurados no servidor AAA. Quando as credenciais combinam, o usuário é autenticado e obtém acesso a rede. Caso contrário, o acesso é negado e o usuário desconectado. Autenticação pode ser configurada para ser um processo seletivo baseado em características personalizadas de uso, de origem e principalmente em políticas de segurança.
Autorização - É o processo que determina quais permissões são garantidas para um usuário. Autorização pode permitir ou negar acesso a certas áreas da rede, a certos comandos ou recursos. O NAS envia uma requisição como um pacote de informações sobre o usuário, ao servidor RADIUS cabe garantir ou negar recursos baseado na comparação da solicitação com seus registros e políticas.
O servidor RADIUS possuí a política de autorização e cabe ao NAS impor essa política ao usuário final.
Por exemplo, o NAS envia para RADIUS uma requisição do usuário BOB, cuja senha é HelloWorld e o IP informado é 192.168.0.54. O servidor RADIUS compara essas informações com sua base de dados de usuários e informa ao NAS que o IP correto para BOB deveria ser 192.168.1.78. Observe que o servidor RADIUS nunca requisita informações diretamente da NAS. RADIUS é limitado a consultas SQL simples. RADIUS faz declarações sobre registros dizendo coisas do tipo "como algo é" ou sobre "como algo deveria ser". Cabe ao NAS impor essas condições e políticas aos clientes finais. Se o cliente não puder atender essas condições ele deve ser imediatamente desconectado da NAS.
Autenticação versus Autorização
A seguinte analogia ilustra a diferença entre autenticação e autorização:
Imagine que está dirigindo um carro por uma estrada e é parado por um policial. O oficial pede que você se identifique. Você pode apresentar uma identidade, um passaporte, uma carteira de motorista ou outro documento oficial que "autentica" quem é você. Agora, o policial pede sua licença de motorista. Neste caso, somente a licença de motorista deve ser apresentada. A licença de motorista deve ser original, dentro da validade e adequada ao tipo de veículo conduzido. Essa licença "autoriza" você a conduzir esse veículo.
Assim a autorização deve estar de acordo com a política do servidor RADIUS. Informações adicionais, como o endereço MAC, podem ser automaticamente adicionadas pelo NAS na requisição para reforçar a qualidade do processo de decisão.
Contabilidade (Accounting) - É o processo que se refere a gravação de registros sobre como o usuário utilizou recursos autorizados. Informações como o tempo de uso, a quantidade de dados enviada e recebida são armazenadas para fins de cobrança ou limitações de uso e controle. Corporações podem usar contabilidade internamente para controlar acesso por horário ou por questões de segurança e auditoria. As corporações não cobram de seus funcionários pelo uso da rede (não dê essa ideia!). Informações como quais os sítios visitados, os protocolos utilizados (HTTP ou SMTP) são armazenadas na NAS e não interessam para RADIUS. Informações detalhadas sobre as atividades do usuário são obtidas por outros protocolos como sFlow ou NetFlow. Esses protocolos são independentes e não são integrados aos sistemas RADIUS.
Auditoria - É o processo de análise proativa dos registros da contabilidade e de outros metadados (sFlow ou NetFlow) buscando relacionar o usuário com suas atividades na rede. Auditoria busca analisar o comportamento após a autenticação e adequar o uso a política visando evitar comportamentos inadequados. Auditoria também pode ser utilizada para checar a segurança da NAS e saber se ela foi comprometida. Auditoria combate violações intencionais da política de segurança.
2.2 - Componentes do sistema RADIUS
RADIUS é um protocolo de rede que implementa um sistema de regras e convenções para a comunicação entre dispositivos de rede. Seu modelo é do tipo cliente-servidor. O cliente RADIUS é chamado de NAS - Network Access Server - pois é ele que requisita os serviços AAA de RADIUS. O servidor RADIUS encaminha ou processa requisições e envia respostas ao NAS.
Um NAS comum é um ponto de acesso para uma rede sem fio. Em sistemas profissionais temos equipamentos que formam um pool de modens atendendo ligações que são chamados de concentradores NAS. Servidores RADIUS podem ser comerciais como Cisco ACS, Microsoft IAS, Juniper, Open Systems Radiator ou sistemas abertos como FreeRADIUS. A tabela a seguir lista os componentes de RADIUS e uma breve descrição.
Network Access Server (NAS) - É uma porta de acesso (gateway) entre o usuário e uma rede mais ampla. Quando o usuário tenta obter acesso a essa rede ampla, NAS age passando informações do usuário para o servidor RADIUS. Esse processo é chamado de autenticação de sessão. Observe que o simples login dá início a uma conversação denominada autenticação de sessão. Esse é um conceito chave, pois no fim do processo de autenticação de sessão o servidor RADIUS define se o NAS deve aceitar ou rejeitar o acesso desse usuário a rede. Uma vez que esse usuário foi autorizado, a política de segurança deve ser forçada pelo NAS ao usuário. Neste momento, o NAS age como um roteador ou firewall. O servidor RADIUS recebe do NAS um resumo das atividades do usuário durante a sessão. Isso pode incluir informações sobre o tempo total de uso e a quantidade de tráfego trocado em cada sentido.
Existem diversos tipos de NAS. No ambiente empresarial podem ser switches ou pontos de acesso wireless bloqueando acessos não autorizados. Centrais de ADSL ou DSLAM podem ser vistas como NAS, pois o usuário se autentica e registra sua contabilidade nelas. Na prática, qualquer dispositivo que verifica nome e senha é potencialmente um cliente RADIUS. Por exemplo, servidores de FTP, de web e de login são potenciais clientes RADIUS. Neste contexto, NAS é sempre um cliente e RADIUS é sempre um servidor, pois toda a conversação da sessão de autenticação SEMPRE se inicia do NAS para o RADIUS. Para o usuário, NAS é um servidor; para RADIUS ele será SEMPRE um cliente.
Servidor RADIUS - Usualmente é uma aplicação em software executando em um hardware computacional ou embarcado em um equipamento autocontido. Aparelhos (appliances) RADIUS podem simplificar a manutenção e o gerenciamento. Em cada caso, esses equipamentos possuem uma função idêntica: Funcionam como um servidor que aguarda uma requisição de um NAS, processa ou encaminha essa requisição, e retorna uma resposta ao NAS. A resposta, em si, pode conter políticas de autorização ou uma confirmação de dados de contabilidade recebidos anteriormente. Um único servidor RADIUS pode atender diversos tipos de NAS e pode receber, encaminhar ou processar milhares de requisições ao mesmo tempo. Aparelhos de NAS como os concentradores ADSL, dial-up e VPN são clientes que se encontram em locais físicos variados.
Um servidor RADIUS pode interagir com diretórios LDAP, bancos de dados, outros servidores RADIUS ou simples arquivos de texto plano usados como base de dados. Para tomar a decisão final o servidor RADIUS pode consultar diversas dessas fontes simultaneamente. Após enviar a decisão ao NAS, o servidor RADIUS não tem condição de saber se o NAS recebeu a resposta ou se o cliente final obedeceu as instruções enviadas. Servidores NAS costumam ter poucos registros (logs) de suas atividades por questões de segurança. Por isso, é tão difícil criar e depurar a política de segurança usando NAS e RADIUS.
Políticas do servidor RADIUS
Um servidor RADIUS processa uma requisição baseado nos seguintes critérios:
Conteúdo da requisição da NAS. Informações disponíveis localmente em diversas fontes como SQL, LDAP ou arquivos de texto puro.
Essas limitações significam que o servidor não pode negociar com a NAS, pedindo mais informações. O servidor simplesmente pega o que a NAS mandou e retorna um reconhecimento (acknowledgment) ou não. Essa limitação é um conceito chave.
Fato: O servidor RADIUS não tem controle sobre o que o NAS envia.
A resposta é baseada na configuração feita pelo administrador. Uma política pode ser algo tão simples como "aceite qualquer um que tenha o nome X e a senha Y; ou algo extremante complexo com limitações de origem, destino, hora, dia, IP e vários outros critérios permitidos ou negados. A qualidade da política é baseada no esforço do administrador. Infelizmente, as NAS não apresentam nenhuma documentação sobre o que costumam incluir na solicitação. Restam apenas os testes, tornando o processo baseado em tentativa e erro.
Data Stores - São considerados armazéns de dados os bancos de dados ou os diretórios (LDAP) que permitem o armazenamento e a recuperação de dados. Esses armazéns de dados tem capacidade de decisão limitada. A diferença chave entre servidores RADIUS e armazéns de dados é que eles suportam políticas e autenticação. A função de um armazém no processo de autenticação é fornecer dados para o servidor RADIUS. O servidor é quem usa um método para autenticar o usuário. Sob vários aspectos, o protocolo RADIUS é similar a uma linguagem de consulta como SQL. O banco de dados NUNCA pode ser acessado diretamente pela NAS, cabendo ao RADIUS transformar essa requisição em consulta SQL. A tabela 2 relaciona essas diferenças:
2.3 - O processo de uma sessão RADIUS
Uma sessão consiste dos seguintes passos:
1. Um usuário remoto conecta a um cliente RADIUS (o NAS) usando um dos protocolos com PPP, 802.1x ou qualquer outro protocolo de link de dados e inicia um login.
- O NAS inicia a conversação para autenticação com RADIUS.
- As informações enviadas são a critério do NAS (cliente).
- O servidor RADIUS não controla o que NAS envia.
2. O NAS se comunica com o servidor RADIUS usando um mecanismo secreto compartilhado, através de pacotes UDP, na porta UDP/1812 para autenticação e na porta UDP/1813 para contabilidade.
3. O NAS envia para o servidor RADIUS uma mensagem (Access-Request).
Essa mensagem contém informações sobre o usuário, o username, credenciais de autenticação e serviços requisitados.
Em adição, a mensagem pode conter informações sobre o NAS, como o seu hostname, endereço MAC ou SSID wireless.
A mensagem é enviada usando um protocolo de autenticação de senhas como PAP, um desafio-resposta como CHAP ou um protocolo estendido de autenticação como EAP.
O servidor deve definir se para autenticar ou autorizar irá se basear somente nas informações recebidas do NAS.
Se o NAS enviar um pacote com um protocolo que o servidor RADIUS não suporta, ele deve descartar a requisição.
4. O servidor RADIUS processa a requisição e verifica a solicitação de login contra bases de dados locais ou contra um servidor de autenticação na rede. Serviços de autenticação podem incluir servidores LDAP para validação do domínio, Active Directory em redes Windows, servidores de Kerberos, servidores SQL de qualquer tipo.
5. O servidor RADIUS envia a validação de volta ao NAS nos seguintes formatos: Access Reject, Access Challenge ou Access Accept.
- Access Reject tranca o usuário fora da rede tornando-o um usuário inválido ou não autorizado, o acesso aos recursos solicitados é negado.
- Access Challenge ocorre quando o servidor requer informações adicionais do usuário. Uma vez que os pacotes RADIUS são limitados em questões de tamanho podem ocorrer várias dessas trocas.
- Access Accept fornece acesso ao usuário ao recurso e contém a política que a NAS deve utilizar para prover os serviços, forçando um comportamento do usuário final. Um access accept pode ser enviado separadamente para cada recurso solicitado e não há herança de um recurso para outro. O acesso pode ser revisado temporariamente para verificar sua validade.
- Uma resposta Access Accept resulta na NAS servindo serviços remotos ao cliente. Isso pode ser um endereço IP dinâmico ou estático, um TTL para a sessão, permissões de uma ACL ou a configuração de parâmetros como L2TP, Vlan ou QoS para a sessão.
6. Uma vez estabelecida a sessão entre o cliente RADIUS, o processo de contabilidade pode ser inicializado.
- Uma requisição Accounting-Request (start) é enviada pelo NAS ao servidor, indicando o início da sessão de contabilidade.
- Uma requisição Accounting-Request (stop) indica o fim da sessão de contabilidade que deve ser gravada e fechada.
- A base de dados utilizada para contabilidade é usada para fins de informações e relatórios de uso.
- Podem ser registrados o tempo de sessão, o número de pacotes ou o total de dados transmitido em ambas direções, identidade da máquina, identidade do usuário, endereços de rede e portas utilizadas.
(continua na parte II).
Kyetoy.