Entenda o protocolo de autenticação Kerberos
A autenticação Kerberos é um protocolo de autenticação de rede utilizado para validar solicitações de serviço em redes não confiáveis, como a internet, entre dois ou mais hosts confiáveis, sem a necessidade de enviar senhas. Considerado um dos pilares dos protocolos modernos de segurança de rede, o Kerberos utiliza criptografia de chave simétrica e depende da mediação de uma terceira parte confiável.
Lançado em 1983, o Kerberos foi amplamente adotado em diversos ambientes, principalmente onde são exigidas medidas robustas de autenticação. O Kerberos está presente em vários sistemas operacionais e faz parte do Standard de muitas soluções de segurança de rede e single sign-on.
A origem do Kerberos
A autenticação Kerberos foi lançada em 1983 como parte do Project Athena, uma iniciativa conjunta do MIT, Digital Equipment Corporation e IBM. O objetivo era criar um ambiente de computação distribuída em todo o campus para fins educacionais.
O nome Kerberos foi inspirado no personagem mitológico grego Cérbero, o cão de três cabeças que guardava o submundo, Hades.
Essa escolha simboliza a estrutura do protocolo, formada por três componentes distintos e interdependentes: o cliente, o servidor e o centro de distribuição de chaves (KDC).
Como funciona a autenticação Kerberos: arquitetura e processo
Arquitetura da autenticação Kerberos
A arquitetura Kerberos utiliza criptografia simétrica (criptografia de chave secreta) e um terceiro confiável, o centro de distribuição de chaves (KDC), para autenticar aplicações cliente-servidor e verificar identidades de usuários. O KDC realiza a autenticação emitindo tickets para o cliente por meio de um servidor de autenticação e oferece serviços de concessão de tickets por meio de um servidor de concessão de tickets. Esses tickets são criptografados com uma chave de sessão e servem como comprovação de identidade do cliente.
O KDC é composto por três elementos principais:
- Servidor de autenticação (AS): realiza a autenticação inicial quando um usuário solicita acesso a um serviço e emite os tickets correspondentes
- Servidor de concessão de tickets (TGS): aceita clientes autenticados e conecta o usuário ao servidor de serviço (SS) solicitado
- Banco de dados Kerberos: armazena os identificadores de todos os usuários verificados
Todos os tickets emitidos pelo KDC possuem tempo de validade limitado.
Processo de autenticação Kerberos
O processo de autenticação Kerberos opera por meio de interações entre o cliente, o servidor e o KDC. Para cada sessão, um ticket criptografado (chave de sessão) é gerado e armazenado no dispositivo do usuário solicitante. O serviço solicitado utiliza esse ticket para autenticar o usuário, eliminando a necessidade do uso de senhas.
O processo de autenticação Kerberos é composto por quatro etapas principais. Esse fluxo garante que a senha do usuário nunca seja transmitida pela rede, protegendo-a contra possíveis interceptações.
1. Solicitação inicial de autenticação no serviço Kerberos
O usuário inicia uma tentativa de login solicitando autenticação ao servidor de autenticação (AS) do KDC por meio de uma mensagem de solicitação de serviço Kerberos. Essa solicitação inclui o User Principal Name (UPN), ou seja, o identificador do usuário, mas não sua senha, além do período de validade do ticket e seus detalhes de expiração. A mensagem é criptografada com o hash da senha do usuário, e o AS gera um ticket-granting ticket (TGT).
2. Emissão do ticket-granting ticket (TGT) Kerberos
Quando o KDC recebe a solicitação de serviço do AS, ele tenta descriptografar a mensagem utilizando o hash da senha do usuário. Se a mensagem for descriptografada com sucesso e o carimbo de data e hora ainda estiver válido, o AS gera uma chave de sessão e um TGT, que são enviados ao cliente para criptografar as próximas solicitações.
O TGT contém o ID do cliente, o endereço de rede e o período de validade. O sistema do usuário utiliza a senha para descriptografar a chave de sessão, mas o TGT permanece criptografado com a chave secreta do TGS.
3. Solicitação de ticket de serviço Kerberos
Em seguida, o cliente envia uma solicitação ao TGS. Essa solicitação inclui o TGT criptografado recebido anteriormente e um pedido de serviço criptografado com a chave de sessão. O serviço descriptografa o ticket com sua chave secreta e verifica sua validade. Se o servidor conseguir descriptografar o ticket de serviço e autenticar a solicitação, a identidade do cliente é confirmada e o acesso é concedido.
4. Acesso ao serviço Kerberos
Após a autenticação, o cliente apresenta o ticket de serviço ao servidor. Se o servidor conseguir descriptografar o ticket com sucesso, o acesso é concedido ao cliente.
Vantagens da autenticação Kerberos
A autenticação Kerberos proporciona diversos benefícios para a segurança e gestão de redes, incluindo:
Interoperabilidade
Como um protocolo baseado em Standard aberto, o Kerberos é uma solução interoperável que oferece suporte a diferentes sistemas e plataformas, como Windows, Unix e Linux.
Autenticação mútua
O Kerberos oferece autenticação mútua, garantindo que cliente e servidor verifiquem a identidade um do outro. Isso reduz o risco de ataques man-in-the-middle (MitM), nos quais um invasor se faz passar por servidor ou cliente para interceptar mensagens. Como o Kerberos exige que ambos os lados autentiquem, ataques MitM são evitados.
Escalabilidade
Com a infraestrutura ajustada conforme a demanda, o Kerberos pode ser escalado para processar solicitações de autenticação em redes de grande porte, com muitos usuários e serviços.
Capacidade de single sign-on (SSO)
O Kerberos viabiliza o Single Sign-On (SSO), permitindo que os usuários se autentiquem uma única vez e acessem diversos serviços sem a necessidade de novos logins. Além de melhorar a experiência do usuário, o SSO mantém um alto nível de segurança ao eliminar a exigência de múltiplas senhas, o que reduz a fadiga de senhas e evita práticas inseguras causadas pelo excesso de credenciais.
Criptografia avançada
O Kerberos utiliza criptografia simétrica para proteger as trocas de dados entre o cliente e o servidor, inclusive durante o próprio processo de autenticação. As chaves empregadas na criptografia nunca são transmitidas pela rede, o que reduz o risco de interceptação e protege contra espionagem e manipulação dos dados durante as transmissões.
Limitações da autenticação Kerberos
Embora a autenticação Kerberos ofereça benefícios, ela apresenta diversas limitações relacionadas à implementação e à operação. Esses desafios decorrem do próprio design do protocolo, das exigências operacionais e de fatores do ambiente.
Complexidade e sobrecarga de gestão
A complexidade do protocolo Kerberos representa um obstáculo significativo. Implantar e gerenciar um sistema Kerberos exige conhecimento aprofundado do protocolo, configuração minuciosa e administração contínua. Esse processo demanda conhecimento especializado e recursos, o que pode ser um desafio para organizações de menor porte.
Os administradores precisam gerenciar as chaves, configurar corretamente os serviços e garantir a manutenção contínua do KDC. A falta de controle nesses detalhes pode resultar em erros e vulnerabilidades que comprometem a segurança. Além disso, cada serviço de rede exige um conjunto próprio de chaves Kerberos.
Complexidade da autenticação entre domínios
Como o Kerberos foi projetado originalmente para uso em um único domínio, a autenticação entre domínios ou entre realms - como em ambientes administrativos distintos - apresenta alta complexidade na configuração e gestão. É necessário realizar etapas manuais para criar e manter as conexões entre os diferentes realms. Uma chave de um KDC precisa ser compartilhada com o outro KDC.
Limitações de interoperabilidade e compatibilidade
Nem todos os protocolos oferecem suporte à autenticação Kerberos, o que pode limitar seu uso em ambientes de rede heterogêneos com uma variedade de serviços e protocolos. A integração do Kerberos com sistemas e aplicações diversos - especialmente aqueles que não possuem suporte nativo - exige esforços adicionais e, em alguns casos, soluções personalizadas.
Limitações dos tickets Kerberos
Os tickets Kerberos possuem tempo de validade limitado. Quando expiram, podem causar problemas em aplicações ou sessões de longa duração que ultrapassam o período de validade dos tickets. Renovar os tickets sem interromper as sessões dos usuários pode ser um desafio.
Ataques baseados em senha
Ataques de força bruta para adivinhação de senhas podem ser aplicados de forma eficaz no Kerberos, pois basta uma conexão com o KDC, sem a necessidade de acesso a um domínio. O invasor pode enviar múltiplas solicitações de autenticação, utilizando listas de palavras para testar senhas facilmente previsíveis, com o objetivo de obter o ticket-granting ticket (TGT) e se passar pelo usuário.
Desafios de escalabilidade
Embora o Kerberos seja projetado para escalar, a dependência de um KDC centralizado pode gerar gargalos à medida que o volume de solicitações de autenticação aumenta. É fundamental planejar e supervisionar atentamente para garantir a expansão da infraestrutura necessária ao crescimento.
Ponto único de falha
Como o KDC atua como autoridade central no modelo de autenticação Kerberos, qualquer falha ou comprometimento do KDC - seja por problemas de hardware, rede ou ataques cibernéticos - interrompe todo o processo de autenticação. Isso pode causar indisponibilidade de todos os serviços que dependem do Kerberos para autenticação.
Sensibilidade à sincronização de tempo
O Kerberos depende de carimbos de data e hora para impedir ataques de repetição, em que um invasor retransmite uma transmissão válida de dados para se passar por um usuário legítimo. Para bloquear esse tipo de ataque, é fundamental garantir a sincronização de tempo entre todas as entidades do sistema Kerberos.
Qualquer falha nessa sincronização pode resultar em tentativas de autenticação mal sucedidas. Se o horário do sistema local do cliente e do servidor diferir em mais de cinco minutos (padrão), a máquina cliente não conseguirá autenticar. No entanto, manter essa sincronização em redes grandes e distribuídas pode ser um desafio, principalmente em ambientes com diferentes níveis de precisão e estabilidade dos relógios.
Principais problemas e soluções para autenticação Kerberos
Evite os problemas mais comuns do Kerberos entendendo suas causas e como resolvê-las. Ao mitigar vulnerabilidades conhecidas, sua organização aproveita todos os benefícios da autenticação Kerberos sem expor-se aos riscos.
Controladores de domínio
O Kerberos depende de centros de distribuição de chaves (KDCs) altamente disponíveis, que normalmente são os controladores de domínio no Active Directory. Se esses controladores estiverem inacessíveis ou configurados incorretamente, a autenticação falha. Recomendações para solução de problemas incluem:
- Verifique o status de replicação dos controladores de domínio
- Confirme os registros de serviço DNS para os controladores de domínio
- Certifique-se de que o firewall e o roteamento permitem o tráfego Kerberos
Integração com sistemas de terceiros
As aplicações exigem nomes principais de serviço (SPNs) e keytabs corretos. Se os SPNs não forem exclusivos ou se os keytabs expirarem, as integrações falharão. Recomendações para solução de problemas incluem:
- Valide os SPNs.
- Regere as keytabs caso os serviços apresentem a mensagem “Decrypt integrity check failed”.
- Confirme se o serviço oferece suporte ao Kerberos.
Sistemas legados
Sistemas mais antigos podem não ser compatíveis com Kerberos ou utilizar NTLM como padrão, o que gera problemas de compatibilidade e expõe vulnerabilidades de segurança. Recomendações para solução de problemas incluem:
- Defina a preferência por Kerberos nas Políticas de Grupo.
- Quando o Kerberos não for suportado, isole os sistemas legados e implemente controles compensatórios, como redes privadas virtuais (VPNs), firewalls e autenticação multifator (MFA).
Erro de autenticação Kerberos
Essas falhas gerais costumam ocorrer quando a sincronização de horário entre cliente, servidor ou KDC está com uma diferença superior a cinco minutos. Outros fatores que podem causar erros de autenticação Kerberos incluem configurações incorretas do serviço de nomes de domínio (DNS) - que impedem a resolução do KDC ou do serviço - ou um SPN incorreto ou duplicado. Para resolver essas questões, siga as etapas abaixo:
- Sincronize o horário entre cliente, servidor e KDC
- Verifique o login no domínio
- Limpe os tickets e, em seguida, autentique novamente
O Kerberos pode ser invadido?
Assim como outros mecanismos de segurança, a autenticação Kerberos não é totalmente imune a ataques. As principais formas de comprometimento incluem:
Comprometimento do centro de distribuição de chaves (KDC)
Como o KDC é fundamental no processo de autenticação Kerberos, sua violação permite que atacantes emitam tickets válidos para qualquer usuário e serviço dentro do domínio. Isso concede ao invasor acesso irrestrito a toda a rede.
Ataques golden ticket
No ataque golden ticket, o invasor obtém a chave secreta do KDC de um domínio. Com isso, consegue gerar TGTs e garantir acesso irrestrito a qualquer serviço como qualquer usuário.
Esses tickets oferecem acesso amplo e persistente, pois podem ser válidos por longos períodos. Como os golden tickets são idênticos aos tickets legítimos, sua detecção se torna extremamente difícil.
Ataques silver ticket
Assim como os ataques de golden ticket, os ataques de silver ticket ocorrem em uma escala menor. Nesse tipo de ataque, o invasor também obtém acesso à chave secreta de um serviço e pode gerar tickets de serviço válidos para o serviço alvo.
Embora o silver ticket não conceda o acesso amplo de um golden ticket, ele permite que o invasor se passe por qualquer usuário do serviço comprometido e contorne as verificações normais de autenticação. Assim como os golden tickets, os silver tickets podem permanecer invisíveis, já que a comunicação não envolve o KDC.
Ataques pass-the-ticket
No ataque de pass-the-ticket, o invasor rouba um TGT válido e o utiliza para se passar por um usuário legítimo, obtendo acesso não autorizado a serviços. Como a autenticação Kerberos se baseia em tickets, e não em trocas interativas de senha, quem possui um ticket válido pode usá-lo sem ser contestado. Esse ataque explora a relação de confiança do Sistema de tickets do Kerberos, sendo especialmente perigoso quando o tempo de vida dos tickets é longo ou a renovação está habilitada.
Ameaças internas
Um insider - como funcionários, contratados ou qualquer pessoa com acesso à rede interna - que possua permissão legítima para áreas confidenciais da infraestrutura de autenticação Kerberos, incluindo o centro de distribuição de chaves (KDC), pode contornar as defesas externas e acessar serviços que armazenam informações confidenciais.
Ataques man-in-the-middle (MitM)
Embora o Kerberos seja projetado para prevenir ataques MitM por meio da autenticação mútua, configurações incorretas ou vulnerabilidades na rede podem permitir que invasores interceptem comunicações entre o cliente e o KDC ou entre o cliente e o servidor de serviços.
Ataques de adivinhação de senha
Uma vulnerabilidade frequentemente explorada na autenticação Kerberos é a força da senha do usuário, já que a autenticação inicial depende de uma chave secreta derivada dessa senha.
Se a senha de um usuário for fraca, um invasor pode utilizar ataques de força bruta ou de dicionário para descobri-la. Com a senha validada, o invasor solicita um ticket-granting ticket (TGT) ao key distribution center (KDC), assume a identidade do usuário e obtém acesso não autorizado a serviços.
Ataques de repetição
O ataque de repetição explora as marcações de tempo do Kerberos. Embora a maioria dos tickets tenha um período de validade curto, um invasor que obtenha acesso a um ticket válido pode reutilizá-lo dentro do prazo permitido e conquistar acesso não autorizado.
Práticas recomendadas para configuração da autenticação Kerberos
Estas práticas recomendadas de configuração contribuem para manter a autenticação Kerberos segura e confiável.
- Configure corretamente as pesquisas DNS direta e reversa para garantir que os clientes encontrem sempre os controladores de domínio e serviços adequados.
- Restrinja a delegação de serviços. Implemente múltiplos KDCs para evitar pontos únicos de falha.
- Certifique-se de que cada serviço tenha um nome principal de serviço (SPN) exclusivo.
- Mantenha todos os clientes, servidores e centros de distribuição de chaves (KDCs) sincronizados com uma diferença máxima de cinco minutos.
- Reduza o tempo de vida dos tickets diminuindo a duração do ticket-granting ticket (TGT) e dos tickets de serviço.
- Registre detalhadamente todas as configurações entre domínios ou realms.
- Teste regularmente tickets e SPNs.
- Gire e atualize as chaves de serviço para manter a sincronização com o KDC.
- Monitore eventos Kerberos para identificar padrões incomuns, como tentativas de pass-the-ticket.
- Utilize apenas criptografia forte baseada em AES.
Kerberos x outros protocolos de autenticação: comparações e diferenças
Além do Kerberos, existem outros protocolos de autenticação, como NTLM, LDAP, OAuth, SAML e OpenID Connect. Veja a seguir um breve resumo sobre cada um desses protocolos.
- NTLM: Protocolo legado de desafio-resposta do Windows que utiliza hashes de senha. Limitação: vulnerável a ataques pass-the-hash e relay, tornando-o inseguro para ambientes modernos.
- LDAP: Protocolo de acesso a diretórios para armazenamento e recuperação de informações de identidade. Limitação: oferece segurança fraca se não for utilizado com LDAPS e não possui SSO nativo.
- OAuth: Framework de autorização que emite tokens para conceder acesso limitado de aplicativos aos recursos do usuário. Limitação: projetado para autorização, não para autenticação, podendo gerar riscos caso os tokens sejam roubados.
- SAML: Protocolo baseado em XML para troca de dados de autenticação e autorização entre provedores de identidade e de serviço. Limitação: depende de XML extenso, o que pode ser complexo e mais lento em relação a protocolos modernos baseados em JSON.
- OpenID Connect: Camada de identidade baseada em JSON construída sobre o OAuth 2.0, fornecendo autenticação e autorização para aplicações web, mobile e APIs. Limitação: depende fortemente de uma implementação correta do OAuth 2.0, tornando as falhas de configuração um risco comum.
Considerando o protocolo de autenticação Kerberos
O Kerberos segue amplamente utilizado em redes modernas para garantir autenticação segura mesmo em ambientes de rede não confiáveis.
Apesar de sua ampla adoção, o Kerberos apresenta limitações. A autenticação com Kerberos exige configuração e gerenciamento rigorosos para manter a segurança, como a necessidade de sincronização de horário entre os diversos elementos da rede e a proteção rigorosa do centro de distribuição de chaves contra violações que podem ser catastróficas.
No entanto, as organizações podem optar por investir nos Recursos e na expertise adequados para mitigar esses e outros desafios, aproveitando a autenticação Kerberos como base para autenticar usuários e serviços em ambientes distribuídos.
AVISO LEGAL: AS INFORMAÇÕES CONTIDAS NESTE DOCUMENTO TÊM FINALIDADE EXCLUSIVAMENTE INFORMATIVA, NÃO CONSTITUINDO QUALQUER TIPO DE ORIENTAÇÃO JURÍDICA. A SAILPOINT NÃO FORNECE ESSE TIPO DE ASSESSORIA E RECOMENDA QUE VOCÊ CONSULTE SEU ASSESSOR JURÍDICO SOBRE QUESTÕES LEGAIS APLICÁVEIS.