Pular para o conteúdo principal

OmniAUSF

OmniAUSF implementa a Função de Servidor de Autenticação (AUSF) do Core 5G. Ele orquestra a autenticação primária entre o AMF (via a interface N12) e o UDM (via a interface N13), executando o método de autenticação 5G-AKA definido na TS 33.501. O AUSF solicita um vetor de autenticação do UDM, retorna o desafio RAND/AUTN (e um hash da resposta esperada) ao AMF, verifica a resposta que o UE produz, deriva a chave âncora K_SEAF para a rede de atendimento e registra o resultado da autenticação de volta no UDM.

Cada troca de autenticação é rastreada por um contexto de autenticação UE em memória, identificado por um authCtxId gerado (UUID). O contexto mantém o material do vetor (RAND, XRES*, HXRES*, K_AUSF, K_SEAF) durante a duração da troca e é excluído na conclusão (sucesso ou falha), em um cancelamento explícito ou em uma reinicialização do processo. Além disso, um coletor de contexto supervisionado coleta periodicamente contextos ociosos ou abandonados uma vez que eles excedem um TTL configurável, para que um contexto que o AMF inicia, mas nunca confirma, não permaneça indefinidamente. Chamadas SBI de saída para o UDM visam um UDM descoberto a partir do NRF (Nnrf_NFDiscovery), voltando para o udm_uri estático apenas quando a descoberta não retorna nada; o AUSF também se registra no NRF e envia batimentos cardíacos. OmniAUSF serve o serviço nausf-auth (nausf-auth/v1) e consome o serviço nudm-ueau do UDM (nudm-ueau/v1).

Documentação

  • Operações - referências 3GPP, interfaces e pontos finais SBI, e os principais procedimentos de autenticação com seus diagramas de sequência.
  • Configuração - referência completa de configuração com tabelas de parâmetros, os pontos finais da API de Gerenciamento/OAM e notas de registro.
  • Métricas - métricas Prometheus expostas pelo AUSF e exemplos de consultas PromQL.
  • Solução de Problemas - sintomas comuns de falha com remédios.

Visão Geral da Arquitetura

Visão Geral dos Recursos

  • Autenticação primária 5G-AKA (TS 33.501 6.1.3) de ponta a ponta: recuperação de vetor, retransmissão de desafio, verificação de resposta e relatório de resultado.
  • Derivação de K_SEAF (TS 33.501 A.6) vinculada ao nome da rede de atendimento, retornada ao AMF na autenticação bem-sucedida.
  • Cálculo de HXRES* (TS 33.501 A.5) retornado ao AMF na resposta de iniciação.
  • Relatório de resultado de autenticação para o UDM (auth-events) tanto para sucesso quanto para falha.
  • Tratamento de ressincronização de SQN: resynchronizationInfo (RAND + AUTS) é detectado, validado e retransmitido ao UDM; entradas de ressincronização malformadas são descartadas.
  • Remoção do contexto de segurança do UE - endpoints de deregister e exclusão por contexto.
  • Decodificação defensiva de vetor/resposta - vetores UDM malformados e resStar malformados são tratados como erros limpos, nunca causando falhas.
  • Registro e batimento cardíaco do NRF.
  • OAM em tempo de execução - inspecionar sessões/estatísticas, ajustar configuração e nível de log, e forçar re-registro do NRF pela API de gerenciamento HTTPS.
  • Métricas Prometheus para resultados de autenticação (incluindo ressincronização de SQN), status do NRF e saúde da VM BEAM. A contagem de contextos em voo ao vivo está disponível via API OAM.

Início Rápido

A configuração é lida da chave de ambiente da aplicação :omniausf, populada a partir de config/runtime.exs. Cada chave de tempo de execução é respaldada por uma variável de ambiente do SO lida na inicialização.

config :omniausf,
udm_uri: "http://127.0.0.12:7777",
sbi_scheme: "http",
sbi_addr: "127.0.0.19",
sbi_port: 7777,
nrf_uri: "http://127.0.0.1:7777",
mcc: "999",
mnc: "70",
prometheus_metrics_port: 9568,
heartbeat_interval: 10_000

config :logger, :default_formatter,
format: {OmniLogger.JsonFormatter, :format},
metadata: :all

A documentação completa dos parâmetros, incluindo tipos, padrões e variáveis de ambiente, está disponível em configuration.md.