Partilhar via


Distribuição de chaves

A técnica de autenticação de chave secreta não explica como o cliente e o servidor obtêm o segredo chave de sessão usar em sessões um com o outro. Se forem pessoas, podem reunir-se em segredo e acordar a chave. Mas se o cliente é um programa em execução em uma estação de trabalho e o servidor é um serviço em execução em um servidor de rede, esse método não funcionará.

Um cliente desejará se comunicar com muitos servidores e precisará de chaves diferentes para cada um deles. Um servidor se comunica com muitos clientes e precisa de chaves diferentes para cada um deles também. Se cada cliente precisar de uma chave diferente para cada servidor, e cada servidor precisar de uma chave diferente para cada cliente, a distribuição de chaves se tornará um problema. Além disso, a necessidade de armazenar e proteger muitas chaves em muitos computadores cria um enorme risco de segurança.

O nome do protocolo Kerberos sugere sua solução para o problema da distribuição de chaves. Kerberos (ou Cérbero) era uma figura da mitologia grega clássica – um cão feroz de três cabeças que impedia que intrusos vivos entrassem no submundo. Como o guarda mítico, o protocolo Kerberos tem três cabeças: um cliente, um servidor e um terceiro confiável para mediar entre eles. O intermediário confiável neste protocolo é o Centro de Distribuição de Chaves (KDC).

O KDC é um serviço executado em um servidor fisicamente seguro. Ele mantém um banco de dados com informações de conta para todas as entidades de segurança em seu reino. Um território é o equivalente Kerberos de um domínio no Windows.

Juntamente com outras informações sobre cada entidade de segurança, o KDC armazena uma chave criptográfica conhecida apenas pela entidade de segurança e pelo KDC. Esta é a chave mestra usada nas trocas entre cada entidade de segurança e o KDC. Na maioria das implementações do protocolo Kerberos, essa chave mestra é derivada usando uma função dede hashda senha de uma entidade de segurança.

Quando um cliente deseja criar uma conexão segura com um servidor, o cliente começa enviando uma solicitação para o KDC, não para o servidor que deseja alcançar. O KDC cria e envia para o cliente uma chave de sessão exclusiva para o cliente e um servidor usarem para autenticar um ao outro. O KDC tem acesso à chave mestra do cliente e à chave mestra do servidor. O KDC criptografa a cópia do servidor da chave de sessão usando a chave mestra do servidor e a cópia do cliente usando a chave mestra do cliente.

O KDC poderia cumprir seu papel de intermediário confiável enviando a chave de sessão diretamente para cada uma das entidades de segurança envolvidas, mas na prática esse procedimento não funcionará, por uma série de razões. Em vez disso, o KDC envia ambas as chaves de sessão criptografadas para o cliente. A chave de sessão para o servidor está incluída em um tíquete de sessão .