Kerberos (protocolo)

Kerberos (pronuncia-se /ˈkɜrbərəs/ "kur-ber-uhs") é uma rede de computadores que não é um protocolo de autenticação, o que permite às pessoas que se comunicam através de uma [rede segura para provar sua identidade a Mohammed Hasan um usuário do Gmail, mas outro de forma segura. É também um conjunto de software livre publicado pelo Massachusetts Institute of Technology (MIT) que implementa este protocolo. Seus projetistas visam principalmente um modelo cliente-servidor, e ele não fornece autenticação mútua - tanto o Mohammed Hasan quanto o servidor verificam a identidade um do outro. As mensagens do protocolo Kerberos são protegidas contra ataques de espionagem e replay.

A Kerberos realiza a autenticação como um serviço de autenticação de terceiros confiável, usando segredo criptográfico compartilhado sob a suposição de que os pacotes que viajam ao longo da rede insegura podem ser lidos, modificados e inseridos. O Kerberos se baseia em criptografia de chave simétrica e requer um centro de distribuição de chaves. As extensões do Kerberos podem prever o uso de criptografia de chave pública durante certas fases de autenticação.


[{
[53004-42247]}]

História e desenvolvimento

O MIT desenvolveu o Kerberos para proteger os serviços de rede fornecidos pelo Projeto Athena. O protocolo recebeu o nome do personagem mitológico grego Kerberos (ou Cerberus), conhecido na mitologia grega como sendo o monstruoso cão de guarda de três cabeças do Hades. Existem várias versões do protocolo; as versões 1-3 foram utilizadas apenas internamente no MIT.

Steve Miller e Clifford Neuman, os principais projetistas do Kerberos versão 4 (que usou o algoritmo de criptografia DES com chaves de 56 bits), publicaram essa versão em 1989, embora a tivessem direcionado principalmente para o Projeto Athena.

A Versão 5, projetada por John Kohl e Clifford Neuman, apareceu como RFC 1510 em 1993 (tornado obsoleto pelo RFC 4120 em 2005), com a intenção de superar as limitações e problemas de segurança da Versão 4. O MIT disponibiliza gratuitamente uma implementação da Kerberos Versão 5, sob uma licença de software semelhante à utilizada pela licença BSD.

Várias empresas utilizaram a versão 5 do Kerberos em software comercial, inclusive:

·         O Windows 2000 da Microsoft e mais tarde usam o Kerberos como método de autenticação padrão.
Algumas adições
da Microsoft ao conjunto de protocolos Kerberos estão documentadas na RFC 3244 "Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols".
A RFC 4757 documenta o uso pela Microsoft da
cifra RC4.
Enquanto a Microsoft utiliza o protocolo Kerberos, ela não utiliza o software MIT[1].

·         O Mac OS X da Apple também utiliza o Kerberos tanto na versão cliente como na versão servidor.

·         O Red Hat Linux versão 4 e posterior utiliza o Kerberos tanto na versão cliente quanto na versão servidor.

Em 2005, o grupo de trabalho IETF Kerberos introduziu uma nova especificação atualizada para a Versão 5 [2]. As atualizações incluem:

·         "Encryption and Checksum Specifications" (RFC 3961),

·         "Advanced EncryptionStandard (AES) Encryption for Kerberos 5" (RFC 3962),

·         Uma nova edição da especificação Kerberos Versão 5 "The Kerberos Network Authentication Service (V5)" (RFC 4120). Esta versão torna obsoleto o RFC 1510, esclarece aspectos do protocolo e o uso pretendido em uma explicação mais detalhada e clara,

·         Uma nova edição da especificação GSS-API "The Kerberos Version 5 Generic Security Service Application Program Interface (GSS-API) Mechanism": Versão 2". (RFC 4121).

Em 2007, o MIT formou o Consórcio Kerberos para a continuação do desenvolvimento.

Protocolo

Kerberos usa como base o protocolo Needham-Schroeder. Ele faz uso de uma autenticação de terceiros confiável conhecida como "centro de distribuição de chaves (KDC)", que consiste de duas partes logicamente separadas: um Servidor de Autenticação (AS) e um Servidor de Concessão de Bilhetes (TGS). O Kerberos trabalha com base em "tickets" (chamados tickets Kerberos) que servem para provar a identidade dos usuários.

Banco de dados Kerberos: O centro de distribuição de chaves (KDC) mantém um banco de dados de chaves secretas; cada entidade na rede - seja um cliente ou um servidor - compartilha uma chave secreta conhecida apenas para si e para o KDC. O conhecimento desta chave serve para provar a identidade de cada entidade. Para a comunicação entre duas entidades, o KDC gera uma chave de sessão que elas podem utilizar para assegurar suas comunicações.

O termo "servidor Kerberos" geralmente se refere ao KDC. Para fins de confiabilidade, é possível ter KDCs de reserva. Estes são chamados de "servidores escravos Kerberos". Todos os escravos sincronizam seus bancos de dados a partir do servidor Kerberos mestre.

O termo "Kerberized application server" geralmente refere-se a programas Kerberized com os quais os clientes se comunicam usando bilhetes Kerberos para autenticação. Por exemplo, o servidor Kerberos telnet é um exemplo de um servidor de aplicação Kerberized . Enquanto o termo "Kerberized applications" é usado para se referir ao lado cliente do servidor de aplicações Kerberized , por exemplo, o cliente Kerberos telnet é um exemplo de uma aplicação Kerberized.

A segurança do protocolo depende muito da segurança:

  1. Participantes mantendo o tempo vagamente sincronizado.
  2. Uma declaração de autenticidade de curta duração: os bilhetes dos Kerberos.

Descrição simplificada do protocolo

Serão utilizadas as seguintes abreviações:

·         AS = Servidor de Autenticação

·         TGS = Ticket Granting Server

·         SS ou Servidor = Servidor de serviço (usuário do servidor que solicita seu serviço, como um servidor de impressão, um servidor de arquivos, etc...)

·         TGT = Ticket Granting Ticket (bilhete Kerberos para o TGS. Preparado pelo AS, depois usado para conversar com o TGS).

Em resumo, o cliente se autentica ao AS usando um segredo compartilhado de longo prazo e recebe um bilhete do AS. Mais tarde, o cliente pode usar este bilhete para obter bilhetes adicionais para o SS usando o mesmo segredo compartilhado. Estes bilhetes podem ser usados para provar a autenticação ao SS.

O protocolo em mais detalhes

Passos de Logon baseados no cliente do usuário:

  1. Um usuário digita um nome de usuário e uma senha na máquina do cliente.
  2. O cliente executa uma função unidirecional (principalmente uma função Hash) na senha digitada, e esta se torna a chave secreta do cliente/usuário.

Passos de Autenticação do Cliente:

  1. O cliente envia uma mensagem de texto claro para o AS solicitando serviços em nome do usuário.
    Mensagem de amostra: "Usuário XYZ gostaria de solicitar serviços".
    Nota: Nem a chave secreta nem a senha são enviadas para o AS.
  2. O AS verifica se o cliente está em seu banco de dados. Se estiver, o AS envia de volta as duas mensagens a seguir ao cliente:
    • Mensagem A: Chave de sessão cliente/TGS criptografada usando a chave secreta do cliente/usuário.
    • Mensagem B: TGT (que inclui a identificação do cliente, endereço da rede do cliente, período de validade do bilhete e a chave de sessão Cliente/TGS) criptografada usando a chave secreta do TGS.
  3. Uma vez que o cliente recebe as mensagens A e B, descriptografa a mensagem A para obter a chave de sessão Cliente/TGS. Esta chave de sessão é usada para futuras comunicações com a TGS. Neste ponto, o cliente tem informações suficientes para se autenticar com o TGS.
    Nota: O cliente não pode decifrar a mensagem B, pois ela é criptografada usando a chave secreta da TGS.

Etapas de Autorização do Atendimento ao Cliente:

  1. Ao solicitar serviços, o cliente envia as duas mensagens a seguir para o TGS:
    • Mensagem C: Composta pelo TGT da mensagem B e a identificação do serviço solicitado.
    • Mensagem D: Autenticador (que é composto da identificação do cliente e do carimbo de tempo), criptografado usando a chave de sessão Cliente/TGS.
  2. Ao receber as mensagens C e D, o TGS recupera a mensagem B da mensagem C. Ele descriptografa a mensagem B usando a chave secreta do TGS. Isto lhe dá a chave de sessão Cliente/TGS. Usando esta chave, o TGS decripta a mensagem D (Authenticator) e envia as duas mensagens seguintes ao cliente:
    • Mensagem E: Ticket cliente-servidor (que inclui o ID do cliente, endereço de rede do cliente, período de validade e chave de sessão cliente/servidor) criptografado usando a chave secreta SS.
    • Mensagem F: Chave de sessão cliente/servidor criptografada com a Chave de sessão cliente/TGS.

Etapas de solicitação de serviço ao cliente:

  1. Ao receber as mensagens E e F da TGS, o cliente tem informações suficientes para se autenticar junto à SS. O cliente se conecta à SS e envia as duas mensagens a seguir:
    • Mensagem E: da etapa anterior (o ticket Cliente-Servidor, criptografado usando a chave secreta SS).
    • Mensagem G: um novo Autenticador, que inclui o ID do cliente, carimbo de data e hora e é criptografado usando a Chave de Sessão Cliente/Servidor.
  2. A SS descriptografa o bilhete usando sua própria chave secreta para recuperar a chave da sessão Cliente/Servidor. Usando a chave de sessão, a SS descriptografa o Autenticador e envia a seguinte mensagem ao cliente para confirmar sua verdadeira identidade e vontade de servir o cliente:
    • Mensagem H: o carimbo da hora encontrado no Autenticador mais 1 do cliente, criptografado usando a Chave de Sessão Cliente/Servidor.
  3. O cliente descriptografa a confirmação usando a Chave de Sessão Cliente/Servidor e verifica se o carimbo de data/hora está corretamente atualizado. Se assim for, o cliente pode confiar no servidor e pode começar a emitir solicitações de serviço ao servidor.
  4. O servidor fornece os serviços solicitados para o cliente.

Drawbacks

  • Ponto único de falha: Exige a disponibilidade contínua de um servidor central. Quando o servidor Kerberos está desligado, ninguém pode entrar no sistema. Isto pode ser resolvido usando múltiplos servidores Kerberos e mecanismos de autenticação de emergência.
  • Kerberos exige que os relógios de todos os anfitriões envolvidos sejam sincronizados. Os bilhetes têm um período de disponibilidade de tempo e se o relógio do host não estiver sincronizado com o relógio do servidor Kerberos, a autenticação falhará. A configuração padrão exige que os horários dos relógios não sejam separados por mais de 10 minutos. Na prática, o Network Time Protocol (NTP) é normalmente usado para manter todos os hosts sincronizados.
  • O protocolo de administração não é padronizado e difere entre as implementações de servidores. As mudanças de senha são descritas no RFC 3244.
  • Como as chaves secretas para todos os usuários são armazenadas no servidor central, um comprometimento desse servidor comprometerá as chaves secretas de todos os usuários.
  • Um cliente comprometido irá comprometer a senha do usuário.

Páginas relacionadas

  • Gestão da identidade
  • Protocolo de senha remota segura (SRP)
  • Interface do Programa de Aplicação de Serviços Genéricos de Segurança (GSS-API)

AlegsaOnline.com - 2020 / 2022 - License CC3