3.2 Pacote de dados RADIUS
O Pacote de dados  RADIUS segue o seguinte formato:
graphic
 
Código:
O campo código tem o tamanho fixo de um octeto e serve para identificar qual tipo de pacote RADIUS está sendo enviado. Caso o campo código esteja preenchido de forma incorreta, ele é descartado silenciosamente, sem que ocorra um processamento posterior deste pacote. Dentre os possíveis tipos de pacote podemos citar:
  • Requisição de acesso (Access-Request)
  • Acesso aceito (Access-Accept)
  • Acesso negado (Access-Reject)
  • Desafio de acesso (Access-Challenge)
 
 
Identificador:
O campo de identificação possui o tamanho fixo de um octeto, e o seu principal objetivo é identificar as requisições e as respostas trocadas. O servidor RADIUS AAA pode detectar uma requisição duplicada através da análise do IP de origem e da porta UDP de origem. Nestes casos, o pacote é descartado silenciosamente.
Comprimento:

O campo Comprimento possui o tamanho fixo de 2 octetos e serve para informar o tamanho do pacote. Também estão inclusos no cálculo do tamanho do pacote os campos Código, Identificador, Comprimento, Autenticador e Atributos. Se o tamanho especificado no campo Comprimento for menor que o tamanho do pacote, os octetos fora do alcance especificado são ignorados.
Caso o tamanho do pacote seja menor do que o tamanho especificado no campo Comprimento, este pacote é silenciosamente descartado. Os pacotes RADIUS devem possuir
um tamanho mínimo de 20 octetos e um tamanho máximo de 4096 octetos.
Autenticador:
O campo de Autenticação possui o tamanho de dezesseis octetos. Os valores incluídos neste campo do pacote são utilizados para autenticar as respostas do servidor RADIUS e também são utilizados no algoritmo de ocultação de senhas.
Requisição de Autenticação
Nos pacotes de requisição de acesso, o valor do campo de Autenticação é um número aleatório chamado de Autenticador de Requisições. É fundamental que este valor numérico não seja previsível, e que seja único durante o período em que está sendo utilizado. Se estas condições não forem atendidas, a repetição de um mesmo valor numérico de autenticação poderia permitir que um atacante respondesse no lugar do usuário legitimo, utilizando uma resposta anteriormente interceptada. Em outro caso, um atacante poderia responder uma predição de uma requisição futura, e usar esta previsibilidade para enganar os usuários e atuar como um servidor falso. Dentro do pacote de Requisição de acesso, é utilizado o algoritmo de ocultação de senhas. Este algoritmo gera um hash do segredo compartilhado concatenado com o Autenticador de requisições. Em seguida, é feito um XOR com a senha do usuário, e este valor é colocado no campo de senha do usuário do pacote. Desta forma, o segredo compartilhado e a senha do usuário não são enviados diretamente pela rede. Assim, somente quem possuir o segredo compartilhado e a senha do usuário poderá realizar a mesma operação e verificar se o resultado é compatível. Neste caso, somente o servidor RADIUS possui estas informações.
 

Resposta de Autenticação
 
O valor inserido no campo de Autenticação nos pacotes do tipo Acesso Aceito, Acesso Negado, e Desafio de acesso são chamados de Resposta de Autenticação. Eles contêm um hash MD5 que é calculado através do pacote RADIUS, o campo de código, o identificador, o comprimento, o campo de Autenticação do pacote de requisição de acesso, e os atributos de resposta, seguidos do segredo compartilhado entre o Servidor RADIUS e o NAS. Desta forma, o campo com a Resposta de Autenticação é formado por: MD5(Código+Identificador+Comprimento+Campo de Autenticação do pacote de requisição de acesso+Atributos de Resposta + Segredo Compartilhado), onde o sinal “+” representa a concatenação.
 
Atributos:
O campo de Atributos é responsável por carregar informações específicas de autenticação e de autorização, como os detalhes específicos de uma dada requisição ou de uma dada resposta. Dentre os tipos de informações contidas, podemos citar o nome do usuário a ser autenticado, o endereço IP do NAS, a porta que será utilizada na conexão, dentre outras.