O que é o Kerberos?
Kerberos é um protocolo de autenticação de rede de computadores. Ele foi desenvolvido no MIT para permitir recursos de rede de maneira segura. Neste artigo, veremos discutido o conceito Kerberos e seu trabalho com a ajuda de um exemplo.
Como funciona o Kerberos?
O Kerberos funciona em três etapas. Agora vamos discutir essas três etapas, uma por uma.
Passo 1:
Conecte-se
O cliente digita seu nome em uma estação de trabalho arbitrária. A estação de trabalho envia o nome ao servidor de autenticação em formato de texto sem formatação.
Em resposta, o servidor de autenticação executa alguma ação. Primeiro, ele cria o pacote de nome de usuário, ou seja, Cliente, e gera a chave da sessão. Ele criptografa este pacote com uma chave simétrica que o servidor de autenticação compartilha com o TGS (Ticket Granting Server). A saída desse processo é chamada de TGT (Ticket Granting Ticket). Em seguida, o servidor de autenticação combina o TGT e a chave da sessão e os criptografa usando a chave simétrica derivada da senha do cliente.
Nota: O TGT pode ser aberto apenas usando o TGS e a saída final pode ser aberta apenas pelo cliente.
Depois que essa mensagem é recebida, a estação de trabalho do usuário solicita a senha. Quando um usuário ou cliente digita sua senha, a estação de trabalho gera a chave simétrica derivada da senha de um servidor de autenticação. Essa chave é usada para extrair a chave da sessão e o TGT. Depois disso, a estação de trabalho destrói a senha do cliente de sua memória para impedir o ataque.
Nota: Os usuários não podem abrir o Ticket Granting Ticket.
Passo 2:
Obtenção de um tíquete de concessão de serviço.
Vamos supor que, após o login bem-sucedido, o usuário queira se comunicar com outros usuários através do servidor de correio. Para esse cliente, informa à sua estação de trabalho que deseja entrar em contato com outro usuário X. Portanto, o cliente precisa de um ticket para se comunicar com o X. Nesse ponto, a estação de trabalho do cliente cria uma mensagem destinada a um servidor de concessão de ticket, que contém os itens mencionados abaixo -
• Bilhete de concessão
• o ID do X em que clientes de serviços estão interessados.
• O registro de data e hora atual deve ser criptografado com a mesma chave de sessão.
Concessão de tíquete, o tíquete é criptografado apenas com a chave secreta do servidor de concessão de tíquete, portanto, apenas o servidor de concessão de tíquete pode abrir um tíquete de concessão de tíquete. Por causa desse servidor de concessão de tíquetes, acredita que a mensagem vem do cliente de fato. O ticket que concede o ticket e a chave da sessão foram criptografados pelo servidor de autenticação da sessão.
Um servidor de autenticação o criptografa usando a chave secreta derivada da senha do cliente. Portanto, o único cliente pode abrir o pacote e recuperar o ticket.
Depois que o servidor de concessão de ticket estiver satisfeito com os detalhes inseridos pelo cliente, o ticket de concessão de ticket cria uma chave de sessão KAB para o cliente executar a comunicação segura com o X. O Servidor de Concessão de Ticket o envia duas vezes ao cliente - pela primeira vez quando é combinado com o ID do X e criptografado com a chave da sessão, na segunda vez em que é enviado quando combinado com o ID do cliente e criptografado com a chave secreta do KB do X.
Nesse caso, o atacante pode tentar obter a primeira mensagem enviada pelo cliente e tentar um ataque de resposta. No entanto, isso falharia, pois a mensagem do cliente contém um carimbo de data / hora criptografado e o invasor não pode substituir o carimbo de data / hora, pois não possui a chave da sessão.
Etapa 3:
O usuário entra em contato com o X para acessar o servidor.
Um cliente envia o KAB ao X para criar uma sessão com o X. Para comunicação segura, o cliente encaminha o KAB criptografado com a chave secreta do X para o X. X pode acessar o KAB. Para se proteger de um ataque de resposta, o cliente envia um carimbo de data / hora para o X, criptografado com o KAB.
X usa sua chave secreta para obter as informações; a partir dessas informações, ele usa o KAB para descriptografar o valor do carimbo. Em seguida, o X adiciona 1 ao valor do carimbo de data e hora e o criptografa usando o KAB e o envia ao cliente. O cliente abre o pacote e verifica o carimbo incrementado por X. Nesse processo, o cliente garante que o X receba o mesmo KAB que é enviado pelo cliente.
Agora, o cliente e o X podem se comunicar com segurança. Ambos usam a chave secreta compartilhada KAB e criptografam os dados no momento do envio e descriptografam a mensagem usando a mesma chave. Suponha que o cliente queira se comunicar com outro servidor Y, nesse caso, o cliente apenas precisará de obter uma outra chave secreta do servidor de concessão de tickets. Após obter a chave secreta, ele pode se comunicar com Y da mesma forma que discutimos no caso de X. Se o cliente puder se comunicar novamente com X, ele poderá usar a mesma chave anterior, não há necessidade de gerar um ticket todas as vezes. Somente pela primeira vez, ele precisa obter o ingresso.
Vantagens e desvantagens do Kerberos
Abaixo estão as vantagens e desvantagens:
Vantagens do Kerberos
- No Kerberos, clientes e serviços são autenticados mutuamente.
- É suportado por vários sistemas operacionais.
- Os ingressos no Kerberos têm um período limitado. Além disso, se o ticket for roubado, é difícil reutilizá-lo devido a fortes necessidades de autenticação.
- As senhas nunca são enviadas pela rede sem criptografia.
- No Kerberos, as chaves secretas são compartilhadas, mais eficientes do que as chaves públicas.
Desvantagens do Kerberos
- É vulnerável a senhas fracas ou repetidas.
- Ele fornece autenticação apenas para serviços e clientes.
Conclusão
Neste artigo, vimos o que é o Kerberos, como ele funciona junto com suas vantagens e desvantagens. Espero que você ache este artigo útil.
Artigos recomendados
Este é um guia para o Kerberos. Aqui discutimos o que é o Kerberos, como o Kerberos funciona e suas vantagens e desvantagens. Você também pode consultar nossos outros artigos sugeridos para saber mais:
- Tipos de hospedagem na web
- O que é aplicativo da Web?
- O que é o esquema Star?
- Matrizes na programação Java